Jika anda telah biasa membuat program secara prosedural, yakni menulis program-program dari baris pertama sampai dengan baris terakhir secara berurutan, konsep pemrograman berbasis objek ini menjadi hal baru yang sangat menarik.
Dalam tutorial pertama tentang OOP PHP ini, kita akan membahas pengertian Pengertian Pemrograman Berbasis Objek dalam PHP.
Pengertian Pemrograman Berbasis Objek
Pemrograman Berbasis Objek atau Object Oriented Programming (OOP) adalah sebuah tata cara pembuatan program (programming paradigm) dengan menggunakan konsep "objek" yang memiliki data (atribut yang menjelaskan tentang objek) dan prosedur (function) yang dikenal dengan method. (http://en.wikipedia.org/wiki/Object-oriented_programming)
Dalam pengertian sederhananya, OOP adalah konsep pembuatan program dengan memecah permasalahan dengan menggunakan objek.
Objek dapat diumpamakan dengan 'fungsi khusus' yang bisa berdiri sendiri. Untuk membuat sebuah aplikasi, berbagai objek akan saling bertukar data untuk mencapai hasil akhir.
Berbeda dengan konsep fungsi atau 'function' di dalam pemrograman, sebuah objek bisa memiliki data dan function tersendiri. Setiap objek ditujukan untuk mengerjakan sebuah tugas, dan menghasilkan nilai akhir untuk selanjutnya dapat ditampilkan atau digunakan oleh objek lain.
Fungsi Pemrograman Berbasis Objek dalam PHP
PHP bukan bahasa pemrograman yang 'murni' berbasis objek seperti Java. Bahkan, konsep OOP dalam PHP baru hadir dalam PHP versi 4, dan disempurnakan oleh PHP versi 5. Dengan kata lain, OOP di PHP merupakan 'fitur tambahan'. Anda tetap bisa membuat situs web dengan PHP tanpa menggunakan objek sama sekali.
Dalam studi pemrograman, pembuatan program tanpa menggunakan objek disebut juga dengan pemrograman prosedural atau pemrograman fungsional. Dikenal dengan pemrograman prosedural karena kita memecah kode program menjadi bagian-bagian atau fungsi-fungsi kecil, kemudian menyatukannya untuk menghasilkan nilai akhir.
Dengan membuat program secara prosedural, aplikasi bisa dibuat dengan cepat dan mudah dipelajari jika dibandingkan dengan pemrograman berbasis objek (bagi anda yang pernah mempelajari Java, tentu telah 'melewati' hal ini).
Keuntungan pemrograman berbasis objek baru terasa ketika program tersebut telah 'besar' atau kita bekerja dengan tim untuk membagi tugas. Konsep 'objek' untuk memisahkan program menjadi bagian-bagian yang berdiri sendiri akan memudahkan dalam membuat program.
Saya tidak akan panjang lebar menjelaskan tentang keuntungan atau kerugian menggunakan OOP. Sebagai programmer web, OOP adalah salah satu makanan wajib.
Pembuatan website modern saat ini akan lebih mudah jika menggunakan template kode program yang dikenal dengan framework. Daripada kita membuat situs mulai dari awal, menggunakan framework akan mempercepat proses kerja. Dan, framework PHP hampir semuanya dibuat menggunakan OOP.
Dalam tutorial pertama tentang OOP PHP ini, kita telah mempelajari tentang pengertian pemrograman berbasis objek. Dalam tutorial selanjutnya, kita akan mempelajari tentang pengertian class, object, property dan method dalam PHP.
itu nanti berarti fungsi2nya di simpen dalam file2 tersendiri gtu ya?
Maksudnya class sama objeknya y? tidak perlu kok, malah seluruhnya bisa ditulis dalam 1 halaman saja, tidak perlu dipisah.
Pemisahan class ke dalam halaman/file tersendiri lebih kepada kebiasaan atau aturan penggunaan terutama dalam framework PHP seperti Code Igniter.
bro, jadi lebih bagus mulai belajar oop pake framework atau gak?
Lebih bagus tanpa framework gan, contoh penggunaannya jadi lebih sederhana (minimal untuk sekedar tau fungsi-fungsi dan cara penulisan OOP PHP). Kalau langsung ke framework, konsep OOP yang digunakan sudah tingkat tinggi, jadi akan bingung jika tidak tahu dasar-dasar OOP.
setuju. klo gak tau dasar OOP mau masuk ke framework pun susah :( mau masuk ke KOnsep MVC juga susah
Gan saya mau tanya kalo sistemnya sperti lokomedia apa dia termasuk OOP?
Terima Kasih
Saya sendiri belum pernah menggunakan sistem lokomedia, tetapi dari yang saya tahu, dia termasuk kedalam aplikasi CMS gan.
CMS (Content Management System) adalah aplikasi web 'siap pakai' yang bisa digunakan untuk membuat website tanpa harus berurusan dengan kode program. Contoh lain dari CMS adalah WordPress, Joomla dan Drupal.
Di dalam kode program CMS ini tergantung programmernya, apakah akan menggunakan konsep OOP atau pemogrograman prosedural biasa. Akan tetapi kebanyakan memang menggunakan OOP, karena membuat CMS seperti lokomedia cukup rumit sehingga tidak cocok jika menggunakan sistem program prosedural.
Kalau source code yang digunakan pada CMS lokomedia masih prosedural, saya pernah memakainya
gan mau tnya kalau classnya disimpan dalam 1 file bukannya nanti dibilang bukan oop? karena konsepnya oop mempunya class yang didalamnya terdapat method atau fungsi yg digunakan untuk melakukan proses?
Dalam OOP tidak ada aturan tentang hal ini gan. Meletakkan sebuah class di dalam satu file khusus tujuannya agar lebih 'rapi' dan 'terstruktur'. Banyak Framework yang menggunakan sistem seperti ini, semata2 agar file-file class lebih tertata.
Untuk bisa disebut OOP tidak harus ada method kok, misalnya untuk absctract class atau interface. Di dalamnya tidak ada method yang bisa dipakai, tapi masih bagian dari OOP.
gan kemudian kita mengenal namanya mvc,jika view da controler dibuat satu dan hanya model yang dibuat terpisah apakh itu masih disebut dengan oop? apakah ketika di source code view didalamnya kita buat sintak untuk memanggil fungsi kemudian datnya diolah di view itu masih dibilang oop?
Semuanya tetap termasuk OOP gan. MVC (Model View Controller) hanyalah kumpulan aturan dan cara2 yang dipilih oleh programmer bagaimana memecahkan sebuah masalah. Dalam istilah programming, ini dikenal dengan sebutan Design Pattern. Masih banyak design pattern lain di dalam OOP, tapi MVC memang yang paling terkenal karena digunakan oleh banyak framework.
Menurut saya, selamat terdapat perintah class dan object, (apapun isinya) sudah termasuk OOP. Tapi apakah ini implementasi OOP yang baik dan benar? nah… baru kita periksa2 satu2 isinya…
Mungkin pertanyaan diatas agan cocoknya, apakah itu tetap dianggap sebagai MVC? hehe… Kalau untuk hal ini banyak argumen sih, tapi kecuali agan sedang membuat skripsi tentang implementasi MVC, saya rasa tidak masalah apakah ini MVC atau tidak. Selama kode program kita tetap berjalan sebagaimana mestinya :)
Nah, jadi apakah MVC ini apakah wajib digunakan untuk OOP atau opsional (mau digunakan atau tidak)?
Trims :)
MVC itu adalah sebuah aturan pemisahan kode program. MVC tidak harus pakai OOP. Saya bisa saja membuat 3 buah file menggunakan pemrograman prosedural dan ini dibilang sebagai MVC, selama saya mengikuti aturan pemisahan bagian "model", "view", dan "controller".
Tapi konsep OOP memang memudahkan pemisahan kode program, dan untuk itulah mayoritas framework PHP menggunakan OOP untuk membuat pemisahan M-V-C.
ini kok ada yg kopas gak pake sumber yukcoding.blogspot .com/2015/05/konsep-dasar-pemrograman-berorientasi.html
Iya ya, hampir semua tutorial di duniailkom ikut diembat :(
yg punya web: https://www.facebook.com/nurfawaiq
Terimakasih untuk infonya gan… :)
Iya nih, masih banyak blogger/penulis yang kurang menghargai karya orang lain. Bahkan lembaga kursus sebesar dum**school juga mengambil tulisan saya tanpa menyebutkan sumber. Beberapa blog juga sering men-copy semua tutorial yang ada di duniailkom (tanpa mencantumkan sumber).
Walaupun begitu, mudah2an ini dihitung sebagai amal ibadah saya untuk berbagi ilmu :)
Sekali lagi, terimakasih gan.. sudah mendukung duniailkom
jadi framework itu semacam fasilitas untuk "lazy programming" ya?
walaupun sebenarnya programmernya tidak lazy hehehe.
Betul gan, malah di dunia programmer sering disebut: "lazy programming is smart programming" :)
min, bisa gag jelasin contoh OOP yang sederhana dalam kehidupan sehari hari?
Sarannya ditampung y gan. Penggunaan OOP di praktek 'real'- nya cukup kompleks, karena harus dirancang dari awal pembuatan web.
oke gan. maksudnya bukan di web, di kehidupan sehari hari ja, min.
Jd jika kita menerapkan OOP d php, maka pengaksesan database memakai PDO ya min?
Bisa juga pakai mysqli kok gan, soalnya mysqli extension ada yang prosedural (pakai fungsi), ada pula yang berbasis object.
Apa berarti CMS itu termasuk OOP?
Lebih tepatnya CMS itu menerapkan prinsip OOP mas. Tapi tidak semuanya CMS, contohnya kode-kode WordPress lebih banyak menggunakan function daripada object.
Permisi gan, sebelumnya ane berterima kasih karena agan udah sharing banyak informasi seputar web programming.
Banyak banget pertanyaan di benak saya nih.
Banyak tutorial kan ya tersebar di mana-mana tentang OOP, tapi kan rata-rata hanya dasar ya.
Ketika coba iseng liat contoh aplikasi CRUD OOP (login register contohnya), kadang bingung kenapa harus dipecah-pecah sampai sekecil dan sedemikian mungkin. Mungkin otak saya masih error kali ya, kadang berpikir "ini buat apa coba dipecah lagi, kayaknya ga perlu deh". Pertanyaan-pertanyaan kayak gitu suka muncul di benak saya dan ketika saya ingin belajar mengaplikasikan OOP ke CRUD, saya juga masih belum mendapat gambaran tentang kelebihan OOP dan perbedaan kompleks serta keuntungan menggunakan OOP dalam sebuah aplikasi. Bisa dibantu ga gan pencerahannya?
Oh ya, untuk agan pribadi. Mana yang full power ya? Menggunakan framework atau custom (pure coding manual tanpa menggunakan framework)?
Ane pribadi udah belajar html css sebagai basic, nah ketika dicombine sama PHP suka bingung juga ya.
Kodenya campur aduk gitu jadi pusing sendiri, pas baca-baca ternyata ada yang namanya konsep MVC.
Sayangnya di sini belum dishare tutornya :(
By the way kalau mau bisa MVC, kita harus paham OOP dulu atau nggak ya gan? Karena ane pribadi stress dan bingung belajarnya stack diulang-ulang itu lagi itu lagi karena masalah ini.
Kode yang super banyak, tercampur aduk, pusing bacanya dan akhirnya buyar dan delete file .php
Maaf banget ya gan kalau banyak banget pertanyaan, kalau agan bisa memberikan pencerahan ya ane bersyukur dan berterima kasih banget. Kalau memang ga bisa bantu juga gapapa gan.
Terima kasih banyak gan sebelumnya.
Terimakasih pertanyaannya gan, mungkin juga mewakili rekan2 yang lain yang sedikit bingung dengan implementasi dari OOP PHP. Di dalam tutorial ini saya juga menggunakan contoh yang sangat sederhana. Beberapa kali juga sering ditanya "praktek asli dari OOP ini seperti apa?"
Menurut saya, OOP baru pas digunakan untuk program atau proyek besar. Jika agan ingin membuat sebuah CRUD sederhana atau sistem informasi sekolah (untuk tugas), tidak cocok dengan OOP. Karena seperti yang agan bilang, konsep OOPnya akan membuat bingung. Kode yang seharusnya sederhana malah dibikin panjang dan dipecah lagi untuk OOP. Untuk aplikasi seperti ini, prosedural programming PHP-lah yang lebih efisien.
OOP PHP baru terasa gunanya jika kita membuat proyek besar (yang akan berkembang terus menerus), atau jika kita ingin membuat semacam library yang digunakan oleh orang lain. Keuntungan dari OOP adalah pada saat pengembangan aplikasi, bukan pada saat pembuatan. Membuat sebuah aplikasi dengan OOP jauh lebih sulit daripada procedural programming. Tapi jika webnya sering update atau penambahan fitur2 baru, OOP lebih mudah dikelola.
Betul gan, sebelum ke MVC (yang biasanya ada di framework), agan wajib hukumnya paham OOP. Minimal ngerti apa itu inheritance, encapsulation, method, property, dan constructor.
Jika baru2 belajar OOP, sebaiknya pakai framework yang sudah jadi saja gan. Biar kita paham bagaimana best practice cara penggunaan OOP. Menggunakan framework juga sangat efisien daripada agan membuat sendiri. Misalnya untuk mengakses database, kita sudah tinggal manggil method2 saja. Untuk keamanan form juga sudah disediakan.
Apabila sudah ngerti garis besar penggunaan framework dan bisa membaca source code asli framework itu, jika agan ingin buat dari nol, sudah g masalah.
Saya mau nanya nih efek dari inheritence itu apa ya?
Silahkan lanjut baca2 tutorial OOP PHPnya gan, inheritance saya bahas di Part 9. Tp sebelum kesana, harus paham dulu dasar OOP-nya dari part 1-8.
Saya mau menanyakan, dalam sintaks OOP di PHP mana yang disebut objek, method, dan atribut?
Thanks
Silahkan lanjut baca2 tutorialnya gan. Pengertian object, class, property dan method akan dibahas dengan lebih detail.
susuai kebutuhan aje lahhhhhh ane mah….
yang penting ada hasil n tujuan tercapai
mau OOP … mau prosedural….blaaa…blaaa.bllaaa..
YANG PENTING bikin program, hasilnya dapat RUPIAH….heeee….
Hehe, betul gan… kita sekolah, kuliah, dan belajar programming ujung2nya juga buat cari makan. Selama programnya jalan, client senang, tujuan project tercapai, metode apapun yang digunakan g masalah :)
Mantap duniailkom
makasi ilmu nya gan. :)
gan minta penjelasan kenapa nama class huruf awal nya harus besar, lalu kenapa nama method pada kata kedua harus besar, minta penjelasan juga tentang simbol "->" & "::"
G ada aturan harus membuat nama class dengan huruf besar atau kecil di dalam PHP. Yang mengharuskan seperti itu biasanya ketika agan menggunakan Framework.
Untuk simbol2 itu memang sudah bawaan PHP dan sudah dari sananya. Silahkan agan pelajari seluruh tutorial OOP disini, nanti akan dibahas tentang fungsi simbol2 itu.
gan, anggap aja ane disuruh bikin website pake codeigniter. nah pembuatan website ini harus OOP berdasarkan perancangan class diagram yang udah dibuat sebelumnya. pertanyaan ane, class2 yang ada di class diagram itu diimplentasiin ke kodingan di codeigniternya gimana ya gan? apakah jadi controller, atau jadi model? terus penggunaan atribut2nya juga gimana ya gan?
mohon bantuannya gan, ane lagi bikin tugas akhir nih :')
Hehe, soal teori seperti ini saya sudah lupa semua. Ada bagusnya agan buat program dulu pakai CI, setelah jadi baru buat ulang class diagramnya (sesuaikan dengan web-nya). Karena sangat mungkin selama proses pembuatan coding nanti ada sesuatu yang lupa, trus terpaksa revisi lagi class diagramnya.
Bener itu saya buat program dulu (untuk skripsi) baru UML dan diagram2 lainnya, namanya "reverse engineering" itu gan. :)
Mantap dunia ilkom.. gak cuma baca post, baca komentarnya pun bermanfaat.. thx
Siip… :)
Terimakasih atas ilmu nya yg sangat bermanfaat. Artikel2 disini semuanya sangat mudah dipahami :)
saya lihat mas andre pengetahuan tentang dunia pemrograman sangat luas. Hehe..
Saya ada pertanyaan
Pertanyaan pribadi sih, tp boleh kan? ? mas andre dlm mengelola situs dunia ilkom & pembuatan e-book semuanya dilakukan sendiri atau ada tim-nya?
Saya penasaran aja. Situs bagus, artikel nya lengkap & mudah dipahami + komentarnya juga sering dibalas, bahkan komentar yg harus dijawab dengan penjelasan agak panjang pun di bls..
Btw tetep maju trus duniailkom, untuk terus kasih ilmu yg bermanfaat khususnya tntang pemrograman untuk semua. :)
Sama2, terimakasih untuk dukungannya… saya juga senang tutorial yang ada di duniailkom bisa bermanfaat…
Saat ini duniailkom masih saya kelola sendiri. Hanya saja memang ketika fokus menulis eBook, update tutorial di duniailkom jadi ketinggalan. Seiring waktu mungkin saja nanti akan punya tim khusus, tapi nyari programmer yang bisa nulis plus tulisannya bisa mudah dipahami memang g gampang :D
mau tanya min, kalo oop pada program letaknya bagian mana ?
min, apakah bener letak oop terdapat pada class diagram ?
mengapa dan apa alasannya ?
mohon bantuan jawabannya min, soalnya ini lg ngerjain tugas akhir :)
Terimakasih :)
Saya juga kurang paham soal teori seperti ini. Yang jelas OOP ini hanya cara lain penulisan kode program. Sebuah program / aplikasi tidak harus pakai konsep OOP.
Setahu saya class diagram itu dipakai untuk menjelaskan alur kerja program yang menggunakan OOP (menjelaskan apa fungsi dan peranan dari setiap class). Kalau pertanyaannya "apakah bener letak oop terdapat pada class diagram?" saya juga bingung, karena justru class diagram itu seharusnya menjelaskan penggunaan OOP.
Mungkin bisa dibedakan dulu apa itu pemrograman berbasis object, apa itu pemrograman prosedural, dan apa fungsi class diagram. Untuk lebih jelasnya bisa konsultasi dengan dosen pembimbing skripsi.
Kalo misalnya ada 2 program websaite dan android dimana letak oop antara kedua program tersebut?
Konsep OOP ini hanya pilihan, bukan sebuah keharusan. Kalau programmernya pengen pakai OOP, silahkan. Kalau tidak juga g masalah…
Belum tentu sebuah program website menggunakan OOP PHP, bisa jadi hanya pemrograman procedural saja. Kalau untuk android biasanya memang harus pakai OOP karena basisnya bahasa JAVA yang memang tidak menyediakan pemrograman procedural.
oke terimakasih min :)
Apakah semua tutorial bahasa pemrograman di situs ini, anda sendiri yang nulis ???, kalo iya, wow, banyak sekali ngerti bahasa pemrogramanya….,,, kalo boleh tau sejak umur berapa mulai belajar bahasa pemrograman, karena anak saya juga suka komputer kayaknya,,, hehehe…..
Yup betul pak… :)
Sebenarnya setiap mahasiswa di jurusan IT / Ilmu Komputer akan belajar banyak bahasa pemrograman seperti ini, bahkan lebih. Hanya saja ada yang paham sedikit dan paham banyak (plus rajin2 baca buku).
#ask mau tanya metode oop itu ada tahapan nya apa aja ya gan
Setahu saya tidak ada tahapan khusus untuk membuat program dengan metode OOP (untuk praktek coding sehari2). Tapi kurang tau juga jika guru atau dosennya mengharuskan tahap2 tertentu.
masih kurang paham dengan konsep OOP nya,
cara penjelasan yang lebih sederhana gak min? atau cara lain agar dapat dengan mudah memahami konsep oop ini?
Menurut saya tutorial OOP PHP di duniailkom ini sudah cukup sederhana (berdasarkan komentar dari teman2 lain). Tapi untuk bisa memahaminya memang harus punya basic PHP biasa dulu (procedural). Boleh dibaca secara berurutan seluruh tutorial PHP dasar di web duniailkom, lalu baru lanjut ke OOP PHP ini.
sudah beberapa aplikasi saya buat menggunakan PHP, tp native (tanpa framework). Apakah OOP bisa diterapkan tanpa framework ?
Yup bisa, konsep OOP ini hanya untuk mempermudah pembuatan aplikasi, terutama yang kompleks. Mayoritas framework memang menggunakan OOP karena lebih mudah membuat aplikasi besar menggunakan OOP daripada PHP prosedural (tanpa OOP).
Tapi kalau aplikasinya sederhana dan hanya terdiri dari 1 – 5 halaman, maka akan lebih cepat jika tanpa OOP.
mau tanya mas Andre..apakah penulisan semua program dengan OOP, itu penulisan programnya sudah baku,, atau bisa dengan cara yang lain lagi?
Kalau maksud "penulisan program" disini adalah perintahnya, maka itu memang baku dan sudah dari PHP, misalnya untuk membuat class pakai perintah seperti ini:
class NamaClass {
// isi class
}
Tidak ada cara lain untuk membuat class.
Tapi kalau yang dimaksud kode program untuk mencari solusi dari sebuah masalah, itu bisa beda2 tergantung alur berfikir yang dipakai (algoritma). Misalnya kode program untuk mengurutkan beberapa angka (sorting), itu ada banyak cara.