0% menganggap dokumen ini bermanfaat (0 suara)
13 tayangan80 halaman

MVC PHP (Repaired)

Dokumen ini menjelaskan penerapan Model View Controller (MVC) dalam PHP, termasuk struktur folder dan file yang diperlukan untuk membangun aplikasi MVC. MVC memisahkan komponen aplikasi menjadi Model, View, dan Controller untuk meningkatkan organisasi dan pemeliharaan kode. Selain itu, dokumen ini juga membahas tentang routing dan cara mengelola URL untuk aplikasi yang lebih rapi.

Diunggah oleh

Liony
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
13 tayangan80 halaman

MVC PHP (Repaired)

Dokumen ini menjelaskan penerapan Model View Controller (MVC) dalam PHP, termasuk struktur folder dan file yang diperlukan untuk membangun aplikasi MVC. MVC memisahkan komponen aplikasi menjadi Model, View, dan Controller untuk meningkatkan organisasi dan pemeliharaan kode. Selain itu, dokumen ini juga membahas tentang routing dan cara mengelola URL untuk aplikasi yang lebih rapi.

Diunggah oleh

Liony
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

Model View Controller PHP

Penerapan MVC pada PHP

Controller: Mengolah bahan masakan menjadi bahan yang matang


View : Peletakannya rapi/ tampilan view seperti yang diharapkan
Route: Menyajikan/mengantarkan ke klien

Kompetensi Dasar :
Membuat aplikasi sederhana yang menerapkan konsep MVC menggunakan teori Object Oriented
Programming.

Pendahuluan
Controller berupa class yang ada methodnya
Localhost/phpmvc/[Link](controller)/method/parameter

Apa itu MVC ?


Model View Controller adalah pola arsitektur pada perancangan perangkat lunak berorientasi
object. MVC dapat diterapkan pada bahasa pemrograman yang lain selain PHP selama memiliki
konsep OOP, dimana tujuan dari MVC ini adalah untuk memisahkan antara tampilan data, dan
proses.

Pola selain MVC salah satunya disebut prosedural, dimana penulisan program dari
prosedural adalah menyimpan semuanya dalam satu halaman. Baik itu tampilan (presentasi),
data, dan juga proses. Akan menjadi masalah jika programnya semakin besar dan bekerja-sama
dengan banyak orang secara kolaboratif, menggunakan teknik prosedural pasti akan merepotkan.

Nanti dengan MVC kita akan pisahkan komponen-komponen didalam halamannya


menjadi tiga komponen utama yaitu ; View, Model, Controller.
Dimana controller menjadi komponen utama yang mengendalikan alur prosesnya. Yang pasti
dapat kita anggap sebagai
Model => Data
1. Mengelola data
2. Representasi pengetahuan
3. Logika bisnis
Controller => Proses
1. Perantara antara model dan view
2. Menangani pemrosesan pada aplikasi
3. Menangani aksi dari user (tombol di klik, mengisi form)
View => Tampilan
1. Representasi visual
2. Output apa yang dilihat oleh User
3. Lapisan presentasi

Kenapa mempelajari konsep MVC ?


1. Organisasi data (penyimpanan file) dan struktur (folder) kode yang baik
2. Pemisahan logic dan tampilan
3. Akan memudahkan dalam perawatan kode
4. Implementasi konsep OOP
5. Banyak digunakan framework application yang populer

Contoh framework
Framework
A. Codeigniter, Laravel, Yii
B. Spring MVC, JSF, Struts
C. Django, CherryPy
D. Ruby On Rails, Sinatra
E. Angular JS, React, Backbone,

Alur MVC pada Codeigniter


Yang pertama kita akses pasti halaman index atau halaman utama dari situ akan diarahkan ke-
Routing yang bekerja untuk menentukan bagian controller mana yang akan diakses, kemudian
Security untuk membersihkan request yang dikirim di routing apa bila ada sesuatu yang tidak
normal/jahat. Lalu masuk ke-
Controller sesuai dengan routingnya controller mana yang akan dipilih. Misalnya controller
home, akan menentukan apakah butuh model, libraries. Jika sudah diolah di controller, controller
akan menentukan
View mana yang akan digunakan karena nanti halamaannya banyak, misalnya kita akan
menggunakan halaman html yang home. Setelah dipilih maka masuk ke
Caching digunakan agar aplikasinya tambah cepat sehingga jika misalkan halaman tersebut
sudah pernah diakses oleh user, data tersebut sudah pernah dikirim oleh user, prosesnya tidak
perlu dilakukan secara penuh. Langsung saja lewat cachingnya. Lalu dikirimkan kembali ke-
Index yang diakses oleh user.

Mengadopsi skema Codeigniter yang lebih sederhana

Index sebagai halaman yang pertama diakses oleh user. Lalu ke bagian
Routing untuk menentukan request di URL ini yang bertanggung jawab controller yang mana
Controller mengecek apakah butuh model, jika butuh maka akan akses model
View akan tampil menurut yang sudah diatur/dipilih oleh controller. Setelah dipilih lalu dikirim
Index

Persiapan PHP MVC

Mempersiapkan struktur folder untuk aplikasi MVC dan file utama apa saja yang nantinya akan
kita gunakan.
1. Buat folder di folder htdocs dengan nama : phpmvc
2. Buka folder phpmvc di code editor
3. Buat folder didalam phpmvc dengan nama : public
Yang nantinya akan menyimpan semua file yang bisa diakses oleh User. Yang utamanya
nanti kita akan simpan file index kita didalam folder public [Link] lain seperti css,
javascript, gambar akan kita simpan di folder ini.
4. Buat folder didalam public dengan nama : css untuk menyimpan css

5. Buat folder didalam public dengan nama : js untuk menyimpan javascript

6. Buat folder didalam public dengan nama : img untuk menyimpan gambar

7. Buat folder didalam phpmvc dengan nama : app untuk menyimpan folder dan file utama dari
aplikasi MVC.

8. Buat folder didalam app dengan nama : core. Berisi inti dari MVC misalnya mengelola
routing

9. Buat folder didalam app dengan nama : controllers tempat menyimpan controller

10. Buat folder didalam app dengan nama : views tempat menyimpan file tampilan program

11. Buat folder didalam app dengan nama : models tempat menyimpan perintah untuk
menghubungkan dengan database
12. Buat sub folder di dalam views untuk menyimpan kumpulan views sesuai dengan controller
yang memanggilnya nanti, dengan nama : home. Artinya semua tampilan hasil dari
controller home ini akan kita simpan kedalam folder home. Jadi nantinya ketika misalnya
kita punya controller dengan nama home. Yang di dalam controller itu ada banyak method
yang bisa direpresentasikan menjadi beberapa halaman \, tiap-tiap halaman itu kita simpan
viewnya didalam folder home ini.

13. Kita butuh file utama yang akan diakses oleh user. Dan file itu akan kita simpan didalam
folder Public.

14. Jadi alamat utama aplikasi mvc adalah folder public ini. Dan folder app nantinya tidak akan
mungkin bisa diakses oleh user.
15. Menjalankan file index pada program lewat url

Maka program akan berjalan


16. Didalam file index ini kita akan memanggil aplikasi mvc kita. Jadi yang pertama akan kita
lakukan adalah memanggil sebuah file [Link] didalam folder app menggunakan require
Init akan memanggil semua file yang dibutuhkan. Teknik ini disebut dengan bootstraping
dimana kita panggil satu file dan file itu akan memanggil seluruh aplikasi mvcnya. Jika
dijalankan akan error.

Karena file [Link] tidak ada


[Link] untuk inisialisasi [Link] class utama
17. Kita buat file [Link] didalam folder app.

18. Didalam file [Link] akan memanggil menggunakan require_once file utama yang akan kita
buat di folder core yang nama filenya [Link] menandakan bahwa ini adalah class

19. Buat file [Link] didalam folder core

20. Require satu file lagi yang namanya [Link] yang ada didalam folder core

Dua file ini adalah dua class utama pembentuk mvcnya


21. Didalam folder core buat file bernama : [Link]
22. Isi dari [Link] adalah class

23. Isi dari [Link] adalah class. Bedakan dengan controller yang ada di folder
controllers. Jadi class Controller/php ini adalah class utama sedangkan class-class yang ada
di folder controllers adalah controller yang akan extends ke class utama [Link] yang
mengatur semua class yang akan kita buad didalam folder controllers.

24. Setelah dua buah class utama yaitu App dan Controller dibuat, maka program akan berjalan

25. Untuk menyelesaikan proses bootstraping ini tinggal kita ke file [Link] kita
jalankan/instansiasi class App yang sudah kita buat. Caranya :

Menjalankan class App


26. Untuk mencobanya buat file construct didalam class [Link]
Maka tampilan di browser

27. Kesimpulan : Struktur aplikasi sudah sesuai dengan MVC, inisialisasi/bootstrapingnya sudah
jalan.

Routing

Review pertemuan sebelumnya :


Membuat struktur folder dan file dari aplikasi MVC. Berhasil menampilkan class App
yang ada di folder core. Class app dipanggil oleh file index yang ada didalam folder public.
Menggunakan teknik bootstraping, dimana yang kita panggil hanya satu file yaitu file index lalu
file index ini memanggil file init yang ada di folder app dan di file inilah kita memanggil semua
class yang dibutuhkan.
Pada sesi ini kita akan membuat agar kita bisa mengelola url yang kita kirimkan. URL
akan kita buat menjadi rapi atau istilahnya pretty url. Kita akan membuat controller default
dengan nama home yang memanggil method default yaitu index. Kita akan melakukan proses
parsing pada url
1. Kita akan menampilkan apapun yang kita tulis di url. Gunakan var_dump() dengan variabel
Get
Apabila dijalankan hasilnya berupa array yang masih kosong

Maka jika pada url kita tambahkan [Link] hasilnya akan tetap kosong

2. Kita akan mengirim sebuah data dengan nama url yang isinya coba

Maka url akan masuk ke variabel GET


3. Apapun yang akan kita tulis di url akan menjadi rapih
4. Bagian [Link] akan kita sembunyikan agar url menjadi rapih

5. Kita akan melakukan proses parsing dari url


6. Buat method baru didalam class app ini yang bertugas untuk mengambil url lalu memecah
sesuai dengan keinginan kita
7. Jika ada url yang di kirimkan melalui $_GET, maka kita akan ambil isi urlnya

8. Panggil melalui construct. url di isi dengan method parseURL, lalu tampilkan menggunakan
var_dump
Maka program akan berjalan

9. Menulis ulang url supaya rapih, kita akan menggunakan sebuah teknik untuk melakukan
konfigurasi pada direktori kita menggunakan file htaccess. File yang bisa kita gunakan untuk
memodifikasi konfigurasi dari server apache kita. Dan itu bisa kita lakukan per folder.
10. Kita dapat membuka folder app dan memanggil file [Link], padahal seharusnya user tidak
boleh membukanya.
11. Bagaimana cara untuk blok akses tersebut ?
12. Menggunakan file .htaccess.
13. Arahkan ke folder yang akan kita blok aksesnya yaitu folder app. Maka buat file .htaccess
didalam folder app

14. Disini kita bisa tulis konfigurasi server untuk folder ini, misalnya : Options –indexes ini
artinya kalau misalkan ada user yang buka folder app dan folder-folder didalamnya selama
didalam folder itu tidak ada file index maka jangan tampilkan isi foldernya/blok aksesnya.

Maka pada browser akan tampil forbidden


Begitu juga jika kita akan mengakses folder didalamnya
15. Kita akan melakukan hal yang sama untuk folder public. Buat file .htaccess didalam folder
public

16. Kita akan lakukan hal yang berbeda dengan folder app. Isinya yang pertama adalah Options
– Multiviews untuk menghindari kesalahan atau ambigu ketika kita memanggil folder atau
file didalam public ini.

17. Lalu kita akan melakukan rewrite atau menulis ulang url yang ada di browser kita nanti. Jadi
kita akan panggil sebuah keyword namanya rewriteEngine On untuk menjalankan proses
rewritenya

18. Proses rewrite ini punya beberapa konfigurasi :


a. rewriteCond lalu di isi dengan percent kurung kurawal dengan parameternya
request_filename jika nanti url yang ditulis itu merupakan folder kita abaikan

b. rewriteCond lalu di isi dengan percent kurung kurawal dengan parameternya


request_filename jika nanti url yang ditulis itu merupakan file kita abaikan

c. Aturan untuk menulis ulang urlnya dengan rewriteRule kita akan menuliskan
reguler expression dimulai dengan tanda ^ artrinya membaca apapun yang ada di
url mulai dari awal (setelah folder public) begitu public/ langsung diambil
stringnya, lalu dalam kurung ambil apapun karakternya satu-persatu sampai
karakternya selesai/ambil semua karakter apapun karakternya sampai habis
setelah itu arahkan ke file [Link] yang mengirimkan url dimana nanti isi dari
urlnya kita simpan di placeholder. Dan diakhir kita kasih flag/aturan [L] artinya
jika ada rule yang sudah terpenuhi jangan jalankan rule lain setelah ini. Untuk
menghindari ketika ada orang yang ingin melakukan sesuatu yang tidak kita
inginkan.

Maka tampil di browser adalah

Tampil null karena di class App terdapat var_dump


d. Sekarang jika kita menuliskan urlnya setelah public misalnya home/index

Maka kita sudah dapatkan stringnya.


e. Kita coba dengan about/page, maka hasilnya

Program sudah berjalan


19. Routingnya itu mulai dari sini
20. Selanjutnya kita akan memecah string about/page yang kita tulis ini supaya jadi array supaya
tiap-tiap string yang ada diantara slashnya ini jadi array
21. Bagaimana jika ada data yang akan dikirim ?

22. Membersihkan urlnya agar tidak ada tanda slash diakhir urlnya.
23. Gunakan fungsi rtrim() apa yang mau dihapus yaitu slash yang diakhir
Menjadi

24. Kita akan bersihkan url nya dari karakter yang tidak kita inginkan menggunakan fungsi
filter_var(variabel) kita bersihkan urlnya menggunakan parameter
FILTER_SANITIZE_URL supaya url kita bersih dari karakter aneh

25. Urlnya kita pecah berdasarkan tanda slash menggunakan fungsi explode() dengan
delimiternya adalah slash. Dan nanti slashnya ilang stringnya berubah menjadi elemen array
dari $url

26. Kita tampilkan pada browser


27. Sekarang urlnya sudah rapih. Tidak ada lagi ?=
28. Pada materi selanjutnya adalah bagaimana mengambil elemen array about sebagai controller
page sebagai method dan elemen berikutnya adalah parameter yang dikirim ke
controllernya.

Controller

Membuat properti class App untuk menentukan controller method dan parameter defaultnya.
Disini kita akan bikin property yang akses modifiernya protected controller yang defaultnya
adalah home.

Buat properti lagi dengan nama method yang defaultnya adalah index

Buat parameter dengan nama params karena tidak hanya Satu, kita buat array

Jadi nanti kita punya controller dan method yang default. Sekarang kita buat file di folder
controller dengan nama yang sama dengan nama classnya nanti. Misalnya kita akan buat
controller namanya home. Jadi nama filenya [Link]. Didalamnya kita buat tag php, lalu kita
buat class namanya Home

Nantinya class Home ini akan mewarisi sifat yang ada di file controller yang ada di folder core.
Didalamnya kita akan buat method index untuk menjadi method defaultnya.

Jadi nanti jika kita tidak menuliskan apapun didalam urlnya maka method inilah yang akan
dipanggil. Untuk sementara kita tampilkan home/index untuk mengetahui bahwa yang dipanggil
adalah class Home dengan method index.

Sekarang kita ke file [Link]. masuk kebagian constructnya. Var_dump boleh dihapus saja.

Hapus var_dump

Kita tahu bahwa $url berisi apapun yang akan kita ketikan didalam urlnya. Kita bisa tau jika kita
tulis home slash index maka home itu pasti controller dan index itu pasti method, jadi kita
bisa tulis begini : cek terlebih dahulu apakah ada sebuah file didalam folder controller yang
namanya sesuai dengan nama yang kita tulis di url. Adakah filenya ? cara penulisannya :

Jika filenya ada didalam folder controller, jadi kita arahkan ke folder controller. Saat ini kita
berada di index, file yang pertama diakses adalah index jadi kita keluar dulu, lalu masuk ke
folder app dan masuk ke controllers. Kemudian kita gabung (concate) dengan $url yang
indexnya keberapa, pada url, home adalah elemen pertama di array, index ke 0, maka kita isi
$url[0], kemudian kita gabung lagi dengan extension php. Jadi istilahnya adakah file yang
namanya [Link] didalam folder controllers

jika ada kita timpa controller yang home menjadi controller yang baru yaitu kita panggil
controllernya

Lalu setelah itu kita hilangkan controllernya dari elemen arraynya

Unset url berfungsi untuk mengambil controllernya, mari kita buktikan dengan var_dump
Hapus bagian unset, buat var_dump $url

Maka hasilnya

array di unset pada index ke 0 hasilnya

Maka hasilnya

Sekarang hapus bagian var_dump karena hanya digunakan untuk pembuktian


Kita sudah berhasil mengambil controllernya jika filenya ada, tapi bila filenya tidak ada,
misalnya about/page

Tidak tampil apapun karena controller yang kita gunakan adalah controller default
Sekarang kita sudah tau controller mana yang digunakan, sekarang kita panggil controllernya.
Kita require_once ke folder app yang saat ini kita berada di folder [Link] kita gabungkan
dengan controller yang baru gabungkan juga dengan .php.

Setelah kita panggil baru kita instansiasi supaya kita bisa memanggil methodnya nanti

Ini bagian controllernya

Sekarang kita buat untuk methodnya. Untuk methodnya kita cek terlebih dahulu. Jika methodnya
diurl index ke 1 di set/ditulis,

kita cek lagi adakah method didalamnya dengan cara, jika method ada / method_exists didalam
sebuah object adakah methodnya. Kita tulis dari controllernya adakah methodnya url 1, siapa tau
controllernya ada methodnya tidak ada.
Tapi jika ada kita timpa methodnya diisi dengan url index ke 1.

Lalu kita unset lagi url [Link] sisanya hanya parameternya saja. Itupun jika ada.

Terakhir kita kelola parameternya. Paremeter adalah data yang dikirim dari url setelah controller
dan methodnya.

Satu dan dua adalah parameter, jika kosongpun tidak masalah, tapi jika ada akan kita kelola.
Cara mengambilnya bagaimana ?
Kita cek terlebih dahulu adakah parameternya. Jika urlnya tidak kosong, kita var_dump terlebih
dahulu.

Kita ke browser Dengan alamat url about/page/10/20

Kenapa controller dan methodnya tidak hilang padahal sudah kita unset.? Karena kita belum
punya controller about dan method page. Sekarang kita buat terlebih dahulu.
1. Ke folder controllers idalam folder app
2. Buat file baru dengan nama [Link]

3. Buat method : Page didalamnya

4. Cek di browser

Nah sekarang about dan pagenya hilang.


5. Sekarang kita akan ambil datanya menggunakan fungsi yang namanya array_values dari
$url yang akan kita masukan ke params.

Jadi kita bisa tulis property params yang di isi dengan array_values($url). Hapus
var_dump

6. Sekarang kita sudah punya controller, method dan parameter


7. Jalankan controller dan method, serta kirimkan parameter jika ada.
8. Caranya menggunakan sebuah function yang namanya call_user_func_array()
9. Untuk menjalankan controller dan method serta mengirimkan parameter
10. Jalankan function terlebih dahulu, untuk menulis controller dan method kita
menggunakan array jalankan controller dan jalankan method lalu parameternya

11. Ketika kita panggil /public defaultnya home/index

Maka controller akan berjalan


12. Memanggil controller home saja maka akan tampil

Karena memanggil controller default


13. Memanggil controller home yang sudah kita buat tetapi methodnya belum ada.

Akan tetap memanggil controller defaultnya


14. Memanggil controller home dan method index yang sudah kita buat

Program akan berjalan memanggil controller default


15. Memanggil controller about
Program tidak berjalan karena tidak memiliki method dan controller default
16. Memanggil controller about dan method yang belum kita buat

Program tidak berjalan karena tidak memiliki method asdasd dan method default
17. Memanggil controller about dan method page yang sudah kita buat

Program berjalan karena controller dan methodnya sudah kita buat


18. Untuk itu kita akan buat method defaultnya untuk controller App

19. Maka jika kita jalankan sembarang pada methodnya

Yang tampil adalah method default


20. Menangkap data yang dikirim melalui parameter
Contoh :
Kita akan tampilkan string dibawah ini

21. Kita panggil di browser

String ‘Prima Wirawan’ dan ‘Jakarta’ akan dikirim melalui parameter


22. Caranya kita masukan sebagai parameter, kita buat variabel baru $nama, dan $tempat

Membuat variabel sebagai parameter.


23. Maka tambahkan parameter kedalam isi dari methodnya dari parameter yang akan
dipanggil

Maka tampilannya di browser

24. Sekarang Ada masalah jika parameternya kosong program akan error
Karena harus ada parameter.
25. Untuk itu kita berikan parameter default

26. Maka akan tampil di browser

View

Review Controller dimana kita sudah berhasil membuat routing dan controller sehingga
kita bisa mengelola url jadi sesuai alur mvcnya. url utama kita, url utama aplikasi kita adalah
phpmvc/public saat di enter akan otomatis mengakses controller dan method default meskipun
tidak kita tulis di url. Ini semua bisa dilakukan karena menggunakan teknik htaccess. Kita
menulis ulang urlnya sehingga dia mengarah otomatis ke halaman [Link] dengan
mengirimkan data berupa url.
Jadi apabila kita isi sembarang pada url setelah public artinya kita sedang mencari
controller yang namanya ada di url. Karena kita tidak punya maka akan diarahkan ke controller
dan method defaultnya. Ketika kita punya controller dan methodnya contohnya setelah public
tambahkan about/index maka akan diarahkan ke controller about dan method index. Dan apabila
kita coba untuk mengirimkan data lewat urlsetelah about misalnya about/Prima/Jakarta maka
data ini akan ditangkap oleh methodnya dan digunakan didalam halamannya.

Mencoba mengirim data lewat parameter dengan menambahkan data

Maka ketika tampil dibrowser dan menambahkan url usia


Sekarang yang akan kita lakukan adalah isi dari tiap-tiap method di controllernya kita tidak lagi
melakukan echo yang akan kita lakukan adalah memanggil sebuah view atau halaman antar
muka yang nantinya akan kita simpan di dalam folder views.

Coba ke controller home perhatikan didalam method index yang akan kita lakukan adalah
memanggil sebuah view dari folder views. Caranya kita akan panggil method view yang
nantinya kita akan simpan di class controller yang ada di core. Isinya adalah alamat menuju ke
view yang kita mau akses. Misalnya kita tulis home/index artinya kita akan memanggil file yang
ada di folder views lalu ke folder home lalu filenya namanya [Link]

Buat file di folder home yang ada didalam folder views dengan nama [Link] yang berisi html.
Ketika dijalankan akan error karena belum ada method viewnya di dalam folder core

Maka hasilnya di browser


Karena belum ada method view didalam controller. Sekarang kita buat methodnya

Didalam method view membutuhkan parameter $view nya apa yang tadi kita tulis yang ada di
file index home/index nanti ditangkap method view. Parameter kedua adalah data siapa tau ada
data yang mau dikirim kedalam view itu nah datanya kita kasih nilai default berupa array karena
mungkin aja datanya banyak atau bahkan tidak ada data yang dikirimkan. Jadi apabila tidak ada
data yang dikirim nilaiya array kosong.

Isinya kita panggil viewnya yang ada difolder views caranya kita require saja. Anggap saja kita
sedang difolder index berarti kita harus keluar folder dulu masuk ke folder app masuk ke folder
views.

Ketika dijalankan masih error

Karena view belum dikenali didalam controller home.


Agar dikenali kita menggunakan cara pewarisan dengan mengatur home sebagai kelas child dari
controller
Tampilkan di browser

Memperbaiki halaman about. Didalam class about terdapat dua buah method index dan page.
Kita akan buat dua buah view yang pertama memanggil halaman index.

View yang kedua yang kita panggil method page menggunakan controller about

Kita akan buat viewnya. Didalam folder views buat folder dengan nama about
Didalamnya kita buat dua view yang pertama adalah [Link]

Yang isinya berupa html

Kita buat halaman yang kedua adalah [Link]

Saat kita jalankan di browser maka tampilannya

Terjadi error karena tidak mengenali method about, bagaimana cara mengatasi hal tersebut ?
Method about mesti extends ke controller
Kita jalankan browsernya

Halaman page

Sekarang yang kita lakukan adalah mengirim data ke view lewat method index yang ada di
dalam controller about. Jika kita lihat di controller ada parameter $data yang siap menerima data.

Jadi jika kita ingin mengirim data ke method index yang ada di controller about maka tambahkan
$data.

Tapi masalahnya datanya apa ?


Kita siapkan datanya terlebih dahulu didalam Controller [Link]. kita akan isi datanya dengan
mengambil dari parameter.

Kita coba di browser

Program tidak error, dan sudah dikirim ke halaman web. Tetapi belum digunakan. Bagaimana
cara menggunakannya ?
Buka halaman index yang ada di views about
Tambahkan teks untuk menampilkan

Tampilan di browser

Hanya saja datanya belum mengambil dari parameter. Bagaimana caranya mengambil data dari
parameter ?

Maka akan tampil di browser

Sekarang kita sudah dapat mengirim data melalui parameter

Membuat template view :


Tiap-tiap dari viewnya yaitu home/index, about/index dan about/page masing-masing memiliki
bagian yang atas dari html berisi title dan head. Bila kita ingin menghubungkan dengan css
berarti kita punya baris css di tiap-tiap halaman, dan itu akan sangat merepotkan dengan menulis
ulang tiap baris kodenya. Bagaimana cara mengatasinya ? yaitu membuat satu template/halaman
tersendiri yang dapat digunakan oleh banyak view
A. Buka file index di folder home yang terdapat di views.
B. Bagian ini yang akan kita buat sebagai view tersendiri

C. Namanya header misalnya


D. Buat folder baru didalam folder views dengan nama : templates. Jadi ini adalah templates
yang akan kita gunakan disemua view
E. Didalam folder templates kita buat file dengan nama [Link] tempat menyimpan tipe
html hingga awal body

F. Isinya :
Cut dari index, kemudian simpan di [Link]

G. Buat file baru didalam templates dengan nama : [Link] untuk menyimpan tag penutup
body dan html

H. Isi dari footer adalah tag penutup body dan header


I. Bagaimana cara kita menggunakan templates ?
Cari controller home : tambahkan view templates header berurutan dengan view
home/index, dan ditutup dengan view templates/header

J. Kita akan lakukan hal yang sama disemua method controller about

K. Maka pada view index di folder about, bagian header dan footernya dihapus

L. Begitu juga file yang di halaman page didalam folder about, hapus bagian header dan
footernya

M. Maka pada method pagenya juga dirubah


N. Maka ketika dijalankan di browser program tidak akan error

O. Hanya saja pada tab tulisannya masih sama, bagaimana cara merubahnya ?
P. Karena headernya halaman home maka dari itu kita akan kirim $data dengan
parameternya disetiap methodnya. Ke halaman header yang ada di templates
Membuat variabel dengan parameter yang akan digunakan disetiap halaman

Q. Untuk mengirim judulnya melalui controller home

Setelah menentukan isinya, sekarang variabel $data kirim melalui halaman header

R. Bagaimana jika menampilkan di view yang lain ?


Assets

Yang akan kita lakukan adalah membuat tampilan menggunakan bootstrap dan javascript.
Download bootstrap di [Link] .
Extract file bootstrap, terdapat dua folder css dan javascript.

Masuk ke bagian introduction


[Link]
Disitu terdapat cara menyimpan css dan javascript
Css ini nantinya akan kita simpan dibagian header dan js akan kita simpan dibagian footer.
Copy css kehalaman header.

Jika kita menggunakan hrefnya default maka yang css kita gunakan adalah versi online.
Bagaimana jika kita akan menggunkan versi offline atau yang sudah kita copy ke folder css
didalam public ?
Hrefnya arahkan mulai dari server -> folder utama -> folder public -> dan css lalu terakhir kita
arahkan ke file bootstrapnya [Link]

Footer juga akan kita atur dengan copy perintahnya dari web getbootstrap
Copy sebelum tag body
Yang kita ubah file javascriptnya, jquery dan proper biarkan tetap online

Jika kita jalankan maka font tulisan akan berubah


Menjadi

Artinya bootstrap sudah berhasil terpanggil, menggunakan folder public dengan absolute url

Perhatikan src nya pada script

Jika kita mengubah alamat urlnya, misalnya nama foldernya bukan phpmvc tapi mvc maka kita
harus mengubah semua linknya satu-persatu. Jika nantinya ada file yang lupa untuk dirubah
maka file tersebut tidak akan berjalan. Daripada mengubah linkya satu-persatu, kita bisa
menggunakan teknik constant. Menyimpan satu kali dan digunakan berulang-ulang.
Buat didalam folder core satu file baru dengan nama : [Link] untuk menyimpan semua
konstanta yang nantinya kita gunakan.
Gunakan keyword define, nama konstantanya, dan isinya.

Jadi jika ingin mengubah urlnya lewat file constants hanya satu kali saja
Setelah itu file constant kita require/panggil supaya kita bisa gunakan
Kita buka file [Link] tambahkan requirenya

Setelah kita buat konstanta lalu kita panggil. Cara menggunakannya ?


Echo di url
Lakukan hal yang sama pada [Link]

Maka program akan berjalan

Membuat navbar -> Search di bootstrap

copy
Simpan dibagian header
Maka hasilnya

Edit pada bagian


⮚ Navbar
⮚ Ubah link Home, About, Profile
Menggunakan container css -> div dengan class container

Navbar dibungkus dengan div container. Maka hasilnya

Menambahkan link pada Home, about dan Profile


Link home -> [Link]

Jalankan di browser maka link berhasil


Buat juga yang about dengan method defaultnya dan method page.

Sekarang kita akan perbaiki isi webnya


Kita ke views -> home -> index, supaya teksnya juga ditengah

Maka jika kita jalankan programnya


Tambahkan jumbotron
Search di bootstrap

Copy codenya ke halaman index home views

Atur jarak dengan atribut mt-4


Atur pada file about/index. Tambahkan container. Atur margin dengan atribut mt-4

Tampilan di browser

Menambahkan gambar : siapkan gambarnya didalam folder image, ingat nama dan ekstensinya

Maka tampilan do browser


Model

Model adalah bisnis logic dari aplikasi yang kita buat dan yang paling sederhana adalah ketika
kita akan mengolah data.
Studi kasus :
Melalui controller home kita bisa mengirimkan data ke view, caranya :

Bagaimana jika kita akan mengirimkan data ke

Atau mengirimkan data setelah login, lalu data ditampilkan diviewnya.


Jadi nanti yang akan kita lakukan, buat variabel yang isinya nama, dan namanya kita bisa minta
dari model yang didalam class terdapat method getuser dan nanti nama akan dikirim ke view
melalui variabel $data.
Sekarang kita akan bikin modelnya di dalam folder models

Buat method untuk mengelola model melalui controller utama yang terdapat di folder core

Isinya kita akan merequire file model yang ada didalam folder models. Berarti kita keluar folder
terlebih dahulu, masuk ke folder app, folder models, nama modelnya, gabung dengan .php

Karena model adalah class maka kita instansiasi terlebih dahulu, berbeda dengan view bisa
langsung kita panggil. Tambahkan dibawahnya instansiasi objectnya.

Jadi ketika kita panggil modelnya

Sekaligus kita instansiasi objectnya sehingga kita bisa panggil methodnya.


Sehingga datanya bisa kita tampilkan di view indexnya

Sekarang kita ke index di folder home

Maka hasilnya di browser adalah


Jika datanya dirubah menjadi XIRPL

Maka yang tampil di browser adalah

Data sudah tampil bukan dari url tapi dari model


Contoh lain kita akan membuat model baru, kita akan membuat model untuk menampilkan data
siswa. Kita akan buat satu menu lagi disebelah About yaitu Student. Kita ke header, edit
navbarnya

Buat controller baru untuk mengelola student. Yang berisi class Student yang methodnya index

Yang berisi viewnya header, index dan footernya.


Kita akan kirimkan data

Jika dijalankan di browser

Error karena belum bisa mengakses viewnya

Jika dijalankan maka

Karena file indexnya belum kita buat, coba kita ke folder views. Kita buat folder baru sesuai
dengan yang dikirim oleh controller

Membuat halaman view html dari index/siswa


Kita coba jalankan di browser

Program berjalan tetapi datanya masih kosong karena memang belum kita buat.

Menambahkan data siswa


Buat model, arahkan ke folder models
Buat class dengan nama Siswa_model
Didalamnya terdapat data yang visibilitynya private dengan nama sis
Kita buat sebuah method untuk mengambil semua datanya

Setelah itu kita ke controller siswa yaitu student kita kirim datanya, misalkan kita punya data
sis yang diambil dari model yang nama classnya Siswa_model dengan methodnya getAllSiswa.
Lalu kita kirimkan datanya ke view index yang didalam folder siswa

Jadi data sis sudah bisa digunakan di halaman view index siswa. Tampilkan dengan array

Maka tampilan di browser


Bagaimana mendapatkan data dari database ? bukan dari menulis manual
Buat database melalui phpmyadmin

Bagaimana menampilkan data yang dari database ?


Pertama mengkoneksikan php dengan database dengan teknik pdo.
Buat variabel untuk menampung koneksi pdo nya, jika di [Link] diberi nama dbh (database
handler).

Buat variabel untuk menyimpan queri


Sekarang kita akan koneksi ke database didalam method contstruct agar model ini dipanggil,
yang pertama kali dilakukan adalah koneksi dulu ke database.

Isinya adalah
Variabel $dsn sebagai identitas server diisi dengan koneksi PDO mysql, hostnya, nama
databasenya,

Dibawahnya kita cek dengan exception handler blok try catch apakah koneksinya berhasil atau
tidak.

Untuk mendapatkan semua mahasiswa kita butuh querynya, database handlernya, jika
menggunakan PDO querynya kita prepare dulu. Pilih database dengan nama databasenya.

Kita eksekusi menggunakan perintah execute


Kita ambil datanya dengan return statementkita fetchAll kita kasih parameter mau dikembalikan
seperti apa databasenya. Kita ingin array associatiuve

perbaiki bagian

Database Wrapper

Database wrapper adalah pembungkus dari database.


Kenapa kita menggunakan database wrapper ?
Karena kita butuh sebuah class, yang dapat mengelola database untuk data di model manapun.
Kalau sebelumnya kita mengelola data spesifik untuk model mahasiswa saja/ kita pengennya
bisa pakai tuh pengelolaan datanya untuk model manapun. Jadi sekarang kita akan lengk api lagi
aplikasi kita dengan database wrapper.

Kita kembali ke kodingan kita sudah berhasil membuat class Siswa_model yang didalamnya
berisi pengelolaan data yang spesifik untuk tabel pengelolaan mahasiswa saja. Dimana kita
sudah berhasil konek

dan menampilkan seluruh datanya.

Jadi yang akan kita lakukan kali ini adalah memindahkan kode-kode yang ada didalam model ini
kedalam class terpisah. Sekarang yang akan kita lakukan adalah membuat file baru didalam
folder core ini dengan nama : database.
Tapi sebelumnya kita akan buat sebuah folder didalam app yang nantinya berisi konfigurasi dari
mysqlnya. Karena kita akan ubah cara ini

Kita jangan menyimpan datanya langsung di script nanti kita pisahkan.


Buat folder di dalam app dengan nama : config

Nanti didalamnya kita buat file namanya : [Link]


Yang isinya adalah data dari database berupa constanta. Jadi kita buat menggunakan define. Kalo
kita ingat didalam folder core ini kita punya sebuah file dengan nama constants,

jadi isi dari file constants bisa kita pindahkan ke config. Jadi kita tidak butuh lagi file constants
ini.

Jadi hapus file [Link]


Jika dijalankan program kita di browser

Kenapa begitu ?
cara mengatasinya berarti kita harus ubah juga file [Link] jadi sekarang kita bukan connec ke
constants lagi tapi konek ke [Link]

Berikutnya kita akan simpan pengelolaan untuk database kita, isinya :


Host, username, password, nama database
Sekarang kita akan buat file baru didalam folder corenya kita kasih nama [Link]

Isinya class Database

yang pertama kita akan tulis data dari database kita yang ada didalam file config tadi, jadi kita
bisa tulis dengan visibilitynya private karena kita tidak ingin propertynya di akses oleh bagian
lain.

Sehingga tidak ada lagi data server kita dihalaman ini


Berikutnya kita buat variabel untuk koneksinya. Buat database handlernya, dan statementnya.
Kita akan pindahkan apa yang ada didalam model siswa.
Sekarang buka model Siswa_model
Pindahkan constructnya beserta isinya. Ke file [Link]
Property akan digunakan pada construct.
Mulai dari localhost ganti dengan propertynya
Phpmvc juga diganti dengan propertynya

Username nya diganti dengan user


Password diganti dengan pass

Sebetulnya untuk database ini kita butuh satu parameter baru yang kita beri nama : $option
Option digunakan untuk optimasi koneksi database kita. Jadi kita harus buat dulu yang
merupakan parameter dari konfigurasi databasenya.
Kita buat agar koneksi databasenya terjaga terus. Tambahkan agar kode errornya dapat
digunakan.
Selanjutnya kita butuh function untuk menjalankan query. Kita kasih parameternya query

Dan querynya generik dapat menjalankan perintah CRUD. Inilah tujuan membuat wrapper agar
dapat digunakan secara fleksibel. Yang isinya statement sama dengan handlernya prepare dan
parameternya $query. Jadi kita siapkan dulu querynya kira-kira user maunya apa.

Selanjutnya kita butuh binding datanya. Siapa tau didalam querynya itu ada parameter, nilainya,
dan tipenya apa. Untuk itu kita kasih nilai default null, supaya yang menentukan adalah
aplikasinya.

Kita akan melakukan pengecekan. Kalo tipenya null, kan pasti null ya. Fungsi ini jalan dan kita
akan lakukan sesuatu

Isinya adalah
Menggunakan switch agar programnya jalan.

Menggunakan case, jika case/tipenya integer tipenya kita set menjadi parameternya integer
Jika tipe/valuenya boolean, tipenya kita set menjadi parameter boolean

Jika tipe/valuenya null, tipenya kita set menjadi parameter null

Selain itu typenya kita asumsikan adalah string

Jika sudah ketahuan kita bind valuenya, jadi misalkan where id misalkan satu. Nah satunya akan
dicek, satu itu apasih, oh integer. Berarti kasih optionnya integer lalu satu itu kita bind ke
parameternya apa, valuenya apa, typenya apa. Kenapa kita bind, kenapa tidak kita langsung
masukan kedalam querynya supaya aman,dengan ini pasti terhindar dari sql injection karena
query dieksekusi setelah stringnya dibersihkan dahulu

Hasil akhir binding


Setelah di bind, tinggal kita eksekusi

Yang isinya adalah mengeksekusi statement

Setelah kita eksekusi hasilnya kita ingin banyak atau hanya salah satu saja. Jika banyak kita set.
Eksekusi datanya lalu kembalikan nilainya.

Untuk mengambil dan menampilkan data yang hanya satu kita menggunakan fungsi single

Jadi inilah wrappernya yang bisa kita gunakan untuk model manapun nantinya.
Sebelum kita gunakan wrappernya, database harus kita load/panggil dahulu. Kita ke file [Link],
panggil datanya disini.

Sekarang kita ke siswa_model yang akan kita atur spesifik table yang mana. Tabel yang akan
kita gunakan adalah siswa. Lalu kita buat variabel untuk menampung kelas databasenya
[Link] $db. Sehingga kita bisa gunakan construct, begitu dipanggil construcnya langsung
konek ke database.

Begitu dipanggil class Siswa_model di controllernya. Otomatis langung instansiasi class


database. Jadi kita bisa menggunakan semua method didalamnya.

Untuk method getAllSiswa isinya tidak lagi memanggil databasenya karena sudah dilakukan
oleh wrapper. Kita akan jalankan query dengan nama instanse objectnya yaitu db
$this->db->query. Query yang ada di class database. Querynya dijalankan menggunakan select *
from tabel dari table. Lalu kita kembalikan hasilnya menggunakan fungsi resultSet.
Jalankan program di browser :
Contoh mengambil satu data :
⮚ Cari list group di bootstrap
⮚ Kita ke view siswa masuk ke index
⮚ Buat ul dengan class list-group
⮚ Buat li dengan class list-group-item
⮚ Panggil variabel dengan valuenya
⮚ Lakukan pengulangan pada isi datanya

Kita akan tambahkan tombol untuk kehalaman detail buat linknya kita menggunakan tag a
Maka hasilnya

Menambahkan badges pada link.

Maka hasilnya di browser

Jika kita akan atur tempatnya dikanan

Maka hasilnya
Jika detail di klik akan ke method baru yang ada di controller siswa. Jadi nanti di linknya ke
siswa/detail.

Nanti detail ini akan mengirim id dari siswanya. Jadi nanti pas di klik kita tau siswa mana
yang akan kita lihat detailnya.

Jika kita jalankan di browser


Maka perhatikan bagian bawahnya. Sudah mengirim id nya

Berikutnya kita ke controller mahasiswa


Kita copy dari bagian atasnya, buat nama methodnya menjadi detail,

lalu kita ambil parameternya id yang ada di urlnya,

lalu judul tabnya kita buat detail siswa.

Data sis akan kita ganti, methodnya getSiswaById

Yang idnya adalah $id

Hasil akhir method detail yang ada di students controller


Sekarang kita ke modelnya, buat method getSiswaById

Ambil Idnya

Tinggal kita cari tau querynya apa

Koneksi ke tabel databasenya

Buat perintah untuk menyimpan data yang akan kita binding. Jadi id nya tidak langsung kita
masukkan $id untuk menghindari sql injection untuk mengamankan query kita.

Lalu kita bind yang id nya diisi dengan $id

Kembalikan nilai yang isinya hanya satu data

Kita sudah kirim datanya ke variabel, tapi yang kita butuhkan viewnya bukan index tapi
detail dan kita belum punya view detailnya.

Sekarang kita buat view detailnya. Kita ke folder view/siswa beri nama filenya [Link]
Isinya buat dengan container. Margin topnya 5. Isi menggunakan card
Tampilannya ketika link detail kita klik

⮚ Kita buat div untuk container dengan margin top 5


⮚ Buat div untuk class card dengan style width 18rem
⮚ Buat div card body
⮚ Buat h5 dengan class card-title dan data yang dikirim adalah nama
⮚ Buat h6 dengan class card-subtitle margin bottom 2text-muted yang dikirim adalah
nis
⮚ Buat paragraf dengan class card-text data yang dikirim email
⮚ Buat paragraf dengan class card text data yang dikirim jurusan
Insert Data

Kita akan buat tombol untuk menambah data dan masuk ke form tambah data. Buka view
index/siswa menggunakan modal box bootstrap.
Buka website bootstrap -> documentation -> search -> modal components. Copy file yang ada di
live demo.

Satu-persatu copy scriptnya. Yang pertama Button.

Letakkan diatas header

Copy isinya.

Letakkan di paling bawah


Hasilnya di browser

Lalu di klik tombolnya maka akan muncul pop up

Note : Tetap terhubung dengan internet.


Ubah tombol Launch Demo Modal => Tambah Data Siswa
Ubah data target exampleModal => #formModal

Target harus sama dengan nama => id menjadi formModal

Ubah judul h5 modal => id menjadi judulModal

Samakan juga dengan aria-labelledby

Ubah judul h5 menjadi Tambah Data Siswa

Ubah tulisan => Save Changes nya menjadi => Add Student

Hasilnya di browser

Kita ke bootstrap menggunakan elemen form, menggunakan form group. dupli

Copy bagian form email ubah menjadi nama


Buat tag form kemudian paste bagian form email didalamnya, buat tutup tag form setelah button,
karena buttonya menjadi bagian dari form
Didalam form akan kita buat elemen-elemennya
Tambahkan atribut action dan method post nya. Ubah for dan id nya menjadi nama, buat atribut
name agar dapat dipanggil oleh assosiatif array php menjadi => nama. Buat type nya text untuk
nama.

Berikutnya kita buat actionnya kita arahkan ke mahasiswa dengan method baru nanti kita buat
nama methodnya tambah.
Arahkan ke baseurl => controllernya=>student/method=>tambah.

Berikutnya kita masukan nis. Copy dari bagian nama

Ubah menjadi

Typenya number karena nis hanya menggunakan angka


Copy lagi, kita akan buat email.

Typenya gunakan email agar yang di input hanya email.


Terakhir gunakan combo box. Gunakan tag select atur jurusan AKL, OTKP, RPL
Value dan isinya sama.
Terakhir button nya agar dapat mengirimkan data menggunakan submit

Kita akan kelola datanya. Kita ke controller [Link] kita buat method baru namanya tambah
seperti yang telah kita buat di urlnya.

Jadi nanti ketika formnya di isi lalu ditekan tombol tambah data akan dikirimkan ke method
tambah di dalam variabel $_POST. Coba kita cek dengan vardump

Hasilnya di browser
Kita input, maka

Datanya sudah masuk. Tinggal kita kelola


Kita akan menjalankan sebuah method didalam method kita yang namanya tambah data
mahasiswa.
Jika method ini menjalankan model yang Siswa_model lalu didalamnya kita panggil method
tambah data siswa yang mengirikman $_POST itu menghasilkan nilai yang lebih besar dari 0
“jika nilai lebih besar dari nol berarti ada data/baris baru yang telah ditambahkan” maka datanya
berhasil masuk, karena berhasil masuk maka kita akan alihkan halaman ke halaman utama
siswanya. Setelah itu exit.
Lalu kita tambahkan method baru di modelnya dengan nama tambahDataSiswa yang menerima
$_POST kita tangkap dengan parameter $data. Didalamnya kita lakukan query insert datanya.

Lakukan query insert datanya. Harus sesuai dengan tabel.

Lalu jalankan querynya

Lakukan binding “nama”

Ambil $data hasil dari POST nya yang nama indexnya “nama”

Nama kita dapat dari atribut name dari form. Pastikan juga nama fieldnya sama.
Ulangi langkah diatas untuk menambahkan nis, email, dan jurusan

Lalu kita akan execute


Fungsi masih ada yang kurang yaitu belum mengembalikan angka. Karena kita butuhnya angka
pada kondisi lebih besar daripada 0. Kita butuh mengembalikan nilai tetapi didalam kelas
database kita, kita belum punya method untuk menghitung ada berapa baris yang baru
ditambahkan, atau dihapus. Maka kita akan buat di dalam database wrappernya.
Kita ke folder core buka [Link].
tambahkan satu method dengan nama rowCount untuk menghitung ada berapa baris yang sudah
ditambahkan.
Didalamnya mengembalikan nilai statement rowCount milik PDO

Lalu panggil method rowcount

Flash Message

Flash Message adalah pesan kilat yang akan kita gunakan ketika kita telah selesai mengerjakan
suatu aksi didalam CRUD. Dan untuk membuat flash message ini kita membutuhkan sebuah
konsep SESSION dengan memanfaatkan variabel super global $_SESSION.

Flash Message hanya akan tampil satu kali ketika berhasil atau gagal saja, setelah itu ketika kita
berpindah kehalaman lain, notifikasi itu harusnya hilang.

Kita ke folder core kemudian kita akan buat class baru yang akan menangani flash messagenya
yaitu => [Link]

Buat class [Link]


Didalamnya akan ada dua buah method dan method ini akan kita buat menjadi method static,
agar kita dapat memanggil methodnya tanpa harus melakukan instansiasi pada class flasher
Nama methodnya adalah setFlash. Didalam method ini butuh beberapa parameter yang pertama
pesannya mau apa, misalnya pesannya berhasil atau gagal. Yang kedua parameter aksi.
Parameter ini nanti akan kita gunakan secara generik bisa untuk tambah, ubah dan hapus.
Parameter terakhir akan kita simpan tipe dari class bootstrap mana yang akan kita gunakan.

Karena class bootstrap ada banyak untuk menentukan warna apa yang akan kita gunakan.
Misalkan berhasil kita akan gunakan yang hijau namanya success. Kalau gagal kita akan
gunakan yang merah namanya danger.

Didalam method kita akan set SESSION nya berisi data-data yang kita kirimkan.

Selanjutnya kita buat method static untuk melakukan flashnya untuk menampilkan pesannya.

Isinya adalah mengecek apakah session nya sudah di set, jika ada kita tampilkan pesannya.
Pesan akan kita tampilkan menggunakan bootstrap. Kita cari bagian alert. Cari yang ada tombol
closenya.

Copy bagian ini


Paste didalam method flash tambahkan echo

Akan ada yang kita ubah, perhatikan warning, digunakan untuk menampilkan warna kuning.
Sedangkan kita kan menampilkannya sesuai dengan tipe yang dikirim di parameter.
Penulisannya :

Pesan yang akan kita tampilkan

Yang terakhir aksinya

Setelah datanya selesai ditampilkan, lalu kita hapus sessionnya menggunkan function unset()

Class flasher sudah kita buat, agar bisa digunakan kita panggil lewat [Link]

Kita akan jalankan sessionnya melalui halaman index yang paling luar yang ada di folder public
Berikutnya flash message akan kitam tampilkan di halaman index didalam folder siswa.
Tampilkan sebelum tombol tambah data siswa. Tambahkan row dengan lg-6

Tambahkan pula lg-6 pada baris yang lain

Maka didalam class row yang paling atas akan kita tampilkan flash messagenya. Cukup dengan
memanggil class [Link] yang methodnya static maka penulisannya ;

Kita akan set di controller [Link]. sebelum kita redirect kita set terlebih dahulu flash message
nya. Atur flashnya melalui method setflash, jika data berhasil ditambahkan maka parameternya,
berhasil, ditambahkan, dan gunakan succes agar tampilnya hijau.

Jika gagal maka parameternya gagal, ditambahkan, dan gunakan danger agar tampilnya merah.

Maka ketika program ditambahkan maka ada flash message nya

Bagaimana jika kita ingin menampilkan data gagal ditambahkan ?


Kita ke file Siswa_model
Atur isi method tambahDataSiswa menjadi komentar
Kita akan return 0 karena false pasti masuk ke else nya

Maka hasilnya ketika data ditambahkan

Kembalikan method yang telah dijadikan komentar

Delete Data

Menambahkan fitur delete yang nantinya ada disebelah kanan fitur tombol detail. Dan nanti pada
saat kita klik tombol delete itu artinya kita juga akan mengirimkan data berupa id dari nasing-
masing siswa yang ada.
Yang pertama kita buka view index yang ada di dalam folder siswa

Copy paste tombol detail kemudian ubah menjadi tombol hapus, arahkan linknya ke
/student/hapus/

Hasil di browser

Kita rapikan dengan menghapus value dari class li,

Maka hasilnya akan menempel di sebelah kiri


Atur agar tiap-tombol berada dipinggir kanan dengan menggunakan float-right

Maka hasil di browser adalah

Mengatur jarak agar tidak terlalu rapat menggunakan atribut margin Left 1

Maka hasilnya
Tukar posisi menjadi detail hapus

Hasilnya di browser

Tombol hapus ubah menjadi warna merah dengan valuenya danger

Maka hasilnya di browser


Halaman Guru

Tambahkan url

Anda mungkin juga menyukai