Seri Belajar Pemrograman #3

Halo, ketemu lagi nih xD

hehehe…

Sebenernya kemarin mau nulis artikel ini, tapi karena abis UTS Bahasa Inggris rasanya mata udah puyeng (maklum udah 3 hari tidur jam 12 dan bangun jam 3)

#curhat

Udah2…. mari kita lanjutkan seri tutorial ini.

Oh, iya… bagi yang baru pertama baca halaman ini, disarankan untuk membaca seri ke 1 dan seri ke 2, biar nggak bingung di tengah jalan (saya pake pseudo-code, nggak murni bahasa pemrograman). Ingat juga bahwa istilah angka, cacah, huruf, dsb yang digunakan dalam contoh source code adalah berupa pseudo code.

Pada tutorial sebelumnya kita sudah belajar tentang variabel dan struktur. Nah, kali ini kita akan membahas tentang Array. Ada juga yang menyebutnya sebagai larik. Tapi di sini kita sebut saja array.

Kalau misal kita butuh tempat penyimpanan untuk menyimpan data dalam memori komputer maka kita mendeklarasikan sebuah variabel (baca: botol) sesuai dengan tipe data yang kita inginkan. Nah, misal kita ingin menyimpan data umur seseorang maka kita akan bikin variabel bertipe angka / integer (karena yang kita simpan dalam bentuk bilangan bulat). Sebut saja nama variabel tersebut umur.

Itu kalo cuma 1 data, lalu bagaimana kalau data yang kita inginkan itu ada 5? Mungkin kita bisa bikin 5 variabel bertipe angka (integer). Ok, sebut saja umur1, umur2, umur3, umur4, umur5. Nah, bagaimana kalo datanya ada 100? Kalau ada 1000? Bisa-bisa kita menghabiskan waktu untuk membuat variabel aja (Selesai ngoding tangan langsung pegel).  Lalu ada cara lain?? Untungnlah ada cara mudah yaitu menggunakan array.

Wooh… asek…!! kayak gimana tuh??

Array adalah kumpulan data bertipe sama yang terangkum dalam satu nama. Maksudnya? OK, jika kita misalkan variabel adalah botol, maka jika kita mengumpulkan beberapa botol yang sejenis kemudian menyusun botol-botol tersebut dalam satu baris maka kita akan dapatkan barisan botol (yaiyalah, masa barisan bebek). Nah, barisan botol itulah yang disebut array. Botol-botol dalam barisan tersebut haruslah yang berjenis sama. Kalo botol kecap ya botol kecap. Botol minyak tanah ya botol minyak tanah. Sehingga kita akan menyebutnya sebagai “Barisan Botol Kecap” (misalnya gitu)

Array merupakan kumpulan variabel / elemen data. Ia dideklarasikan dengan 1 nama saja, misal array dari angka bernama arrayKu. Maka jika kita menyebut arrayKu berarti kita sebenarnya sedang mengacu pada deretan botol-botol tadi. Sama ketika kita mengatakan “Barisan Botol Kecap”. Lalu bagaimana caranya kita membedakan antara botol 1 dengan yang lain dalam kumpulan botol tersebut? Mudah. Karena kita menyusunnya dalam sebaris, maka kita dapat menghitung / mencacah botol tersebut dari awal hingga akhir. Dalam kumpulan botol tersebut pasti setiap botol memiliki urutan yang tetap. Misal botol pertama, botol kedua, botol ketiga dan seterusnya sampai botol terakhir. Jika kita menyebut salah satu dari barisan botol pasti kita akan mengatakan “Botol ke-n dari barisan botol kecap” dengan n adalah sebuah angka.

Nah, konsep tersebut sama dengan array. Ketika kita punya array (misal arrayKu tadi) yang terdiri dari 10 slot / 10 botol dan kita ingin mengambil salah satu elemen data (contoh: 3) pasti kita akan mengatakan “Elemen ke-3 dari arrayKu”. Angka yang menyatakan urutan dalam array kita sebut sebagai indeks. Indeks tidak boleh bernilai negatif. Kenapa? masa ada orang menyebut “botol urutan negatif 1 dari kumpulan botol kecap itu“. Aneh bukan? Maka kita mencacah hanya dari bilangan positifi saja.

Cara deklarasi array cukup mudah. Misal kita ingin membuat array dari integer dengan 10 slot bernama arrayKu. Dalam tutorial menggunakan pseudo-code ini kita lakukan dengan cara:

arrayKu : angka [10]

penjelasan:

arrayKu adalah nama array kita.

angka adalah tipe data kita, yaitu angka (integer)

sedangkan angka 10 yang diapit [ dan ] adalah jumlah elemen yang kita pesan yaitu 10.

Atau dapat kita ucapkan seperti ini: bikin array bernama arrayKu bertipe angka (integer) dengan 10 slot.

Dalam pseudo code ini, kita menghitung indeks array dimulai dari 0 hingga jumlah slot array-1. Dalam kasus ini, indeks array kita yaitu 0,1,2,3,4,5,6,7,8 dan 9. Lho kenapa dari 0? Kenapa nggak 1? Jawabannya sederhana. Karena angka bilangan bulat positif dengan nilai terendah dalam sistem bilangan desimal kita adalah 0, bukan 1. Hayo, bener kan 0 < 1 ? Sedangkan -1 tidak bisa dijadikan indeks karena dia bernilai negatif (ingat kalau orang bilang urutan ke negatif 1).

Jika notasi algoritmik tadi ditranslasikan ke dalam bahasa C maka akan didapatkan:

int arrayKu[10];

Sedikit berbeda dengan psudo-code kita. Sedangkan dalam pascal:

var arrayKu : array[0..10] of integer;

Sedikit catatan, dalam pascal kita dapat menentukan indeks awal dan indeks akhir array. Silahkan lihat di sini untuk perbandingan bahasa pascal dan c. Kita nggak bahas perbedaan keduanya di sini. Fokus ke algoritma saja😀

Kalo dari sebelum-sebelumnya kita mendeklarasikan array bertipe integer, tipe yang lain bagaimana? Gampang, kita dapat mendeklarasikan seperti ini:

namaArray : huruf [n]

namaArray : cacah [n]

dengan n adalah jumlah slot yang kita pesan. Kalo misal kita ingin buat dua array (kumpulan botol) yang sama-sama terdiri dari 10 slot bagaimana? Kita gunakan saja pendeklarasian seperti layaknya variabel.

array1, array2 : angka [10]

Nah, misal kalo kita mau buat array dari struktur bagaimana? Kan bukan tipe data dasar kayak angka (integer), cacah (real), huruf (char) maupun kata. Apa bisa? bisa kok. Kembali ke definisi bahwa array itu adalah kumpulan botol dalam urutan tertentu. Nah botolnya an bisa apa aja. Mau botol kecap kek, air minum kek, asal sama jenisnya semua. Kita dapat anggap struktur sebagai jamu atau ramuan tradisional (hmm… kenapa permisalannya pada aneh sih?). Ramuan tradisional kan terdiri dari berbagai bahan dasar. Tapi dia tetep bisa disimpan dalam botol kan? Nah karena itu kita juga bisa membuat deretan botol jamu (trus pasang reklame, Jamu Bang Satria). Werr… ngaco, langsung ke TKP aja deh

Bagaimana kita mendeklarasikannya? gampang. Lihat contoh ini:

Misal kita punya struktur bernama mobil.

type mobil <

nama : kata

harga : angka

>

kemudian kita merupakan pemilik showroom dengan 15 buah mobil. Kita bisa deklarasikan kumpulan mobil itu seperti berikut:

kumpulan_mobil : mobil[10]

Maka otomatis program akan menciptakan 10 buah mobil yang disimpan dalam nama kumpulan_mobil. Lalu bagaimana caranya kita mengakses komponen data pada masing-masing mobil? Kita sebutkan saja indeks dari mobil  yang akan kita ambil komponennya. Misal, mengambil data harga pada mobil ke 7 dapat kita lakukan dengan:

kumpulan_mobil [6]. harga

Dengan kumpulan_mobil adalah nama array (seperti contoh sebelumnya) dan 6 adalah indeks ketujuh (lho kok?). Ingat kalau kita mulai menghitung dari angka 0. Jadi indeks ketujuh jika dihitung dari awal menjadi 6 (0,1,2,34,5, dan 6). Kemudian harga adalah komponen harga dari mobil urutan ketujuh tersebut.

Nah, kalau misalnya kita pengen bikin tipe yang di dalamnya ada array bagaimana? Bisa kok. Misal kita seorang guru dengan 15 orang murid dalam kelas. Kemudian masing-masing murid memiliki catatan nilai ulangan sebanyak 5 nomor. Bagaimana kita menerjemahkannya dalam program? Pertama kita analisis dulu. Ada 15 murid. Apakah murid itu dapat dinyatakan dalam tipe data dasar (angka, cacah, huruf, kata)? Kayaknya nggak ! Maka kita perlu bikin tipe data baru bernama murid. Lalu setiap murid punya catatan nilai ulangan harian. Apakah nilai dapat dinyatakan dalam tipe data dasar? Bisa, kita gunakan tipe angka. maka dalam struktur itu kita bisa menggunakan array bertipe angka untuk menyimpan data murid per orang.

deklarasikan dulu muridnya:

type murid <

Nilai : angka [5]

>

Karena ada 15 murid berbeda maka kita ciptakan lagi array dari murid.

kelas1b : murid [15]

Untuk mengakses nilai ulangan harian ke-2 dari murid ke-3 dapat kita lakukan dengan cara:

kelas1b[2].nilai[1]

Dengan kelas1b adalah nama array dari murid dan nilai[1] adalah nilai kedua ulangan harian dari murid ke-3.

Nah,sampai di sini dulu ya. Materi minggu depan adalah percabangan🙂

1 Comment

  1. gusti

    Terima kasih, materinya sangat membantu

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: