hampir semua belajar dari channel ini dari awam sampai jadi bisa padika keren... video pa dika akan selalu aku tunggu bahkan lebih diutamakan dari pada nunggu updatean anime atau kdrama hahaha... please pa dika banyakin contoh kasus... sehat selalu rejeki lancar pahalanya terus ngalir amiin
Paham gua, jadi si abstract ini tujuanya hanya untuk signature alias kerangkanya doang supaya kalo mengerjakan project secara tim, tau mana method method yg harus ada di setiap classnya. di class Game & Komik method getInfo() kenapa diganti ke $this tdk pakai parent:: ? karena dia sifatnya bukan lagi sebagai overriding. Terus si abstract methodnya juga ga error karena di class Game & Komik sudah dia panggil, yaitu public function getInfoProduk();
Izin meberi penjelasan maaf kalau salah, abstrak itu bertujuan sebagai interface bisa dibilang blue print, contoh divideo methode getinfoproduk() untuk mencetak informasi produk, methode itu akan digunakan childnya dengan fungsi yang sama, jadi memudahkan tim untuk memahami saat membaca program. Selain itu penggunaan class abstrak juga berfungsi sebagai compotition over inherintance yaitu lebih baik membangun fungsi baru daripada mewarisi class methode class parent dengan tujuan fleksibelitas, pemeliharaan, dan kebergantungan pewarisan, dapat dilihat divideo parent::getinfoproduk menjadi this->getinfo. Selain itu menerapkan konsep polimorphism yaitu objek dari class dapat memahami dan merespon permintaan yang sama divideo terdapat 4 class yaitu produk, komik, game, dan cetak, dan sama" memahami permintaan yang sama
yang saya bingung tuh ka jadi sebenernya method abstract public function getInfoProduk(); fungsinya digunakan untuk apa? jika tidak di panggil pada class lain? apa hanya sebagai syarat pembuatan abstract class saja??
@@ramanurilanwari765 bukanya udah dipanggil ya di class komik sama game :)?? namanya sama public function getInfoProduk() kak. abstract tu intinya setiap instrance, harus mengandung abstract function dari parentnya. dalam hal ini, yang wajib ada itu getInfoProduk(). soalnya komik ama game kan instance dari produk hehe.... CMIIW
ahh baru paham, kenapa parent:: diganti jadi $this->. sempat bingung kenapa pakai parent:: dan this-> sama2 ga error 1. Awal mula muncul parent:: adalah untuk overriding, memanggil method dengan nama yang sama antara child dan parent. untuk menghindari pemanggilan recursive (berulang ulang) terhadap dirinya sendiri. ibaratnya bypass, gak peduli ada atau nggak method di child, langsung lari ke parent 2. Susahnya pakai parent:: dibanding $this kalau ada interaksi antar method dalam child class. ketika kita ada panggil method di child, yang overriding dari method parent, maka method "khusus" untuk child class jadi ke "bypass" atau ke skip jadi pakai method punya parent. mudah mudahan pemahaman saya tidak keliru
Khusus materi abstraksi si ini bener2 "abstrak" ada 5x ulang video nya, masih belum bener2 paham 😅 Terutama di bagian method abstract, ngga ngerti sih fungsi nya method abstract itu buat apa dan implementasi di real project nya gmn , pdhl ini yang ngajarin udah the master pak dhika 🙈
point yang gw tangkep sebenernya materi abstrak ini ga dipake harusnya gapapa, tergantung untuk kebutuhan projek secara tim yang misalnya di handle puluhan orang, nah tujuan abtract ini biar jadi kerangka acuan dasar projek tsb kalo method abstract kamu bikin maka di Class child juga harus ada method dengan nama yang sama, kalau ga ada nama yang sama dengan abstract method di parent maka bakalan error, langsung dicoba aja biar paham😁
nama function getInfoProduk yang ada di child class si Komik dan Game... itu namnya disamakan dengan nama function getInfoProduk (abstract) yang ada di parent class (abstrac)... disini nih sebenarnya kunci utamanya... kalo seandainya nama function getInfoProduk yang di child class Komik dan Game diganti nama yang ga manggil abstract method si parent class (abstract), maka ga habis pikir dah logicnya berantakan kemana2 saya..... ini kata si xampp nya: Fatal error: Class Komik contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Produk::getInfoProduk) in C:\xampp\htdocs\oophp\abstract-class.php on line intinya: dimana ada class abstract = maka harus ada method abstract.... yang.... dimana KALO mau dipake class abstractnya tersebut harus bikin dulu CHILD CLASS yang memanggil method abstract si parentnya melalui pembuatan method di child class tersebut (caranya penamaan method pada child class ini harus disamakan dengan nama method abstract punyanya si parent.... tapi ini bukan overiding loh ya, karena ini semacam nge instance gitu lah modelnya tapi lewat child class)... note: oh iya kalo misalnya pake class abstract brti harus bikin method abstract dan ga boleh bikin anak kalo anaknya ga ada ngisi method abstract parentnya... hahhahaa cuma berusaha translate aja bang maaf kalo salah ya luar biasa emang lannnnjuuuutttt...!!!!!!!!!!!!!!!
kalau menurut gw sih abstract itu blue print untuk colabs antar programmer jadi programmer yang lain tau nih dia mesti bikin penamaan class2 di child nya
Pak, kalo boleh ngasih saran. Materi yang tidak ada hubungannya dengan materi sebelumnya, lebih baik buat kodenya dari awal lagi aja pak. Biar lebih bersih dan mudah dipahami🙏
karena abstract method hanya sebuah penanda bahwa method yang dibuat abstrak itu harus digunakan di class turunannya, makannya kalo dihapus tidak berpengaruh.. ingat, itu method hanya sebuah pemberitahu saja. gunanya ketika kerja sebagai tim agar tim lain tau method apa yg wajib dipakai ketika membuat child classnya.
7:49 kan yang di deklarasikan di class CetakInfoProduk adalah "public function tambahProduk(Produk $produk)" Produk adalah kelas parent tapi kenapa saat mencetak menggunakan getInfoProduk yang terdapat pada class child?
getInfoProduk di class Produk itu method abstract, karenanya getInfoProduk di class Produk hanya menjadi interface(tanpa implementasi apapun) atau mudahnya seperti method kosongan, Dan child class yg bertugas untuk mengimplementasikannya
Iya bro. Tapi kan yang dijadiin parameter di cetak info produknya adalah cetak(Produk $produk) artinya kan yang dipanggil class Produk. Sedangkan yang dicetak terletak pada clas Child nya. Jadi maksud say adalah ingin bertanya bisa ya kita hanya memanggil parent nya saja dan mendapat childnya? Kenapa kita memanggil/ mendeklarasi parent nya tetapi kita dapt memnggil method yang berada di child?
1. cetak(Produk $produk) artinya kan yang dipanggil class Produk - cetak(Produk $produk) tidak memanggil class produk, itu parameter input untuk object 2. bisa ya kita hanya memanggil parent nya saja dan mendapat childnya? - Jelas tidak bisa 3.Kenapa kita memanggil/ mendeklarasi parent nya tetapi kita dapt memnggil method yang berada di child? - method yg bersifat public dapat dipanggil dari mana saja, contoh : public function getDiskon() - tapi ingat cetak(Produk $produk) tidak memanggil class produk
mungkin karena getInfoProduk() ada baik di class parent maupun child nya jadi penulisan $p->getInfoProduk() itu legal, selanjutnya karena $p itu dari class child nya maka yang dicari pertama getInfoProduk() yang ada di child nya
@@putumiyantara6020 seperti yang di jawab mas yudi di poin 1 mas. itu penjelasannya sudah bener. itu cuman jd parameter input. kalau masnya ikut dari yg sesi video object-type, maka disitu dijelaskan kenapa fungsi itu terdapat deklarasi sintax seperti itu. ya karena untuk memberi tahu bahwa ketika nanti instansiasi dilakukan (objek milik class cetakInfoProduk() ) hanya menerima object type berupa produk. yang mana kita tahu produk (yang juga dideklarasikan menjadi nama parent class untuk komik dan game) hanya memiliki dua buah type, yakni komik dan game. selain kedua objek bertipe produk tersebut maka method cetakInfoProduk() tidak akan menerima. sekali lagi, maksud dari syntax itu bukan untuk memanggil parent class milik child class komik/game. ini tidak akan bisa begitu. Cuman untuk parameter inputan saja. tipe objek yang harus diterima dari inputan/instasiasi objek harus bertipe produk, atau instansiasi yang berasal dari child-child (class Komik{} & class Game{}) milik parent class (clas Produk{}). kira-kira begitu, mas, maaf kalau kurang jelas.
bantu jawab mas, sintaks parent :: itu sebelumnya di pakai untuk overriding karena di child class dan di parent class punya nama method yg sama yaitu getinfoproduk, nah ketika getinfoproduk di jadikan abstract maka dia hanya jd method tanpa inisiasi, nah sintaks $this-> itu untuk nyambungin ke method baru yg di bikin menggantikan method getinfoproduk yg udah di jadikan abstract
malah error kek gini Fatal error: Uncaught Error: Call to a member function getInfoLengkap() on int in C:\xampp\htdocs\oophp\abstrack-class.php:124 Stack trace: #0 C:\xampp\htdocs\oophp\abstrack-class.php(137): InfoProduct->cetak() #1 {main} thrown in C:\xampp\htdocs\oophp\abstrack-class.php on line 124
Pak saya baru belajar oop php, yg saya bingung di video kali ini bukan abstract class nya. tapi pengulangan nya, di kelas cetak info produk ada method cetak. nah saya coba sesuai kodingan bapak hasilnya sukses menampilkan 2/lebih data sekaligus, dan ternyata saya baru tau itu bisa dicetak sekaligus karna ada $str sebelum pengulangan nya. saya coba coding tanpa $str = bla bla nya. maka yg ditampilkan cuma 1 data yg paling akhir. lalu saya coba dengan $str = ""; dibuat namun tidak ada isinya, maka bisa menampilkan semua data. mohon sekali pak dijelaskan kenapa kalau ga pake $str sebelum pengulangannya, dia gabisa nampilin semua data. bingung banget disini
karena ada tanda .= yang artinya menggabungkan string.. kalo kamu tulis $str = 'Fajar'; $str = 'Attahillah'; echo $str; maka yang tampil adalah 'Attahillah' saja tapi ketika pakai tanda . (concat / penggabung string) $str = 'Fajar'; $str .= 'Attahillah'; echo $str; maka yang tampil adalah 'FajarAttahillah'
mintol jelasin dong di menit 6:27 itu kalau object produk dimasukin ke array daftar produk bentuk didalemnya kayak gimana ya ? kok bisa ngakses functionnya objectnya juga?. apa array bisa nyimpen function ?
gimana sih bang pertanyaannya? bingung gua wkwk, object produk dimasukin ke array? maksudnya parameter dari class turunan produk yang diinstansiasi gimana masukinnya ke array kali ya? kalo gitumah kan udah dijelasin diakhir video juga, liat aja
Kang usul minta buat object properti atau element pada sebuah web dengan php, mysql & jquery contoh dari web online store misal-nya membuat properti menu drop down list dari nama-nama barang yang datanya yang di ambil dari database, atau cara menampilkan barang dengan range harga dari harga murah sampai mahal dengan pilihan check box, atau mau saat mencari barang tertentu & menampilkan ketersedian barang sesuai dari wilayah misal, jabodetabek, banten, sukabumi, cianjur, bandung, yogya, surabaya, madura seperti tokon online, nuhun kang 👌👍💕❤😍👏✨
Karna abstract hanya berfungsi sebagai mendefinisi bro, dan ibaratnya untuk method atau cara kerjanya nanti di dalam function baru, misal seperti getinfo yg pak sandhika buat
udah dijelasin di video bang, jd abstract class tuh ibaratkan hanya sebuah rangka utama dari class turunannya aja.. kalo emang mau ngebuat parent classnya ga diinstansiasi tp yg diinstansiasi hanya class turunannya aja, tinggal ngejadiin parent classnya sebagai abstract class.. karena abstract class tidak bisa diinstansiasi, terus abstract method buat apa? ya hanya untuk memberi tanda bahwa method apa aja yg perlu dipakai di class turunannnya.
Karena ketika kita manggil this->, dia kan nyari method itu ada atau engga di class itu gan, kalau ga ada, dia naik nyari ke class parent gan. Sebelumnya kita pakai parent::, karena methodnya itu overriding dengan yang di child classnya. Itu dari yang saya mengerti dari video sebelumnya dan dari sini: stackoverflow.com/questions/16265060/what-is-different-between-this-and-parent-in-oop-php CMIIW
kemarin tuh gara2 namanya sama, method getInfoProduk trus didalamnya manggil getInfoProduk juga. Maksud si programmer, mau manggil getInfoProduk yang parent, tapi komputer malah ngiranya getInfoProduk punya child makanya looping terus. Jadi solusinya pake parent::getInfoProduk();
@@sandhikagalihWPU nah ini saya juga sedikit bingung pak, maksd dari kata "tipe produk" itu apa pak? apa artinya object(game/komik) yg instance ke kelas Produk? tapi di codingan bapak komik&game (objectnya) instance bukan ke produk, tapi child class produk. gimana tuh pak?
pak saya agak sedikit bingung pas di getInfoProduk() nya di gantikan menjadi getInfo(), kan getInfoProduk() nya sudah menjadi kelas abstract tapi kok masih kita buat itu kan sudah tidak digunakan lagi yang digunakan sekarang kan getInfo()
@@newdehan3889 oh iya kan udah di jelaskan pada bagian 1, makasih deh infonya saya juga mikir entah apa gunanya method abstrack GetInfoProduk Ternyata sebagai syarat supaya class abstractnya bisa jalan. Thanks deh 😁😁😁
Pak saya mau tanya, kenapa harus pake method dari class abstract Produk di bagian sini : public function getInfoProduk() { $str = "Komik : " . parent::getInfo() . " - {$this->jmlHalaman} Halaman."; return $str; } kan bisa kita pake method yang udah di buat, buat gantikan bagian parent::getInfo(), jadi pake method yang udah ada, jadi gak usah buat method baru, misal nya gini : public function getInfoProduk() { $str = "Komik : " . "{$this->getJudul()} | {$this->getLabel()} (Rp. {$this->getHarga()})" . " - {$this->jmlHalaman} Halaman."; return $str; } apa ada alasan khusus pak? trimakasih.
hampir semua belajar dari channel ini dari awam sampai jadi bisa padika keren... video pa dika akan selalu aku tunggu bahkan lebih diutamakan dari pada nunggu updatean anime atau kdrama hahaha... please pa dika banyakin contoh kasus... sehat selalu rejeki lancar pahalanya terus ngalir amiin
Paham gua, jadi si abstract ini tujuanya hanya untuk signature alias kerangkanya doang supaya kalo mengerjakan project secara tim, tau mana method method yg harus ada di setiap classnya.
di class Game & Komik method getInfo() kenapa diganti ke $this tdk pakai parent:: ? karena dia sifatnya bukan lagi sebagai overriding.
Terus si abstract methodnya juga ga error karena di class Game & Komik sudah dia panggil, yaitu public function getInfoProduk();
Apa yang membuat sifatnya bukan overriding lagi?
@@sahrulamri7859 karna nama method di class Game/Komik udah beda sama yang di class Produk
bagian abstrak class ini sedikit membingungkan pak, perlu berulang-ulang nih nonton video-nya biar makin paham. Terimakasih pak
sampai 3x nonton video ini baru paham wkwkw, makasih pak dhika
Tank you very much for your sharing knowledge.
Izin meberi penjelasan maaf kalau salah, abstrak itu bertujuan sebagai interface bisa dibilang blue print, contoh divideo methode getinfoproduk() untuk mencetak informasi produk, methode itu akan digunakan childnya dengan fungsi yang sama, jadi memudahkan tim untuk memahami saat membaca program. Selain itu penggunaan class abstrak juga berfungsi sebagai compotition over inherintance yaitu lebih baik membangun fungsi baru daripada mewarisi class methode class parent dengan tujuan fleksibelitas, pemeliharaan, dan kebergantungan pewarisan, dapat dilihat divideo parent::getinfoproduk menjadi this->getinfo. Selain itu menerapkan konsep polimorphism yaitu objek dari class dapat memahami dan merespon permintaan yang sama divideo terdapat 4 class yaitu produk, komik, game, dan cetak, dan sama" memahami permintaan yang sama
yang saya bingung tuh ka jadi sebenernya method
abstract public function getInfoProduk();
fungsinya digunakan untuk apa? jika tidak di panggil pada class lain? apa hanya sebagai syarat pembuatan abstract class saja??
@@ramanurilanwari765 bukanya udah dipanggil ya di class komik sama game :)??
namanya sama public function getInfoProduk() kak.
abstract tu intinya setiap instrance, harus mengandung abstract function dari parentnya.
dalam hal ini, yang wajib ada itu getInfoProduk().
soalnya komik ama game kan instance dari produk hehe....
CMIIW
Makasi banyak om Dika
Mantap, ini bisa dikembangkan ke arah Machine Learning atau Artificial Intellingence. Saya hadir, pak Sandhika Galih.
ahh baru paham, kenapa parent:: diganti jadi $this->. sempat bingung kenapa pakai parent:: dan this-> sama2 ga error
1. Awal mula muncul parent:: adalah untuk overriding, memanggil method dengan nama yang sama antara child dan parent. untuk menghindari pemanggilan recursive (berulang ulang) terhadap dirinya sendiri. ibaratnya bypass, gak peduli ada atau nggak method di child, langsung lari ke parent
2. Susahnya pakai parent:: dibanding $this kalau ada interaksi antar method dalam child class. ketika kita ada panggil method di child, yang overriding dari method parent, maka method "khusus" untuk child class jadi ke "bypass" atau ke skip jadi pakai method punya parent.
mudah mudahan pemahaman saya tidak keliru
Terima kasih pak Dhika
Khusus materi abstraksi si ini bener2 "abstrak" ada 5x ulang video nya, masih belum bener2 paham 😅
Terutama di bagian method abstract, ngga ngerti sih fungsi nya method abstract itu buat apa dan implementasi di real project nya gmn , pdhl ini yang ngajarin udah the master pak dhika 🙈
point yang gw tangkep sebenernya materi abstrak ini ga dipake harusnya gapapa, tergantung untuk kebutuhan projek secara tim yang misalnya di handle puluhan orang, nah tujuan abtract ini biar jadi kerangka acuan dasar projek tsb
kalo method abstract kamu bikin maka di Class child juga harus ada method dengan nama yang sama, kalau ga ada nama yang sama dengan abstract method di parent maka bakalan error, langsung dicoba aja biar paham😁
Selalu follow bapak Dika ini .. awesome
bang dika sukses selalu ya, banyak skali manfaat yang kami dapatkan di chanel ini. salam programmer ^_^
terima kasih mas shandika... sukses selalu..
yang HARD jadi EASY thank you pak
PERTAMAX 👌👍💕💖😍👏✨
mantap betul
waaah terima kasih bang ilmunya, next materi request namesapce pak :-)
Chanel top, semangat dan lanjut terus pak,
sehat selalu dan rejekinya lancar.
tolong JavaScript Lanjutan dilanjutkan ya pak, hehehe
Terima kasih pak
Terima Kasih
akhirnya faham hadeh begitu rupanya
thanks pak
Mantap pak
materi abstract dimulai 7:51
Hai Kak, mau tanya untuk yang di line 61 method abstract tersebut jadinya dipakai dimana ya ?. termakasih
halo ka, apakah sudah mendapat jawabannya? jika sudah jawabanya bagaimana yaka?
numpang nanya lalu untuk method abstracknya untuk apa ya?
di tunggu materi framework bang haha
nama function getInfoProduk yang ada di child class si Komik dan Game... itu namnya disamakan dengan nama function getInfoProduk (abstract) yang ada di parent class (abstrac)... disini nih sebenarnya kunci utamanya... kalo seandainya nama function getInfoProduk yang di child class Komik dan Game diganti nama yang ga manggil abstract method si parent class (abstract), maka ga habis pikir dah logicnya berantakan kemana2 saya..... ini kata si xampp nya: Fatal error: Class Komik contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Produk::getInfoProduk) in C:\xampp\htdocs\oophp\abstract-class.php on line
intinya: dimana ada class abstract = maka harus ada method abstract.... yang.... dimana KALO mau dipake class abstractnya tersebut harus bikin dulu CHILD CLASS yang memanggil method abstract si parentnya melalui pembuatan method di child class tersebut (caranya penamaan method pada child class ini harus disamakan dengan nama method abstract punyanya si parent.... tapi ini bukan overiding loh ya, karena ini semacam nge instance gitu lah modelnya tapi lewat child class)...
note: oh iya kalo misalnya pake class abstract brti harus bikin method abstract dan ga boleh bikin anak kalo anaknya ga ada ngisi method abstract parentnya...
hahhahaa cuma berusaha translate aja bang maaf kalo salah ya
luar biasa emang lannnnjuuuutttt...!!!!!!!!!!!!!!!
OKK bang😎👍
masih bingung.
kok kalo method absract getInfoProduk() yang ada di class parent di hapus kok ngga error ya?
@@el4710 ane jg mikir gt, knp harus dibikin abstract method getInfoProduk(), pdhal method nya gaada isinya sama sekali. dihapus jg ttep jalan programnya. hmmm
@@kaneiks4640 sama
kalau menurut gw sih abstract itu blue print untuk colabs antar programmer jadi programmer yang lain tau nih dia mesti bikin penamaan class2 di child nya
Bikin vidio Linux pak 🙏🙏
Pak, tolong dibuatkan migrasi mysql ke mysqli, maupun PDO, tahapannya apa saja yang harus dirubah,.. please....
KEDUAXX ~~
Pak, kalo boleh ngasih saran. Materi yang tidak ada hubungannya dengan materi sebelumnya, lebih baik buat kodenya dari awal lagi aja pak. Biar lebih bersih dan mudah dipahami🙏
ide bagus, terimakasih sarannya.. ini memang materinya agak susah kalo mau dibuat simple contoh kasusnya 😊🙏🏼
Jadi buat apa dibikin pak kalo abstract nya gadipeke?
tolong kodingnya taruh di github khusus yang abstract saja..
Pak terus apa gunanya method abstrak kalau tanpa dia bisa berjalan(sudah saya coba).
karena abstract method hanya sebuah penanda bahwa method yang dibuat abstrak itu harus digunakan di class turunannya, makannya kalo dihapus tidak berpengaruh.. ingat, itu method hanya sebuah pemberitahu saja. gunanya ketika kerja sebagai tim agar tim lain tau method apa yg wajib dipakai ketika membuat child classnya.
7:49 kan yang di deklarasikan di class CetakInfoProduk adalah "public function tambahProduk(Produk $produk)" Produk adalah kelas parent tapi kenapa saat mencetak menggunakan getInfoProduk yang terdapat pada class child?
getInfoProduk di class Produk itu method abstract, karenanya getInfoProduk di class Produk hanya menjadi interface(tanpa implementasi apapun) atau mudahnya seperti method kosongan,
Dan child class yg bertugas untuk mengimplementasikannya
Iya bro. Tapi kan yang dijadiin parameter di cetak info produknya adalah cetak(Produk $produk) artinya kan yang dipanggil class Produk. Sedangkan yang dicetak terletak pada clas Child nya. Jadi maksud say adalah ingin bertanya bisa ya kita hanya memanggil parent nya saja dan mendapat childnya? Kenapa kita memanggil/ mendeklarasi parent nya tetapi kita dapt memnggil method yang berada di child?
1. cetak(Produk $produk) artinya kan yang dipanggil class Produk
- cetak(Produk $produk) tidak memanggil class produk, itu parameter input untuk object
2. bisa ya kita hanya memanggil parent nya saja dan mendapat childnya?
- Jelas tidak bisa
3.Kenapa kita memanggil/ mendeklarasi parent nya tetapi kita dapt memnggil method yang berada di child?
- method yg bersifat public dapat dipanggil dari mana saja, contoh : public function getDiskon()
- tapi ingat cetak(Produk $produk) tidak memanggil class produk
mungkin karena getInfoProduk() ada baik di class parent maupun child nya jadi penulisan $p->getInfoProduk() itu legal, selanjutnya karena $p itu dari class child nya maka yang dicari pertama getInfoProduk() yang ada di child nya
@@putumiyantara6020 seperti yang di jawab mas yudi di poin 1 mas. itu penjelasannya sudah bener.
itu cuman jd parameter input. kalau masnya ikut dari yg sesi video object-type, maka disitu dijelaskan kenapa fungsi itu terdapat deklarasi sintax seperti itu. ya karena untuk memberi tahu bahwa ketika nanti instansiasi dilakukan (objek milik class cetakInfoProduk() ) hanya menerima object type berupa produk.
yang mana kita tahu produk (yang juga dideklarasikan menjadi nama parent class untuk komik dan game) hanya memiliki dua buah type, yakni komik dan game. selain kedua objek bertipe produk tersebut maka method cetakInfoProduk() tidak akan menerima.
sekali lagi, maksud dari syntax itu bukan untuk memanggil parent class milik child class komik/game. ini tidak akan bisa begitu. Cuman untuk parameter inputan saja. tipe objek yang harus diterima dari inputan/instasiasi objek harus bertipe produk, atau instansiasi yang berasal dari child-child (class Komik{} & class Game{}) milik parent class (clas Produk{}).
kira-kira begitu, mas, maaf kalau kurang jelas.
Masih bingung kenapa pas ambil method abstract pake nya $this, kan method abstract nya ada di class parent, knpa ga pake parent::
Mohon bantuannya
sama, saya juga bingung
bantu jawab mas, sintaks parent :: itu sebelumnya di pakai untuk overriding karena di child class dan di parent class punya nama method yg sama yaitu getinfoproduk, nah ketika getinfoproduk di jadikan abstract maka dia hanya jd method tanpa inisiasi, nah sintaks $this-> itu untuk nyambungin ke method baru yg di bikin menggantikan method getinfoproduk yg udah di jadikan abstract
bisakah abstract extend abstract
malah error kek gini
Fatal error: Uncaught Error: Call to a member function getInfoLengkap() on int in C:\xampp\htdocs\oophp\abstrack-class.php:124 Stack trace: #0 C:\xampp\htdocs\oophp\abstrack-class.php(137): InfoProduct->cetak() #1 {main} thrown in C:\xampp\htdocs\oophp\abstrack-class.php on line 124
method getInfoLengkap setau saya udah lama ga dipake dan diganti jadi getInfoProduk dari video2 sebelumnya😁
Pak saya baru belajar oop php, yg saya bingung di video kali ini bukan abstract class nya. tapi pengulangan nya, di kelas cetak info produk ada method cetak. nah saya coba sesuai kodingan bapak hasilnya sukses menampilkan 2/lebih data sekaligus, dan ternyata saya baru tau itu bisa dicetak sekaligus karna ada $str sebelum pengulangan nya. saya coba coding tanpa $str = bla bla nya. maka yg ditampilkan cuma 1 data yg paling akhir. lalu saya coba dengan $str = ""; dibuat namun tidak ada isinya, maka bisa menampilkan semua data. mohon sekali pak dijelaskan kenapa kalau ga pake $str sebelum pengulangannya, dia gabisa nampilin semua data. bingung banget disini
karena ada tanda .= yang artinya menggabungkan string..
kalo kamu tulis
$str = 'Fajar';
$str = 'Attahillah';
echo $str;
maka yang tampil adalah 'Attahillah' saja
tapi ketika pakai tanda . (concat / penggabung string)
$str = 'Fajar';
$str .= 'Attahillah';
echo $str;
maka yang tampil adalah 'FajarAttahillah'
@@sandhikagalihWPU owh jadi memang wajib pakai $str sebelum pengulangan ya pak? oke" makasih banyak pak/\
bang saya masih belum ngerti..
itu $produk dapat nya dari mana ?
$produk1 dan $produk2 mas?
mintol jelasin dong di menit 6:27 itu kalau object produk dimasukin ke array daftar produk bentuk didalemnya kayak gimana ya ? kok bisa ngakses functionnya objectnya juga?. apa array bisa nyimpen function ?
gimana sih bang pertanyaannya? bingung gua wkwk, object produk dimasukin ke array? maksudnya parameter dari class turunan produk yang diinstansiasi gimana masukinnya ke array kali ya? kalo gitumah kan udah dijelasin diakhir video juga, liat aja
di menit 10:36 abstract public function getinfoProduk(); fungsinya apa ya kan methodnya udh diganti yang baru yang ada implementasinya
ga dipake kalo ga salah sih, maaf kalo salah
Apa karena itu ttp harus dibuat untuk syarat class abstract harus punya 1 method abstract?
Kang usul minta buat object properti atau element pada sebuah web dengan php, mysql & jquery contoh dari web online store misal-nya membuat properti menu drop down list dari nama-nama barang yang datanya yang di ambil dari database, atau cara menampilkan barang dengan range harga dari harga murah sampai mahal dengan pilihan check box, atau mau saat mencari barang tertentu & menampilkan ketersedian barang sesuai dari wilayah misal, jabodetabek, banten, sukabumi, cianjur, bandung, yogya, surabaya, madura seperti tokon online, nuhun kang 👌👍💕❤😍👏✨
Pak dika mau tanya kegunaan dari method abstrak apa ya? Kok di video ini kaya belum ada kegunaannya
ada di video sebelumnya bang
Kesepuluh
saya masih bingung, jadi tujuan getInfoProduk() nya kosong apa ya? ada yg bisa bantu
Karna abstract hanya berfungsi sebagai mendefinisi bro, dan ibaratnya untuk method atau cara kerjanya nanti di dalam function baru, misal seperti getinfo yg pak sandhika buat
izin bertanya pak, pada class yang ber-abstract, bukannya method2 nya harus abstract juga ya pak? soalnya saya coba tanpa abstract gabisa pak.
engga juga, saya bisa kok.. jika semua method abstract, tidak ada yg bisa dipakai dong karena method abstract harus kosong
pak, saya coba ganti $this->getInfo() jadi parent::getInfo() keluarannya tetap sama dan ga ada error. kalau pun saya salah, salahnya ada dimana ya ?
sama aja bro kan udah di ubah nama functionnya
pak mohon dijawab terus itu method abstract nya buat apaan pak?
udah dijelasin di video bang, jd abstract class tuh ibaratkan hanya sebuah rangka utama dari class turunannya aja.. kalo emang mau ngebuat parent classnya ga diinstansiasi tp yg diinstansiasi hanya class turunannya aja, tinggal ngejadiin parent classnya sebagai abstract class.. karena abstract class tidak bisa diinstansiasi, terus abstract method buat apa? ya hanya untuk memberi tanda bahwa method apa aja yg perlu dipakai di class turunannnya.
Pak kenapa itu pake this engga pake parent? Kan beda class
Karena ketika kita manggil this->, dia kan nyari method itu ada atau engga di class itu gan, kalau ga ada, dia naik nyari ke class parent gan. Sebelumnya kita pakai parent::, karena methodnya itu overriding dengan yang di child classnya.
Itu dari yang saya mengerti dari video sebelumnya dan dari sini: stackoverflow.com/questions/16265060/what-is-different-between-this-and-parent-in-oop-php
CMIIW
kemarin tuh gara2 namanya sama, method getInfoProduk trus didalamnya manggil getInfoProduk juga. Maksud si programmer, mau manggil getInfoProduk yang parent, tapi komputer malah ngiranya getInfoProduk punya child makanya looping terus.
Jadi solusinya pake parent::getInfoProduk();
itu di method tambahProduk menit 4:42 itu menerima objek yg tipe data produk itu maksdnya apa ya pak?
jika parameternya adalah bukan object dengan tipe Produk, maka akan error
@@sandhikagalihWPU nah ini saya juga sedikit bingung pak, maksd dari kata "tipe produk" itu apa pak?
apa artinya object(game/komik) yg instance ke kelas Produk? tapi di codingan bapak komik&game (objectnya) instance bukan ke produk, tapi child class produk. gimana tuh pak?
@@sandhikagalihWPU pak dika apakah berarti turunan dari kelas produk juga dianggap object dari kelas produk?
pak saya agak sedikit bingung pas di getInfoProduk() nya di gantikan menjadi getInfo(), kan getInfoProduk() nya sudah menjadi kelas abstract tapi kok masih kita buat itu kan sudah tidak digunakan lagi yang digunakan sekarang kan getInfo()
Buat formalitas aja mungkin biar class abstrac nya jalan.. krn salah satu syarat hrs ada method abstrac nya
Buat formalitas aja mungkin krn salah satu syrat class abstrac hrs ada method abstrac..
@@newdehan3889 oh iya kan udah di jelaskan pada bagian 1, makasih deh infonya saya juga mikir entah apa gunanya method abstrack GetInfoProduk Ternyata sebagai syarat supaya class abstractnya bisa jalan. Thanks deh 😁😁😁
Pak mau tanya
jika abstrak class adalah keputusan, berarti tidak berpengaruh pada keamanan?
Harusnya sih engga
11:09 bingung kenapa parent:: nya bisa jadi $this-> 🤔?
Kan namanya beda bro, kalo sebelumnya kan function getinfoproduk() kan ada di class child dan parentnya jadinya pake parent buat ditimpa
Kalo nama functionnya beda ga perlu pake parent cukup pake $this, lagi pula itu juga diwariskan pake extends
Pak saya mau tanya, kenapa harus pake method dari class abstract Produk di bagian sini :
public function getInfoProduk() {
$str = "Komik : " . parent::getInfo() . " - {$this->jmlHalaman} Halaman.";
return $str;
}
kan bisa kita pake method yang udah di buat, buat gantikan bagian parent::getInfo(), jadi pake method yang udah ada, jadi gak usah buat method baru, misal nya gini :
public function getInfoProduk() {
$str = "Komik : " . "{$this->getJudul()} | {$this->getLabel()} (Rp. {$this->getHarga()})" . " - {$this->jmlHalaman} Halaman.";
return $str;
}
apa ada alasan khusus pak?
trimakasih.
biar simple aja gan, toh sama2 pake *{$this->getJudul()} | {$this->getLabel()} (Rp. {$this->getHarga()})* kan, jadi di taruh di 1 method aja, CMIIW
KETIGAXX