MAKALAH PEMROGRAMAN FRAMEWORK “LARAVEL”
Disusun Oleh: Arifatul Khoirul Anar
!"#$%""'
PROGRAM ()*D+ )EKN+K +NFORMA)+KA ()M+K A(+A MALANG
$%",
PENDAH*L*AN +-
LARAVEL Lara.el adalah sebuah framework PHP yang dirilis dibawah lisensi MIT, dibangun
dengan dengan kon konse sep p MVC MVC (m (mode odell view view conr conrol oller ler!" !" #ara #aravel vel adala adalah h pengem pengemban bangan gan websi websie e berbasis MVP yang diulis dalam PHP yang dirancang unuk meningkakan kualias perangka lunak dengan d engan mengurangi biaya pengembangan awal dan biaya pemeliharaan, p emeliharaan, dan unuk meningkakan pengalaman beker$a dengan aplikasi dengan menyediakan sinaks yang ekspresif, $elas dan menghema waku" MVC adalah sebuah pendekaan perangka lunak yang memisahkan aplikasi logika dari presenasi" MVC memisahkan memisahk an aplikasi berdasarkan komponen% komponen aplikasi, seperi & manipulasi daa, conroller, dan user inerface" '" Mo Model del,, Mod Model el mewa mewaki kili li sruk sruku urr daa" daa" iasa iasanya nya mo mode dell beris berisii fungs fungsi%f i%fung ungsi si yang yang membanu membanu seseorang seseorang dalam pengelolaan pengelolaan basis daa seperi memasukkan daa ke basis daa, pembaruan daa dan lain%lain" )" View, iew, View View adalah adalah bagian yang yang mengaur mengaur ampilan ampilan ke pengguna" pengguna" isa dikaakan berupa halaman web" *" Conroller Conroller,, Conroller Conroller merupakan merupakan bagian bagian yang yang men$embaani men$embaani model model dan view" view"
++-
F+)*R/F+)*R LARAVEL
undles yaiu sebuah fiur dengan sysem pengemasan modular dan berbagai bundle elah ersedia unuk di gunakan dalam aplikasi +nda"
lolo-ue uen n ./M ./M meru merupa paka kan n pene penera rapa pan n PHP PHP lan$ lan$u uan an dari dari pola pola “acive acive record record”, menye menyedia diakan kan meo meode de iner inernal nal unuk unuk menga mengaa asi si kendal kendalaa hub hubung ungan an ana anara ra ob$ek ob$ek daabase" Pembangun -uery #aravel0s 0luen ini didukung oleh lo-uen"
+ppli +pplica caio ion n logic logic merup merupaka akan n bagian bagian dari dari aplik aplikasi asi yang yang dikem dikemban bangka gkan, n, baik baik menggun menggunakan akan Conroll Conrollers ers aau aau sebagai sebagai bagian bagian dari deklaras deklarasii /oue" /oue" 1inak 1inak yang digunakan unuk mendefinisikannya mirip dengan yang dugunakan oleh framework 1inara"
/everse rouing, mendefinisikan hubungan anara #ink dan /oue, sehingga $ika suau saa ada perubahan pada roue secara oomais akan ersambung dengan link yang
PENDAH*L*AN +-
LARAVEL Lara.el adalah sebuah framework PHP yang dirilis dibawah lisensi MIT, dibangun
dengan dengan kon konse sep p MVC MVC (m (mode odell view view conr conrol oller ler!" !" #ara #aravel vel adala adalah h pengem pengemban bangan gan websi websie e berbasis MVP yang diulis dalam PHP yang dirancang unuk meningkakan kualias perangka lunak dengan d engan mengurangi biaya pengembangan awal dan biaya pemeliharaan, p emeliharaan, dan unuk meningkakan pengalaman beker$a dengan aplikasi dengan menyediakan sinaks yang ekspresif, $elas dan menghema waku" MVC adalah sebuah pendekaan perangka lunak yang memisahkan aplikasi logika dari presenasi" MVC memisahkan memisahk an aplikasi berdasarkan komponen% komponen aplikasi, seperi & manipulasi daa, conroller, dan user inerface" '" Mo Model del,, Mod Model el mewa mewaki kili li sruk sruku urr daa" daa" iasa iasanya nya mo mode dell beris berisii fungs fungsi%f i%fung ungsi si yang yang membanu membanu seseorang seseorang dalam pengelolaan pengelolaan basis daa seperi memasukkan daa ke basis daa, pembaruan daa dan lain%lain" )" View, iew, View View adalah adalah bagian yang yang mengaur mengaur ampilan ampilan ke pengguna" pengguna" isa dikaakan berupa halaman web" *" Conroller Conroller,, Conroller Conroller merupakan merupakan bagian bagian yang yang men$embaani men$embaani model model dan view" view"
++-
F+)*R/F+)*R LARAVEL
undles yaiu sebuah fiur dengan sysem pengemasan modular dan berbagai bundle elah ersedia unuk di gunakan dalam aplikasi +nda"
lolo-ue uen n ./M ./M meru merupa paka kan n pene penera rapa pan n PHP PHP lan$ lan$u uan an dari dari pola pola “acive acive record record”, menye menyedia diakan kan meo meode de iner inernal nal unuk unuk menga mengaa asi si kendal kendalaa hub hubung ungan an ana anara ra ob$ek ob$ek daabase" Pembangun -uery #aravel0s 0luen ini didukung oleh lo-uen"
+ppli +pplica caio ion n logic logic merup merupaka akan n bagian bagian dari dari aplik aplikasi asi yang yang dikem dikemban bangka gkan, n, baik baik menggun menggunakan akan Conroll Conrollers ers aau aau sebagai sebagai bagian bagian dari deklaras deklarasii /oue" /oue" 1inak 1inak yang digunakan unuk mendefinisikannya mirip dengan yang dugunakan oleh framework 1inara"
/everse rouing, mendefinisikan hubungan anara #ink dan /oue, sehingga $ika suau saa ada perubahan pada roue secara oomais akan ersambung dengan link yang
relevan" 2eika #ink yang dibua dengan menggunakan nama%nama dari /oue yang ada, secara oomais #aravel akan membua 3/I yang sesuai"
/esful conrollers, memberikan sebuah opion (pilihan! unuk memisahkan logika dalam melayani HTTP 4T dan perminaan P.1T"
Class Class auo auo loading, loading, menyedi menyediakan akan oomai oomaiss loading loading unuk unuk class%cl class%class ass PHP, PHP, anpa anpa membuu membuuhkan hkan pemeriks pemeriksaan aan manual manual erhada erhadap p $alur $alur masukny masuknya" a" 0iur 0iur ini mencegah mencegah loading yang yang idak perlu"
View composers adalah kode uni logical yang dapa dieksekusi keika sebuah View diload"
IoC Conainer memungkinkan unuk ob$ek baru yang dihasilkan dengan mengikui prinsip conrol pembalik, dengan pilhan conoh dan referensi dari ob$ek baru sebagai singleons"
Migra Migrai ions ons menye menyedia diakan kan versi versi sis sisem em conro conroll unuk unuk skem skemaa daab daabase ase,, sehin sehingga gga memungk memungkinka inkan n unuk unuk menghub menghubungk ungkan an perubaha perubahan n dalah dalah basis basis kode aplikasi aplikasi dan keperluan yang dibuuhkan dalam merubah aa leak daabase, mempermudah mempermudah dalam penempaan dan memperbarui memperbar ui aplikasi"
3ni Tesing mempunyai peran pening dalan framework #aravel, dimana uni esing ini mempunyai banyak es unuk medeeksi dan mencegah regresi" 3ni esing ini dapa di$alankan melalui uilias “arisan command%line”
+uomaic paginaion menyederhanakan ugas dari penerapan halaman, mengganikan penerapan yang manual dengan meode oomais yang erinregrasi ke k e #aravel"
+++-
+N()ALA(+
+da iga cara dalam melakukan insalasi #aravel,
Mengunduhnya menggunakan ool insaller"
Mengunduh melalui Composer"
Mengunduh langsung melalui reposiori #aravel"
5alaupun alaupun cara cara keiga keiga mengund mengunduh uh langsung langsung berkasny berkasnyaa melalui melalui reposi reposiori, ori, namun namun eap eap dibu dibuu uhk hkan an Comp Compos oser er unu unuk k
memp memper erba baru ruii
menggunakan composer unuk insalasi"
kee keerrgan ganun unga gan n
libr librar ari" i" 6adi 6adi kia kia akan akan
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 keikan 1o23oser pada cmd kemudian ekan ener,
maka akan muncul ulisan C.MP.1/, ini arinya composer sudah erinsall" gambar '" Tampilan composer "
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" gambar )" uka cmd pada direkori 7ampp"
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"
#aravel elah berhasil diinsall dan siap digunakan"
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 &
-
uka file roues"php nya, ada di +ppHproues"php" Isi roue nya pasi 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 &
#alu coba kia buka dulu url nya conac adi,
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" 6adi srukur foldernya seperi ini &
#alu pada ela$arConroller meode inde7 di reurn view nya kia ubah $adi &
public function inde() { return view('belajarcontact'); Maka akan eap sama kan" lade conac yang berada pada folder ela$ar eap erpanggil"
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&
-
/efresh lagi url nya adi, hasilnya akan 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 &
1ekarang kia coba oper daa pake array, ikui scripnya pada +bouConroller seperi ini &
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/ ebsite sa.a : {88 *judul 88 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 mengakhiri nya menggunakan endforeach"
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 &
>aa idak diemukan sesuai dengan yang sudah saya $elaskan adi"
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, yaiu up dan down ,fungsimeode
up(! unuk
dan disiu hanya
erdapa dua
meode
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; use @lluminateK9atabaseK>loLuentKModel;
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 -
>an coba kia panggil url blog nya" Hasilnya &
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 : {{ *blogjudul /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) {{ *blog-judul /a/li : &endforeac! /ul &else p=ost tida" ada/p &endif &stop 2e &
NOudul
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 &
Maka daa urung kakak ua yang akan ampil, sesuai dengan link yang kia klik adi"
MEMBUAT CRUD LARAVEL HANA DENGAN . MENIT
-
Cara perama silahkan insall dulu laravel nya &
composer create-project --prefer-dist laravel/laravel lati!ancrud 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 "
Hasilnya &
-
1ekarang kia coba ambah dengan mengklik +dd ew Pos &
Hasil seelah diambah &
2ia $uga bisa unuk liha lebih deail daa nya dengan mengklik link pada ile &