Halaman

Senin, 17 Mei 2010

Array

Array
Dalam banyak aplikasi Web, seringkali kita membutuhkan sebuah variabel yang mampu menyimpan beberapa nilai sekaligus secara terorganisir, sehingga lain saat kita dapat memperoleh kembali nilai-nilai tersebut dengan mudah dan dalam bentuk yang teratur dan terorganisir pula. Tidak, bukan database yang saya maksud, karena saya sedang bicara variabel, dan database bukan variabel. Mengapa ini sangat penting? Karena dalam banyak kasus kita hanya membutuhkan penyimpan nilai sementara yang terorganisir dengan baik, dan database sangat mahal untuk melakukan hal tersebut. Bayangkan tentang koneksi, query dan seterusnya yang akan memperlambat proses apabila kita menggunakan database.
Di sinilah kita membutuhkan array, sebuah tipe variabel yang mampu menyimpan beberapa nilai sekaligus bahkan dalam tipe berbeda yang terorganisir dengan baik. Sehingga dalam bahasa pemrograman manapun—termasuk PHP tentunya—Anda akan senantiasa menemukan array sebagai salah satu tipe variabelnya. Karena—maaf saya menggunakan bahasa Inggris—array is powerful.

Array, Apa dan Mengapa
Array di PHP adalah tipe variabel spesial, karena dengan array kita dapat mengakses sekumpulan nilai dengan menggunakan satu nama variabel. Mekanisme pengaksesan ini diatur dalam bentuk pemetaan (mapping) dari sekumpulan nilai (values) ke sekumpulan kunci (keys) atau indeks. Sebagai contoh, variabel array $hacker dapat memetakan 1, 2 dan 3 masing-masing ke "Eric S Raymond", "Richard Stallman" dan "Bruce Perens", sehingga dapat dinyatakan sebagai:
$hacker[1] = "Eric S Raymond";
$hacker[2] = "Richard Stallman";
$hacker[3] = "Bruce Perens";
di mana ekspresi 1, 2 dan 3 adalah indeks, sementara "Eric S Raymond", "Richard Stallman" dan "Bruce Perens" adalah nilai-nilainya.
Array akan sangat berguna manakala kita mengolah sekumpulan data atau nilai dengan identitas serupa. Sebagai ilustrasi, katakanlah kita memiliki data berupa nama hacker dan nama cracker. Jika tidak menggunakan array, maka yang terbaik yang bisa kita lakukan adalah dengan menyatakan seperti berikut:
$hacker_1 = "Eric S Raymond";
$hacker_2 = "Richard Stallman";
$hacker_3 = "Bruce Parens";
$cracker_1 = "FALLEN";
$cracker_2 = "n3wb13";
$cracker_3 = "Neur0n";
Jika kita perlu mencetak keenam data tersebut, maka cara berikut bisa digunakan:
print "Nama hacker ke 1: $hacker_1";
print "Nama hacker ke 2: $hacker_2";
print "Nama hacker ke 3: $hacker_3";
print "Nama cracker ke 1: $cracker_1";
print "Nama cracker ke 2: $cracker_2";
print "Nama cracker ke 3: $cracker_3";
Cara seperti ini mungkin efektif tetapi sayangnya jauh dari efisien. Mengapa? karena jika jumlah data hacker dan cracker di atas sampai puluhan bahkan ratusan, maka bayangkan berapa banyak Anda harus mengetik perintah tersebut. Belum lagi, webserver harus melakukan parsing dari ratusan baris yang akan memperlambat keseluruhan proses. Tidak percaya? Silakan dicoba sendiri.

Dengan array, Anda dapat melakukan hal di atas dengan lebih baik efektif dan efisien. Untuk 900 data hacker dan cracker misalnya, Anda cukup melakukan iterasi seperti berikut:
for ($k=0;$k<900 ama="" br="" hacker="" k:="" k="" ke="" print="">}

for ($k=0;$k<900 ama="" br="" cracker="" k:="" k="" ke="" print="">}
Singkat, sederhana, tetapi ampuh. Selain itu, banyaknya fungsi PHP untuk memanipulasi array membuat tipe variabel ini sangat membantu kerja kita dalam membuat aplikasi web. Kita akan membahas beberapa fungsi PHP untuk memanipulasi array ini pada bagian berikutnya.
Inisialisasi dan Modifikasi Array
Untuk menginisialisasi sebuah array digunakan fungsi array(). Data hacker di atas misalnya dapat dibuat sebagai array dengan:
$hacker = array("Eric S Raymond", "Richard Stallman","Bruce Perens");
Skrip ini akan menginisialisasi variabel $hacker dengan $hacker[0], $hacker[1] dan $hacker[2] masing-masing bernilai "Eric S Raymond", "Richard Stallman", dan "Bruce Perens". Cara lain untuk ini adalah sebagai berikut:
$hacker = array(0 => "Eric S Raymond",
1 => "Richard Stallman",
2 => "Bruce Perens");
Cara pertama secara default akan menetapkan indeks secara berurutan mulai dari 0, sementara cara kedua kita sendiri yang menetapkannya. Anda bisa saja melakukan hal berikut:
$hacker = array(0 => "Eric S Raymond",
1 => "Richard Stallman",
3 => "Bruce Perens");
yang sama dengan:
$hacker = array("Eric S Raymond", "Richard Stallman",
3 => "Bruce Perens");
Dan jika dicetak dengan skrip berikut:
for ($k=0;$k<=3;$k++) { print "\$hacker[$k] berisi: $hacker[$k]"; } akan menghasilkan keluaran: $hacker[0] berisi: Eric S Raymond $hacker[1] berisi: Richard Stallman $hacker[2] berisi: $hacker[3] berisi: Bruce Perens Untuk memodifikasi isi array Anda dapat menetapkan nilai secara eksplisit dari elemen-elemen array. Sebagai contoh untuk variabel $hacker di atas, elemen dengan indeks 2 yang masih kosong dapat diisi secara langsung dengan: $hacker[2] = "Rasmus Lerdorf"; jika dicetak akan menghasilkan: $hacker[0] berisi: Eric S Raymond $hacker[1] berisi: Richard Stallman $hacker[2] berisi: Rasmus Lerdorf $hacker[3] berisi: Bruce Perens Sebenarnya, dengan sifat PHP yang weakly typed, Anda dapat mendeklarasikan array secara eksplisit sebagaimana kita memodifikasi elemen array di atas. Katakanlah jika variabel $location belum terdeklarasi sebelumnya, kita dapat mendeklarasikan $location sebagai array dengan: $location[0] = "Pennsylvania"; $location[1] = "Manhattan"; Anda juga dapat melakukannya dengan memanfaatkan sifat indeks array PHP yang melakukan increment tiap kali dideklarasikan dengan indeks kosong seperti $location[], sehingga deklarasi berikut: $location[] = "Daly City"; $location[] = "Berkeley"; akan mengisi $location[2] dan $location[3] dengan "Daly City" dan "Berkeley". Perlu diperhatikan di sini, deklarasi array secara eksplisit tidak bisa dikatakan sebagai inisialisasi, karena ia hanya mengakses satu elemen dari array, sehingga penambahan nilai pada indeks 2 seperti di atas, tidak sama dengan: $hacker = array(2 => "Rasmus Lerdorf");
Tidak percaya? Silakan coba sendiri, lalu cetak tiap elemen arraynya.

Tidak ada komentar:

Posting Komentar