Tutorial Array Pada PHP
Associative Array
Materi ini memiliki 1 buah lampiran. Namun Anda tidak dapat mengakses lampiran karena belum terdaftar di kursus ini. Klik disini untuk mendaftar.
Pada video sebelumnya kita telah belajar mengenai array pada PHP yang bisa digunakan untuk menyimpan data dengan tipe data yang berbeda-beda. Sebagai contoh pada slide kita bisa menyimpan data string dan integer dalam array yang sama. Namun disini muncul masalah baru ya, yaitu kita tidak tau data apa yang sedang disimpan oleh array tersebut. Misalkan seperti 18 itu adalah angka apa? Begitu juga dengan angka 165.
Sebagai solusinya, kita bisa menggunakan Associative Array. Disini kita menyimpan data dalam bentuk pasangan key value. Kita bisa memberikan keterangan singkat mengenai data pada bagian key, sehingga isi array menjadi lebih mudah untuk dimengerti. Sebagai contoh disini rupanya angka 18 adalah umurnya, sedangkan 165 adalah tinggi badannya. Nantinya pada saat kita ingin mengakses kembali nilai yang disimpan pada array, kita harus menggunakan key sebagai index.
Kita coba praktek ya. Misalkan kita buat variable $student yang isinya adalah array, seperti pada slide barusan, kita masukkan nilai ‘Andi’, ‘1C’, 18, 165. Kemudian kita var_dump array tersebut. Kita jalankan dan ternyata tidak ada error ya. Artinya PHP bisa menyimpan nilai ke dalam array dengan menggunakan tipe data yang berbeda.
Agar kode kita menjadi lebih jelas, lebih baik kita gunakan associative array. Setiap nilai yang disimpan di dalam arrray, kita pasangkan dengan key yang menerangkan arti dari nilai tersebut. Sebagai contoh, ‘Andi’ kita pasangkan dengan ‘name’, sehingga cara penulisannya menjadi ‘name’ => ‘Andi’. Dan seterusnya kita tambahkan kunci ‘class’, ‘age’, dan ‘height’. Sekarang data pada array kita menjadi lebih jelas. Kita simpan dan jalankan. Tidak ada error ya.
Untuk mengakses nilai yang disimpan di dalam array, kita sudah tidak bisa menggunakan index angka ya. Kalau kita coba var_dump $student dengan index 0, maka kita mendapatkan error. Karena array tidak mengandung index angka 0. Untuk mengakses nilai, kita harus menggunakan key sebagai index-nya. Sebagai contoh, kita akses index ‘name’, maka kita mendapatkan nilai ‘Andi’.
Dari sini muncul pertanyaan ya. Kalau misalkan kita mendapatkan array buatan orang lain, dan kita tidak tau isi dari array tersebut. Bagaimana cara kita mengetahui apa saja key di dalam array? Apakah array tersebut mengandung key yang kita butuhkan atau tidak? Nah, untuk menjawab pertanyaan seperti ini, ada beberapa built in array functions yang bisa membantu kita.
Berikut adalah 4 function yang berhubungan dengan associative array. Yang pertama adalah array_keys, yang akan mengembalikan semua key yang ada di dalam array. Sedangkan yang kedua array_values, yang sebenarnya kurang begitu berguna ya. Function ini mengembalikan semua nilai yang ada di dalam array. Function ketiga adalah array_key_exists untuk memeriksa apakah array mengandung key tertentu. Sedangkan function keempat adalah extract, yang berfungsi untuk membuat variable dari key yang menyimpan nilai. Seperti biasa, untuk referensi lebih lanjut, teman-teman bisa membuka dokumentasi Array Functions pada situs PHP.net.
Kita coba praktekkan keempat function tadi ya. Pertama kita coba dahulu array_keys. Misalkan kita buat variable baru $keys yang kita isi dengan array_keys($student). Kita coba var_dump nilai dari $keys. Maka kita mendapatkan sebuah array yang isinya adalah daftar key miliki array $student. Jadi dari function ini kita bisa mengetahui apa saja key yang dikandung oleh array.
Perhatikan bahwa keys dikembalikan dalam bentuk array juga. Namun index-nya dibuat secara otomatis dengan nomor urut dimulai dari 0. Jadi kalau misalkan kita mau mengakses key pertama, maka kita gunakan index ke 0.
Kita coba function berikutnya yaitu array_values. Kita buat variable $values untuk menampung hasil dari array_values($students). Kita coba var_dump. Dan kita mendapatkan hasil berupa array yang isinya hanya nilai saja. Index-nya dibuatkan secara otomatis dengan nomor urut dimulai dari 0. Function ini kurang begitu berguna ya, karena justru mengembalikan kita ke permasalahan array yang seharusnya bisa dipecahkan menggunakan associative array.
Function ketiga adalah array_key_exists yang digunakan untuk memeriksa apakah array memiliki suatu key atau tidak. Sebagai contoh, misalkan kita mau periksa apakah array $student sudah memiliki key ‘id’ atau tidak. Maka kita coba panggil array_key_exists(‘id’, $student). Kita jalankan. Dan kita mendapatkan hasil false, karena array student tidak mengandung key ‘id’. Kalau kita ganti argument-nya menjadi ‘name’, maka kita mendapatkan hasil true.
Nah, disini biasanya programmer pada bertanya ya. Kan bisa menggunakan function isset. Sebagai contoh, kita coba isset($student[‘name’]). Maka kita mendapatkan jawaban true. Sedangkan isset($student[‘id’]) mendapatkan hasil false.
Kita tetap lebih disarankan untuk menggunakan function array_key_exists. Karena ada sedikit perbedaan dengan isset. Misalkan keduanya kita gunakan untuk memeriksa key ‘id’. Saat ini keduanya memberikan hasil false karena belum ada ‘id’.
Namun perhatikan kalau misalkan kita tambahkan key ‘id’ dengan nilai null. Sekarang function array_key_exists mengembalikan nilai true, karena key yang dicari berhasil ditemukan. Sedangkan function isset mengembalikan nilai false, karena key tersebut mengandung nilai null. Jadi function isset memiliki resiko menyebabkan program kita menjadi error.
Kita hapus key id. Dan kita komentari lagi function array_key_exists dan isset. Kita lanjutkan ke function berikutnya yaitu extract.
Pertama perhatikan dahulu ya, pada saat ini kita tidak memiliki variable $name. Kalau kita coba echo, maka kita mendapatkan error.
Namun kalau kita panggil function extract($student). Maka sekarang kita memiliki variable $name yang isinya adalah ‘Andi’. Karena function ini membuat variable berdasarkan semua key yang dimiliki oleh array $student dan menyimpan nilainya di masing-masing variable. Kita bisa coba echo variable lain, yaitu $class, $age, dan $height.
Dengan menggunakan fasilitas tanya jawab, maka Anda bisa bertanya dan akan dijawab langsung oleh instruktur kursus.
Anda belum terdaftar pada kursus ini sehingga tidak bisa mengajukan pertanyaan.