Modul V—Array 1-Dimensi, Character dan String MODUL V ARRAY 1-DIMENSI, CHARACTER DAN STRING V.1 ARRAY 1-DIMENSI Array adalah susunan data dengan jumlah tertentu yang bertipe sama dan bernama sama. Setiap elemen data yang tersusun di dalam array dibedakan dengan nomor indeks yang selalu dimulai dari 0. Pada bagian ini akan dipelajari tentang array 1-dimensi. Pemahaman tentang array 1-dimensi akan diperoleh dengan menjalankan Contoh Program V.1.1 dan V.1.2. tipe_data nama_array[ukuran_atau_jumlah_susunan_data] Contoh Program V.1.1 ... int ANGKA[5]={10,20,30,40,50}; /*Deklarasi array 1-dimensi dengan nama ANGKA yang terdiri dari 5 susunan data bertipe integer*/ printf("Indeks 0> Data ke 1 = %d \n",ANGKA[0]);//Indeks 0 printf("Indeks 1> Data ke 2 = %d \n",ANGKA[1]);//Indeks 1 printf("Indeks 2> Data ke 3 = %d \n",ANGKA[2]);//Indeks 2 printf("Indeks 3> Data ke 4 = %d \n",ANGKA[3]);//Indeks 3 printf("Indeks 4> Data ke 5 = %d \n",ANGKA[4]);//Indeks 4 ... Contoh Program V.1.2 ... int k, bil[6];/*Deklarasi variabel k dan deklarasi array bil[6]*/ printf("Anda diminta mengetikan 6 bilangan bulat \n"); for (k=0; k<=5; ++k) { printf("Bilangan bulat ke-%d> \n",k+1); scanf("%d",&bil[k]); } printf("\nBilangan-bilangan yang tadi diketikan yaitu:\n"); for (k=0; k<=5; ++k) { printf("bil[%d] = Bilangan ke %d = %d \n",k,k+1,bil[k]); } ... D4 Teknologi Media Digital, STEI-ITB 1 Modul V—Array 1-Dimensi, Karakter dan String V.2 Character dan String V.2.1 Tipe Data char Data bertipe char, selain dapat menyimpan angka, dapat menyimpan karakter. Perhatikan deklarasi karakter dan kode ASCII pada Contoh Program V.2.1. Contoh Program V.2.1 ... char karakter_1 = '1', karakter_A = 'A'; //Deklarasi karakter char bilangan_1 = 1, bilangan_2 = 2; // Deklarasi kode ASCII printf("Karakter '1': %c \n",karakter_1); printf("Kode ASCII 1 memiliki karakter: %c \n\n",bilangan_1); printf("Karakter '1' + 2 = %c\n", karakter_1 + bilangan_2); printf("Karakter 'A' + 2 = %c\n\n", karakter_A + bilangan_2); ... Input Karakter: getchar() ... char nama_variabel; ... nama_variabel = getchar(); ... Output Karakter: putchar() ... char nama_variabel; ... putchar(nama_variabel); ... 2 D4 Teknologi Media Digital, STEI-ITB Modul V—Array 1-Dimensi, Character dan String Contoh Program V.2.2 ... char kumpul_kar[10]; int indeks_kar_maks, indeks_kar; printf("Ketikan sembarang karakter, maksimum 9 karakter>");/*Mengapa maksimum 9 karakter? Perhatikan syarat atau kondisi pada perulangan for*/ for (indeks_kar = 0; (kumpul_kar[indeks_kar] = getchar()) != '\n'; ++indeks_kar)//Input karakter ; indeks_kar_maks = indeks_kar; printf("Karakter yang tadi diketikan:\n"); for (indeks_kar = 0; indeks_kar <indeks_kar_maks; ++indeks_kar) putchar(kumpul_kar[indeks_kar]); //Output karakter printf("\n"); ... V.2.2 String String pada prinsipnya merupakan susunan dari karakter. Dengan demikian, string dapat digunakan untuk menyimpan data berupa kata ataupun kalimat. String dideklarasikan dengan cara membuat array 1-dimensi bertipe char yang diakhiri dengan karakter ‘\0’ atau null. Sehingga ketika dideklarasikan ukuran array =, misalnya, 10, berarti maksimum kata/ kalimat yang diakomodasi adalah terdiri dari 9 karakter. Hal ini karena elemen array terakhir merupakan karakter null. Pada uraian di bawah ini akan ditunjukan berbagai contoh manipulasi string dengan menggunakan fungsi-fungsi yang terdapat pada library string.h, yaitu: strcpy(), gets(), strlen(), strcat() dan strcmp(). Dengan demikian, setiap penggunaan fungsi-fungsi tersebut jangan lupa memanggil string.h: #include <string.h> D4 Teknologi Media Digital, STEI-ITB 3 Modul V—Array 1-Dimensi, Karakter dan String Menyalin string strcpy(nama_string_Tujuan, nama_string_Asal); Contoh Program V.2.3 ... char kalimat[11]; //Deklarasi string berukuran 10 karakter strcpy(kalimat,"D4 TMD ITB"); //Menyalin string printf("Kalimat yang disalin:\n%s\n", kalimat); ... Contoh Program V.2.4 ... char kalimat_1[11], kalimat_2[11]; strcpy(kalimat_1,"D4 TMD ITB"); //Menyalin string printf("Kalimat_1:\n%s\n", kalimat_1); strcpy(kalimat_2,kalimat_1); //Menyalin string printf("Kalimat_2:\n%s\n", kalimat_2); ... Input String: gets() gets(nama_string); Contoh Program V.2.5 ... char kalimat[25]; //Deklarasi string berukuran 24 karakter printf("Buatlah kalimat, maksimum 24 karakter>"); gets(kalimat); //Input string printf("Kalimat tadi adalah sbb.:\n%s\n", kalimat); ... Panjang String: strlen() Panjang string pada prinsipnya samadengan jumlah karakter yang membentuk kata atau kalimat. Keterangan: bedakan isitlah “ukuran string” dan “panjang string”! 10. strlen(nama_string); 4 D4 Teknologi Media Digital, STEI-ITB Modul V—Array 1-Dimensi, Character dan String Contoh Program V.2.6 ... char kalimat[21]; int jml_karakter; strcpy(kalimat,"D4 TMD ITB"); jml_karakter = strlen(kalimat); //Panjang string printf("Kalimat:\n%s\nmemiliki panjang string = %d\n", kalimat,jml_karakter); ... Menggabungkan Dua String: strcat() Fungsi strcat(string1,string2) digunakan untuk menggabungkan dua buah string. String hasil penggabungannya disimpan pada string1. Sehingga, ukuran string1 haruslah menampung panjang string hasil penggabungan tersebut. strcat(nama_string_1,nama_string_2); Contoh Program V.2.7 ... char kalimat_1[28], kalimat_2[45]; /*Perhatikan ukuran string kalimat_1*/ strcpy(kalimat_1,"D4 TMD ITB"); //Perhatikan panjang string strcpy(kalimat_2,", Tahun 2009/2010"); /*Perhatikan panjang string*/ strcat(kalimat_1,kalimat_2); /*Dua string digabungkan di string kalimat_1*/ printf("%s\n", kalimat_1); ... Membandingkan Dua String: strcmp() Fungsi strcmp() digunakan untuk mengetahui atau membandingkan apakah dua string yang ditinjau itu sama atau tidak. Apabila sama, nilai balikan dari strcmp()samadengan 0. Jika tidak sama, maka nilai balikannya samadengan 1. strcmp(nama_string_1,nama_string_2); D4 Teknologi Media Digital, STEI-ITB 5 Modul V—Array 1-Dimensi, Karakter dan String Contoh Program V.2.8 ... char kalimat_1[12]; char kalimat_2[]={'A','l','g','o','r','i','t','m','a',' ','C','\0'}; strcpy(kalimat_1,"Algoritma C"); if (strcmp(kalimat_1,kalimat_2)==0) printf("\nKalimat yang diketikan samadengan kalimat_1\n"); else printf("\nKalimat yang diketikan tidak samadengan kalimat_1\n"); ... Contoh Program V.2.9 ... char kalimat_1[12], kalimat_2[12]; int banding; strcpy(kalimat_1,"Algoritma C"); printf("kalimat_1:\n%s\n",kalimat_1); printf("\nKetikan kembali kalimat_1>"); gets(kalimat_2); banding = strcmp(kalimat_1,kalimat_2); //Pembandingan dua string if (banding == 0) printf("\nKalimat yang diketikan samadengan kalimat_1\n"); else printf("\nKalimat yang diketikan tidak samadengan kalimat_1\n"); ... III.1. Latihan a. Lengkapi dan jalankan seluruh Contoh Program di atas dan analisis hasilnya. b. Buatlah program 2 buah password berurutan dengan nama Anda menggunakan pembanding kata/kalimat. Password pertama nama depan, password kedua nama belakang Anda. Jika salah sebanyak 3x maka muncul tulisan akses ditolak. c. Buatlah program untuk menukarkan nama Anda. Pada awalnya kata_1 = nama depan dan kata_2 = nama belakang menjadi kata_1 = nama belakang dan kata_2 = nama depan. 6 D4 Teknologi Media Digital, STEI-ITB