Contoh Program OOP

Nama Program 2 : Pemrograman berorientasi objek (OOP)
Listing Program 2 :


abstract class seniman { //buat kelas abstrak seniman
seniman() {
System.out.println("Seniman ");
}

seniman (int a) {
System.out.println("Seniman dengan nilai "+a );
}

abstract void berkesenian(); //method abstrak tanpa isi perintah

void tidur() { //method di dalam kelas abstrak pake isi
System.out.println ("Zzzz..zzz.. ");
}

void makan() { //method di dalam kelas abstrak pake isi
System.out.println ("Nyam..nyam...");
}
}

class pelukis extends seniman { // turunan kelas seniman
pelukis() {
//super(2); // akses konstruktor seniman (int a)
System.out.println("pelukis");
}

void berkesenian() { //mengisi perintah method abstrak berkesenian
System.out.println ("Tap..tap..tuk..tuk..");
}

void berkesenian(int a){
}

void tidur() {
System.out.println ("Buzzz..nging..nging..brrr..!!");
}
}

class penyanyi extends seniman {
void penyanyi() {
System.out.println("penyanyi");
}

void berkesenian () {
super.makan(); // akses method makan kelas seniman
System.out.println ("Tralala..trilili...!!!");
}

void bergumam () {
System.out.println ("Mmmm..mmmm..");
}
static void suara() {
System.out.println ("Dududu...dadada..");
}
}

class quizUtama{
public static void main(String[] args){
seniman ref;
// buat objek referensi kelas abstrak namanya ref
// gak bisa langsung seniman ref = new seniman(); <<"DOSA"

pelukis obj1 = new pelukis();
//buat objek dari kelas penyanyi dulu
ref = obj1;
//baru objek ref tadi ditunjuk ke objek obj1 <<" INI GAK DOSA"

ref.berkesenian();
ref.makan();
ref.tidur();
//klo pengen akses method2 yg ada di kelas abstrak pake objek ref

penyanyi obj2 = new penyanyi();
//ref = obj2;
obj2.berkesenian();

obj2.bergumam();
penyanyi.suara();
//klo pengen akses method2 di kelas turunan ya pake objek yg dideklarasiin di kelas itu

obj2.tidur();
}
}

Logika Program 2
Penjelasan Program2 :

Pada program yang kedua kita akan membuat kelas abstrak seniman yang akan disimpan pada akhir program dengan nama quizUtama.java. Dalam Java implementasi, method suatu parent-class dapat diubah oleh sub-class, hal ini dikenal dengan overriding method. Deklarasi method sama tetapi implementasi atau definisinya berbeda. (Method atau perilaku yang sama tapi implementasinya/caranya yang berbeda-beda inilah yang disebut dengan Polimorfisme).
Polimorfisme yaitu konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku berbeda. Polimorfisme mempunyai arti bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda.

abstract class seniman { //buat kelas abstrak seniman
seniman() {
System.out.println("Seniman ");
}
Coding ini berarti menjelaskan bahwa sebelum program dibuat terlebih dahulu kita buat kelas abstrak seniman. seniman() { merupakan konstruktor yang dipanggil dari kelas turunan kelas abstrak seniman. Kemudian akan mencetak statement Seniman ke baris selanjutnya. Dan tambahkan tanda kurung tutup satu kali untuk menutup akses konstruktor tersebut.
seniman (int a) {
System.out.println("Seniman dengan nilai "+a );
}
Coding ini menjelaskan bahwa konstruktor seniman diberi parameter (int a) dan akan mencetak statement “Seniman dengan nilai” +a tetapi setelah dirunning statement tersebut tidak berpengaruh pada hasil keluaran dari program ini. Dan tambahkan juga tanda { dan } sebanyak satu kali.
abstract void berkesenian(); //method abstrak tanpa isi perintah

void tidur() { //method di dalam kelas abstrak pake isi
System.out.println ("Zzzz..zzz.. ");
}
Coding tersebut menjelaskan bahwa method abstrak void berkesenian ini tidak membalikkan nilai karena tanpa isi perintah. Method yang diberi awalan dengan kata void berarti method tersebut tidak memberi nilai balik. Sintaks void tidur merupakan method yang terdapat didalam kelas abstrak void berkesenian yang didalamnya terdapat isi perintah dan akan mencetak perintah “Zzzz..zzz..”. Diawali dengan tanda { dan diakhiri dengan tanda }
void makan() { //method di dalam kelas abstrak pake isi
System.out.println ("Nyam..nyam...");
}
}
Coding tersebut menjelaskan bahwa sintaks void makan juga merupakan method yang terdapat di dalam kelas abstrak void berkesenian yang didalamnya terdapat isi perintah dan akan mencetak perintah "Nyam..nyam...". Dan tambahkan tanda } sebanyak dua kali.
class pelukis extends seniman { // turunan kelas seniman
pelukis() {
//super(2); // akses konstruktor seniman (int a)
System.out.println("pelukis");
}
Pada listing program di atas berisi konstruktor untuk kelas pelukis() yang akan diganti dengan kelas seniman atau turunan dari kelas seniman. pelukis() merupakan konstruktor yang dipanggil dari kelas turunan yaitu kelas seniman. Jika konstruktor dipanggil dari kelas turunan, maka cara untuk mengakses konstruktor seniman adalah dengan menuliskan kata super(); pada class turunan dengan parameter (int a) Dan akan mencetak statement pelukis ke baris selanjutnya. Diawali dengan tanda { dan dikhiri dengan tanda }.
void berkesenian() { //mengisi perintah method abstrak berkesenian
System.out.println ("Tap..tap..tuk..tuk..");
}
Coding ini menjelaskan bahwa sintaks void berkesenian mengisi perintah pada method abstrak berkesanian Dan akan mencetak perintah "Tap..tap..tuk..tuk.." ke baris selanjutnya. Tambahkan tanda } untuk menutup method tersebut.
void berkesenian(int a){
}
Merupakan method yang diberi parameter (int a). Method yang diberi awalan dengan kata void berarti method tersebut tidak memberi nilai balik.
void tidur() {
System.out.println ("Buzzz..nging..nging..brrr..!!");
}
}
Coding tersebut menjelaskan bahwa sintaks void tidur juga merupakan method yang terdapat didalam kelas abstrak void berkesenian yang didalamnya terdapat isi perintah dan akan mencetak perintah “Buzzz..nging..nging..brrr..!!". Method yang diberi awalan dengan kata void berarti method tersebut tidak memberi nilai balik. Dan tambahkan tanda } sebanyak dua kali.
class penyanyi extends seniman {
void penyanyi() {
System.out.println("penyanyi");
}
Pada listing program di atas berisi konstruktor untuk kelas penyanyi() yang akan diganti dengan kelas seniman. void penyanyi() { merupakan method yang dipanggil dari kelas turunan yaitu kelas seniman. Dan akan mencetak statement penyanyi ke baris selanjutnya. Diawali dengan tanda { dan dikhiri dengan tanda }.

void berkesenian () {
super.makan(); // akses method makan kelas seniman
System.out.println ("Tralala..trilili...!!!");
}
Coding ini menjelaskan bahwa method berkesenian merupakan method yang terdapat pada kelas seniman. Untuk mengakses method makan pada kelas seniman maka si gunakan kata super.makan(). Dan akan mencetak perintah "Tralala..trilili...!!!" ke baris selanjutnya.
void bergumam () {
System.out.println ("Mmmm..mmmm..");
}
Coding tersebut menjelaskan bahwa sintaks void berguman juga merupakan method yang terdapat didalam kelas seniman yang didalamnya terdapat isi perintah dan akan mencetak perintah "Mmmm..mmmm..".
static void suara() {
System.out.println ("Dududu...dadada..");
}
}
Coding ini merupakan method main() yang menggunakan keyword static. Sebelum aplikasi mulai dieksekusi, diperlukan metode walaupun tanpa objek. Method yang digunakan adalah void suara() dan akan mencetak perintah "Dududu...dadada.." ke baris selanjutnya. Dan tambahkan tanda kurung tutup kurawal sebanyak dua kali.
class quizUtama{
public static void main(String[] args){
seniman ref;
// buat objek referensi kelas abstrak namanya ref
// gak bisa langsung seniman ref = new seniman(); <<"DOSA"

pelukis obj1 = new pelukis();
//buat objek dari kelas penyanyi dulu
ref = obj1;
//baru objek ref tadi ditunjuk ke objek obj1 <<" INI GAK DOSA"

ref.berkesenian();
ref.makan();
ref.tidur();
//klo pengen akses method2 yg ada di kelas abstrak pake objek ref

penyanyi obj2 = new penyanyi();
//ref = obj2;
obj2.berkesenian();

obj2.bergumam();
penyanyi.suara();
//klo pengen akses method2 di kelas turunan ya pake objek yg dideklarasiin di kelas itu

obj2.tidur();
}
}
Coding selanjutnya menjelaskan bahwa nama class yang baru adalah quizUtama dan nama tersebut akan disimpan pada akhir program. Dibuka dengan tanda kurung buka kurawal satu kali.
Sintaks ini merupakan method utama dalam pemrograman java. Method main merupakan method pada class public yang pertama kali dipanggil oleh Java pada saat program dijalankan. Bertipe data String dengan variable args. Dan tambahkan tanda kurung buka kurawal satu kali. seniman ref;
Coding tersebut menjelaskan bahwa untuk membuat objek referensi pada kelas seniman digunakan ref tidak bisa langsung ditulis seniman ref = new seniman seperti pada objek String. Tetapi setelah dideklarasikan maka dapat langsung ditulis seperti ini
pelukis obj1 = new pelukis(); Coding ini berfungsi untuk membuat objek dari kelas pelukis setelah itu objek referensi yang tadi sudah dibuat ditunjuk ke objek obj1 yaitu pelukis.
Coding selanjutnya yaitu menjelaskan jika ingin mengakses method-method seperti berkesenian, makan dan tidur yang terdapat pada kelas abstrak maka menggunakan objek ref.
penyanyi obj2 = new penyanyi(); Coding ini berfungsi untuk membuat objek dari kelas penyanyi setelah itu objek referensi yang tadi sudah dibuat ditunjuk ke objek obj2 yaitu penyanyi.
Coding selanjutnya dideklarasikan dari objek obj2 pada kelas penyanyi yaitu objek berkesenian. Selanjutnya untuk mengakses method penyanyi.suara() dari kelas turunan penyanyi menggunakan objek yang dideklarasikan di kelas penyanyi dengan objek obj2.bergumam dan coding yang terakhir sama dengan sebelumnya yaitu objek obj2.tidur yang dideklarasikan di kelas turunan penyanyi. Dan tambahkan tanda kurung tutup kurawal sebanyak dua kali untuk mengakhiri program ini.
Sebelum di running pada aplikasi CMD terlebih dahulu kita simpan dengan nama file quizUtama.java kemudian kita compile program ini dengan perintah javac quizUtama.java lalu dirunning dengan perintah java quizUtama.

0 Response to "Contoh Program OOP"

Post a Comment