Transcription

Bikin Fr amewor k PHP Sendiridengan Teknik OOP dan MVCDAVID NAISTACV. LOKOMEDIA

Bikin Framework PHP Sendiri dengan OOP & MVCPerpustakaan Nasional : Katalog Dalam Terbitan (KDT)Penulis : David NaistaBikin Framework PHP Sendiri dengan Teknik OOP dan MVC- Cet. I. - Yogyakarta : Penerbit Lokomedia, 2016183 halaman; 14 x 21 cmISBN : 978-602-62310-0-0Penerbit Lokomedia,Cetakan Pertama : April 2016Editor : Lukmanul HakimCover : Subkhan AnshoriLayout : Lukmanul HakimDiterbitkan pertama kali oleh :CV. LOKOMEDIAJl. Jambon, Perum. Pesona Alam Hijau 2 Kav. B-4, KricakYogyakarta 55242.email : [email protected] : www.bukulokomedia.comCopyright Lokomedia, 2016Hak Cipta dilindungi oleh Undang-UndangDilarang memperbanyak, mencetak ataupun menerbitkan sebagianmaupun seluruh isi buku ini tanpa izin tertulis dari penerbit.ii

KATA PENGANTARPuji dan syukur penulis panjatkan ke hadirat Tuhan Yang Maha Esa, atas berkatdan rahmat-Nya, penulis dapat menyelesaikan buku dengan judul “BikinFramework PHP Sendiri dengan Teknik OOP dan MVC”.Buku ini tidak akan selesai kepada pembaca tanpa bantuan dari berbagai pihak.Oleh karena itu, penulis menyampaikan terima kasih kepada:1.Allah SWT, tanpa semua nikmat dan rahmatnya penulis tidak bisamenyelesaikan penulisan buku ini.2.Kedua Orang Tua (Naimin Suhanda & Sri Utami), Adik (Edwin Naista) dansaudara-saudara penulis yang selalu memberikan support.3.Bapak Ferdian Rahabista dan Ibu Dwi Retno Wahyuningsih.4.Kepala Sekolah Ibu Hj Suindriyati, S.Pd, M.Pd dan semua Guru SMKNegeri 3 Metro.5.Sekar Pratiwi, Mas Virgiawan Listanto, Mas Oky Trilupito, Vive VioPermana, Ariyanto, Risky Pangestu, Nur Kholis, Bayu Hadi Dirgantara,Adam Wirayuda, Iqbal May,Muhammad Try Wibowo, Daim Kurniawan,Koh Hantze Sudarma, Koh Dennise Adrianto, Kak Iqbal Maulana, AjiGumelar, Eric Yoman, Mahesa Indrajaya, Nicho Anggara, Adam Ridwany,Rian Nur Adli serta semua teman-teman dari Id-Webmaster, MetroCrew,TC ASC & WSC, Silpi Lovers dan teman kuliah BINUS yang tidak bisadisebutkan satu per satu.6.Semua pihak yang turut membantu penulisan buku ini yang juga tidak bisapenyusun sebutkan satu persatu.7.Serta para pembaca buku ini.Tak ada gading yang tak retak. Demikian pula, tak ada karya yang sempurna.Oleh karena itu, penulis mengharapkan kritik dan saran dari buku ini.Diharapkan buku ini dapat memberikan pengetahuan bagi teman-teman pembacatentang apa itu OOP (Object Oriented Programming) PHP dan bagaimanamembuat framework sendiri dengan konsep MVC (Model View Controller).iii

Akhir kata, semoga semua materi didalam buku ini dimengerti oleh pembaca dandapat berguna dalam dunia kerja.Jakarta, Februari 2016David [email protected]

DAFTAR ISIBAB 1. Pengertian dan Konsep.11.1. Bahasa Pemrograman dan Bahasa Markup.21.2. Apa itu Framework?.51.3. Apa itu OOP?.71.3.1. Pengertian OOP.71.3.2. Kenapa Harus OOP?.71.3.3. Prosedural Vs OOP.81.4. Apa itu MVC?.10BAB 2. Object Oriented Programming PHP.132.1. Pengenalan OOP PHP.142.2. Sintak-Sintak OOP.14BAB 3. Bikin Framework PHP Sendiri.253.1. Pendahuluan.263.2. Membuat Susunan Folder.263.3. Membuat File Utama dan File Konfigurasi.273.3.1. Membuat File Utama (index.php).273.3.2. Membuat File Konfigurasi (config.php).293.4. Membuat Library.313.4.1. Library Database.313.4.2. Library Resultset.363.4.3. Library Controller.37v

3.4.4. Library Model.393.4.5. Library View.423.5. Membuat Halaman Default.443.5.1. Membuat Controller (HomeController.php).443.5.2. Membuat View (welcome.view.php).46BAB 4. Proyek Membuat Website Sekolah dengan Framework Sendiri.494.1. Mempersiapkan Database dan Tabel-Tabelnya.504.2. Membuat Halaman Pengunjung.544.2.1. Setting File Konfigurasi.544.2.2. Membuat Template Halaman Pengunjung (Front End).564.2.3. Halaman Home.664.2.4. Halaman Buku Tamu.694.2.5. Halaman Siswa.744.2.6. Halaman Detail Siswa.774.2.7. Halaman Alumni.814.2.8. Halaman Detail Alumni.844.2.9. Halaman Guru.854.2.10. Halaman Detail Guru.884.2.11. Halaman Tentang Sekolah.914.2.12. Halaman Kontak Kami.934.2.13. Halaman Artikel (Berita).964.2.14. Halaman Detail Artikel.984.2.15. Halaman Kategori Artikel.1014.2.16. Halaman Detail Kategori.102vi

BAB 5. Membuat Halaman Administrator dgn Framework Sendiri.1055.1. Setting File Konfigurasi untuk Administrator.1085.2. Membuat Template Halaman Administrator.1085.3. Dashboard (Halaman Utama Administrator).1145.4. Halaman Login.1205.5. Modul Buku Tamu.1255.6. Modul Kategori Artikel.1285.7. Modul Artikel.1365.8. Modul Jurusan.1475.9. Modul Siswa.1485.10. Modul Alumni.1635.11. Modul Guru.1655.12. Modul Tentang Sekolah.1665.13. Modul Kontak Kami.1695.14. Modul User.1705.15. Penutup.183vii

Halaman ini Sengaja Dikosongkanwww.bukulokomedia.comviii

BAB IPengertian dan Konsep

BAB 1Pengertian dan KonsepHai teman-teman. Salam olahraga!. Akhirnya kita sampai di Bab 1, silahkanpakai sabuk pengaman, karena perjalanan kita akan segera dimulai hehe. Jadi,di bab ini untuk awal-awal kita belajar mengenai pengertian dan konsep terlebihdahulu, kalau misalnya kita langsung koding aja tanpa tahu konsep, kan nanti bisajadi suram/buta konsep. Oke, langsung saja kita mulai:1.1 Bahasa Markup dan Bahasa PemrogramanMenurut Wikipedia, bahasa pemrograman atau sering di istilahkan juga denganbahasa komputer adalah instruksi standar untuk memerintah komputer.Bahasa pemrograman ini merupakan suatu himpunan dari aturan sintaks dansemantik yang dipakai untuk mendefinisikan program komputer. Bahasaini memungkinkan seorang programmer dapat menentukan secara persis datamana yang akan diolah oleh komputer, bagaimana data akan disimpan, dan jenislangkah apa secara persis yang akan diambil dalam berbagai situasi.Dari pengertian tersebut, dapat disimpulkan bahasa pemrograman adalah bahasayang menghubungkan antara kita dengan komputer. Berikut adalah contohcontoh bahasa pemrograman yang kita gunakan dalam membuat sebuah website:1.HMTLHyperText Markup Language atau lebih singkatnya HTML adalah bahasamarkup yang digunakan untuk membuat sebuah halaman web,menampilkan berbagai informasi di dalam sebuah penjelajah web Internetdan pemformatan hiperteks sederhana yang ditulis dalam berkas formatASCII agar dapat menghasilkan tampilan wujud yang ter-integerasi.Dengan kata lain, berkas yang dibuat dalam perangkat lunak pengolah katadan disimpan dalam format ASCII normal, sehingga menjadi halaman webdengan perintah-perintah HTML. Jadi, disini belum ada yang namanya for,if, while, do while dan lain-lain, karena di HTML ini hanya menjadi tampilandasar atau tampilan depan dari sebuah website. Dengan HTML, kita bisamembuat sebuah website statis.2Bikin Framework PHP Sendiri dengan OOP & MVC

2.CSSCascading Style Sheet atau lebih singkatnya CSS merupakan aturan untukmengendalikan beberapa komponen dalam sebuah web sehingga akan lebihterstruktur dan seragam.Jadi, dengan CSS ini kita bisa membuat halaman website yang darihtml tadi menjadi lebih indah, dengan adanya CSS maka kita bisamenambahkan style pada HTML, sehingga tampilan bisa menjadi lebih enakdilihat. Makanya banyak orang yang bilang “you are CSS in my HTML”(jiah malah gombal).3.ASPActive Server Pages atau lebih singkatnya ASP adalah salah satu bahasapemrograman web untuk menciptakan halaman web yang dinamis. ASPmerupakan salah satu produk teknologi yang disediakan oleh Microsoft.ASP di proses melalui web server dan hasil proses ini menghasilkan HTMLyang akan dikirimkan melalui penjelajah web (browser). ASP bekerja padaweb server dan merupakan server side scripting. Dengan adanya ASP, makakita bisa mengubah website yang kita buat statis dari HTML tadi menjadiwebsite dinamis.4.XMLExtensible Markup Language atau lebih singkatnya XML adalah bahasamarkup untuk keperluan umum yang disarankan oleh W3C untuk membuatdokumen markup keperluan pertukaran data antar sistem yangberaneka ragam.XML merupakan kelanjutan dari HTML (HyperText Markup Language)yang merupakan bahasa standar untuk melacak Internet.5.WSDLWeb Services Description Language atau lebih singkatnya WSDLadalah fromat XML yang diterbitkan untuk menerangkan web service.WSDL mendefinisikan: Pesan-pesan (baik yang abstrak dan kongkrit) yang dikirim ke danmenuju web service Koleksi-koleksi digital dari pesan-pesan (port type, antarmuka) Bagaimana port type yang ditentukan dijadikan wire protokol di manaservis ditempatkanBab I. Pengertian dan Konsep3

6.PerlPerl adalah bahasa pemrograman untuk segala keperluan. Perldikembangkan pertama kali oleh Larry Wall di mesin Unix. Perl dirilispertama kali pada tanggal 18 Desember 1987 ditandai dengan keluarnyaPerl 1. Pada versi-versi selanjutnya, Perl tersedia pula untuk berbagai sistemoperasi varian Unix (SunOS, Linux, BSD, HP-UX), juga tersedia untuksistem operasi seperti DOS, Windows, PowerPC, BeOS, VMS, EBCDIC,dan PocketPC.Dukungan terhadap pemrograman berbasis obyek (OOP) ditambahkanpada Perl 5, yang pertama kali dirilis pada tanggal 31 Juli 1993. Proyekpengembangan Perl 6 dimulai pada tahun 2000, dan masih berlangsunghingga kini tanpa tanggal yang jelas kapan mau di rilis. Ini dikatakan sendirioleh Larry Wall dalam satu pidatonya yang dikenal dengan seri The State ofthe Onion.7.JavaScriptJavaScript adalah bahasa skrip client side yang populer di Internetdan dapat bekerja di sebagian besar web browser populer seperti InternetExplorer (IE), Mozilla Firefox, Netscape dan Opera.Kode JavaScript dapat disisipkan dalam halaman web menggunakan tag script . Dengan adanya JavaScript ini, kita bisa membuat website yangkita buat menjadi lebih menarik dengan animasi-animasi yang bisa di buatmenjadi interaktif, contohnya ketika kita mau login, kemudian muncul alertketika kita kosongkan fieldnya, dan lain-lain.8.SQLStructured Query Language atau lebih singkatnya SQL adalah sebuah bahasayang digunakan untuk mengakses data dalam basis data relasional.Bahasa merupakan bahasa standar yang digunakan dalam manajemen basisdata relasional. Saat ini hampir semua server basis data yang ada mendukungbahasa ini untuk melakukan manajemen datanya.9.PHPHypertext Preprocessor atau lebih singkatnya PHP adalah bahasa skripyang dapat ditanamkan atau disisipkan ke dalam HTML. Dengan PHP,kita dapat membuat website menjadi dinamis. PHP banyak dipakai oleh paraprogrammer website. PHP dapat digunakan untuk membangun sebuah CMS(Content Management System).4Bikin Framework PHP Sendiri dengan OOP & MVC

1.2 Apa itu Framework?Nah, salah satu materi pelajaran kita adalah membuat website dinamismenggunakan framework sendiri. Untuk itu, kita harus tahu dulu apa pengertiandari framework itu sendiri. Menurut wikipedia ”Framework adalah suatu strukturkonseptual dasar yang digunakan untuk memecahkan atau menangani suatumasalah kompleks.”.Jadi, singkatnya framework adalah wadah/kerangka kerja dari sebuah websiteyang akan kita bangun. Dengan adanya kerangka kerja tersebut, maka kita bisalebih mempercepat waktu dalam pembuatan website sekaligus memudahkanmelakukan perbaikan dari sebuah website.Berikut beberapa contoh framework yang sering digunakan oleh banyak orang:1.CodeIgniterCodeIgniter merupakan aplikasi open source yang berupa framework PHPdengan model MVC (Model, View, Controller) untuk membangunwebsite dinamis dengan menggunakan PHP.CodeIgniter memudahkan developer untuk membuat aplikasi web dengancepat mudah dibandingkan dengan membuatnya dari awal. CodeIgniterdirilis pertama kali pada 28 Februari 2006. Versi stabil terakhir adalah versi3.0.3.2.CakePHPCakePHP merupakan sebuah rapid development framework yang gratisdan open source untuk PHP. CakePHP adalah sebuah framework ataukerangka kerja untuk membuat aplikasi CRUD (Create, Read, Update,Delete) berbasis bahasa pemrograman PHP.CakePHP juga menjadi salah satu framework pilihan yang memungkinkanseorang dpengembang web untuk membuat sebuah aplikasi dengankarakter pengembangan RAD (Rapid Application Development), yangmemungkinkan untuk digunakan dan dikembangkan menjadi aplikasi lainyang lebih kompleks.3.LaravelLaravel merupakan web application framework berbasis PHP yang opensource, menggunakan konsep Model–View–Controller (MVC). Laravelberada dibawah lisensi MIT License, dengan menggunakan GitHub sebagaitempat berbagi kode.Bab I. Pengertian dan Konsep5

Desember 2013, Laravel menempati PHP framework terpopuler danberada diatas PHP framework lain seperti Phalcon, Symfony2, CodeIgniterdan lainnya.4.Phalcon.Phalcon adalah salah satu framework PHP yang populer. PerbedaanPhalcon dari framework PHP yang lainnya adalah bahwa Phalcon diimplementasikan dalam bentuk PHP extension.Phalcon menyediakan extension, sehingga tidak perlu diinstal secara manualoleh pengguna.5.Yii FrameworkYii adalah framework PHP berbasis-komponen dan berkinerja tinggiuntuk pengembangan aplikasi web berskala besar.Yii menyediakan reusability maksimum dalam pemrograman Web danmampu meningkatkan kecepatan pengembangan secara signifikan. NamaYii (dieja sebagai /i:/) singkatan dari “Yes it is!”.6.ZendZend Framework (ZF) merupakan web application framework berbasisPHP open source, berorientasi objek kerangka aplikasi web yang diimplementasikan di PHP 5 dan berlisensi di bawah Lisensi New BSD.7.PHPixiePHPixie dimulai sebagai kerangka mikro dan secara bertahapberkembang menjadi salah satu kerangka kerja PHP FullStackpaling populer, namun tetap mempertahankan kinerja tinggi. Hal inidikarenakan arsitektur ketat yang menghindari perangkap umum sepertiketergantungan pada metode statis, lingkup global, lajang dan antipatternslainnya, dengan demikian juga memastikan bahwa kode mudah dibaca,debug, memperluas dan tes.Bahkan semua komponen PHPixie mengandalkan cakupan unit test penuh.Ini adalah kerangka PHP yang tidak akan pernah berdiri di jalan Anda danmemberi Anda kontrol penuh atas aliran eksekusi, mudah untuk belajar danmudah untuk menguasai.8.SymfonySymfony adalah sebuah framework lengkap yang didesain untukmengoptimalkan pengembangan aplikasi berbasis web dengan6Bikin Framework PHP Sendiri dengan OOP & MVC

menyuguhkan beberapa fitur-fitur andalan.Untuk pemula, Symfony mengelompokkan aturan-aturan bisnis aplikasi(business rules), lokiga server, dan tampilan presentasi. Symfonymenyediakan bermacam-macam alat dan class-class yang ditujukan untukmemperpendek waktu pengembangan sebuah aplikasi web yang komplek.Sebagai tambahan, Symfony mengotomatisasi tugas-tugas umum sehinggapengembang dapat memfokuskan diri pada spesifikasi aplikasi secarakeseluruhan. Sebagai hasil akhir, dengan kelebihan-kelebihan ini berartibahwa tidak perlu lagi menemukan (reinvent the wheel) ketika sebuahaplikasi web baru akan dibangun.1.3 Apa itu OOP?1.3.1 Pengertian OOPOOP (Object Oriented Programming) adalah suatu metode pemrogramanyang berorientasi kepada objek. Tujuan dari OOP diciptakan adalah untukmempermudah pengembangan program dengan cara mengikuti modelyang telah ada di kehidupan sehari-hari.Jadi, setiap bagian dari suatu permasalahan adalah objek. Nah, objek itu sendirimerupakan gabungan dari beberapa objek yang lebih kecil lagi. Saya ambil contohmobil. Mobil adalah sebuah objek. Mobil itu sendiri terbentuk dari beberapaobjek yang lebih kecil lagi seperti mesin, roda, spion, kursi, dan sebagainya.Mobil sebagai objek yang terbentuk dari objek-objek yang lebih kecil salingberhubungan, berinteraksi, berkomunikasi dan saling mengirim pesan kepadaobjek-objek yang lainnya.Begitu juga dengan program, sebuah objek yang besar dibentuk dari beberapaobjek yang lebih kecil, objek-objek itu saling berkomunikasi, dan saling berkirimpesan kepada objek yang lain.1.3.2 Kenapa Harus OOP?Kenapa harus OOP? Itu adalah pertanyaan yang sering ada, karena dengan OOPbiasanya orang berpikir “kenapa menggunakan OOP, cuman bikin ribet aja”. Iyamemang dengan menggunakan OOP pembuatan program akan menjadi lebihlama, tapi menjadi lebih memiliki struktur. Dengan menggunakan OOP, kitaBab I. Pengertian dan Konsep7

jadi bisa lebih mudah mengerjakan sebuah proyek website dengan tim kita,karena OOP dari manapun konsepnya akan sama, sehingga Programmer yangmengetahui OOP akan dengan mudah bisa membaca kode kita dibandingkandengan kode yang dijalankan secara Prosedural.Selain itu, dengan OOP apabila terjadi error, kita hanya mengubah 1 class yangmenyebabkan error tersebut dan tidak mempengaruhi class lain. Jadi lebihmudah untuk proses perbaikan atau perubahan dalam aplikasi.1.3.3 Prosedural Vs OOPApabila dibandingkan antara prosedural dengan OOP, masing-masing memilikikelebihan dan kekurangan, yaitu:Kelebihan Prosedural: Efektif digunakan untuk menyelesaikan masalah kecil. Memperhatikan urutan langkah-langkah perintah secara sistematis, logis ,dan tersusun berdasarkan algoritma yang sederhanaKekurangan Prosedural: Tidak cocok untuk menyelesaikkan masalah yang rumit, karena nantinyaakan kesulitan menemukan solusi permasalahan ketika terjadi error.Kelebihan OOP: Data dan fungsi dibungkus dalam class-class atau objek-objek. Efektif digunakan untuk menyelesaikan masalah besar, karena OOP terdiridari class-class yang memisahkan setiap kode program menjadi kelompokkelompok kecil, sesuai dengan fungsinya. Fungsi-fungsi algoritma yang terbagi menjadi beberapa class dapatmemudahkan kita dalam memahami program, begitu juga ketika adabug pada program, kita bisa lebih mudah menemukan penyebab errornyadibanding ketika menggunakan prosedural programming. Object dan class dapat digunakan berkali-kali, sehingga dapat menghematspace memori.Kekurangan OOP: 8Programmer yang telah terbiasa membuat program dengan konsep Proseduralsering merasa kesulitan ketika dihadapkan dengan OOP. Biasanya “mereka”Bikin Framework PHP Sendiri dengan OOP & MVC

bingung dengan banyaknya istilah-istilah dalam OOP.Apabila perbandingan Prosedural dan OOP dalam bentuk tabel bisa dilihatsebagai berikut:ProseduralOOPFokus utama pada fungsi danprosedur yang beroperasi pada data.Menekankan pada data yangsedang beroperasi dan tidak fungsiatau prosedur.Program besar terbagi dalamprogram unit kecil disebut fungsi.Program dibagi ke dalam apa yangdisebut objek.Data dan fungsi diperlakukansebagai entitas terpisah.Datadandiperlakukanterpisahkan.Data bebas bergerak di sekitarsistem dari satu fungsi lain.Data tersembunyi dan tidak dapatdiakses oleh fungsi eksternal.Data bersifat pasif.Objek-objek dalam OOP aktif.Program desain dengan pendekatan“Top Down” yaitu tugas-tugaskompleks dipecah menjadi bagianyang lebih kecil, sampai sub-tugastersebut mudah diimplementasikan.Programdesainpendekatan“Bottom Up” yaitu membuatprosedur2 untuk menyelesaikantugas-tugas yang sederhana, lalumenggabungkan prosedur2 tsbdlm prosedur yg lebih kompleks,sampai fungsionalitas tercapai.fungsibersamasebagaientitasBab I. Pengertian dan Konsep9

1.4 Apa itu MVC?Model-View-Controller atau disingkat MVC adalah sebuah metode untukmembuat sebuah aplikasi dengan memisahkan antara data (Model) daritampilan (View) dan cara bagaimana memprosesnya (Controller).Dalam implementasinya, kebanyakan framework dalam aplikasi websiteberbasis arsitektur MVC. MVC merupakan suatu konsep yang cukup populerdalam pembangunan aplikasi web. MVC memisahkan pengembangan aplikasiberdasarkan komponen utama yang membangun sebuah aplikasi, sepertimanipulasi data, user interface, dan bagian yang menjadi pengontrol aplikasi.Terdapat tiga jenis komponen yang membangun suatu pola MVC dalam suatuaplikasi yaitu:1.ViewView merupakan bagian yang menangani presentation logic. Pada suatuaplikasi web, bagian ini biasanya berupa file template HTML yang diaturoleh Controller. View berfungsi untuk menerima dan merepresentasikandata kepada user. Bagian ini tidak memiliki akses langsung terhadap bagianModel.2.ModelModel biasanya berhubungan langsung dengan database untukmemanipulasi data (Insert, Update, Delete, Search), menangani validasidari bagian Controller, namun tidak dapat berhubungan langsung denganbagian View.3.ControllerController Merupakan bagian yang mengatur hubungan antara bagian Modeldan bagian View. Controller berfungsi untuk menerima request dan datadari user, kemudian menentukan apa yang akan diproses oleh aplikasi.Sebenarnya sistem dari MVC cukup sederhana, membeda-bedakan setiap bagiansesuai dengan fungsinya. Jadi, halaman yang di request oleh user akan dikontrol oleh Controller, lalu Controller akan memberikan tampilan kepadauser yaitu View, dan untuk bagian data akan di atur oleh Model.Kesimpulannya, Controller berurusan dengan kontrol, Model berurusan dengandata dan database, View adalah tampilan yang kita lihat. Untuk lebih jelasnya,alur MVC bisa dilihat pada gambar 1.1.10Bikin Framework PHP Sendiri dengan OOP & MVC

Gambar 1.1 Alur MVC (Model View Controller)Bab I. Pengertian dan Konsep11

6. Perl Perl adalah bahasa pemrograman untuk segala keperluan. Perl dikembangkan pertama kali oleh Larry Wall di mesin Unix. Perl dirilis pertama kali pada tanggal 18 Desember 1987 ditandai dengan keluarnya Perl 1. Pada versi-versi selanjutnya, Perl tersedia pula untuk berbagai sistem