Monday, July 4, 2011

Array dan String dalam Bahasa C/C++

Array adalah tempat untuk mengkoleksi banyak variabel dengan type yang sama. Tiap variabel yang tersimpan pada array tersebut disebut elemen, dimana tiap-tiap elemen pada array dapat diakses dengan menggunakan indek. Sebuah array dapat mempunyai dimensi satu atau lebih (array yang banyak digunakan pada aplikasi teknik informatika adalah array dua dimensi). Elemen-elemen dari sebuah array pada C disimpan pada memori yang bersebelahan, yaitu elemen dengan address terkecil adalah elemen yang terkecil pada array tersebut.

Array satu dimensi
Bentuk umum dari array satu dimensi adalah sebagai berikut:
            type var_name [size];
Dengan type = basis tipe data dari elemen-elemen yang akan disimpan pada array tersebut, var_name = nama (digunakan sebagai referensi) dari array tersebut, [ ] = keyword dari suatu array dan size = jumlah elemen-elemen yang akan disimpan. Seperti variabel yang lain, var_name harus dideklarasi secara eksplisit. Sehingga double balance [100]; adalah mendeklarasikan array dengan nama balance dengan tipe double dan akan dipergunakan untuk menyimpan sejumlah 100 elemen.
Pada C, elemen pertama dari sebuah array mempunyai indek 0, sehingga char p [10]; adalah menyatakan array p dengan 10 buah elemen dengan indek p[0] sampai dengan p[9].
Contoh:
  1. #include <stdio.h>
  2. void main (void)
  3. {
  4. int x [30];         
  5. int t;
  6. for (t=0; t<30; t++)
  7. x [t] = t;    
  8. }


Total byte dari memori yang digunakan sebuah program array adalah:
            total-byte = sizeof (type) * size of array



String (character string)
Di bidang teknik informatika, paling banyak penggunaan array satu dimensi adalah untuk menangani character string. Pada C, sebuah string adalah didefinisikan sebagai “array of character” yang diakhiri dengan null (\0). Dengan alasan itu sebuah array yang dideklarasi untuk menyimpan character string sebanyak 10 character perlu dideklarasikan sebagai char str [11];
Catatan:
Bahasa C tidak mempunyai type string, sehingga untuk menangani konstanta string digunakan array of character. Misalnya, “halo dab...”.
Bahasa C mempunyai beberapa fasilitas function untuk menangani operasi string:
Nama:
Function:
strcpy (s1, s2)
Meng-copy sting s2 ke s1
strcat (s1, s2)
Menyambung s2 dibelakang s1
strlen (s1)
Menyatakan panjang character string s1
strcmp (s1, s2)
Mendapatkan (return) = 0, jika s1=s2
Mendapatkan (return) < 0, jika s1<s2
Mendapatkan (return) > 0, jika s1>s2
strchr (s1, ch)
Mengembalikan (return) sebuah pointer yang menunjuk posisi awal ch  pada string s1
strstr (s1, s2)
Mengembalikan (return) sebuah pointer yang menunjuk posisi awal s2 pada string s1
Catatan: Fungsi-fungsi string tersebut menggunakan standar header string.h

Contoh:
  1. #include <stdio.h>
  2. #include <string.h>
  3. void main (void)
  4. {
  5. char s1 [80],  s2 [80];
  6. gets (s1);
  7. gets (s2);
  8. printf (“Panjang dari string adalah: %d  %d \n”, strlen (s1), strlen (s2));
  9. if (!strcmp (s1, s2) printf (“Dua buah string tersbut memilki panjang yang sama \n”);
  10. strcat (s1, s2);
  11. printf (“%s \n”, s1);
  12. strcpy (s1, “Percobaan... \n”);
  13. printf (“%s \n”, s1);
  14. if (strchr (“Halo”, ‘o’)) printf (“o ada dalam Halo \n”);
  15. if (strstr (“Halo dab..”,  “dab”)) printf (“dab ditemukan”);
  16. }


 Array dua dimensi
Pada array multidimensi yang paling mudah adalah array dua dimensi. Array dua dimensi adalah sebenarnya array dari array satu dimensi. Untuk mendeklarasikan array dua dimensi untuk data integer d dengan size 10, 20, dapat dilakukan sebagai berikut:
int d [10] [20];
Dengan cara yang sama maka untuk mengakses elemen 1,2 dari array d adalah
            d [1] [2];
Contoh di bawah ini adalah mengisi array dua dimensi dengan angka dan mencetaknya baris demi baris.
Contoh:
  1. #include <stdio.h>
  2. void main (void)
  3. {
  4. int t, i, num [5] [6];
  5. for (t=0; t<5; ++t);
  6. for (i=0; i<6; ++i)
  7. num [t] [i] = (t*6) + i + 1;
  8. for (t=0; t<5; ++t); 
  9. {
  10. for (i=0; i<6; ++i)
  11. printf (“%d “, num [t] [i]);
  12. printf (“\n”);
  13. }
  14. }


No comments:

Post a Comment

Note: Only a member of this blog may post a comment.