Transcript for:
Routing dalam Aplikasi MVC

Halo teman-teman semua, kembali lagi di channel Web Programming Unpassed bersama saya Sandika Gali dan kali ini kita masih ada di seri MVC kita masuk ke video ketiga kita akan bahas mengenai routing atau routing ya, sama aja baik, jadi kalau teman-teman ngikutin video sebelumnya di video sebelumnya kita sudah belajar membuat struktur folder dan file dari aplikasi MVC ini dan kita sudah coba untuk menghasilkan tampilan seperti ini ya dimana kita berhasil menampilkan tulisan OK hasil dari kelas app yang ada di folder core kita. Kelas app ini dipanggil oleh file index yang ada di dalam folder public. Jadi sekali lagi, ini adalah teknik bootstrapping dimana yang kita panggil hanya satu file, yaitu file index. Lalu file index ini memanggil file init yang ada di folder app. Di file inilah kita panggil semua kelas yang kita butuhkan. Dan di video kali ini, Yang akan kita lakukan adalah begini. Yang pertama, kita akan membuat agar kita bisa mengelola URL yang kita kirimkan. URL-nya nanti kita buat menjadi rapih atau sebutannya adalah pretty URL. Sehingga nanti harapannya ke depannya kita bisa nulis gini. Ini adalah URL utama kita ya. Ini URL utama kita. Kalau kita nggak tuliskan apapun setelah URL utama ini, itu nanti otomatis kita akan memanggil sebuah controller default. Yang namanya home begini. Yang controller default ini memanggil metode default di dalamnya, yaitu index. Tapi kalau misalkan kita tuliskan sesuatu di sini, dia akan mencari controller lain jika ada, misalkan about. Kalau ada, dia akan cari. Kalau nggak ada, maka dia akan menjalankan controller dan metode defaultnya. Itu yang akan kita lakukan seperti itu. Jadi caranya ada beberapa hal yang harus kita lakukan. Yang pertama begini. Kalian boleh silahkan buka kelas app ya, yang ada di dalam file app ini. Nanti kita akan lakukan di sini. Nah, jadi ceritanya gini. Sekarang kan kita tampilkannya oke aja ya. Nanti saya pengennya dia nampilin apapun yang kita tulis di URL misalnya. Itu kan berarti saya bisa gini. Saya bisa vardam, ambil aja apapun yang dituliskan oleh user di URL. Kayak gini ya. Ini contoh aja dulu ya. Ini kalau kita jalanin, akan menampilkan ini. Array kosong karena di URL-nya nggak ada apa-apa. Kalau saya tulis index.php, itu sama aja. Nah, nanti yang akan saya lakukan gini. Saya akan mengirimkan sebuah data yang namanya URL. Nanti saya akan masukkan apa gitu di sini ya. Maka nanti URL-nya masuk sini. Apapun yang saya tulis di sini nantinya akan diubah sebagai URL yang rapihnya. Ini akan kita sembunyikan, diubah menjadi URL yang rapihnya. Paham ya? Jadi nanti kita akan melakukan sebuah proses parsing dari URL. Oleh karena itu kita akan buat nih sebuah metode di dalam kelas app ini yang bertugas untuk mengambil URL lalu memecah sesuai dengan keinginan kita. Jadi kita punya public function misalnya saya kasih nama aja parseURL gini ya ceritanya. Nah nanti disini kita akan ngecek jika ada URL yang dikirimkan if iset$ underscore getURL maksudnya gini nih ya. Kalau ada ini. Maka kita akan ambil isi url nya Kita coba dulu gini Kita ambil url nya Kita isi dengan url nya Terus kita return aja Nanti di construct nya tinggal kita panggil Url Diisi dengan this Panggil method nya Parse url Lalu kita coba vardam isinya Kita coba ya ini kita save dulu Kita kembali ke browser Kita kirim lagi url sama dengan sembarang aja Sudah berhasil ditangkap. Setelah itu kita akan coba untuk menulis ulang URL-nya supaya rapih. Caranya begini, kita akan menggunakan sebuah teknik untuk melakukan konfigurasi pada direktori kita menggunakan file htaccess atau htaccess. Jadi file htaccess ini adalah file yang bisa kita gunakan untuk memodifikasi konfigurasi dari server Apache kita. Dan itu bisa kita lakukan per folder. Ini contoh sederhana gini. Ini kita abaikan dulu sebentar ya. Misalnya, kalau kita kembali ke browser kita, terus saya kembali ke URL ini. Kesini. Kita kembali ke URL utamanya. Kalau saya masuk ke folder app, itu saya bisa lihat isinya. Bahkan saya bisa jalankan file init-nya. Padahal sebetulnya user itu nggak boleh bisa mengakses folder app. Ini bisa kita block aksesnya. Dengan cara begini, kalian bisa membuat sebuah file yang namanya .htaccess. Cara buatnya kalian buatnya lewat kode editornya, jangan bikin lewat file explorer, karena nggak mau bikin file .htaccess. Jadi lewat sini, misalnya gini. Coba kalian arahkan ke folder app, lalu kita bikin file baru. Kita save dengan nama .htaccess. Jadi nama filenya .htaccess. Nah, di sini kalian bisa tulis konfigurasi server untuk folder ini. Misalnya gini, saya bisa tulis option, O-nya besar. Options ada S-nya. Terus saya tulis minus indexes. Ini artinya gini, kalau misalkan ada user yang buka folder app, Dan folder-folder di dalamnya, selama di dalam folder itu tidak ada file index, mau index apapun, mau index HTML, index PHP, maka jangan tampilkan isi foldernya, block aksesnya. Coba kita save dulu, kita balik lagi ke browser. Ini kita ada di folder app, padahal nggak boleh masuk sini. Sekarang kita refresh. Nah, lihat sekarang user nggak boleh mengaksesnya. Begitu pula kalau kita masuk ke controller. Tuh, nggak boleh. Jadi ini bisa menjadi salah satu cara untuk nge-block akses user. Jadi kita akan gunakan file htaccess ini. Nah, sekarang kita akan lakukan hal yang sama untuk folder public. Kita akan bikin file yang sama di dalam folder public. File new, terus kita save dengan titik htaccess juga. Nah, di sini kita akan lakukan hal yang berbeda dengan folder app. Yang pertama, kita akan bikin option. Lalu minus ini bukan indexes tapi kita mau bikin multi-views. Ini untuk menghindari kesalahan atau ambigu ketika kita memanggil folder atau file di dalam public ini. Kalau kalian masih bingung tidak apa-apa ya diikutin saja. Karena sebetulnya topik mengenai htaccess ini bisa kita jadikan sebuah seri yang lain. Jadi kalian bisa tulis begini. Lalu ini yang penting. Kita akan melakukan rewrite atau menulis ulang. URL yang ada di browser kita nanti Jadi kita akan panggil sebuah keyword namanya rewrite engine Lalu spasi on Nah ini kita akan jalankan proses rewrite-nya Nah proses rewrite ini punya beberapa konfigurasi ya Yang pertama kalian bisa tulis rewrite cond atau condition Lalu diisi dengan gini percent kurung kurawal Ini ada parameternya namanya request file name Nah kalau nanti URL yang ditulis itu Itu merupakan folder kita abaikan. Lalu kalian tulis juga, ini boleh kalian copy aja ya. Sama, tapi sekarang flag-nya F. Nah ini untuk file. Nah ini untuk menghindari ketika ada nama folder atau nama file yang sama dengan controller dan metode kita nantinya. Oke ya, sekali lagi kalau misalnya kalian bingung, ini nggak apa-apa ya ditulis aja dulu ya. Dan yang terakhir, aturan untuk menulis ulang URL-nya. Jadi kalian bisa tulis rewrite. Nah ini yang penting, ini aturannya gini, kalian akan menuliskan sesuatu yang disebut dengan ekspresi regular atau regex, regular expression. Yang pertama ada tanda caret, yang kayak topi ini di keyboard kalian, ini artinya kita akan membaca apapun yang ditulis di URL mulai dari awal. Nah mulai dari awal di sini, mulai setelah kita nulis folder public ini. Jadi begitu public, slash, langsung diambil stringnya. Lalu dalam kurung, setelah itu. yaitu ambil apapun, pakai titik ya, lalu kasih bintang, ini artinya ambil karakternya satu per satu sampai karakternya selesai. Jadi ambil semua karakter, bacanya gitu ya, apapun karakternya kecuali enter ya, sampai habis. Nah setelah itu arahkan ke file index yang mengirimkan URL, dimana nanti isi dari URLnya kita simpan ini namanya placeholder ya. Jadi apapun yang ditulis di sini akan disimpan ke sini. Dan di akhir kita kasih flag atau kita kasih aturan kurung siku L. Nah ini artinya kalau ada rule yang sudah terpenuhi, jangan jalankan rule lain setelah ini. Nah ini untuk menghindari ketika ada orang yang ingin melakukan sesuatu yang jahat. Udah, jadi misalkan kalian nulis begini aja. Coba kita lihat hasilnya. Ini kalau kita save, kita kembali ke sini, terus kita masuk ke folder public. Tampilnya 0 ya ini gara-gara kita kasih di appnya ya Nah ini kita vardam urlnya Nah sekarang kalau saya tulis disininya misalkan home index enter Tuh lihat kita sudah dapatkan stringnya Jadi ini yang kita inginkan Kalau kita masukin about page gitu misalnya ya Ini kita ambil Nah routingnya itu mulai dari sini Ya jadi sampai sini udah betul ya Tinggal nanti yang akan kita lakukan setelah ini adalah Kita akan pecah nih string yang kita tulis ini, supaya jadi array. Supaya tiap-tiap string yang ada di antara slash-nya ini jadi array. Nanti gimana kalau misalkan ada data yang mau dikirim? Satu, dua, begini. Nanti ini kita ambil tiap-tiap string ini jadi elemen-elemen array. Oke, sampai sini ya. Aman ya. Silakan kalau misalkan kalian bingung, langsung aja tanyain di kolom komentar di bawah videonya. Nah, jadi htaccess-nya udah oke. Kita udah berhasil nulis ulang URL-nya. Sekarang tinggal kita benerin app-nya. Nah yang akan kita lakukan gini, yang pertama kita akan bersihkan dulu urlnya supaya nggak ada tanda slash di akhir dari urlnya. Jadi kita nggak mau ada ini nih, tanda slash di sini. Nah ini nggak mau nih, yang akhirnya kita ilangin. Kita cuma butuh string-stringnya aja. Jadi caranya kalian bisa gunakan rtrim. Bungkus dia ke dalam fungsi rtrim. Apa yang mau di-trim atau apa yang mau dihapus, tanda slash. Maka dia akan menghapus slash di akhir. Kita lihat. Kembali ke sini, saya enter lagi ya. Oh, hilang ya. Slashnya hilang. Sudah. Selanjutnya, kita akan bersihkan URL-nya. Ups, ini salah. URL-nya dari karakter-karakter yang ngaco gitu ya. Dari karakter-karakter yang memungkinkan URL kita di-hack gitu misalnya. Ada sebuah fungsi yang namanya filter underscore var. Gini. Kita bersihin url-nya menggunakan parameter filter. Ini gede semua ya, underscore sanitize url. Nah ini supaya url kita bersih dari karakter-karakter aneh gitu. Dan yang terakhir, url-nya kita pecah berdasarkan tanda slash menggunakan fungsi explode. Pecah url-nya dengan delimiternya adalah slash. Jadi nanti slash-nya hilang, string-stringnya berubah menjadi element array. Dari yang mana? Dari URL. Ini kalau kita save, kita kembali ke sini, kita refresh. Oh ada yang salah, line 16. Oh ini ya, jangan lupa titik koma. Kembali ke sini, refresh. Tuh ini ya, jadi ini yang kita butuhkan untuk nanti kita menjalankan controller dan method kita. Oke, begitu teman-teman ya. Jadi kita sudah berhasil merakukan routing dari halaman index kita. Sekarang URL-nya nggak kelihatan tuh, index, PHP, tanda tanya URL-nya nggak kelihatan. Semua udah rapih seperti ini. Jadi nanti tinggal di video selanjutnya kita akan cari tahu gimana ngambil elemen array ini sebagai controller yang ini, yang ini sebagai metode, dan elemen-elemen berikutnya merupakan parameter yang dikirim ke controller-nya. Jadi mungkin sampai sini dulu videonya teman-teman. Kalau misalkan teman-teman masih bingung nggak usah khawatir. mudah-mudahan nanti akan menjadi semakin jelas ketika di video berikutnya kita akan membahas mengenai controller, bagaimana merubah url yang sudah kita bersihkan tadi menjadi controller dan method ya begitu terima kasih sudah menyaksikan video ini kita ketemu lagi di video berikutnya saya Sandika Ghalib pamit dan satu lagi teman-teman jangan lupa titik like sub indo by broth3rmax