iklan

close

Kamis, 15 Desember 2011

ARRAY DALAM BAHASA C

Array adalah sekumpulan variable yang mempunyai tipe data yang sama yang disimpan di memori secara berurutan. Setiap variabel dalam sebuah array disebut sebagai sebuah elemen dan dapat diakses dengan memberikan nama array-nya serta dengan index urutannya.  Array merupakan tipe data yang paling sederhana yang paling banyak dipergunakan. Pada umumnya letak elemen array secara logika dan fisikal (letak di memori) adalah sama. Array selalu terdiri atas 2 bagian : index dan komponen. Setiap index hanya selalu berisi 1 komponen (hubungan antara index dan komponen adalah one to one). Maka dari itu hubungan antar elemen pada array bersifat homogenous. Array bisa diakses secara positional access – pengambilan elemen berdasarkan posisi index atau dengan associative access – pengambilan elemen berdasarkan isi dari elemen yang bersangkutan. Berdasarkan penggunaannya Array bersifat statis. Jenis operasi yang dapat dilakukan terhadap array adalah :
  • Retrieve yaitu membaca atau mengambil nilai di elemen tertentu didalam array tersebut.
  • Update yaitu mengubah nilai di elemen tertentu yang terdapat pada array tersebut.
Untuk mengetahui mengapa kita harus menggunakan array, asumsikan bahwa kita mempunyai lima buah variabel yang bertipe float. Selanjutnya kita ingin mengetahui nilai rata-rata dari variabel tersebut. Apabila kita tidak menggunakan array untuk kasus ini, maka kita tentu akan menuliskan program seperti dibawah ini :
Program diatas memang pendek karena data yang kita miliki hanya 5 buah. Namun bagaimana apabila kita ingin menghitung rata-rata dari 100 atau bahkan 1000 data ? kita tentu tidak akan menggunakan cara diatas bukan ? oleh sebab itu, untuk menyederhanakan program dalam kasus ini, seharusnya kita menggunakan array.

Mengisi nilai pada elemen array dapat dilakukan dengan 2 cara, yaitu :
  • Langsung dari program (statik)
  • Diisi oleh user melalui input dari keyboard (dinamik)
Dilihat dari dimensinya array dapat dibagi menjadi :
  • Array satu dimensi merupakan tipe data yang sering digunakan pada pendeklarasian variabel yang sama tapi memiliki indeks yang berbeda, serta pengisian elemen array dilakukan melalui indeks. Indeks array secara default dimulai dari 0. Bentuk umum penulisan:  
          type_data variabel[jumlah_elemen ];
  • Array dua dimensi merupakan tipe data yang sering digunakan pada pendeklarasian variabel yang sama tapi memiliki dua indeks yang berbeda, serta pengisian elemen array dilakukan melalui indeks. Indeks array secara default dimulai dari 0,0. Jumlah elemennya adalah indeks1 x indeks 2. Bentuk umum penulisan :
          type_data variabel[jumlah_elemen1] [jumlah_elemen2] ;         
  • Array multi dimensi merupakan tipe data yang sering digunakan pada pendeklarasian variabel yang sama tapi memiliki lebih dari dua indeks yang berbeda, serta pengisian elemen array dilakukan melalui indeks. Indeks array secara default dimulai dari 0,0. Jumlah elemennya adalah indeks1 x indeks 2. x...indeks n. Bentuk umum penulisan :
          type_data variabel[jumlah_elemen1] [jumlah_elemen2]...[jumlah_elemenn] ;

Untuk penghitungan lokasi/address dari array kita harus mengetahui beberapa parameter array, yaitu :
  • Base Address (b) → Alamat (byte pertama) dari array yang di assign pada saat binding time. Binding time adalah waktu dimana array di assign pada suatu lokasi di memory, bisa pada saat di compile atau di execute.
  • Component Length (L) → Panjangnya memory untuk menyimpan satu komponen (L) tergantung dari tipe dan bahasa pemrograman.
  • Lower Bound (lk) dan Upper Bound (uk) → Lower Bound adalah nilai index yamg terkecil, sedangkan Upper Bound adalah nilai index yang terbesar. Contoh : int A[5]; lk=0 dan uk=4
  • Dimension (d) Besarnya dimensi suatu array. Contoh : untuk int [5]; d=1 sedangkan umtuk int [5] [2], d=2.
Keunggulan array adalah sebagai berikut :
  • Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat diacu secara langsung tanpa melalui elemen-elemen lain.
  • Jika berada di suatu lokasi elemen, maka sangat mudah menelusuri ke elemenelemen tetangga, baik elemen pendahulu atau elemen penerus
  • Jika elemen-elemen array adalah nilai-nilai independen dan seluruhnya harus terjaga, maka penggunaan penyimpanannya sangat efisien
Kelemahan array adalah array mempunyai fleksibilitas rendah, karena array mempunyai batasan sebagai berikut :
  • Array harus bertipe homogen. Kita tidak dapat mempunyai array dimana satu elemen adalah karakter, elemen lain bilangan, dan elemen lain adalah tipe-tipe lain
  • Kebanyakan bahasa pemrograman mengimplementasikan array statik yang sulit diubah ukurannya di waktu eksekusi. Bila penambahan dan pengurangan terjadi terus-menerus, maka representasi statis
    • Tidak efisien dalam penggunaan memori
    • Menyiakan banyak waktu komputasi
    • Pada suatu aplikasi, representasi statis tidak dimungkinkan

4 komentar:

  1. saya mau tanya nih seputar array.. mungkin mas andrian dapat menjawab..

    Mengapa dalam menjadikan array sebagai parameter diharuskan untuk mengisi elemen [ ]-nya ? dan mengapa hanya [ ] pertama yang harus kosong ?

    BalasHapus
  2. Untuk mas Yoel Pardede, Terima Kasih atas pertanyaannya seputar array...
    Saya akan mencoba untuk menjawab pertanyaan ini....

    Mengapa dalam menjadikan array sebagai parameter kita harus mengisi elemennya sebab dengan mendeklarasikan array, jadi tau itu array dan apabila tidak maka akan dianggap sebagai variabel biasa. Sedangkan untuk mengapa elemen pertama harus kosong, sebab biasanya diawali dengan kosong begitupun juga kalo kita mendeklarasikan juga dari kosong. Untuk alasannya kenapa harus mulai dari kosong, saya kurang tahu akan tetapi hampir semua array dimulai dari elemen kosong. Semoga jawaban saya dapat membantu mas Yoel Pardede.

    BalasHapus
  3. mas saya mau tanya maksudnya array dimulai dari elemen kosong itu ya ap, apa tanda yang seperti ini [] disebut elemen kosong

    BalasHapus
    Balasan
    1. Yang dimaksud dengan array dimulai dari elemen kosong adalah bahwa array dimulai dari elemen [0]. Sedangkan untuk [] tidak bisa dikatakan elemen kosong karena tidak dideklarasikan variabelnya.

      Hapus