Array, String Dan Fungsi String Pada Bahasa C
NAMA : ALFAT SUGIARTO
KELAS : 1ID07
NPM : 30419462
MAPEL : DASAR KOMPUTER DAN PEMROGRAMAN 2A
DOSEN : KURNIAWAN B.PRIANTO, S.KOM.SH.MM
KELAS : 1ID07
NPM : 30419462
MAPEL : DASAR KOMPUTER DAN PEMROGRAMAN 2A
DOSEN : KURNIAWAN B.PRIANTO, S.KOM.SH.MM
- ARRAY
DEFINISI
Array adalah tumpukan variabel yang sejenis dan memiliki nama yang sama. Konsep suatu array menjadikan tumpukan variabel tersebut mampu menampung nilai yang berbeda asalkan tetap dengan tipe yang sama dengan tipe array. Sintaks penulisan array adalah sebagai berikut:
1
| tipe nama_array[elemen]; |
Tipe array merupakan tipe data tumpukan variabel tersebut, sedangkan nama_array adalah nama tumpukan variabel. Untuk elemen atau indeks, merupakn pembeda yang membedakan tumpukan variabel yang satu dengan yang lainnya dalam satu array, karena di awal sudah Mimin jelaskan bahwa array memiliki nama dan jenis yang sama namun pembendanya terletak di indeks atau elemen itu sendiri.
Pendeklarasian array
Berikut contoh cara mendeklarasikan suatu array:
1
| int tampungan[5]; |
Pada contoh diatas, Mimin membuat array dengan nama tampungan bertipe data integer dimana array ini dapat menampung nilai sebanyak 5 buah. Masing-masing nilai yang dimasukkan akan diberikan nomor elemen atau indeks dari elemen ‘0’ hingga ‘4’. Yang perlu kamu ingat bahwa, penomoran elemen pada array dimulai dari angka ‘0’.
Pemberian Nilai Pada Array
Untuk memberikan nilai pada suatu aray, kamu dapat memasukkan nilai satu persatu pada masing-masing elemen atau dengan memasukkan dengan cara bersamaan. Untuk memasukkan satu-persatu pada masing-masing elemen kamu dapat lakukan dengan kode program sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
| #include <iostream> using namespace std; int main(){ int tampungan[5]; tampungan[0] = 4; tampungan[1] = 3; tampungan[2] = 7; tampungan[3] = 8; tampungan[4] = 9; return 0; } |
Untuk memasukkan nilai secara serentak dapat kamu coba dengan kode di bawah ini:
1
2
3
4
5
6
7
| #include <iostream> using namespace std; int main(){ int tampungan[5] = {4,3,7,8,9}; return 0; } |
Kedua contoh program diatas memiliki fungsi dan tujuan yang sama yaitu memasukkan kelima nilai di atas ke dalam array “tampungan”, hanya saja dengan cara yang berbeda.
Mengakses Nilai Pada Array
Setelah kamu bisa mendeklarasikan dan memberikan nilai pada suatu array, maka langkah selanjutnya adalah mengakses nilai yang berada pada suatu array. Untuk programnya Mimin contohkan sebagai berikut:
Berikut adalah hasil output programnya:
Kamu juga bisa memanfaatkan loop untuk mengakses nilai pada array karena lebih cepat dan simple. Berikut Mimin contohkan kode programnya:
Terlihat bahwa program untuk mengakses array dengan memanfaatkan loop lebih simple untuk menghasilkan output yang sama sebagai berikut:
Array Multidimensi
Array multidimensi merupakan array yang memiliki indeks lebih dari 1. Indeks pada array merepresentasikan dimensi dari array. Sebagai contoh array dengan indeks berjumlah dua, maka dapat dikatakan bahwa array tersebut merupakan array dua dimensi dan begitu juga untuk dimensi yang lainnya. Pada contoh kasus ini, Mimin mencontohkan array dua dimensi dalam C++ sebagai berikut:
Mimin sengaja mencontohkan array dua dimensi pada kasus ini karena array ini dapat dipahami sebagai sebuah sel dalam tabel. Dimensi pertama array adalah baris, sedangkan dimensi array kedua adalah kolom. Visualisasi array dua dimensi, Mimin gambarkan sebagai berikut:
Setelah kamu bisa mendeklarasikan dan memberikan nilai pada suatu array, maka langkah selanjutnya adalah mengakses nilai yang berada pada suatu array. Untuk programnya Mimin contohkan sebagai berikut:
1
2
3
4
5
6
7
8
9
10
11
12
| #include <iostream> using namespace std; int main(){ int tampungan[5] = {4,3,7,8,9}; cout<< "Nilai pada array tampungan elemen ke " <<0<< " adalah :" <<tampungan[0]<<endl; cout<< "Nilai pada array tampungan elemen ke " <<1<< " adalah :" <<tampungan[1]<<endl; cout<< "Nilai pada array tampungan elemen ke " <<2<< " adalah :" <<tampungan[2]<<endl; cout<< "Nilai pada array tampungan elemen ke " <<3<< " adalah :" <<tampungan[3]<<endl; cout<< "Nilai pada array tampungan elemen ke " <<4<< " adalah :" <<tampungan[4]<<endl; return 0; } |
1
2
3
4
5
6
7
8
9
10
| #include <iostream> using namespace std; int main(){ int tampungan[5] = {4,3,7,8,9}; for ( int i=0; i<=5; i++){ cout<< "Nilai pada array tampungan elemen ke " <<i<< " adalah :" <<tampungan[i]<<endl; } return 0; } |
Array Multidimensi
Array multidimensi merupakan array yang memiliki indeks lebih dari 1. Indeks pada array merepresentasikan dimensi dari array. Sebagai contoh array dengan indeks berjumlah dua, maka dapat dikatakan bahwa array tersebut merupakan array dua dimensi dan begitu juga untuk dimensi yang lainnya. Pada contoh kasus ini, Mimin mencontohkan array dua dimensi dalam C++ sebagai berikut:
1
| int arrayMulti[2][3]; |
0 | 1 | 2 | |
---|---|---|---|
0 | int arrayMulti[0][0] | int arrayMulti[0][1] | int arrayMulti[0][2] |
1 | int arrayMulti[1][0] | int arrayMulti[1][1] | int arrayMulti[1][2] |
Dari tabel diatas kamu dapat melihat bahwa, jumlah elemen dari arrayMulti adalah 6, yang didapat dari perkalian indeks pertama dan kedua 2*3 = 6. Untuk memberikan nilai pada array dua dimensi kamu dapat menggunakan sintaks sebagai berikut:
1
| int arrayMulti[2][3] = {{1,2,3},{4,5,6}}; |
1
2
3
4
5
6
7
8
9
10
11
12
13
| #include <iostream> using namespace std; int main(){ int arrayMulti[2][3] = {{1,2,3},{4,5,6}}; cout<< "Nilai arrayMulti[0][0] adalah " <<arrayMulti[0][0]<<endl; cout<< "Nilai arrayMulti[0][0] adalah " <<arrayMulti[0][1]<<endl; cout<< "Nilai arrayMulti[0][0] adalah " <<arrayMulti[0][2]<<endl; cout<< "Nilai arrayMulti[0][0] adalah " <<arrayMulti[1][0]<<endl; cout<< "Nilai arrayMulti[0][0] adalah " <<arrayMulti[1][1]<<endl; cout<< "Nilai arrayMulti[0][0] adalah " <<arrayMulti[1][2]<<endl; return 0; } |
1
2
3
4
5
6
7
8
9
10
11
12
13
| #include <iostream> using namespace std; int main(){ int arrayMulti[2][3] = {{1,2,3},{4,5,6}}; cout<< "Akses Array Multidimensi Dengan Looping For" <<endl; for ( int x=0; x<=1; x++){ for ( int y=0; y<=2; y++){ cout<< "Nilai arrayMulti[" <<x<< "][" <<y<< "] adalah " <<arrayMulti[x][y]<<endl; } } return 0; } |
FUNGSI ARRAY
Array Sebagai Parameter Suatu Fungsi
Ternyata sobat, array dapat juga berperan sebagai parameter suatu fungsi. Untuk menjadikan array sebagai parameter fungsi cukup dengan menambahkan kurung kotak ([]) pada akhir nama parameter. Yang harus kamu perhatikan, bahwa parameter pada array tidak perlu penambahan indeks. Berikut Mimin contohkan sintaks sederhananya:
1
| void cetakArray( int arrayInput[], int indeks); |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #include <iostream> using namespace std; void cetakArray( int arrayInput[], int indeks); int main(){ int arrayMimin[4] = {1,2,3,4}; cetakArray(arrayMimin,4); return 0; } void cetakArray( int arrayInput[], int indeks){ for ( int x=0; x<indeks; x++){ cout<< "Nilai array indeks " <<x<< " adalah = " <<arrayInput[x]<<endl; } } |
Array Sebagai Kumpulan Karakter
Sedikit mengulang mengenai string. String merupakan tumpukan karakter, untaian karakter atau disebut dengan array of character. Secara mudahnya, string merupakan kumpulan dari beberapa karakter yang disusun menurut aturan tertentu, sehingga menghasilkan suatu kata atau kalimat.
String yang terdiri dari kata “sinauArduino”, jika ditulis dalam sebuah array dalam C++ dapat dideklarasikan dengan menggunakan sintaks sebagai berikut:
1
| char nama[13] = "sinauArduino" ; |
1
| char nama[5]; |
1
2
3
4
5
6
7
8
9
10
11
| #include <iostream> using namespace std; int main(){ char nama[13] = "sinauArduino" ; for ( int i=0; nama[i]!= '\0' ; i++){ cout<<nama[i]; } cout<<endl; return 0; } |
Program di atas berfungsi untuk mencetak semua nilai yang terdapat pada array karakter “nama” dengan bantuan looping for, dimana looping ini akan terus bekerja mencetak isi dalam setiap elemen array hingga ditemukan null terminated character ‘\0’.
- STRING DAN FUNGSI STRING
STRING (KARAKTER)Pada bahasa pemrograman lain, kita mungkin mengenal String sebagai tipe data untuk teks.
Tapi pada bahasa C:
String pada adalah sebuah array satu dimensi yang berisi kumpulan dari huruf atau karakter dan diakhiri dengan karakterk kosong \0 (null). 1
Bahasa pemrograman C memang tidak memiliki tipe data string, tapi kita tetap bisa membuat string dengan tipe data char.
Contoh:
char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
char greeting[] = "Hello"
Mengapa String di C harus diakhiri dengan karakter kosong \0?
Ingat kembali sejarah dan asal usul bahasa C:
Dimulai dari bahasa assembly, kemudian BCPL atau B, lalu jadilah bahasa C.
Karena itu, C masih mengadopsi desain atau rancangan dari bahasa sebelumnya yang mengharuskan string untuk diakhiri dengan karakter kosong.
Selain itu, ini juga akan memudahkan dalam menghitung panjang string dan alokasi memori untuk string. 2
Karena saat itu memori komputer sangat terbatas.
Jadi, meskipun kita membuat string seperti ini:
char greeting[] = "Hello";
-
FUNGSI STRING
Fungsi-fungsi untuk Manipulasi String
Ada beberapa fungsi yang bisa kita gunakan untuk memanipulasi string sesui dengan kebutuhan.
Berikut ini fungsi-funginya:
1. Fungsi strcpy()
Fungsi strcpy() digunakan untuk meng-copy string dari sebuah variabel ke variabel yang lainnya.
Contoh:#include <stdio.h>
void main(){
char title[] = "Belajar Bahasa C";
char title_copy[20];
// copy string title ke title_copy
strcpy(title_copy, title);
// maka sekarang title_copy akan berisi:
printf("isi title_copy: %s\n", title_copy);
}
Hasilnya:
2. Fungsi strcat()
Fungsi strcat() digunakan untuk menambahkan string dari belakang.
#include <stdio.h>
void main(){
char nama[] = "Ahmad Muhardian";
char gelar[] = ", S.Kom";
// Menggabungkan string
strcat(nama, gelar);
printf("Nama lengkap: %s\n", nama);
}
Hasilnya:
3. Fungsi strlen()
Fungsi strlen() digunakan untuk menghitung panjang string.#include <stdio.h>
void main(){
char nama[] = "Ahmad Muhardian";
int panjang_nama;
// menghitung panjang nama
panjang_nama = strlen(nama);
printf("Nama: %s\n", nama);
printf("Panajang: %d karakter\n", panjang_nama);
}
Hasilnya:
4. Fungsi strcmp()
Fungsi strcmp() digunakan untuk membandingkan string dengan string yang lainnya.Contoh:
#include <stdio.h>
void main(){
char str1[] = "Petani";
char str2[] = "Kode";
int hasil;
// membandingkan string
hasil = strcmp(str1, str2);
if(hasil == 0){
printf("str1 dan str2 sama");
} else {
printf("str1 dan str2 berbeda");
}
}
Hasilnya:
5. Fungsi strchr()
Fungsi strchr() digunakan untuk mencari sebuah karakter di dalam string.
Contoh:
#include <stdio.h>
void main(){
char nama[] = "Petani Kode";
char huruf = 'e';
char* hasil;
printf("Mencari huruf '%c' dalam nama...\n", huruf);
// mencari huruf
hasil = strchr(nama, huruf);
while(hasil != NULL){
printf("Ditemukan pada huruf ke-%d\n", hasil - nama+1);
hasil = strchr(hasil+1, huruf);
}
}
6. Fungsi strstr()
Fungsi strstr() digunakan untuk mencari sebuah teks (string) di dalam string.
Contoh:
#include <stdio.h>
void main(){
char str[] ="Petani code!";
char * hasil;
// cari kata "code"
hasil = strstr(str,"code");
// lalu ubah kata "code" menjad "kode"
strncpy (hasil, "kode", 4);
puts(str);
}
Hasilnya:
CHARACTER FUNCTION LIBRARY
KARAKTER DAN STRING
1. Operasi Karakter
Fungsi-fungsi pustaka untuk opersai karakter berada pada file judul ctype.h.
a. Menyeleksi Status Karakter
Fungsi-fungsi pustaka atau mako yang dapat digunakan adalah :
Makro-makro ini akan menghasilkan nilai benar (True) jika nilai karakter yang diseleksi termasuk dalam status kelompoknya
Contoh1 :
#include<stdio.h>
#include<conio.h> //file header untuk fungsi getche()
#include<ctype.h> //file header untuk fungsi isspace(c)
#define lagi 1
main() {
int karakter;
do { karakter = getche(); // menerima input data karakter tanpa enter
if(isspace(karakter)) break; } /*bila yg diinput berupa spasi, backspace, tab atau enter maka keluar dari proses looping*/
while(lagi); /*looping dilakukan selama menerima input*/ }
Contoh2 :
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
main() { int input;
input = getche(); //input tanpa penekanan enter
if(isalpha(input)) printf(“ adalah huruf\n”);
else printf(“ bukan huruf\n”);
}
output :
d adalah huruf
1 bukan huruf
ket : if(isalpha(input)) printf(“adalah huruf\n”); artinya bila input benar berisi karakter huruf maka akan dicetak adalah huruf dan bila tidak akan mencetak bukan huruf.
b. Mengkonversi Nilai Karakter
fungsi :
tolower() : merubah karakter huruf besar menjadi huruf kecil
toupper() : merubah karakter huruf kecil menjadi besar
Contoh :
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
main() { char kata = „A‟,jawab;
do { printf(“%c %c\n”, tolower(kata),toupper(„b‟));
printf(“Mau coba lagi : “);
jawab = getchar(); }
while(toupper(jawab) = = „Y‟ ); }
Ouput :
a B
Mau coba lagi : y
a B
Mau coba lagi : t
Ket : program diatas akan mencetak A menjadi huruf kecil dan B menjadi huruf besar. Perintah while(toupper(jawab) ==‟Y‟) berarti looping akan dilakukan selama jawab = „Y‟ atau „y‟ karena toupper(„y‟) = „Y‟.
2. Operasi String
Suatu string merupakan array dari karakter. Nilai suatu string ditulis dengan tanda petik dua. Suatu nilai string disimpan di memory dengan diakhiri oleh nilai „\0‟ (null). “ABC” disimpan menjadi A B C „\0‟
Inisialisasi
String : char kota[ ] = {„C‟,‟o‟,‟r‟,‟v‟,‟a‟,‟l‟,‟l‟,‟i‟,‟s‟,‟\0‟};
char kota[10] = “Corvallis” ;
char kota[ ] = “Corvallis” ;
Konstanta string, sebagaimana halnya nama array, diperlakukan oleh kompiler sebagai sebuah pointer. Maka pernyataan berikut sama dengan inisialisasi di atas.
char *kota = “CORVALLIS”;
perintah : printf(“%s, %c%c”, kota, kota[1],kota[2]); Output : CORVALIS, OR
%s kode format untuk kota berarti mencetak CORVALLIS. %c, kota[1] berarti mencetak elemen array ke-1 dari kota yaitu „O‟, %c,kota[2] berarti mencetak elemen array ke-2 dari kota yaitu „R‟.
Seperti halnya Array, String bila tidak diberi nilai awal maka ukuran karakter harus ditulis, Misal : char Nama[20];
Atau boleh ditulis sebagai pointer :
char *Nama ;
Fungsi2 standar string terdapat pada file judul string.h
1. Menyalin string
Fungsi : strcpy()
Bentuk : srtcpy(string1,string2). Nilai string2 akan dicopy ke string1.
Contoh : strcpy(kota, “satu”) maka string satu akan dicopy ke variable kota.
2. Menghitung panjang string
Fungsi : strlen()
Contoh : strlen(“Corvallis”) maka akan dihasilkan nilai 9
3. menggabungkan string
fungsi : strcat(string1,string2). Nilai string1 akan digabung dengan string2 dan disimpan didalam string1.
Contoh :
char kota[]=”satu”;
strcat(kota, “dua”) maka kota[ ] = “satudua”
4. Mencari Nilai karakter di string
Fungsi : strchr()
Contoh :
char String[ ] =”Abcde”; char *hasil ;
Hasil = strch(String, „B‟); printf(“%s”, hasil);
Maka Hasil akan bernilai “Bcde”
5. Membandingkan dua nilai string
Fungsi : strcmp()
Membandingkan dua nilai string akan menghasilkan nilai integer berupa :
- > 0 bila sring pertama lebih kecil daripada string kedua
- 0 bila string pertama = string kedua
- < 0 bila string pertama lebih besar dari string kedua
Contoh program :
#include <stdio.h>
#include “string.h”
int main( ) {
char kata1[ ] = “Ibu Kota”, *kata2 = “ Jakarta”, data1[ ] ={„A‟,‟B‟,‟c‟,‟d‟,‟\0‟};
char data2[ ] = “ABCD”,*baru ; int hasil;
printf(“panjang string kata1 : %d \n”,strlen(kata1); //menghitung panjang “Ibu Kota”
strcat(kata1,kata2); //mengabung kata1&kata2 disimpan di kata1
printf(“nilai string kata1 setelah operasi : %s \n”,kata1);
strcpy(kata2,data1); //mencopy string data1 disimpan di kata2
printf(“nilai string kata2 setelah operasi : %s \n”,kata2);
hasil = strcmp(data1,data2); //membandingkan data1 dan data2
if (hasil = = 0) printf(“Data1 sama dengan data2”)
else if(hasil< 0) printf(“Data1 lebih kecil dari data2”);
else printf(“Data1 lebih besar dari data2”);
baru = strchr(data2,’C’); //mencari karakter‟C‟ pada data2, hasil disimpan di baru
printf(“\nHasil mencari karakter C : %s”, baru);
return 0; //nilai balik ke fungsi main
}
Output :
panjang string kata1 : 8
Nilai string kata1 setelah operasi : Ibu Kota Jakarta
Nilai string kata2 setelah operasi : ABcd
Data1 lebih besar dari data2
Hasil mencari karakter C : CD
Nilai yang tersimpan pada tiap variabl setelah operasi :
kata1= “Ibu Kota Jakarta” karena menyimpan hasil operasi strcat(kata1,kata2).
kata2 = “Abcd” karena menyimpan hasil opersi strcpy(kata2,data1)
data1 = “Abcd”
data2 = “ABCD”
hasil = lebih besar dari nol karena karakter „c‟ lebih besar dari „C‟
baru = “CD”
COMMAND LINE ARGUMENT
Argumen Baris Perintah di CArgumen baris perintah adalah parameter yang disediakan untuk program ketika dipanggil. Argumen baris perintah adalah konsep penting dalam pemrograman C. Sebagian besar digunakan ketika Anda perlu mengontrol program Anda dari luar. Argumen baris perintah diteruskan ke main()metode.
Sintaksis:
int main(int argc, char *argv[])
Di sini argcmenghitung jumlah argumen pada baris perintah dan argv[ ]merupakan array pointer yang menampung pointer tipe charyang menunjuk ke argumen yang diteruskan ke program.
Contoh untuk Argumen Baris Perintah
#include <stdio.h>
#include <conio.h>
int main(int argc, char *argv[])
{
int i;
if( argc >= 2 )
{
printf("The arguments supplied are:\n");
for(i = 1; i < argc; i++)
{
printf("%s\t", argv[i]);
}
}
else
{
printf("argument list is empty.\n");
}
return 0;
}
Ingatlah bahwa argv[0]memegang nama program dan argv[1]menunjuk ke argumen baris perintah pertama dan argv[n]memberikan argumen terakhir. Jika tidak ada argumen yang diberikan, argcakan menjadi 1.DAFTAR PUSTAKA:
https://www.sinauarduino.com/artikel/array-pada-pemrograman-cpp/
https://www.petanikode.com/c-string/
http://panjiologi.blogspot.com/2017/11/karakter-dan-string-pada-bahasa-c.html
https://www.studytonight.com/c/command-line-argument.php
Komentar
Posting Komentar