Penggunaan Array Asosiatif dalam Session pada PHP

Sharing is caring!

Ada seorang pengunjung blog ini, sebut saja Mr. X, yang beberapa waktu lalu bertanya, bagaimana caranya supaya menyimpan beberapa data ke dalam session.

Kasus riil yang dihadapi Mr. X ini adalah membuat form pendaftaran bagi user yang terdiri dari beberapa pages. Misalkan, pada halaman pertama user diminta mengisi tentang profil biodatanya, setelah disubmit user diminta mengisi data riwayat studi, kemudian di halaman ke tiga user diminta mengisi data riwayat pekerjaan. Setelah itu data disubmit dan barulah semua data tadi tersimpan ke dalam database. Problemnya adalah bagaimana cara menyimpan data sementara yang disubmit dari form di setiap halamannya, sehingga dari beberapa data yang dicollect dari beberapa halaman tersebut ketika di akhir form barulah disubmit untuk disimpan ke dalam database semuanya. Bagaimana solusinya? Solusinya adalah bisa dengan menggunakan array asosiatif yang disimpan ke dalam session.

Terkait dengan kasus di atas, Mr. X sebenarnya sudah memiliki ide yaitu menggunakan data array yang nantinya tersimpan ke dalam session, sehingga data yang diisi oleh user tetap terbaca di semua halaman pendaftaran. Setelah pengisian semua data barulah data array yang tersimpan ke dalam session disubmit untuk disimpan ke dalam database. Namun, secara teknis beliau belum bisa mengimplementasikannya sehingga seringkali gagal dalam menyimpan data yang dicollect dari beberapa halaman form.

OK, dalam artikel kali ini saya akan mencoba memberikan solusi dari permasalahan di atas yaitu menggunakan array asosiatif. Array asosiatif ini agak berbeda dengan array biasa pada umumnya. Jika array pada umumnya memiliki indeks berupa bilangan integer mulai dari 0, 1, 2, …, dst, contohnya: $data[0], $data[1], dst, maka array asosiatif ini indeksnya bisa berupa string yang bisa kita beri nama sendiri sesuka kita. Sebagai contoh adalah $data['nama'], $data['alamat'], dst. Jika di dalam Python, array asosiatif ini disebut dengan dictionary.

Kembali ke permasalahan di awal, bahwa salah satu solusi yang bisa dilakukan adalah dengan menggunakan array asosiatif dan menyimpannya ke dalam session. Problem utama untuk mengimplementasikan hal ini adalah bagaimana cara menambahkan data ke dalam array asosiatif kemudian menyimpannya ke dalam session. Sebagai contoh, misalkan akan disimpan 3 buah data ke dalam session, yaitu: nim, nama, dan alamat. Namun, ketiga data tersebut tidak tersimpan ke dalam session secara bersamaan melainkan satu-persatu melalui script yang berbeda. Misalkan. data nim ditambahkan dari script ke-1, data nama ditambahkan melalui script ke-2, dan data alamat dari script ke-3. Kemudian terakhit script ke-4 menampilkan semua data tersebut. Bagaimana teknik untuk mengimplementasikan contoh ini?

Untuk mengimplementasikan contoh di atas, langkah pertama adalah membuat inisialisasi array terlebih dahulu kemudian menyimpannya ke dalam session, misalkan nama sessionnya diberi nama ‘data’.

<?php
// session start
session_start();

// init data session
$_SESSION['data'] = array();
?>

Selanjutnya kita buat script ke-1 untuk menambahkan data nim ke dalam session array asosiatif ‘data’.

<?php
// start session
session_start();

// menambahkan item 'nim' ke dalam data session
$_SESSION['data']['nim'] = 'M0197065';

?>

Di script yang ke-2 kita tambahkan lagi data nama ke dalam array asosiatif ‘data’

<?php
// start session
session_start();

// menambahkan item 'nama' ke dalam data session
$_SESSION['data']['nama'] = 'Rosihan Ari';

?>

Demikian pula untuk script yang ke-3, kita tambahkan data alamat.

<?php

// start session
session_start();

// menambahkan item 'alamat' ke dalam data session
$_SESSION['data']['alamat'] = 'Colomadu';
?>

OK, setelah beberapa data kita tambahkan ke dalam array asosiatif yang tersimpan dalam array, selanjutnya bisa kita cek apakah benar-benar ketiga data tersebut tersimpan.

Di sini kita buat script untuk menampilkan semua data yang ada dalam array session. Untuk mudahnya kita menggunakan looping foreach().

<?php

// start session
session_start();

// menampilkan semua nama item dan value dari data session
/* output yang muncul adalah:
nim: M0197065
nama: Rosihan Ari
alamat: Colomadu
*/
foreach ($_SESSION['data'] as $item => $value) {
	echo "<p>$item: $value</p>";
}
?>

Teknik di atas bisa digunakan untuk menyelesaikan kasus yang dialami oleh Mr. X di atas tadi, yaitu dengan menggunakan array asosiatif.

Demikian artikel singkat ini terkait dengan cara penggunaan array asosiatif dalam session. Semoga bermanfaat.

Tinggalkan Komentar