MAKALAH
MAKALAH
PEMROGRAMAN FRAMEWORK
PEMROGRAMAN FRAMEWORK
“LARAVEL”
“LARAVEL”
Disusun Oleh: Disusun Oleh: AArriiffaattuul l KKhhooiirruul l AAnnaarr !!""##$$%%""""&&##''
PROGRAM ()*D+ )EKN+K +NFORMA)+KA
PROGRAM ()*D+ )EKN+K +NFORMA)+KA
()M+K A(+A MALANG
()M+K A(+A MALANG
$%",
$%",
PENDAH*L*AN
PENDAH*L*AN
++-- LLAARRAAVVEELLLara.el
Lara.el adalah sebuah framework PHP yang dirilis dibawah lisensi MIT, dibangunadalah sebuah framework PHP yang dirilis dibawah lisensi MIT, dibangun den
dengan gan konkonsesep p MVMVC C (m(modeodel l viview ew conconrrolollerler!" !" #a#araravel vel adadalaalah h penpengemgembanbangan gan wewebsibsiee berbasis
berbasis MVP MVP yang yang diulis diulis dalam dalam PHP PHP yang yang dirancang dirancang unuk unuk meningkakan meningkakan kualiaskualias perangka
perangka lunak dlunak dengan engan mengurangi mengurangi biaya biaya pengembangan pengembangan awal dan awal dan biaya pbiaya pemeliharaan, emeliharaan, dandan unuk meningkakan pengalaman beker$a dengan aplikasi dengan menyediakan sinaks yang unuk meningkakan pengalaman beker$a dengan aplikasi dengan menyediakan sinaks yang ekspresif, $elas dan menghema waku"
ekspresif, $elas dan menghema waku"
MVC adalah sebuah pendekaan perangka lunak yang memisahkan aplikasi logika dari MVC adalah sebuah pendekaan perangka lunak yang memisahkan aplikasi logika dari presenasi"
presenasi" MVC memisahkMVC memisahkan an aplikasi aplikasi berdasarkan berdasarkan komponen% komponen% komponen komponen aplikasi, aplikasi, seperi seperi && manipulasi daa, conroller, dan user inerface"
manipulasi daa, conroller, dan user inerface" '"
'" MoModeldel, , ModModel el memewawakikili li ssrukrukuur r dadaa" a" iiasaasanya nya momodedel l beberisrisi i funfungsgsi%fi%fungungsi si yanyangg memban
membanu u seseoraseseorang dalam ng dalam pengelolpengelolaan basis aan basis daa seperi memasukkan daa ke daa seperi memasukkan daa ke basisbasis daa, pembaruan daa dan lain%lain"
daa, pembaruan daa dan lain%lain" )"
)" VViewiew, V, View adalaiew adalah bagian yah bagian yang mengang mengaur ampilur ampilan ke penggunan ke pengguna" isa a" isa dikaakandikaakan berupa halaman web"
berupa halaman web" *"
*" ConrolConrollerler, Conro, Conroller meller merupakan brupakan bagian yanagian yang men$eg men$embaani mmbaani model dan odel dan viewview""
++++-- FF++))**RR//FF++))**R R LLAARRAAVVEELL
undles yaiu sebuah fiur dengan sysem pengemasan modular dan berbagai bundleundles yaiu sebuah fiur dengan sysem pengemasan modular dan berbagai bundle
elah ersedia unuk di gunakan dalam aplikasi +nda" elah ersedia unuk di gunakan dalam aplikasi +nda"
llo-o-ueuen n ././M M memerurupapakakan n pepenenerarapapan n PHPHP P lalan$n$uuan an dadari ri popolala ““aciacive ve recorecordrd””,,
me
menyenyediadiakan kan memeoode de ininerernal nal ununuk uk memengangaaasi si kenkendaldala a hubhubungungan an ananaara ra ob$ob$ek ek daabase" Pembangun -uery #aravel
daabase" Pembangun -uery #aravel00s 0luen ini didukung oleh lo-uen"s 0luen ini didukung oleh lo-uen"
+pp+pplilicacaioion n lologic gic memeruprupakaakan n bagbagian ian dardari i aplaplikikasi asi yayang ng didikemkembanbangkagkan, n, baibaik k
men
menggunggunakan akan ConConrollrollers ers aaaau u sebasebagai gai bagibagian an dari dari dekldeklarasarasi i /ou/oue" e" 1in1inak ak yangyang digunakan unuk mendefinisikannya mirip dengan yang dugunakan oleh framework digunakan unuk mendefinisikannya mirip dengan yang dugunakan oleh framework 1inara"
1inara"
/everse rouing, mendefinisikan hubungan anara #ink dan /oue, sehingga $ika suau/everse rouing, mendefinisikan hubungan anara #ink dan /oue, sehingga $ika suau
saa ada perubahan pada roue secara oomais akan ersambung dengan link yang saa ada perubahan pada roue secara oomais akan ersambung dengan link yang
PENDAH*L*AN
PENDAH*L*AN
++-- LLAARRAAVVEELLLara.el
Lara.el adalah sebuah framework PHP yang dirilis dibawah lisensi MIT, dibangunadalah sebuah framework PHP yang dirilis dibawah lisensi MIT, dibangun den
dengan gan konkonsesep p MVMVC C (m(modeodel l viview ew conconrrolollerler!" !" #a#araravel vel adadalaalah h penpengemgembanbangan gan wewebsibsiee berbasis
berbasis MVP MVP yang yang diulis diulis dalam dalam PHP PHP yang yang dirancang dirancang unuk unuk meningkakan meningkakan kualiaskualias perangka
perangka lunak dlunak dengan engan mengurangi mengurangi biaya biaya pengembangan pengembangan awal dan awal dan biaya pbiaya pemeliharaan, emeliharaan, dandan unuk meningkakan pengalaman beker$a dengan aplikasi dengan menyediakan sinaks yang unuk meningkakan pengalaman beker$a dengan aplikasi dengan menyediakan sinaks yang ekspresif, $elas dan menghema waku"
ekspresif, $elas dan menghema waku"
MVC adalah sebuah pendekaan perangka lunak yang memisahkan aplikasi logika dari MVC adalah sebuah pendekaan perangka lunak yang memisahkan aplikasi logika dari presenasi"
presenasi" MVC memisahkMVC memisahkan an aplikasi aplikasi berdasarkan berdasarkan komponen% komponen% komponen komponen aplikasi, aplikasi, seperi seperi && manipulasi daa, conroller, dan user inerface"
manipulasi daa, conroller, dan user inerface" '"
'" MoModeldel, , ModModel el memewawakikili li ssrukrukuur r dadaa" a" iiasaasanya nya momodedel l beberisrisi i funfungsgsi%fi%fungungsi si yanyangg memban
membanu u seseoraseseorang dalam ng dalam pengelolpengelolaan basis aan basis daa seperi memasukkan daa ke daa seperi memasukkan daa ke basisbasis daa, pembaruan daa dan lain%lain"
daa, pembaruan daa dan lain%lain" )"
)" VViewiew, V, View adalaiew adalah bagian yah bagian yang mengang mengaur ampilur ampilan ke penggunan ke pengguna" isa a" isa dikaakandikaakan berupa halaman web"
berupa halaman web" *"
*" ConrolConrollerler, Conro, Conroller meller merupakan brupakan bagian yanagian yang men$eg men$embaani mmbaani model dan odel dan viewview""
++++-- FF++))**RR//FF++))**R R LLAARRAAVVEELL
undles yaiu sebuah fiur dengan sysem pengemasan modular dan berbagai bundleundles yaiu sebuah fiur dengan sysem pengemasan modular dan berbagai bundle
elah ersedia unuk di gunakan dalam aplikasi +nda" elah ersedia unuk di gunakan dalam aplikasi +nda"
llo-o-ueuen n ././M M memerurupapakakan n pepenenerarapapan n PHPHP P lalan$n$uuan an dadari ri popolala ““aciacive ve recorecordrd””,,
me
menyenyediadiakan kan memeoode de ininerernal nal ununuk uk memengangaaasi si kenkendaldala a hubhubungungan an ananaara ra ob$ob$ek ek daabase" Pembangun -uery #aravel
daabase" Pembangun -uery #aravel00s 0luen ini didukung oleh lo-uen"s 0luen ini didukung oleh lo-uen"
+pp+pplilicacaioion n lologic gic memeruprupakaakan n bagbagian ian dardari i aplaplikikasi asi yayang ng didikemkembanbangkagkan, n, baibaik k
men
menggunggunakan akan ConConrollrollers ers aaaau u sebasebagai gai bagibagian an dari dari dekldeklarasarasi i /ou/oue" e" 1in1inak ak yangyang digunakan unuk mendefinisikannya mirip dengan yang dugunakan oleh framework digunakan unuk mendefinisikannya mirip dengan yang dugunakan oleh framework 1inara"
1inara"
/everse rouing, mendefinisikan hubungan anara #ink dan /oue, sehingga $ika suau/everse rouing, mendefinisikan hubungan anara #ink dan /oue, sehingga $ika suau
saa ada perubahan pada roue secara oomais akan ersambung dengan link yang saa ada perubahan pada roue secara oomais akan ersambung dengan link yang
relevan" 2eika #ink yang dibua dengan menggunakan nama%nama dari /oue yang relevan" 2eika #ink yang dibua dengan menggunakan nama%nama dari /oue yang ada, secara oomais #aravel akan membua 3/I yang sesuai"
ada, secara oomais #aravel akan membua 3/I yang sesuai"
/esful conrollers, memberikan sebuah opion (pilihan! unuk memisahkan logika/esful conrollers, memberikan sebuah opion (pilihan! unuk memisahkan logika
dalam melayani
dalam melayani HTTP 4T dan perminaan P.1T"HTTP 4T dan perminaan P.1T"
ClaClass ss auauo o loadloading, ing, menmenyediyediakan akan oomoomaiais s loadloading ing unuunuk k clasclass%cls%class ass PHPPHP, , anpanpaa
mem
membuubuuhkan hkan pemepemeriksriksaan aan manmanual ual ererhadahadap p $al$alur ur masmasuknyuknya" a" 0i0iur ur ini ini mencmencegahegah loading yang yang idak perlu"
loading yang yang idak perlu"
View composers adalah kode uni logical yang dapa dieksekusi keika sebuah ViewView composers adalah kode uni logical yang dapa dieksekusi keika sebuah View
diload" diload"
IoC Conainer memungkinkan unuk ob$ek baru yang dihasilkan dengan mengikuiIoC Conainer memungkinkan unuk ob$ek baru yang dihasilkan dengan mengikui
prinsip
prinsip conrol conrol pembalik, pembalik, dengan dengan pilhan pilhan conoh conoh dan dan referensi referensi dari dari ob$ek ob$ek baru baru sebagaisebagai singleons"
singleons"
MiMigragraiions ons memenyenyediadiakan kan verversi si sisissem em conconrorol l ununuk uk skskemema a dadaababasease, , sehsehininggagga
mem
memungkungkinkainkan n unuunuk k menmenghubghubungkungkan an peruperubahabahan n daldalah ah basbasis is kode kode apliaplikasi kasi dandan keperluan yang dibuuhkan dalam merubah aa
keperluan yang dibuuhkan dalam merubah aa leak daabase, mempermleak daabase, mempermudah dalamudah dalam penempaan dan memperbar
penempaan dan memperbarui aplikasi"ui aplikasi"
3ni Tesing mempunyai peran pening dalan framework #aravel, dimana uni esing3ni Tesing mempunyai peran pening dalan framework #aravel, dimana uni esing
ini mempunyai banyak es unuk medeeksi dan mencegah regresi" 3ni esing ini ini mempunyai banyak es unuk medeeksi dan mencegah regresi" 3ni esing ini dapa di$alankan melalui uilias
dapa di$alankan melalui uilias““arisan command%linearisan command%line””
+uomaic paginaion menyederhanakan ugas dari penerapan halaman, mengganikan+uomaic paginaion menyederhanakan ugas dari penerapan halaman, mengganikan
penerapan yang
penerapan yang manual dengan meode oomais manual dengan meode oomais yang erinregrasi kyang erinregrasi ke #aravel"e #aravel"
++++++-- ++NN(())AALLAA((++
+da iga cara dalam melakukan insalasi #aravel, +da iga cara dalam melakukan insalasi #aravel,
Mengunduhnya menggunakan ool insaller"Mengunduhnya menggunakan ool insaller"
Mengunduh melalui Composer"Mengunduh melalui Composer"
Mengunduh langsung melalui reposiori #aravel"Mengunduh langsung melalui reposiori #aravel"
5
5alaalaupun upun carcara a keikeiga ga menmengundgunduh uh langlangsung sung berkberkasnyasnya a melmelalui alui reporeposisiori, ori, namunamun n eeapap di
dibubuuuhkhkan an CoCompmpososer er ununuuk k memempmpererbabarurui i kekeeerrgagannunungagan n lilibrbrarari" i" 6a6adi di kikia a akakanan menggunakan composer unuk insalasi"
Perama sebelum menginsall laravel dilocalhos 7ampp, enunya harus sudah menginsall 7ampp, dan silakan sar +pache dan My18# nya" Pasikan 7ampp yang sudah erinsall adalah versi erbaru agar memenuhi sisem re-uiremens, sebagai beriku&
PHP 9: ;"<"= .pen11# PHP 7ension P>. PHP 7ension Mbsring PHP 7ension Tokeni?er PHP 7ension @M# PHP 7ension
2alau sudah selan$unya download dan Composer , silakan di download dan insall "e7e nya" Composer ini merupakan dependency manager php, anda bisa menginsall banyak package% package php salah saunya laravel ini"
6ika sudah erinsall composer maka keikan1o23oser pada cmd kemudian ekan ener,
maka akan muncul ulisan C.MP.1/, ini arinya composer sudah erinsall"
1elan$unya anda bisa menginsall laravel anda dengan mudah melalui cmd ini, api perama yang harus anda perhaikan pasikan posisi cmd ada di direcori C&A7amppAhdocs" anda bisa menggunakan command cd unuk pindah folder aau melalui file e7porer lalu klik kanan B
ekan shif, pilih yang open command window here"
6ika sudah erbuka cmdnya, keikan perinah “composer create-project --prefer-dist laravel/laravel blog” unuk melakukan insallasi laravel" 3nuk ulisan blog diaas adalah nama folder anda menginsall laravel anda, silakan gani sesuai kebuuhan" Tunggu sebenar hingga proses selesai, karena ini mendownload filenya $adi memakan waku cukup lama (erganung koneksi inerne!" 6ika sudah selesai, anda bisa mengakses laravel anda dengan alama ocalhosnamafolder3u4li1 inga ada ambahan publicnya"
DASAR ROUTE 5 CONTROLLER 5 VIEW
- 1ar dulu +pache nya
- #alu masuk ke folder laravel nya, klik kanan pilih use composer here
- 2eikkan Dphp arisan serveD" 2enapa menggunakan perinah php arisan serveE
Padahal bisa langsung localhos(nama folder!public" “Memang bisa, api dengan menggunakan php arisan serve url nya $adi clean dan gak usah ngeik public lagi"”
- uka url nya di browser & hp&localhos&FGGG, 2ia balik lagi ke folder #aravel nya"
6ika menggunakan sublime e7, aom, nebeans, dll" 2ia open folder nya $angan open file biar hasil nya seperi ini &
+pa fungsi dari roueE 0ungsi nya unuk menangani re-ues kia di 3rl kemudian mengarahkan aplikasi unuk memanggil halamanresouce erenu"
>alam rouing kia akan mengenal yaiu 4T dan P.1T, pada #aravel biasa 4T digunakan unuk menampilkan resource bisa berupa 0ungsi aau Conroller" 1edangkan P.1T pada #aravel biasanya digunakan unuk mengarahkan form keika di submi"
Pada roue"php, erdapa roue dengan fungsi seperi dibawah ini & Route::get('/', function () {
return view('welcome'); );
1crip ersebu men$elaskan &
Tanda slash ( !, arinya kia berada pada halaman uama aau inde7" >an yang ada didalam reurn View memanggil langsung ke blade yang bernama DwelcomeD anpa memproses nya ke Conroller erlebih dahulu"
>imana file 5elcome iuE isa kia liha pada folder resources, lalu views, dan erdapa welcome"blade"php, lade pada #aravel adalah 1isem Templaing bawaan #aravel"
ela$ar rouing pada #aravel &
- uka roues"php dan ambahkan scrip beriku ini &
2ia masih menggunakan fungsi dulu ya, nani baru pake Conroller" Route::get('/contact', function ()
{ return view('contact'); );
#alu bua file dulu di dalam folder views dengan nama seperi yang ada di roue adi yaiu conac, api $angan lupa menambahkan eksensi blade"php nya" 6adi nya seperi ini &
>an didalam file conac"blade"php erserah sa$a soba isi apa conoh nya &
erhasil ampil, kia idak perlu lagi menuliskan hp&localhos&FGGGconac"php , api langsung sa$a hp&localhos&FGGGconac karena iu sudah diurusin sama sisem rouing nya si #aravel"
1ekarang kia coba rouing dengan menggunakan Conroller &
- ua dulu ela$arConroller nya, kembali ke folder laravel, use composer here,
keikkan scrip dibawah ini pada cmd &
p!p artisan ma"e:controller #elajar$ontroller %resource >an hasilnya &
- uka pada +ppHpConrollersela$arConroller"php, api balik dulu ke roues"php,
dan ikui scrip seperi dibawah ini &
Route::get('/contact', '#elajar$ontroller&inde'); 2eerangan &
Pada parameer perama yaiu DconacD iu adalah url nya, dan parameer kedua yaiu ela$arConroller adalah Conroller nya dan inde7 adalah meode nya"
#alu kia buka ela$arConroller dan pada meode inde7, dan kia reurn view nya conac yang sudah kia bua adi inggal menuliskan nya seperi dibawah ini &
public function inde() {
return view('contact');
>an silahkan buka url nya hasilnya sama" isa sa$a kia membua dengan meode lain misal nya pada roues"php kia gani yang ela$arConrollerinde7 men$adi ela$arConrollerconac"
#alu pada ela$arConroller"php kia bua meode nya dengan nama conac, sama seperi inde7 adi hanya menggani nama inde7 men$adi conac"
agaimana $ika conac view adi kia bikin kan folder nya khusus misal dalam folder Views kia bikin folder yaiu ela$ar"
#alu pada ela$arConroller meode inde7 di reurn view nya kia ubah $adi & public function inde()
{
return view('belajarcontact');
ERROR - ARTISAN - OPER DATA
3nuk bela$ar #aravel ini kia $uga perlu dulu bela$ar mengenai ..P pada PHP" Tidak perlu erlalu dalam cukup dasar nya sa$a agar mempermudah dalam bela$ar #aravel"
rror pada #aravel& 6adi misalkan View Conac yang sudah dibua, sekarang di Hapus &
- 0older bela$ar besera dengan conac"blade"php nya kia hapus" - #alu coba kia panggil 3rl nya pada browser soba" >an hasil nya &
Hanya erdapa ulisan Whoops, looks like something went wrong. 2urang deail kanE
agaimana $ika kia ingin membua lebih deail rror nya seperi apaE
- Masuk ke folder configapp"php, lalu ada ulisan DdebugD seperi dibawah ini &
- 3bah sa$a 0+#1 men$adi T/3, seperi ini&
rror nya lebih deail, dan disiu men$elaskan bahwa View conac yang ada di 0older bela$ar idak diemukan" 2arena file conac"blade"php dengan folder nya sudah kia hapus"
Tapi $ika 5ebsie yang dibua ingin di hosing, dan akan diakses oleh user" 1ebaiknya debug error nya di 0+#1 kan sa$a" iar error deail nya idak erliha oleh user aau lebih disarankan dibua Page =G= o0ound nya"
1ekarang kia balik ke roues"php, kia ingin membua roue abou, $adi scrip nya seperi ini &
Route::get('/about', 'bout$ontroller&inde');
/oue conac dan bela$arConroller"php nya dihapus sa$a, karena kia bikin conroller baru dengan nama +bouConroller" 2ia bua Conrollernya menggunakan arisan lagi"
ARTISAN adalah command line aau perinah%perinah yang di$alankan via
erminalcommand promp yang menyediakan beberapa perinah yang bisa kia gunakan saa develop aplikasi #aravel" >engan cara mengeikkan D php arisan D pada CM> dan pasikan membuka cmd nya pada folder laravel kia" Conoh seperi ini &
>isiu banyak bange lis yang bisa kia gunakan dengan arisan, scroll sendiri pada cmd nya dan erdapa make&conroller yang sudah kia lakukan di uorial sebelumnya, ada $uga perinah roue lis $adi kia bisa meliha roue apa sa$a yang ada di roues"php, dengan cara
mengeikkan di cmd &
p!p artisan route:list
2embali lagi ke u$uan kia yaiu ingin membua +bouConroller, keikkan dibawah ini & p!p artisan ma"e:controller bout$ontroller
Mencoba menampilkan hasil roue&lis kia adi $adi hasil nya seperi ini &
Hanya ada ) roue lis , karena pada roues"php nya $uga ada ) sa$a"
1eelah selesai membua +bouConroller, pada meode inde7 kia ingin memanggil view abou yang ada di folder views &
public function inde() { return view('about');
- ua dulu abou"blade"php nya pada folder resourcesviews, kasih nama abou"blade"php,
srukur folder nya gini &
- Isi sembarang dulu, isi dalam file abou"blade"php, $ika sudah coba kia panggil dulu
roue nya di url unuk memasikan apakah sudah benar aau belum"
Ternyaa sudah benar" 1ekarang isikan scrip ini pada meode inde7 di +bouConroller & public function inde() {
*coba + 'gilacoding';
return view('about')-wit!('tampil' , *coba);
2eerangan pada With &
Parameer ' nama variable yang akan kia panggil pada view blade nya" Parameer ) adalah nama variable yang akan kia oper daanya"
1ekarang pada abou"blade"php unuk mendapakan daa dari Conroller adi bisa dengan cara seperi ini &
ebsite sa.a : 0+ *tampil; 0
Tapi, karena dengan #aravel sudah ada blade emplaing unuk menampilkan daa men$adi lebih simple cukup dengan seperi ini &
ebsite sa.a : {{ *tampil >engan kedua cara diaas, hasilnya sama kok &
public function inde() {
*data1'judul'2 + 'gilacoding'; *data1'tanggal'2 + '34-56-7537';
return view('about')-wit!('tampil' , *data);
>i abou"blade"php nya seperi ini & 89$<=> !tml !tml !ead titleper data/title /!ead bod.
ebsite sa.a : {{ *data1'judul'2 br/ anggal !osting : {{ *data1'tanggal'2 /bod.
/!tml Hasilnya &
1elan$unya dengan meode lain yaiu membua array di dalam WithE conoh nya & public function inde() {
*judul + 'gilacoding'; *tanggal + '34-56-7537';
return view('about')-wit!('data' , compact('judul',
'tanggal'));
2e & yang ada di dalam compac adalah variable yang akan kia oper daa nya" Pada abou"blade"php nya eep sama seperi sebelum nya &
89$<=> !tml !tml !ead titleper data/title /!ead bod.
ebsite sa.a : {{ *data1'judul'2 br/ anggal !osting : {{ *data1'tanggal'2 /bod.
/!tml Hasilnya sama
BLADE TEMPLATES
Mengenai +rray yang ada di dalam wih, kia mengoper daa di compac ke ' variable dengan nama DdaaD, eapi ernyaa kia bisa menggunakan compac anpa menuliskan wih lagi, karena daa kia hanya sediki" 6adi conoh scrip nya pada +bouConroller meode inde7 seperi ini &
public function inde() { *judul + 'gilacoding'; *tanggal + '34-56-7537';
return view('about', compact('judul', 'tanggal'));
#alu diabou"blade"php nya kia hilangkan anda arraynya men$adi nama variablenya sa$a &
5ebsie saya & JJ K$udul LL br9 Tanggal hosing & JJ anggal LL
2ia ampilkan, hasilnya memang sama sa$a &
1elan$unya saya ingin men$elaskan mengenai scape, Misalnya kia memasukkan daa yang ada ag hml aau $avascrip nya akan oomais ke render kalau idak kia escape" Conoh misal pada daa di +bouConroller adi isi di daa $udul dan anggal nya kia beri ag ialic dan $uga bold &
public function inde() {
*judul + 'igilacoding/i'; *tanggal + 'b34-56-7537/b';
return view('about', compact('judul', 'tanggal'));
#alu pada abou"blade"php &
ebsite sa.a : {{ *judul br/
anggal !osting : {{ *tanggal br/ br/
++++++++ anpa >scape ++++++++ br/ br/
anggal !osting : {88 *tanggal 88 br/ Hasilnya &
Terliha $elas kan" yang anpa escape ag bold dan ialic nya ngerender ag hml nya, JNN NNL ini saya pakai $uga karena backend nya saya nulis pakai inymce, $adi ag Paragraph, bold, ialic, link, dsb" .omais ke render saa diampilkan"
2ia lan$u ke 1isem Templaing, misalnya kia punya beberapa halaman yang sama dan bagian header dan fooer nya eep iu%iu a$a idak berubah api conen nya yang berubah%ubah" ua blade baru, pada views kia bua $uga folder dengan nama Templaes, dan bua view nya dengan namainde7"blade"php, 6adi srukur nya seperi ini &
Isi dalam inde7"blade"php nya gini & 89$<=> !tml
!tml !ead
title?ati!an #lade emplates/title /!ead
bod.
&include('templates!eader') &.ield('content')
&include('templatesfooter') /bod.
/!tml
2arena disiu saya include kan header dan fooer nya di file lain $uga $adi kia bua lagi file header"blade"php dan fooer"blade"php dalam ' folder emplaes, isi nya erserah sa$a"
header"blade"php &
!3@A@ B>9>R/!3 fooer"blade"php &
!3@A@ C>R/!3
1ekarang pada abou"blade"php nya harus kia e7ends & &etends('templatesinde')
§ion('content')
ebsite sa.a : {88 *judul 88 br/
anggal !osting : {88 *tanggal 88 br/ &stop
2e &
pada e7ends kia memanggil inde7"blade"php yang merupakan pondasi halaman hml kia
yang berada di folder emplaesinde7"blade"php,
#alu nama yang ada di secion disesuaikan dengan yield pada inde7"blade"php, sop unuk mengakhiri secion"
Tambahkan sau conoh lagi, kia bua halaman conac" ua file conac"blade"php di folder views se$a$ar dengan abou"blade"php, isi nya seperi ini &
&etends('templatesinde') §ion('content') Donta" sa.a : ul liEF7G5G63766/li liEF7GFHH7737/li liEF7G75II4II/li /ul &stop
roues"php kia ambahkan url conac &
Route::get('/contact', 'bout$ontroller&contact'); >an pada +bouConroller ambahkan meode conac &
public function contact() { return view('contact');
Hasilnya &
Header dan fooer nya eep sama api conen nya berubah"
1ekarang misal pada conac nomor elpon nya kia $adi kan array di +bouConroller pada meode conac akan kia oper nomor nya ke conac"blade"php, scrip nya begini &
public function contact() {
*contacts + 1'EF7G5G63766', 'EF7GFHH7737', 'EF7G75II4II'2; return view('contact')-wit!('contacts', *contacts);
#alu di conac"blade"php nya seperi ini & §ion('content')
Donta" sa.a :
&if(count(*contacts)) ul
&foreac!(*contacts as *contact) li{{ *contact /li &endforeac!
/ul &else
p$ontact tida" ditemu"an/p &endif
&stop 2e &
6ika ingin menggunakan if else pada #aravel cukup dengan if , elseif, else, dan
unuk mengakhiri nya endif ,
0ungsi dari coun didalam if adalah unuk cek daa +rray nya apakah ada, $ika ada maka
ampil, $ika idak ada else maka menampilkan e7 di dalam else,
foreach(Kconacs as conac! fungsi nya unuk melakukan perulangan, unuk
Conoh $ika +rray pada abou"blade"php di meode conac nya kia hapus & public function contact() {
*contacts + 12;
return view('contact')-wit!('contacts', *contacts);
Maka saa kia panggil url conac yang akan ampil seperi beriku &
KONFIGURASI DATABASE, MIGRATION & SCHEMA BUILDER
Migratio adalah sebuah fasilias dilaravel digunakan unuk mempermudah kia keika ada perubahan dalam daabase" S!"#$a B%i'#r digunakan unuk membua sebuah skema daabase" >engan menggunakan migraions dan schema builder kia idak perlu repo 5 repo membuka phpmyadmin , aaupun aplikasi 1-l lainnya unuk membua daabase" >engan migraions dan schema builder $uga akan lebih mudah keika kia membua pro$ec besar dan dengan developer yang berbeda%beda $adinya si developer ini idak perlu impore7por daabase api langsung sa$a menggunakan migraion"
1ebelum kia prakekan langsung Migraion, enunya kia harus menghubungan +plikasi #aravel kia dengan Mys-l, cara konfigurasi daabase nya mudah kok, silahkan buka dulu configdaabase"php,
>efaul daabase nya My18#, 6ika soba menggunakan 18#ie aau Posgre18# inggal gani pada defaulnya dan $uga di file "env, dimana file "envE +da difolder uama saa kia buka folder #aravel kia, se$a$ar dengan folder app, boosrap, config, dkk &
#alu unuk gani defaul mys-lnya gani disini &
>an $uga di "env nya gani >OC.CTI.:mys-l ke daabase yang soba gunakan misal 18#ie, api saya disini menggunakan My18# $adi saya biarkan sa$a"
>an unuk seing localhos, username, dan password nya $uga bisa kok langsung di mys-l dalam file daabase"phpseperi ini &
Tapi, cara ini idak disarankan, karena saa kia develop +plikasi #aravel dengan beberapa eman pro$ec aau eamwork, saa emen kia buka Pro$ec kia, bakal keauan dong username, password kiaE 6adi, sebaiknya di daabase"php nya dibiarkan defaul sa$a, lalu gani di "env seperi ini $adinya &
2arena saa kia upload Pro$ec kia di gihub aau dimana sa$a, "env akan dibiarkan aau idak akan erupload, 0ile "giignore lah yang membua "env idak akan erupload, isi scrip nya seperi ini &
6adi di "giignore iu erdapa di nama folder vendor, folder nodeOmodules "env, dkk folder iu semua idak akan erupload, sesuai dengan isi "giignore nya,
alik ke "env, saya sudah seing >O>+T++1:laraes $adi soba bua dulu daabase nya di phpmyadmin, silahkan beri nama apa sa$a dan sesuaikan dengan di "env, masukkan
username nya, lalu password soba, $ika idak memakai password biarkan sa$a >OP+115./>: kosong seperi iu"
1elesai konfigurasi daabase nya, sekarang langsung kia prakekkan seperi apa fiur Migraion pada #aravel iu, 1aa kia insall #aravel, erdapa langsung dua migraion able, bisa kia liha pada folder daabasemigraions, erdapa migraion creaeOusersOable , dan saunya creaeOpasswordOresesOable api kia idak memakai iu , unuk conoh silahkan kia buka dulu file migraion yang creaeOusersOable"php, dan disiu hanya erdapa dua meode yaiu up dan down,fungsimeode up(! unuk membua able membua kolom, sedangkan down(! unuk menghapus able aau kolom"
Pada meode up, erdapa 1chema seperi yang sudah kia $elaskan sebelumnya, selain unuk membua dan menghapus able dengan schema kia bisa bua spesifikasi kolom able nya misal incremen, sring, imesamps, dll
1ekarang kia bikin ulang migraion baru, dua migraion bawaan #aravel kia hapus sa$a dulu, lalu kia ke command line unuk membua migraion creaeOblogsOable, api pada class nya nani akan oomais men$adi CreaelogsTable, keikkan pada cmd scrip dibawah ini &
p!p artisan ma"e:migration createJblogsJtable --create+blogs 6ika hasilnya seperi ini &
2e &
creaeOblogsOable adalah nama migraionnya, %%creae:blogs adalah nama unuk able nya"
erari kia sudah berhasil membua migraionnya sekarang kia lia migraion kia pada daabasemigraion,
2ia lia isinya, dan nama class nya seperi kia bilang adi dia oomais men$adi CreaelogsTable" 1ekarang pada meode up kia mau isi kolom%kolom apa sa$a yang ada di able blogs, saya bua isinya gini &
#alu kia pushkia $alankan migraion unuk membua able nya pada daabase kia, unuk men$alankan nya keikkan lagi pada cmd (pasikan men$alankan cmd nya pada folder #aravel! &
php arisan migrae Hasilnya &
erari kia sudah berhasil, lalu bisa di cek pada phpmyadmin nya di daabase laraes (sesuaikan dengan daabase soba!"
Terdapa ) able, able blogs dan migraions" Table migraions iu oomais bua nyimpen daa nya $adi maksudnya able migraions oomais nyimpen nyaa class migraion apa sa$a yang sudah kia $alankan, sedang kan able blogs iu adalah hasil yang kia bua adi" 2ia buka srukur able blogs adi &
Hasilnya sesuai dengan yang kia bua pada class migraion di #aravel" Tapi mungkin masih ada yang belum au kenapa ada kolom creaedOa dan updaedOaE Iu hasil yang kia bua di migraion kia adi yang Kable%9imesamps(! $ika idak erpakai bisa soba hapus sa$a"
2ia sudah men$alankan migraion meode up, lalu kia ingin au fungsi meode downE 1eperi yang ada di isi down iu 1chema&&drop berari akan ngehapus able erakhir yang kia $alankan adi" Conoh nya soba bisa men$alankan command line ini pada cmd &
p!p artisan migrate:rollbac" Hasilnya &
uka lagi pada daabase nya, dan able blogs sudah idak ada" Tapi misalnya ingin mengembalikan lagiE Qa inggal $alankan php arisan migrae adi"
ELO(UENT
>engan lo-uen kia bisa dengan mudah Men$alankan 8uery 5 -uery >aabase misal nya Inser, 3pdae, >elee dan /ead >aa"
karena kia sudah membua migraion nya pada uorial sebelumnya $adi langsung sa$a kia inggal membua model nya dulu, yaiu unuk membua model blog" keikkan pada Cmd seperi ini &
p!p artisan ma"e:model #log
#alu kia liha pada folder #aravel kia masuk ke folder +pp &
>isiu erdapa model kia log dan model bawaan #aravel 3ser, karena model user idak erpakai mendingan dihapus sa$a" #alu kia liha pada log"php, masih kosong seperi ini &
3nuk membua model, silahkan isi sesuai dengan yang ada di able blogs & 0p!p
namespace pp;
class #log etends Model {
protected *table + 'blogs';
protected *fillable + 1'judul', 'des"ripsi'2;
2e &
proeced Kable : DblogsD adalah nama able nya"
proeced Kfillable : RD$udulD, DdeskripsiD, DcreaedOaD, DupdaedOaDS isi kolom nya, karena
I> sudah oomais $adi idak perlu dibua"
#alu creaedOa dan updaedOa nya $uga idak perlu bua karena sudah oomais $uga, api
$ika soba idak menggunakan creaed dan updaedOa nya bisa diambahkan scrip ini public Kimesamps : false pada Model adi"
Ta$)a" Data
#alu kia ingin menambahkan daa dengan lo-uen ke Table logs melalui roue, scripnya seperi ini &
Route::get('/tamba!', function() {
*blog + new #log;
*blog-judul + NOudul =ertamaN;
*blog-des"ripsi + N9es"ripsi n.a disini, conto! menamba! data pada routeN;
*blog-save(); );
2e &
Kblog : new log Kblog adalah variable nya, new log nama model nya"
Kblog%9$udul pasikan kolom yang diu$u sesuaisama dengan yang ada di abel nya" Kblog%9save(! proses daa nya unuk disimpan"
6angan lupa menambahkan use +ppAlog pada roues"php , leakkan sa$a dibawah Ephp" 6alankan url roue ambah nya pada browser" 6ika sudah, coba soba cek pada able blogs di phpmyadmin nya &
Hasilnya blank puih sa$a karena idak kia masukkan apa%apa api daa sudah masuk" creaedOa dan updaedOanya pun sudah erisi oomais, pada lo-uen kia idak perlu lagi Inser Ino blabla" Cukup mudah kanE &>
U*'at# Data
1ekarang kia lakukan updae daa yang sudah kia masukkan adi, $adi kia ambahkan lagi pada roue nya seperi ini &
Route::get('/update', function() {
*blog + #log::find(3);
*blog-judul + NOudul 9ieditN;
*blog-des"ripsi + N9es"ripsi juga suda! di >ditN; *blog-save();
); 2e &
Kblog : log&&find('! +rinya Men$alankan Mengubah daa blog yang id nya
'" Panggil url nya, dan cek ke daabase, daa berhasil dirubah &
M#a$*i+a Data
1eelah Coba di simpan dan diedi, sekarang coba kia ampilkan daa nya menggunakan
lo-uen & Route::get('/tampil', function() { *blogs + #log::all(); ec!o NulN; foreac!(*blogs as *blog) { ec!o NliN;
ec!o NbOudul n.a/b : N; ec!o *blog-judul;
ec!o N b9es"ripsi n.a/b : N; ec!o *blog-des"ripsi; ec!o N/liN; ec!o N/ulN; ); Pasekan di roues"php ya, Hasilnya &
2e &
Kblogs : log&&all(! fungsi nya menampilkan semua daa di able blogs" Ha*% Data
Conoh erakhir kia menghapus daa, pasekan pada roues"php & Route::get('/!apus', function()
{
*blog + #log::find(3); *blog-delete();
);
1eperi biasa, panggil url nya dan $ika sudah liha ke daabase apabila daa sudah idak ada berari udah berhasil kehapus"
MODEL, VIEW DAN CONTROLLER
- 6alankan dulu command line php arisan serve nya pada CM>, dan perlu diinga
membuka CM> nya harus pada 0older #aravel yg sedang di$alankan"
Masuk ke folder #aravel yang sedang di ker$akan, klik kanan, pilih 3se Composer
Here" Cara ) &
Tahan 1HI0T dan klik kanan dimana sa$a halaman kosong, pilih .pen Command 5indow
Here"
Cara ' dan ) 1ama sa$a hasilnya, hanya sa$a cara ' 6ika kia saa insall Composer dengan mencenang 1hell Menus, dan cara ) bagi yang idak cenang 1hell Menus nya"
- uka pada rowser hp&localhos&FGGG, #alu kia bua url blog di roues"php &
Route::get('/blog', '#log$ontroller&inde');
- 1udah membua url nya, kia bua lagi logConroller nya pake arisan ya biar cepa"
Inga command line nya gimanaE 1eperi ini scrip nya &
p!p artisan ma"e:controller #log$ontroller --resource
- Isi scrip dibawah ini pada logConroller meode inde7 sesuai yang akan kia panggil
pada roues"php adi & public function inde() {
return view('blog');
2ia bua lagi View unuk blog nya api kia masih menggunakan emplae yang sebelumnya $adi kia hanya membua unuk konen nya sa$a"
- Pada resourcesviews beri nama blog"blade"php, silahkan isi seperi ini &
&etends('templatesinde') §ion('content')
@ni !alaman #log &stop
Ternyaa sudah $alan, karena sebelumnya kia sudah membua model nya $adi kia prakekkan unuk menampilkan daa nya langsung" 2embali ke logConroller meode inde7,
silahkan ikui scrip nya &
public function inde() {
*blogs + #log::all();
return view('blog', compact('blogs'));
6angan lupa lagi menambahkan use +ppAlog diaas class nya conoh nya &
2embali lagi ke blog"blade"php, kia ampilkan daa nya & &etends('templatesinde') §ion('content') &if(count(*blogs)) ul &foreac!(*blogs as *blog) liOudul : {{ *blog-judul /li &endforeac! /ul
&else
p=ost tida" ada/p &endif
&stop Hasilnya &
>aa saya hanya sau" 1ekarang coba soba ambahkan beberapa dulu manual di able logs nya"
1ekarang saya mempunyai * daa" 2ia mau menampilkan daa erenu berdasarkan I> nya sa$a, caranya coba soba ke roues"php dulu dan ambahkan &
Route::get('/blog/{id', '#log$ontroller&tampil"an@9');
#alu ke logConroller , bua meode baru dengan nama sesuai
di roues"php yaiu ampilkanI>" Isinya seperi ini & public function tampil"an@9(*id) {
*tampil"an + #log::find(*id);
return view('tampil"an', compact('tampil"an'));
2e &
Pada meode ampilkanI> diberi parameer Kid unuk ngedapein I> nya dari roue" log&&find(Kid! seperi yang sudah di$elaskan sebelumnya, able blog mencari dan
menampilkan sesuai dengan I> yang dicari"
#alu kia bua lagi view baru, diberi nama ampilkan"blade"php pada folder resourcesviews" Ikui scrip nya seperi dibawah ini &
&etends('templatesinde') §ion('content')
!4?i!at 9ata/!4
@9 n.a : {{*tampil"an-id, br/
Oudul n.a : {{*tampil"an-judul, br/ 9ibuat : {{*tampil"an-createdJat, br/ 9iedit : {{*tampil"an-updatedJat
&stop
6adi unuk menampilkan daa berdasarkan I> nya kia inggal uliskan manual di url nya hp&localhos&FGGGblog' , maka hasilnya &
2ia coba lagi unuk memanggil dengan nomor I> * &
Qang ampil sesuai dengan I> yang kia panggil" #alu kia menampilkan daa berdasarkan I> api idak menuliskan nya dengan manual di url, kia mau panggil sebagai link, buka lagi blog"blade"php, ambahkan link di lis li nya &
&etends('templatesinde') §ion('content') &if(count(*blogs)) !4?ist data/!4 ul &foreac!(*blogs as *blog)
lia !ref+N{{ url('blog',*blog-id) NOudul
: {{ *blog-judul /a/li
&endforeac! /ul
&else
p=ost tida" ada/p &endif
&stop 2e &
3nuk memanggil #ink di lade kia inggal menuliskan JJ url(DurlyangdiinginkanD! LL, a href:JJ url(DblogD,Kblog%9id! LL9 a9 maksudnya kia menu$u ke url log
dengan id yang diambil dari lis hasil dari perulangan di able blogs" Hasilnya $ika kia panggil url blog, lis li nya men$adi link &
Coba kia klik lis daa ke dua dengan $udul urung kakak ua, hasilnya &
MEMBUAT CRUD LARAVEL HANA DENGAN . MENIT
- Cara perama silahkan insall dulu laravel nya &
composer create-project --prefer-dist laravel/laravel lati!an-crud
- seing koneksi, rouing #aravel seperi di uorial sebelum nya"
- #an$u, silahkan beri nama apa sa$a, lalu kia masuk ke folder laravel, seing dulu
koneksi ke daabase nya, bua daabase nama nya Dlaihan%crudD
- 6ika sudah mengaur koneksi ke daabase nya di "env dan sudah membua daabase di
phpmyadmin, kembali ke dalam folder #aravel yang sudah dibua adi dan klik kanan di area kosong, use composer here dan $alankan command line &
composer reLuire appPcoder/crud-generator Hasilnya &
- uka file app"php di configapp"php #alu pasekan dibawah ini dibagian providers ya
scroll kebawah, $angan sampe salah pase &
ppPcoderK$rudQeneratorK$rudQeneratorervice=rovider::class,
- Pase lagi command line dibawah ini dan ener pada cmd nya &
composer reLuire laravelcollective/!tml Hasilnya seperi ini &
- 2ia main pase lagi deh di app"php pada providers &
$ollectiveKBtmlKBtmlervice=rovider::class,
- >an ini di bagian aliases masih di app"php ya &
'Corm' + $ollectiveKBtmlKCormCacade::class, 'BM?' + $ollectiveKBtmlKBtmlCacade::class,
- >an keikkan composer updae di cmd" 1elesai composer updae, kia Publish config file
U generaor emplae files nya dengan cara menuliskan scrip ini di cmd lagi & p!p artisan vendor:publis!
Hasil &
- Pase lagi command line dibawah ini ke cmd &
p!p artisan crud:generate =osts --fields+NtitleSstring, bod.StetN
- #alu kia publish able nya, dengan cara men$alankan lagi command line dibawah ini &
p!p artisan migrate
- Terakhir $alankan php arisan serve, dan di $alankan url hp&localhos&FGGGposs "
- 1ekarang kia coba ambah dengan mengklik +dd ew Pos &
Hasil seelah diambah &