Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Debby Ummul
Modul ini membahas tentang pemrograman berorientasi objek dengan bahasa Java. Materi yang dibahas antara lain konsep dasar OOP, penggunaan array, konstruktor, exception handling, serta percabangan dan operator dalam Java."
Atribut dari Kelas Kapsul
- private double panjang
- private double lebar
- private double tinggi
Method dari Kelas Kapsul
- private double luas(double p, double l)
Accessor Method dari Kelas Kapsul
- public double getPanjang()
- public double getLebar()
Mutator Method dari Kelas Kapsul
- public void setPanjang(double panjang)
- public void setLebar(double lebar)
Objek pada kelas Enkapsulasi
- Kapsul pp
Dokumen tersebut membahas representasi pengetahuan dalam kecerdasan buatan, yang meliputi skema deklaratif seperti logika, jaringan semantik, frame, dan script serta skema prosedural seperti prosedur dan kaidah produksi."
Atribut kelas Kapsul:
- private double panjang
- private double lebar
- private double tinggi
Method kelas Kapsul:
- private double luas(double p, double l)
Accessor method kelas Kapsul:
- public double getPanjang()
- public double getLebar()
Mutator method kelas Kapsul:
- public void setPanjang(double panjang)
- public void setLebar(double lebar)
Objek pada kelas Enkapsulasi:
- Kapsul pp = new Kapsul()
Implementasi MVC (Model-View-Controller) dan DAO (Data Access Object) pada aplikasi desktop Java dengan studi kasus pembuatan buku telepon dan database MySQL, meliputi pembuatan model, view, controller, koneksi database, dan fungsi CRUD.
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Debby Ummul
Modul ini membahas tentang pemrograman berorientasi objek dengan bahasa Java. Materi yang dibahas antara lain konsep dasar OOP, penggunaan array, konstruktor, exception handling, serta percabangan dan operator dalam Java."
Atribut dari Kelas Kapsul
- private double panjang
- private double lebar
- private double tinggi
Method dari Kelas Kapsul
- private double luas(double p, double l)
Accessor Method dari Kelas Kapsul
- public double getPanjang()
- public double getLebar()
Mutator Method dari Kelas Kapsul
- public void setPanjang(double panjang)
- public void setLebar(double lebar)
Objek pada kelas Enkapsulasi
- Kapsul pp
Dokumen tersebut membahas representasi pengetahuan dalam kecerdasan buatan, yang meliputi skema deklaratif seperti logika, jaringan semantik, frame, dan script serta skema prosedural seperti prosedur dan kaidah produksi."
Atribut kelas Kapsul:
- private double panjang
- private double lebar
- private double tinggi
Method kelas Kapsul:
- private double luas(double p, double l)
Accessor method kelas Kapsul:
- public double getPanjang()
- public double getLebar()
Mutator method kelas Kapsul:
- public void setPanjang(double panjang)
- public void setLebar(double lebar)
Objek pada kelas Enkapsulasi:
- Kapsul pp = new Kapsul()
Implementasi MVC (Model-View-Controller) dan DAO (Data Access Object) pada aplikasi desktop Java dengan studi kasus pembuatan buku telepon dan database MySQL, meliputi pembuatan model, view, controller, koneksi database, dan fungsi CRUD.
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVCrizki adam kurniawan
Materi yang ada pada slide ini berisi :
TEORI :
APA ITU JDBC
APA ITU API
GAMBARAN DB API
ARSITEKTUR JDBC
JDBC INTERFACE CLASS
PRAKTIK :
Akses full source code nya di link ini :
https://github.com/RizkiAdamKurniawan/JAVA-DAO-MVC
Akses video tutorial nya di link ini :
TAHAP 1. Membuat Project Baru & Package Baru : https://youtu.be/s-6IdMJKhuw
TAHAP 2. Membuat Database : https://youtu.be/W5lR4CBq81g
TAHAP 3. Mapping Database ke Entitas : https://youtu.be/3wdvh3yH3rY
TAHAP 4. Membuat Koneksi : https://youtu.be/if7LPrGMLRY
TAHAP 5. Membuat Service DAO : https://youtu.be/-jMaNzjolXc
TAHAP 6. Membuat Fungsi CRUD : https://youtu.be/R0NwAnUyHx4
TAHAP 7. Membuat Management Transaksi DAO : https://youtu.be/lBzE7G6GM2w
TAHAP 8. Membuat View : https://youtu.be/hgyoI3iW12I
TAHAP 9. Membuat Model : https://youtu.be/VvTiNQtmpDM
TAHAP 10. Membuat Controller : https://youtu.be/OC3Zi2G4fqc
TAHAP 11. Komunikasikan di View : https://youtu.be/k1BFJ3UEf7E
TAHAP 12. Testing Apps : https://youtu.be/cNo8prJlLmc
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Dokumen ini membahas cara membuat program Java dengan satu kelas utama dan tiga kelas baru untuk operasi pengurangan, perkalian, dan pembagian. Terdapat penjelasan tentang konsep pemrograman berorientasi objek, komponen-komponennya, dan contoh bahasa pemrograman yang mendukung paradigma ini. Diberikan juga algoritma dan kode program untuk mengimplementasikan soal kasus yang diminta beserta kesimpulannya.
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)Debby Ummul
Dokumen ini membahas tentang konsep inheritance dalam pemrograman berorientasi objek. Inheritance memungkinkan hubungan antara class dimana subclass mewarisi atribut dan method dari superclass. Dokumen ini memberikan contoh kode program untuk mempraktekkan single inheritance, multilevel inheritance, dan access control. Juga dijelaskan penggunaan kata kunci super dan konstruktor yang tidak diwariskan.
Dokumen tersebut membahas perbedaan antara pemrograman berorientasi objek dan pemrograman prosedural. Pemrograman berorientasi objek fokus pada konsep objek dan interaksinya, sedangkan pemrograman prosedural fokus pada proses dan urutan langkah. Pemrograman berorientasi objek memiliki sifat abstraksi, enkapsulasi, pewarisan, dan polimorfisme.
Inheritence, Terminology, Inheritance in java, The class called Object, Super keyword, Example, Method Overriding, Method Overriding example, Abstract Class, Abstract Class Number and the Java Wrapper Classes, Final Method and Classes, Multiple Inheritance
Algoritma ini merupakan salah satu metode kecerdasann buatan untuk pencocokan kata / kalimat, dan dapat digunakan dalam pencocokan binary. contoh kasus dapat digunakan untuk pengolahan citra, deteksi, pencarian KMS
Laporan Project Pemrograman Berbasis Websmatrigger
Laporan ini membahas tentang pembuatan website pendaftaran siswa baru menggunakan teknologi JavaScript, jQuery, CSS, Bootstrap, dan AJAX. Website ini memungkinkan calon siswa mendaftar secara online, admin dapat mengelola data calon siswa dan pengguna, serta menampilkan berita sekolah. Kendala yang dihadapi adalah sulitnya menerapkan fitur AJAX dan menampilkan grafik.
Materi yang ada pada slide ini berisi :
Implementasi Polimorphism
Overloading method VS Overriding Method
Ad Hoc & Subtyping Polimorphism
Latihan 5 & Upload ke github
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Inheritance (Pewarisan)
Hak akses protected
Override Method
Override Constructor
Kata kunci super
Kata kunci final
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Dokumen tersebut membahas tentang encapsulation dalam pemrograman berorientasi objek. Encapsulation digunakan untuk menyembunyikan implementasi detail dari suatu class dan hanya mengekspos property dan behavior melalui interface. Terdapat empat tingkat akses yaitu private, default, protected, dan public yang menentukan cakupan akses ke atribut dan method class. Setter dan getter digunakan untuk mengakses atribut secara tidak langsung.
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSaprudin Eskom
1. Dokumen tersebut berisi soal ujian akhir semester mata pelajaran Pemrograman Berorientasi Objek untuk kelas XI Rekayasa Perangkat Lunak.
2. Terdapat 40 soal pilihan ganda dan petunjuk pengerjaan soal.
3. Soal-soal meliputi konsep dasar pemrograman berorientasi objek seperti interface, string, class, database, GUI.
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMINShofura Kamal
Dokumen tersebut membahas tentang pembuatan empat tabel database MySQL menggunakan PHPMyAdmin. Praktikan membuat database bernama "Toko Online" dan kemudian empat tabel di dalamnya yaitu tabel data barang, persediaan barang, penjualan barang, dan data pembeli. Setiap tabel dibuat dengan menentukan nama tabel dan field-fieldnya beserta tipe datanya.
Dokumen tersebut membahas dasar-dasar pemrograman Java menggunakan Netbeans, termasuk cara instalasi Netbeans dan JDK, membuat proyek baru, menambahkan form, dan mendesain antarmuka pengguna grafis dengan menambahkan komponen seperti label, text field, dan tombol.
[PBO] Pertemuan 13 - Membuat Aplikasi Desktop dengan JDBC DAO MVCrizki adam kurniawan
Materi yang ada pada slide ini berisi :
TEORI :
APA ITU JDBC
APA ITU API
GAMBARAN DB API
ARSITEKTUR JDBC
JDBC INTERFACE CLASS
PRAKTIK :
Akses full source code nya di link ini :
https://github.com/RizkiAdamKurniawan/JAVA-DAO-MVC
Akses video tutorial nya di link ini :
TAHAP 1. Membuat Project Baru & Package Baru : https://youtu.be/s-6IdMJKhuw
TAHAP 2. Membuat Database : https://youtu.be/W5lR4CBq81g
TAHAP 3. Mapping Database ke Entitas : https://youtu.be/3wdvh3yH3rY
TAHAP 4. Membuat Koneksi : https://youtu.be/if7LPrGMLRY
TAHAP 5. Membuat Service DAO : https://youtu.be/-jMaNzjolXc
TAHAP 6. Membuat Fungsi CRUD : https://youtu.be/R0NwAnUyHx4
TAHAP 7. Membuat Management Transaksi DAO : https://youtu.be/lBzE7G6GM2w
TAHAP 8. Membuat View : https://youtu.be/hgyoI3iW12I
TAHAP 9. Membuat Model : https://youtu.be/VvTiNQtmpDM
TAHAP 10. Membuat Controller : https://youtu.be/OC3Zi2G4fqc
TAHAP 11. Komunikasikan di View : https://youtu.be/k1BFJ3UEf7E
TAHAP 12. Testing Apps : https://youtu.be/cNo8prJlLmc
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Dokumen ini membahas cara membuat program Java dengan satu kelas utama dan tiga kelas baru untuk operasi pengurangan, perkalian, dan pembagian. Terdapat penjelasan tentang konsep pemrograman berorientasi objek, komponen-komponennya, dan contoh bahasa pemrograman yang mendukung paradigma ini. Diberikan juga algoritma dan kode program untuk mengimplementasikan soal kasus yang diminta beserta kesimpulannya.
Modul Praktikum Pemrograman Berorientasi Objek (Chap.7)Debby Ummul
Dokumen ini membahas tentang konsep inheritance dalam pemrograman berorientasi objek. Inheritance memungkinkan hubungan antara class dimana subclass mewarisi atribut dan method dari superclass. Dokumen ini memberikan contoh kode program untuk mempraktekkan single inheritance, multilevel inheritance, dan access control. Juga dijelaskan penggunaan kata kunci super dan konstruktor yang tidak diwariskan.
Dokumen tersebut membahas perbedaan antara pemrograman berorientasi objek dan pemrograman prosedural. Pemrograman berorientasi objek fokus pada konsep objek dan interaksinya, sedangkan pemrograman prosedural fokus pada proses dan urutan langkah. Pemrograman berorientasi objek memiliki sifat abstraksi, enkapsulasi, pewarisan, dan polimorfisme.
Inheritence, Terminology, Inheritance in java, The class called Object, Super keyword, Example, Method Overriding, Method Overriding example, Abstract Class, Abstract Class Number and the Java Wrapper Classes, Final Method and Classes, Multiple Inheritance
Algoritma ini merupakan salah satu metode kecerdasann buatan untuk pencocokan kata / kalimat, dan dapat digunakan dalam pencocokan binary. contoh kasus dapat digunakan untuk pengolahan citra, deteksi, pencarian KMS
Laporan Project Pemrograman Berbasis Websmatrigger
Laporan ini membahas tentang pembuatan website pendaftaran siswa baru menggunakan teknologi JavaScript, jQuery, CSS, Bootstrap, dan AJAX. Website ini memungkinkan calon siswa mendaftar secara online, admin dapat mengelola data calon siswa dan pengguna, serta menampilkan berita sekolah. Kendala yang dihadapi adalah sulitnya menerapkan fitur AJAX dan menampilkan grafik.
Materi yang ada pada slide ini berisi :
Implementasi Polimorphism
Overloading method VS Overriding Method
Ad Hoc & Subtyping Polimorphism
Latihan 5 & Upload ke github
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Materi yang ada pada slide ini berisi :
Inheritance (Pewarisan)
Hak akses protected
Override Method
Override Constructor
Kata kunci super
Kata kunci final
----------------------------------------------------------------------
Keep in touch with me in :
Twitter : https://twitter.com/rizkiadam_1991
Email : rizkiadamunikom@gmail.com
Github : https://github.com/RizkiAdamKurniawan
IG : @rizkiadamkurniawan
Dokumen tersebut membahas tentang encapsulation dalam pemrograman berorientasi objek. Encapsulation digunakan untuk menyembunyikan implementasi detail dari suatu class dan hanya mengekspos property dan behavior melalui interface. Terdapat empat tingkat akses yaitu private, default, protected, dan public yang menentukan cakupan akses ke atribut dan method class. Setter dan getter digunakan untuk mengakses atribut secara tidak langsung.
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSaprudin Eskom
1. Dokumen tersebut berisi soal ujian akhir semester mata pelajaran Pemrograman Berorientasi Objek untuk kelas XI Rekayasa Perangkat Lunak.
2. Terdapat 40 soal pilihan ganda dan petunjuk pengerjaan soal.
3. Soal-soal meliputi konsep dasar pemrograman berorientasi objek seperti interface, string, class, database, GUI.
Laporan Praktikum Basis Data Modul IV-Membuat Database Pada PHPMYADMINShofura Kamal
Dokumen tersebut membahas tentang pembuatan empat tabel database MySQL menggunakan PHPMyAdmin. Praktikan membuat database bernama "Toko Online" dan kemudian empat tabel di dalamnya yaitu tabel data barang, persediaan barang, penjualan barang, dan data pembeli. Setiap tabel dibuat dengan menentukan nama tabel dan field-fieldnya beserta tipe datanya.
Dokumen tersebut membahas dasar-dasar pemrograman Java menggunakan Netbeans, termasuk cara instalasi Netbeans dan JDK, membuat proyek baru, menambahkan form, dan mendesain antarmuka pengguna grafis dengan menambahkan komponen seperti label, text field, dan tombol.
Inheritance, polymorphism, dan interface memungkinkan pembuatan hierarki kelas yang fleksibel dan reusabilitas kode. Interface dan kelas abstrak memungkinkan definisi perilaku standar tanpa menentukan implementasi. Polymorphism memungkinkan objek-objek dari subclass yang berbeda diperlakukan sebagai objek dari superclass.
Dokumen tersebut membahas tentang konsep dasar inheritance dalam bahasa pemrograman Java, meliputi pengertian, deklarasi, jenis, penerapan, pengaksesan anggota kelas, kontrol akses, kata kunci super, dan konstruktor yang tidak diwariskan. Terdapat juga contoh kode program dan latihan untuk menerapkan inheritance dalam mengimplementasikan diagram kelas untuk aplikasi perbankan.
Inheritance atau pewarisan memungkinkan penciptaan kelas baru yang mewarisi properti dan metode dari kelas induk. Kelas turunan dapat menambahkan atau menimpa perilaku asli serta mewarisi akses level dari properti dan metode kelas induk. Pewarisan tunggal dan ganda merupakan jenis pewarisan utama dalam pemrograman berorientasi objek.
Laporan praktikum ini membahas tentang praktikum PHP (Hypertext Preprocessor) yang bertujuan untuk memahami struktur dasar dokumen PHP, membuat dokumen PHP yang baik, dan memanfaatkan elemen dasar PHP untuk mengolah dan menampilkan informasi. Laporan ini menjelaskan teori dasar PHP, latihan-latihan tentang variabel, pengujian tipe data, pernyataan seleksi, dan contoh kode programnya.
Dokumen tersebut merangkum materi pelatihan Java Application Developer pada sesi ke-5. Materi yang disampaikan meliputi pemrograman berorientasi objek meliputi konsep inheritance, polymorphism, kelas dan method abstrak, serta interface. Contoh kode program diberikan untuk mengilustrasikan konsep-konsep tersebut.
Dokumen tersebut merupakan modul praktikum tentang polymorphism dalam bahasa pemrograman berorientasi objek Java. Modul tersebut memberikan tujuan instruksional untuk mahasiswa dapat membuat dan menggunakan beberapa jenis polymorphism dalam program serta menjelaskannya. Kemudian memberikan contoh program yang mengimplementasikan polymorphism pada class mobil dan sepeda yang mewarisi class kendaraan. Mahasiswa diminta menganalisis program dan menjawab pertanyaan terkait pen
Dokumen tersebut membahas konsep-konsep seperti overloading, overriding, dan final class/method dalam PHP beserta contoh kodenya. PHP tidak sepenuhnya mendukung overloading seperti bahasa lain namun menyediakan magic method untuk keperluan serupa."
Buku praktikum ini membahas tentang pemrograman berorientasi objek untuk mahasiswa jurusan manajemen informatika dengan modul-modul pengenalan Java, dasar pemrograman Java, penggunaan class BufferedReader dan JOptionPane, serta konsep enkapsulasi. [/ringkuman]"
Similar to Modul PBO Bab-06 - Polimorfisme (Polymorphism) (20)
The document lists various topics related to Java programming and technologies in descending order based on the number of mentions. The most frequently mentioned topics are pewarisan (inheritance), komposisi (composition), agregasi (aggregation), asosiasi (association), and hubungan antar kelas (class relationships). Other commonly discussed topics include array, method declaration, attribute declaration, objects, class definition, classes and objects, while and for loops, switch-case statements, if-else statements, user interface components, exceptions, and database connectivity using JDBC.
Dokumen menjelaskan tentang distribusi aplikasi Java melalui pengarsipan file-file kelas ke dalam format JAR (Java Archive) agar aplikasi dapat dijalankan di berbagai sistem operasi tanpa perlu menyebarkan file-file kelas terpisah. Dokumen juga menjelaskan cara membuat, melihat isi, mengekstrak, dan menjalankan file JAR serta menambahkan informasi manifest.
Dokumen tersebut membahas tentang Java Database Connectivity (JDBC) yang merupakan API Java untuk melakukan koneksi dan manipulasi database. JDBC memerlukan database driver untuk setiap jenis database dan menyediakan kelas-kelas seperti Connection, Statement, ResultSet untuk melakukan koneksi, mengirim query dan memproses hasilnya. Dokumen ini juga menjelaskan langkah-langkah koneksi database dan contoh kode untuk menampilkan, menambahkan, men
Modul ini membahas konsep event dan exception handling dalam pemrograman Java. Event adalah peristiwa yang terjadi ketika pengguna melakukan aksi terhadap komponen user interface seperti mengklik tombol. Event handler berupa method yang menerima dan memproses event. Exception adalah kondisi tidak normal yang muncul saat program dieksekusi seperti pembagian dengan nol. Statement try dan catch digunakan untuk menangkap dan menangani exception.
Komponen utama Swing yang digunakan untuk membangun antarmuka grafis pengguna (GUI) desktop dalam bahasa pemrograman Java meliputi frame, panel, label, button, check box, radio button, combo box, text field, dan slider. Komponen-komponen tersebut memiliki berbagai metode yang memungkinkan pengembang untuk menangani interaksi pengguna seperti menampilkan teks, gambar, dan memilih pilihan.
Modul ini membahas struktur kontrol percabangan dan pengulangan dalam pemrograman berorientasi objek. Terdapat tiga jenis struktur kontrol percabangan yaitu if, if-else, dan switch-case beserta contoh kode programnya. Sedangkan untuk pengulangan terdapat pernyataan for, while, dan nested loop beserta contoh kode programnya. Modul ini juga membahas flowchart dari masing-masing struktur kontrol.
Program tersebut memberikan penjelasan tentang pengenalan pemrograman Java, meliputi tujuan pembelajaran Java dasar, struktur dasar kode Java, cara kerja kompilasi dan eksekusi program Java, platform Java, dan konsep-konsep dasar seperti tipe data, operator, input/output, dan komentar.
Materi : Berisi tutorial dalam pembuatan Database, Tabel, View, StoredProcedure dan Trigger menggunakan perintah SQL dengan menggunakan DBMS Sql Server.
Bab 3 membahas desain form master untuk aplikasi penjualan barang yang terdiri dari form barang, pelanggan, tentang programmer, dan login. Setiap form didesain dengan menambahkan komponen seperti label, textbox, button, dan lainnya serta mengatur propertinya.
Dokumen ini memberikan instruksi lengkap untuk membuat proyek aplikasi penjualan barang menggunakan Visual C# dan SQL Server, meliputi cara membuat proyek baru, package, sumber gambar, dan menu utama dengan konsep MDI Form.
1. Bab 10 membahas cara membuat laporan kwitansi penjualan menggunakan Crystal Report.
2. Kwitansi dirancang menggunakan objek teks, garis, dan kotak pada Crystal Report, serta menampilkan data dari database melalui view_kwitansi.
3. Form Kwitansi ditampilkan untuk melihat preview kwitansi, sedangkan tombol simpan pada Form Transaksi memanggil Form Kwitansi.
Dokumen tersebut membahas tentang stored procedure pada basis data. Ia menjelaskan definisi stored procedure, kegunaannya, cara pembuatan stored procedure beserta contoh-contoh soal untuk latihan membuat stored procedure untuk menghapus, mengubah, dan mencari data vendors berdasarkan parameter yang diinputkan. Dokumen ini juga membahas cara kerja dengan parameter pada stored procedure.
Dokumen membahas tentang trigger di SQL Server. Trigger adalah pernyataan T-SQL yang secara otomatis dieksekusi oleh SQL Server sebagai respons terhadap pernyataan INSERT, UPDATE, atau DELETE pada tabel tertentu. Diberikan contoh trigger untuk menyimpan log aktivitas penambahan dan penghapusan data pada tabel products, serta trigger untuk memperbarui stok barang pada tabel products saat terjadi penambahan atau penghapusan data pada tabel orderitems.
This document discusses database programming concepts including joins and views. Joins allow tables to be associated within a SELECT statement and come in different types like inner joins, outer joins, left joins and right joins. Views are virtual tables that contain queries to dynamically retrieve data when used, unlike regular tables that store static data. Views can be created using the CREATE VIEW statement.
Dokumen ini membahas tentang sistem informasi penjualan berbasis desktop yang dirancang untuk toko ABC. Sistem ini akan mencatat data pelanggan, barang yang dijual, dan nomor kwitansi penjualan. Databasenya akan dirancang menggunakan Entity Relationship Diagram dan dibentuk menjadi tabel-tabel relasional yang meliputi tabel pelanggan, barang, penjualan, dan detail penjualan.
1. Modul PBO – Teknokrat
52
POLIMORFISME (POLYMORPISHM)
Tujuan
Praktikan dapat memahami dan menjelaskan konsep polimorfisme dalam
perograman serta dapat mengimplementasikan ke dalam pemrograman Java.
POLIMORFISME
Polimorfisme (polymorpishm) bearti banyak bentuk (bahasa Yunani). Dalam pemrograman
berorientasi obyek, digunakan untuk memerintah obyek agar melakukan aksi atau tindakan yang
mungkin secara prinsip sama namun secara proses berbeda.
Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface
banyak aksi. Contoh yang konkrit dalam dunia nyata yaitu mobil. Mobil yang ada dipasaran terdiri
atas berbagai tipe dan berbagai merk, namun semuanya memiliki interface kemudi yang sama,
seperti: stir, tongkat transmisi, pedal gas dan rem. Jika seseorang dapat mengemudikan satu jenis
mobil saja dari satu merk tertentu, maka orang itu akan dapat mengemudikan hamper semua jenis
mobil yang ada, karena semua mobil tersebut menggunakan interface yang sama.
Harus diperhatikan disini bahwa interface yang sama tidak berarti cara kerjanya juga sama. Misal
pedal gas, jika ditekan maka kecepatan mobil akan meningkat, tapi bagaiman proses peningkatan
kecepatan ini dapat berbeda-beda untuk setiap jenis mobil.Dengan menggunakan OOP maka dalam
melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu
masalah tersebut (terstruktur) tetapi obyekobyek apa yang dapat melakukan pemecahan masalah
tersebut.
VIRTUAL METHOD INVOCATION (VMI)
Virtual method invocation (VMI) merupakan suatu hal yang sangat penting dalam konsep
polimorfisme. Syarat terjadinya VMI adalah sebelumnya sudah terjadi polymorphism. Pada saat
obyek yang sudah dibuat tersebut memanggil overridden method pada parent class, kompiler Java
akan melakukan invocation (pemanggilan) terhadap overriding method pada subclass, dimana yang
seharusnya dipanggil adalah overridden. Berikut adalah contoh terjadinya VMI:
Program 6-1
// Test.java
class Parent {
int x = 5;
public void info() {
System.out.println("Ini kelas Parent");
}
}
BAB
6
2. Modul PBO – Teknokrat
53
class Child extends Parent {
int x = 10;
public void info() {
System.out.println("Ini kelas Child");
}
}
public class Tes {
public static void main(String [] args) {
Parent tes = new Child();
System.out.println("Nilai x = " + tes.x);
tes.info();
}
}
Hasil Output
Nilai x = 5
Ini kelas Child
Berdasarkan program di atas, yang terjadi adalah:
· Obyek tes mempunyai behavior yang sesuai dengan runtime type bukan compile type
· Ketika compile time tes adalah Parent
· Ketika runtime tes adalah Child
· Jadi:
o tes hanya bisa mengakses variabel milik Parent
o tes hanya bisa mengakses method milik Child
Pada pembentukan
Parent tes = new Child();
Pertama kali akan menjalankan konstruktor Child, ketika bertemu super() maka akan menjalankan
konstruktor Parent (super class), setelah semua statement dieksekusi baru kemudian menjalankan
konstruktor Child (subclass).
POLYMORPHIC ARGUMENTS
Polymorphic arguments adalah tipe data suatu argumen pada suatu method yang bisa menerima
suatu nilai bertipe subclass-nya. Polymorphic arguments diperlukan, bertujuan untuk
mengefisiensikan pembuatan program. Misalnya suatu kelas memiliki banyak subclass, maka perlu
didefinisikan semua method yang menangani behaviour dari masing-masing subclass. Dengan
adanya polymorphic arguments cukup mendefinisikan satu method saja yang bisa digunakan untuk
menangani behaiour semua kelas. Berikut adalah contoh dari polymorphic arguments:
Program 6-
2
// food.java
public class food {
void eat() { System.out.println("this food is great"); }
}
3. Modul PBO – Teknokrat
54
// tuna.java
public class tuna extends food {
void eat() { System.out.println("this tuna is great"); }
}
// potpie.java
public class potpie extends food {
void eat() { System.out.println("this potpie is great"); }
}
// apples.java
public class apples {
public static void main(String [] args) {
patty bucky = new patty();
food fo = new food();
food po = new potpie();
// penerapan polymorphic argument
bucky.digest(fo);
bucky.digest(po);
}
}
Hasil Output
this food is great
this potpie is great
OPERATOR INSTANCEOF
Pernyataan instanceof sangat berguna untuk mengetahui tipe asal dari suatu polymorphic
arguments. Untuk lebih jelas, berikut kita modifikasi contoh program sebelumnya:
Program 6-
3
// food.java
public class food {
void eat() {
System.out.println("this food is great");
}
}
// tuna.java
public class tuna extends food {
void eat() {
System.out.println("this tuna is great");
}
}
// potpie.java
public class potpie extends food {
void eat() {
System.out.println("this potpie is great");
}
}
4. Modul PBO – Teknokrat
55
// patty.java
public class patty {
public void digest(food x) {
if(x instanceof tuna) {
tuna t = (tuna) x;
t.eat();
} else if(x instanceof potpie) {
potpie p = (potpie) x;
p.eat();
} else {
x.eat();
}
}
}
// apples.java
public class apples {
public static void main(String [] args) {
patty bucky = new patty();
tuna fo = new tuna();
potpie po = new potpie();
bucky.digest(fo);
bucky.digest(po);
}
}
Hasil Output
this potpie is great
this tuna is great
Pemakaian instanceof seringkali diikuti dengan casting obyek dari tipe parameter ke tipe asal.
Contohnya pada program di atas, pada saat kita melakukan instanceof dari tipe tuna, kita dapat
melakukan casting object ke tipe asalnya, yaitu tuna. Berikut adalah cara untuk melakukan casting:
Program 6-4
// patty.java
public class patty {
public void digest(food x) {
// ...
if(x instanceof tuna) {
tuna t = (tuna) x;
// ...
}
// ...
}
}
Tanpa melakukan casting obyek, maka nilai yang akan kita pakai setelah proses instanceof masih
bertipe parent class-nya, sehingga jika tipe tersebut perlu dipakai maka harus dicasting terlebih
dahulu ke tipe subclass-nya.
5. Modul PBO – Teknokrat
56
OVERRIDING
Overriding adalah suatu keadaan dimana subclass memodifikasi tingkah laku yang diwarisi dari super
class. Tujuannya untuk menspesifikan tingkah laku dari subclass tersebut. Overriding dilakukan
dengan cara mendeklarasikan kembali method milik super class di dalam sub class. Deklarasi method
pada subclass harus sama dengan yang terdapat pada di super class, yaitu kesamaan pada nama,
return type, dan daftar parameter (jumlah, tipe, dan urutan). Method pada parent class disebut
overriden method dan pada subclass disebut overriding method. Berikut ini contoh terjadinya
overriding:
Program 6-5
// Employee.java
public class Employee {
protected String name;
protected double salary;
protected Date birthDate;
public String getDetails() {
return "Name: " + name + "n" +
"Salary: " + salary;
}
}
// Manager.java
public class Manager extends Employee {
protected String departement;
public String getDetail() {
return "Name: " + name + "n" +
"Salary: " + salary + "n" +
"Manager of: " + departement;
}
}
Program 6-6
// Animal.java
public class Animal {
public void setVoice() {
System.out.println("Blesesppblesep");
}
}
// Dog.java
public class Dog extends Animal {
public void setVoice() {
System.out.println("Hug..hug..");
}
}
Berdasarkan contoh program di atas, terjadinya overriding pada method getDetails, dimana method
tersebut di-override oleh kelas Manager. Method yang terkena override (overriden method)
diharuskan tidak boleh mempunyai modifier yang lebih luas aksesnya dari method yang meng-
override (overriding method).
6. Modul PBO – Teknokrat
57
OVERLOADING
Overloading adalah suatu keadaan dimana beberapa method memiliki nama yang sama namun
mempunyai fungsionalitas yang berbeda. Tujuannya untuk memudahkan penggunaan/pemanggilan
method dengan fungsional yang mirip. Dalam pendeklarasian overloading aturan yang digunakan
yaitu nama method harus sama, daftar parameter harus berbeda, dan return type boleh sama, juga
boleh berbeda. Berikut adalah contoh implementasi overloading:
Program 6-7
// MethodOverload.java
public class MethodOverload {
public void test() {
System.out.println("Kuadrat dari integer 7 = " + kuadrat(7));
System.out.println("Kuadrat dari double 7.5 = " + kuadrat(7.5));
}
// method kuadrat untuk integer
public int kuadrat(int bil) {
return bil * bil;
}
// method kuadrat untuk double
public double kuadrat(double bil) {
return bil * bil;
}
}
// MethodOverloadRun.java
public class MethodOverloadRun {
public static void main(String [] args) {
MethodOverload x = new MethodOverload();
x.test();
}
}
Berdasarkan kode program di atas, method yang di-overloading adalah kuadrat. Berikut adalah
perbedaan pada kedua method tersebut:
Tabel 6. 1 Contoh method overloading
Tipe return Nama method Daftar Parameter
int Kuadrat (int bil)
double Kuadrat (double bil)
↓ ↓ ↓
Berbeda Sama Berbeda
Berikut adalah contoh potongan kode program yang menerapkan method overloading:
7. Modul PBO – Teknokrat
58
public class Bentuk {
// ...
public void Gambar(int t1) {
// ...
}
public void Gambar(int t1, int t2) {
// ...
}
public void Gambar(int t1, int t2, int t3) {
// ...
}
public void Gambar(int t1, int t2, int t3, int t4) {
// ...
}
}
Overloading juga bisa terjadi antara parent class dengan subclass-nya jika memenuhi ketiga syarat
overload yang sudah disebutkan sebelumnya. Misalnya dari kelas Bentuk pada kode program
sebelumnya diturunkan menjadi kelas baru yang bernama WarnaiBentuk, seperti berikut:
public class Bentuk {
public void Gambar(String warna, int t1) {
// ...
}
public void Gambar(String warna, int t1, int t2) {
// ...
}
// ...
}
CONSTUCTOR OVERLOADING
Suatu kelas bisa memiliki lebih dari satu konstruktor dengan syarat daftar paramenternya tidak
boleh ada yang sama, bentuk inilah yang dinamakan dengan konstruktor overloading. Berikut adalah
contoh bentuk konstruktor overloading:
Program 6-8
// Mahasiswa.java
public class Mahasiswa {
private String npm;
private String nama;
private int umur;
public Mahasiswa() {
// Default konstruktor
npm = "";
nama = "";
umur = 18;
}
8. Modul PBO – Teknokrat
59
public Mahasiswa(String npm, String nama, int umur) {
// Parameter konstruktor
this.npm = npm;
this.nama = nama;
this.umur = umur;
}
// Getter & Setter Method
public String getNpm() {
return npm;
}
public void setNpm(String npm) {
this.npm = npm;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public int getUmur() {
return umur;
}
public void setUmur(int umur) {
this.umur = umur;
}
}
// MahasiswaOverloadingTest.java
public class MahasiswaOverloadingTest {
public static void main(String [] args) {
Mahasiswa obj = new Mahasiswa();
System.out.println("NPM : " + obj.getNpm());
System.out.println("Nama : " + obj.getNama());
System.out.println("Umur : " + obj.getUmur());
Mahasiswa obj2 = new Mahasiswa("12312343", "Anditya", 19);
System.out.println("NPM : " + obj2.getNpm());
System.out.println("Nama : " + obj2.getNama());
System.out.println("Umur : " + obj2.getUmur());
}
}
9. Modul PBO – Teknokrat
60
Lembar Kerja Praktikum: Modul 6
NPM: Asisten:
Nama: Nilai:
Kelas: Tanggal:
Soal
Perhatikan kelas diagram berikut:
1. Jelaskan pengertian dari Polimorfisme, Overloading, dan Overriding.
2. Jelaskan perbedaan antara Polimorfisme dengan Inheritance.
3. Jelaskan perbedaan antara Overloading dengan Overriding.