CodeIgniter 2.0 - 3. Library.pdf
CodeIgniter 2.0
Devid Haryalesmana Wahid
Basic Introduction
[email protected]
Devid Haryalesmana Wahid (http://masdevid.com)
Libraries
CodeIgniter 2.0
TUJUAN PRAKTIKUM
1.
Mampu menggunakan libraries bawaan CodeIgniter
2.
Mampu membuat form login beserta session-nya
3.
Mampu membuat form untuk mengunggah file
Dasar Teori
Libraries
Libraries, adalah macam-macam class yang masing-masing mempunyai fungsi
khusus yang dapat digunakan untuk mengembangkan aplikasi. Contoh library
database, email, validasi form, dan lain-lain. Jika anda lihat gambar alur proses
aplikasi ini, libraries berada sejajar dengan models, helpers, plugins, dan script yang
nantinya akan saling berinteraksi dengan controller aplikasi. Seperti halnya helpers,
sumber daya library yang dimiliki CodeIgniter terletak di folder system, dan jika kita
ingin membuat atau mengembangkan class default, anda harus memisahkan class
buatan anda sendiri di folder application.
1
Devid Haryalesmana Wahid (http://masdevid.com)
2
Devid Haryalesmana Wahid (http://masdevid.com)
Latihan
Inisialisasi Library
Untuk menggunakan library, secara umum anda harus menginisialisasi dulu di dalam
controller anda menggunakan kode inisialisasi berikut ini:
Dimana, class_name adalah nama class yang akan dipanggil. Setelah anda
menginisialisasi, anda dapat membaca detail instruksi penggunaan di user_guide.
Anda juga dapat menginisialisasi lebih dari satu class dengan memanfaatkan array(),
seperti contoh berikut ini:
Form Validation Class
Sebelum membahas pendekatan CI dalam memvalidasi data, mari kita perhatikan
skenario idealnya:
1. Form ditampilkan
2. Anda mengisi form lalu mengirimkannya atau submit.
3. Jika anda mengirimkan data yang tidak valid, lupa mengisi atau melewatkan
form wajib, form kembali ditampilkan bersamaan dengan data yang sudah
anda isi, berikut berserta informasi kesalahan pengisian.
4. Proses 1-3 ini akan terus berlanjut sampai anda mengirimkan data yang valid
Jika anda tidak menggunakan pendekatan framework CI, maka anda akan
membutuhkan baris kode yang sangat banyak untuk melakukan proses validasi form.
Mari kita praktekan penggunaan form validation class, sebelumnya anda akan
mempersiapkan berikut ini:
1. Sebuah View yang akan menampilkan form
2. Sebuah View yang akan menampilkan pesan sukses setelah validasi data yang
dikirimkan
3
Devid Haryalesmana Wahid (http://masdevid.com)
3. Sebuah Controller untuk menerima data dari form dan memprosesnya untuk
divalidasi
Form
Buatlah sebuah file bernama myform.php dan simpan di application/views/,
kemudian tuliskan baris code berikut ini:
Pada baris ke-7, validation_errors(); ini akan menampilkan pesan error jika anda
mengirimkan data yang tidak valid.
Halaman Sukses
Buatlah sebuah file bernama formsuccess.php dan simpan di application/views/,
kemudian buat tampilan halaman sukses seperti contoh berikut ini:
4
Devid Haryalesmana Wahid (http://masdevid.com)
Controller
Buatlah sebuah file dengan nama form.php, lalu simpan file tersebut pada direktori
application/controllers/
Penjelasan:
Pada baris ke-7, menginisialisasi form dan url helper
Pada baris ke-9, menginisialisasi class form_validation
Pada baris 11-14, mendefinisikan aturan validasi dimana:
o
Username: Wajib diisi, minimal 5 karakter, maksimal 12 karakter
o
Password: Wajib diisi, harus sama dengan Password Confirmation
5
Devid Haryalesmana Wahid (http://masdevid.com)
o
Passconf: Wajib diisi
o
Emai: Wajib diisi, email yang valid
Pada baris 16-19, menjalankan proses validasi, jika data yang dikirimkan tidak
sesuai aturan validasi, maka akan ditampilkan halaman myform
Pada baris 20-23, jika data yang dikirim sudah benar, maka akan ditampilkan
halaman formsuccess
Silahkan coba mengaksesnya http://example.com/index.php/form
Membuat Aturan Validasi
Fungsi set_rules() diatas memiliki 3 parameter:
1. Parameter pertama, merupakan nama dari item-item form yang anda berikan.
2. Parameter kedua, merupakan “human name” atau nama dari item-item form
untuk dimengerti manusia atau nama label dari item form tersebut.
3. Parameter ketiga, berisi aturan-aturan yang satu sama lain dipisahkan tanda
“|”. Untuk melihat macam-macam aturan yang disediakan akses halaman
http://localhost/[....]/user_guide/libraries/form_validation.html
Membuat Aturan Validasi Baru
Selain anda dapat menggunakan aturan yang sudah disediakan, anda bisa membuat
aturan baru sendiri. Misalnya anda menginginkan username tidak boleh berisi teks
“test”.
Maka
pertama-tama
buatlah
username_check:
6
fungsinya
terlebih
dahulu
bernama
Devid Haryalesmana Wahid (http://masdevid.com)
Kemudian panggil fungsi diatas menggunakan format aturan callback_nama_fungsi,
maka untuk memanggil fungsi diatas, kita akan menambahkan rule baru
callback_username_check pada input username.
Re-populasi Data
Dilatihan sebelumnya, ketika anda mengirimkan data yang tidak valid, maka anda
harus mengulangi lagi mengisi form dari awal. Jika formnya banyak maka ini sangat
merepotkan, kita dapat mere-populasi data tersebut dengan cara menambahkan
set_value(‘nama_field’) pada setiap field yang ingin kita re-populasi. Buka kembali
myform.php dan tuliskan kode berikut untuk mempraktekkan teknik re-populasi
data.
7
Devid Haryalesmana Wahid (http://masdevid.com)
Mengubah Pesan Error
Anda dapat mengubah pesan error pada rule atau aturan validasi dengan cara
menuliskan kode seperti contoh berikut:
Parameter pertama adalah rule yang akan diubah pesan error default-nya.
Parameter kedua berisi pesan kustom anda. Didalam parameter kedua, anda bisa
menyisipkan %s untuk menampilkan “human name” yang sudah anda tuliskan pada
fungsi set_rules();
Menampilkan Pesan Error secara Individual
Pada latihan sebelumnya, fungsi validation_errors() akan menampilkan semua
pesan error dalam satu tempat. Jika anda ingin menampilkan pesan error secara
individu, anda dapat menggunakan fungsi form_error(‘nama_field’). Buka kembali
file myform.php dan lakukan modifikasi seperti contoh berikut ini:
8
Devid Haryalesmana Wahid (http://masdevid.com)
File Upload Class
Untuk membuat form untuk mengupload sebuah file, langkah-langkah idealnya
adalah seperti berikut:
1. Form upload ditampilkan, user memilih file yang akan diunggah
2. Ketika form dikirim, file diunggah lalu diletakkan ke direktori yang anda
tentukan
3. Bersamaan dengan proses mengunggah, file akan divalidasi terlebih dahulu
apakah filter tersebut telah sesuai dengan aturan yang anda buat
4. Ketika file berhasil diunggah, maka akan ditampilkan pesan sukses.
Untuk mendemonstrasikannya, mari langsung kita praktekkan:
Membuat Form Upload
Buatlah file dengan nama upload_form.php, simpan di application/views/ lalu
tuliskan kode berikut:
Berbeda dengan praktek sebelumnya, disini anda tidak lagi menggunakan fungis
form_open() melainkan form_open_multipart().
9
Devid Haryalesmana Wahid (http://masdevid.com)
Halaman Sukses
Pada halaman ini anda menampilkan pesan sukses dan menampilkan upload_data
file yang telah anda unggah. Buat file bernama upload_success.php simpan di
application/views/, lalu tuliskan kode berikut ini:
10
Devid Haryalesmana Wahid (http://masdevid.com)
Controller
Langkah berikutnya adalah anda membuat controllernya. Buatlah sebuah controller
bernama upload.php dan simpan di application/controllers/, lalu ketikkan kode
berikut ini:
Penjelasan:
Perhatikan
baris
ke-12,
pada
baris
tersebut
merupakan
konfigurasi
lokasi
penyimpanan file yang akan diunggah dengan nama folder uploads. Folder ini harus
anda letakkan di root direktori aplikasi anda sejajar dengan folder system. Pastikan
permisi foldernya nilainya 777.
Pada baris ke-18 terdapat fungsi $this->upload->do_upload(), merupakan fungsi
untuk menjalankan proses pengunggahan file.
11
Devid Haryalesmana Wahid (http://masdevid.com)
Pada baris ke-19 terdapat fungsi $thisuploaddisplay_errors(), berfungsi
untuk menampilkan pesan error.
Pada baris ke-22 terdapat fungsi $thisuploaddata(), merupakan fungsi untuk
menampilkan informasi file yang diunggah. Informasi ditampilkan dalam bentuk
array() dengan hasil seperti berikut:
Session Class
Session berguna untuk menyimpan data aktifitas user. Akan sangat bermanfaat
untuk membuat aplikasi login dan logout. Dimana ketika login sukses, anda bisa
menyimpan informasi sesi user seperti nama, email, dan status login. Berikut
inisialisasi class Session:
Membuat Session
Untuk membuat session dapat menggunakan fungsi set_userdata() seperti contoh
kode berikut ini:
$array disini berisikan session_id dan session_value lebih dari 1. Contoh:
12
Devid Haryalesmana Wahid (http://masdevid.com)
Jika anda ingin membuat 1 session_id saja, anda dapat menggunakan kode berikut
ini:
Membaca Session
Untuk membaca session anda dapat menggunakan fungsi userdata() seperti contoh
kode berikut ini:
Menghapus Session
Untuk menghapus session anda dapat menggunakan fungsi unset_userdata()
seperti contoh kode berikut ini:
Kode diatas anda gunakan untuk menghapus session_id secara individual maupun
secara kelompok menggunakan $array. Tetapi jika anda ingin menghapus
keseluruhan session, anda dapat menggunakan fungsi sess_destroy() seperti
contoh kode berikut ini:
13
Devid Haryalesmana Wahid (http://masdevid.com)
Tugas Praktikum
1. Buatlah aplikasi login beserta sessionnya, dimana ketika user sedang login
akan ditampilkan halaman untuk mengupload sebuah gambar.
2. Jika gambar berhasil diunggah maka tampilkan gambar tersebut.
3. Buat fungsi callback untuk mengecek apakah password = “admin”. Jika
password benar, buat session untuk menyimpan username, email, dan status
login.
4. Sediakan pula link untuk logout yang akan menghapus semua data session
dan mengarahkan pengguna kembali ke halaman login.
5. Pastikan form upload hanya dapat diakses ketika user dalam keadaan login
saja (memanfaatkan session).
14
Devid Haryalesmana Wahid
Basic Introduction
[email protected]
Devid Haryalesmana Wahid (http://masdevid.com)
Libraries
CodeIgniter 2.0
TUJUAN PRAKTIKUM
1.
Mampu menggunakan libraries bawaan CodeIgniter
2.
Mampu membuat form login beserta session-nya
3.
Mampu membuat form untuk mengunggah file
Dasar Teori
Libraries
Libraries, adalah macam-macam class yang masing-masing mempunyai fungsi
khusus yang dapat digunakan untuk mengembangkan aplikasi. Contoh library
database, email, validasi form, dan lain-lain. Jika anda lihat gambar alur proses
aplikasi ini, libraries berada sejajar dengan models, helpers, plugins, dan script yang
nantinya akan saling berinteraksi dengan controller aplikasi. Seperti halnya helpers,
sumber daya library yang dimiliki CodeIgniter terletak di folder system, dan jika kita
ingin membuat atau mengembangkan class default, anda harus memisahkan class
buatan anda sendiri di folder application.
1
Devid Haryalesmana Wahid (http://masdevid.com)
2
Devid Haryalesmana Wahid (http://masdevid.com)
Latihan
Inisialisasi Library
Untuk menggunakan library, secara umum anda harus menginisialisasi dulu di dalam
controller anda menggunakan kode inisialisasi berikut ini:
Dimana, class_name adalah nama class yang akan dipanggil. Setelah anda
menginisialisasi, anda dapat membaca detail instruksi penggunaan di user_guide.
Anda juga dapat menginisialisasi lebih dari satu class dengan memanfaatkan array(),
seperti contoh berikut ini:
Form Validation Class
Sebelum membahas pendekatan CI dalam memvalidasi data, mari kita perhatikan
skenario idealnya:
1. Form ditampilkan
2. Anda mengisi form lalu mengirimkannya atau submit.
3. Jika anda mengirimkan data yang tidak valid, lupa mengisi atau melewatkan
form wajib, form kembali ditampilkan bersamaan dengan data yang sudah
anda isi, berikut berserta informasi kesalahan pengisian.
4. Proses 1-3 ini akan terus berlanjut sampai anda mengirimkan data yang valid
Jika anda tidak menggunakan pendekatan framework CI, maka anda akan
membutuhkan baris kode yang sangat banyak untuk melakukan proses validasi form.
Mari kita praktekan penggunaan form validation class, sebelumnya anda akan
mempersiapkan berikut ini:
1. Sebuah View yang akan menampilkan form
2. Sebuah View yang akan menampilkan pesan sukses setelah validasi data yang
dikirimkan
3
Devid Haryalesmana Wahid (http://masdevid.com)
3. Sebuah Controller untuk menerima data dari form dan memprosesnya untuk
divalidasi
Form
Buatlah sebuah file bernama myform.php dan simpan di application/views/,
kemudian tuliskan baris code berikut ini:
Pada baris ke-7, validation_errors(); ini akan menampilkan pesan error jika anda
mengirimkan data yang tidak valid.
Halaman Sukses
Buatlah sebuah file bernama formsuccess.php dan simpan di application/views/,
kemudian buat tampilan halaman sukses seperti contoh berikut ini:
4
Devid Haryalesmana Wahid (http://masdevid.com)
Controller
Buatlah sebuah file dengan nama form.php, lalu simpan file tersebut pada direktori
application/controllers/
Penjelasan:
Pada baris ke-7, menginisialisasi form dan url helper
Pada baris ke-9, menginisialisasi class form_validation
Pada baris 11-14, mendefinisikan aturan validasi dimana:
o
Username: Wajib diisi, minimal 5 karakter, maksimal 12 karakter
o
Password: Wajib diisi, harus sama dengan Password Confirmation
5
Devid Haryalesmana Wahid (http://masdevid.com)
o
Passconf: Wajib diisi
o
Emai: Wajib diisi, email yang valid
Pada baris 16-19, menjalankan proses validasi, jika data yang dikirimkan tidak
sesuai aturan validasi, maka akan ditampilkan halaman myform
Pada baris 20-23, jika data yang dikirim sudah benar, maka akan ditampilkan
halaman formsuccess
Silahkan coba mengaksesnya http://example.com/index.php/form
Membuat Aturan Validasi
Fungsi set_rules() diatas memiliki 3 parameter:
1. Parameter pertama, merupakan nama dari item-item form yang anda berikan.
2. Parameter kedua, merupakan “human name” atau nama dari item-item form
untuk dimengerti manusia atau nama label dari item form tersebut.
3. Parameter ketiga, berisi aturan-aturan yang satu sama lain dipisahkan tanda
“|”. Untuk melihat macam-macam aturan yang disediakan akses halaman
http://localhost/[....]/user_guide/libraries/form_validation.html
Membuat Aturan Validasi Baru
Selain anda dapat menggunakan aturan yang sudah disediakan, anda bisa membuat
aturan baru sendiri. Misalnya anda menginginkan username tidak boleh berisi teks
“test”.
Maka
pertama-tama
buatlah
username_check:
6
fungsinya
terlebih
dahulu
bernama
Devid Haryalesmana Wahid (http://masdevid.com)
Kemudian panggil fungsi diatas menggunakan format aturan callback_nama_fungsi,
maka untuk memanggil fungsi diatas, kita akan menambahkan rule baru
callback_username_check pada input username.
Re-populasi Data
Dilatihan sebelumnya, ketika anda mengirimkan data yang tidak valid, maka anda
harus mengulangi lagi mengisi form dari awal. Jika formnya banyak maka ini sangat
merepotkan, kita dapat mere-populasi data tersebut dengan cara menambahkan
set_value(‘nama_field’) pada setiap field yang ingin kita re-populasi. Buka kembali
myform.php dan tuliskan kode berikut untuk mempraktekkan teknik re-populasi
data.
7
Devid Haryalesmana Wahid (http://masdevid.com)
Mengubah Pesan Error
Anda dapat mengubah pesan error pada rule atau aturan validasi dengan cara
menuliskan kode seperti contoh berikut:
Parameter pertama adalah rule yang akan diubah pesan error default-nya.
Parameter kedua berisi pesan kustom anda. Didalam parameter kedua, anda bisa
menyisipkan %s untuk menampilkan “human name” yang sudah anda tuliskan pada
fungsi set_rules();
Menampilkan Pesan Error secara Individual
Pada latihan sebelumnya, fungsi validation_errors() akan menampilkan semua
pesan error dalam satu tempat. Jika anda ingin menampilkan pesan error secara
individu, anda dapat menggunakan fungsi form_error(‘nama_field’). Buka kembali
file myform.php dan lakukan modifikasi seperti contoh berikut ini:
8
Devid Haryalesmana Wahid (http://masdevid.com)
File Upload Class
Untuk membuat form untuk mengupload sebuah file, langkah-langkah idealnya
adalah seperti berikut:
1. Form upload ditampilkan, user memilih file yang akan diunggah
2. Ketika form dikirim, file diunggah lalu diletakkan ke direktori yang anda
tentukan
3. Bersamaan dengan proses mengunggah, file akan divalidasi terlebih dahulu
apakah filter tersebut telah sesuai dengan aturan yang anda buat
4. Ketika file berhasil diunggah, maka akan ditampilkan pesan sukses.
Untuk mendemonstrasikannya, mari langsung kita praktekkan:
Membuat Form Upload
Buatlah file dengan nama upload_form.php, simpan di application/views/ lalu
tuliskan kode berikut:
Berbeda dengan praktek sebelumnya, disini anda tidak lagi menggunakan fungis
form_open() melainkan form_open_multipart().
9
Devid Haryalesmana Wahid (http://masdevid.com)
Halaman Sukses
Pada halaman ini anda menampilkan pesan sukses dan menampilkan upload_data
file yang telah anda unggah. Buat file bernama upload_success.php simpan di
application/views/, lalu tuliskan kode berikut ini:
10
Devid Haryalesmana Wahid (http://masdevid.com)
Controller
Langkah berikutnya adalah anda membuat controllernya. Buatlah sebuah controller
bernama upload.php dan simpan di application/controllers/, lalu ketikkan kode
berikut ini:
Penjelasan:
Perhatikan
baris
ke-12,
pada
baris
tersebut
merupakan
konfigurasi
lokasi
penyimpanan file yang akan diunggah dengan nama folder uploads. Folder ini harus
anda letakkan di root direktori aplikasi anda sejajar dengan folder system. Pastikan
permisi foldernya nilainya 777.
Pada baris ke-18 terdapat fungsi $this->upload->do_upload(), merupakan fungsi
untuk menjalankan proses pengunggahan file.
11
Devid Haryalesmana Wahid (http://masdevid.com)
Pada baris ke-19 terdapat fungsi $thisuploaddisplay_errors(), berfungsi
untuk menampilkan pesan error.
Pada baris ke-22 terdapat fungsi $thisuploaddata(), merupakan fungsi untuk
menampilkan informasi file yang diunggah. Informasi ditampilkan dalam bentuk
array() dengan hasil seperti berikut:
Session Class
Session berguna untuk menyimpan data aktifitas user. Akan sangat bermanfaat
untuk membuat aplikasi login dan logout. Dimana ketika login sukses, anda bisa
menyimpan informasi sesi user seperti nama, email, dan status login. Berikut
inisialisasi class Session:
Membuat Session
Untuk membuat session dapat menggunakan fungsi set_userdata() seperti contoh
kode berikut ini:
$array disini berisikan session_id dan session_value lebih dari 1. Contoh:
12
Devid Haryalesmana Wahid (http://masdevid.com)
Jika anda ingin membuat 1 session_id saja, anda dapat menggunakan kode berikut
ini:
Membaca Session
Untuk membaca session anda dapat menggunakan fungsi userdata() seperti contoh
kode berikut ini:
Menghapus Session
Untuk menghapus session anda dapat menggunakan fungsi unset_userdata()
seperti contoh kode berikut ini:
Kode diatas anda gunakan untuk menghapus session_id secara individual maupun
secara kelompok menggunakan $array. Tetapi jika anda ingin menghapus
keseluruhan session, anda dapat menggunakan fungsi sess_destroy() seperti
contoh kode berikut ini:
13
Devid Haryalesmana Wahid (http://masdevid.com)
Tugas Praktikum
1. Buatlah aplikasi login beserta sessionnya, dimana ketika user sedang login
akan ditampilkan halaman untuk mengupload sebuah gambar.
2. Jika gambar berhasil diunggah maka tampilkan gambar tersebut.
3. Buat fungsi callback untuk mengecek apakah password = “admin”. Jika
password benar, buat session untuk menyimpan username, email, dan status
login.
4. Sediakan pula link untuk logout yang akan menghapus semua data session
dan mengarahkan pengguna kembali ke halaman login.
5. Pastikan form upload hanya dapat diakses ketika user dalam keadaan login
saja (memanfaatkan session).
14