Selasa, 31 Mei 2011

Modul 2 Praktikum PBO: Polymorphism

Hai temen2... kmabali lgi nih... skrg Q mo bahas tentang modul 2 di praktikum PBO nih smoga bermanfaat ya...

Tapi sebelum ngebahas lebih lanjut tentang apa aja modul 2 itu, pasti temen2 bertanya2 apa itu polymorphism, klo bhasanya presenter salah satu acra musik di TV swasta i2, cekidot mngenal polymorphism...!


Polymorphism adalah kemampuan dari objek untuk menggunakan method dengan nama yang sama tetapi dengan tipe atau parameter yang berbeda-beda. Secara prinsip, polimorphism sama seperti interface.yaitu memaksa sub classnya untuk mengoverride method-methodnya.

Salah satu Keuntungan dari polymorphism itu sendiri yaitu Menghindari duplikasi object,kita dapat menciptakan class baru dari class yang sudah ada,sehingga tidak perlu menuliskan code dari nol ataupun mengulangnya, namun tetap bisa menambahkan attribute dan atau method unik dari class itu sendiri. Dalam konsep yang lebih umum sering kali polymorphism disebut dalam istilah satu interface banyak aksi. Seperti halnya dalam membuat gambar segitiga.

Polymorphism itu sendiri terbagi menjadi 2 bagian yaitu :
* function overloading yaitu function yang bisa dideklarasikan lebih dari 1 kali dengan menggunakan nama yang sama namun menggunakan parameter yang berbeda.
Contoh :

Public void cetak(){ }
Public void cetak(String str){ }
Public void cetak(String str,int line){ }

* function overriding yaitu kemampuan suatu objek untuk menjalankan/memanggil method dengan cara yang berbeda.
Contoh:

cetak();
cetak(“kalimat”);
cetak(“kalimat”,5);

Selain pembahasan diatas tersebut, saya juga dapet implementasi dan tugas akhir dari modul 2 ini, lanjung aja ya kawand......cekidot!!!

implementasi

Kita membuat tiga object class dengan nama Student, subclass, StudentGrad dan class StudentInfo. Class Student tersebut mempunyai method Write yang digunakan
untuk melewatkan argumen untuk kemudian ditampilkan dengan menggunakan method Display.
Pengen tahu source code di java langsung ja nih...


/*Disimpan dengan nama Student.java*/
/*Kode Program untuk kelas Student*/
class student_mega {
public void Write(int ID, int Grad, String Fname, String Lname) {
m_ID = ID;
m_Graduation = Grad;
m_First = Fname;
m_Last = Lname;
}

public void Display(){
System.out.println( "Student: " + m_ID + " " + m_First + " " + m_Last + " Graduated: " + m_Graduation);
}

private int m_ID, m_Graduation;
private String m_First;
private String m_Last;
}

//Membuat kelas StudentGrad yang merupakan kelas turunan dari kelas Student
/*Disimpan dengan nama StudentGrad.java*/
/*Kode Program untuk kelas StudentGrad*/
class StudentGrad extends student_diah {
public void Write(int ID, int Grad, String Fname, String Lname, int yrGrad, String unSch, String major) {
super.Write(ID, Grad, Fname, Lname);
m_UndergradSchool = unSch;
m_Major = major;
m_Grad = Grad;
YearGraduated = yrGrad;
}

public void Display(){
super.Display();
System.out.println(" Graduated: " + m_Grad + " " + m_UndergradSchool + " " + m_Major + " " + YearGraduated);
}

private Integer YearGraduated,m_Grad;
private String m_UndergradSchool;
private String m_Major;
}

//Membuat kelas StudentInfo yang digunakan untuk memasukan agumen ke kedua metode pada masing-masing class Student dan StudentGrad
/*Disimpan dengan nama StudentInfo.java*/
/*Kode Program untuk kelas StudentInfo*/
class StudentInfo {
public static void main (String args[]) {
StudentGrad myStudent = new StudentGrad();
myStudent.Write(10, 1,"Bob","Smith", 2000,"Columbia University","CS");
myStudent.Display();
}

}

Output untuk Source code diatas sebagai berikut:


Tugas akhir


Tugas pada modul 2 ini yaitu kita disuruh membuat kelas polimorfisme dengan menampilkan kelas hewan yang terdiri dari anjing, ayam dan Kucing.
Langsung ja nih source codenya bisa dilihat di bwh ini:
Pada source code ini terdiri dari beberapa kelas,ni sintak Class Polimorfisme


/*Disimpan dalam file polimorfisme.java*/
/*Kode Program untuk kelas polimorfisme*/
//Kelas induk
import java.util.Random;
class polimorfisme{
public static void main(String args[]){
hewan[] hewannya = {
new Anjing("Broni", "Herder"),
new Kucing("Kiti", "Persia"),
new Ayam("Toki", "Buras")
};

hewan pilihHewan;
Random pilih = new Random();
for (int i = 0; i<5 ; i++){ pilihHewan = hewannya[pilih.nextInt(hewannya.length)]; System.out.println("\nPilihan Anda:\n" + pilihHewan); pilihHewan.bersuara(); } }
}

Sintaks untuk Class Hewan


/*Disimpan dalam file hewan.java*/
/*Kode Program untuk kelas hewan*/
class hewan {
private String tipe; //kelas bisa diakses oleh kelas sendiri
public hewan(String tipe){ //kelas hewan dapat diakses oleh kelas luar
this.tipe = tipe; //pendeklarasian variabel tipe
}

public String toString(){ //pengubahan tipe data dari string akan dibaca string lagi
return "Ini adalah "+tipe;//pengulangan kembali nama hewan
}

public void bersuara(){ //method untuk suara hewan
}

}

Sintaks untuk Class anjing


/*Disimpan dalam file Anjing.java*/
/*Kode Program untuk kelas Anjing*/
class Anjing extends hewan{ //kelas turunan dari kelas hewan
private String nama; //pendeklarasian nama untuk hak akses private
private String jenis; //pendeklarasian jenis untuk hak akses private
public Anjing(String nama, String jenis){ //pendeklarasian kelas anjing dengan hak akses publik

super("Anjing"); //merupakan kunci dari suatu kelas yang diturunkan

//pendeklarasian variabel
this.nama=nama;
this.jenis=jenis;
}

public void bersuara(){ //method suara dari kelas anjing
System.out.println("Guk.. Guk.. Guk.. ");

}

//pengulangan kembali dimana string diubah menjadi string lagi
public String toString(){
return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;

}

}

Sintaks untuk Class ayam


/*Disimpan dalam file Ayam.java*/
/*Kode Program untuk kelas Ayam*/
class Ayam extends hewan{
private String nama;
private String jenis;

public Ayam(String nama, String jenis){
super("Ayam");
this.nama=nama;
this.jenis=jenis;
}

public void bersuara(){
System.out.println("Kukuruyuk.. Petok.. Petok..");
}

public String toString(){
return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;
}

}

Sintaks untuk Class kucing


/*Disimpan dalam file Kucing.java*/
/*Kode Program untuk kelas Kucing*/
class Kucing extends hewan{
private String nama;
private String jenis;

public Kucing(String nama){
super("Kucing");
this.nama=nama;
}

public Kucing(String nama, String jenis){
super("Kucing");
this.nama=nama;
this.jenis=jenis;
}

public void bersuara(){
System.out.println("Meong.. Meong.. Meong.. ");
}

public String toString(){
return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;
}

}


berikut ini output dari source code diatas:


Semoga bermanfaat ya kawand....dan temend2 bsa lebih mengerti lagi apa yang dimaksud polimorfisme, utuk modul ini cukup sekian ya... kita ketemu di modul berikutnya....gotcha!!!
»»  READMORE...

Kamis, 26 Mei 2011

Modul 1 Praktikum PBO : Kelas dan Objek

Kali ini saya akan membahas tentang Praktikum Pemrograman Berbasis Objek yang sekarang saya ambil untuk mata kuliah semester 4, untuk itu saya akan berbagi pengalaman dengan teman-teman mengenai pembahasan modul-modul pada praktikum ini. Sebelum kita membahas lebih lanjut, mungkin temen-temen ada yang belum tahu apa itu Pemrograman berbasis Objek (PBO), perlu temen-temen ketahui…tuh

PBO atau Object oriented programming ( OOP ) adalah suatu metode pemrograman yang berbasiskan pada objek, secara singkat pengertian dari OOP adalah koleksi objek yang saling berinteraksi dan saling memberikan informasi satu dengan yang lainnya. Dalam Object Oriented terdapat istilah kelas dan objek.

Nah setelah kita ketahui apa itu OOP?? Saatnya kita mengetahui juga apa itu Kelas dan Objek??

Class berbeda dengan objek. Class merupakan prototipe yang mendefinisikan variabel-variabel dan method-method secara umum. Sedangkan objek pada sisi yang lain merupakan instansiasi dari suatu kelas. Untuk lebih jelasnya saya akan beri contoh berikut: Objek-objek itu ditempatkan dalam suatu kelas tertentu dan diekspresikan dengan variable dan method. Objek-objek yang memiliki kondisi yang berbeda seperti mobil X pada gigi persneling posisi 4 dan mobil Z pada gigi persneling posisi 3 dapat disatukan dalam satu “class mobil” berdasarkan kondisi umum mobil yang dapat mengubah posisi gigi persnelingnya.

Setelah Intermezo yang saya sampaikan diatas, sekarang saatnya kita bahas contoh coding tentang Kelas dan Objek pada praktikum kali ini, agar gak terlalu lama kita langsung bahas saja.

Tugas Pendahuluan

Pada tugas pendahuluan, saya disuruh membuat contoh program objek dan kelas dengan nama motor.java, dengan keluaran sebagai berikut:
”Objek” motor-1” :
Merk : Yamaha
Pemilik : Pak Darmawan
”Objek” motor-2” :
Merk : Honda
Pemilik : Pak Nasiruddin

Kalian bica coba source code dibawah ini untuk menyelesaikan persoalan diatas:



public class motor{
public static void main(String[] args){
motor1 aku = new motor1();
aku.nama="motor-1";
aku.merk="Yamaha";
aku.pemilik="Pak Darmawan";
aku.cetakMotor();
aku.nama="motor-2";
aku.merk="Honda";
aku.pemilik="Pak Nasiruddin";
aku.cetakMotor();
}
}
class motor1{
String merk, pemilik, nama;
void cetakMotor(){
System.out.println("Object "+nama+" : ");
System.out.println("Merk : "+merk);
System.out.println("Pemilik : "+pemilik);
}
}

Hasil Running:


Implementasi
Implementasi kali ini saya disuruh membuat program kelas dan objek dengan nama kelas mahasiswa dan atribut/variablel = nama dan npm dan mempunyai metodh: tampilkanNama, tampilkanNpm, belajar, olahRaga, makan, minum. Dimana pada soal tersebut kita harus membuat 3 objek kelas mahasiswa dengan menganstisiasi nama dan npm saya serta 2 teman saya.
Penyelesaiannya dengan source code berikut:


public class mahasiswa{
public static void main(String[] args){
mhs aku = new mhs();
aku.nama="Mega";
aku.npm="090411100012";
aku.belajar="Internet";
aku.olahraga="Bulu Tangkis";
aku.makan="Mie Goreng";
aku.minum="Es Campur";
aku.tampilkanNama();
aku.tampilkanNPM();
aku.tampilbelajar();
aku.tampilolahraga();
aku.tampilmakan();
aku.tampilminum();

mhs aku1 = new mhs();
aku1.nama="Ayu";
aku1.npm="090411100044";
aku1.belajar="Matematika Diskrit";
aku1.olahraga="Lempar lembing";
aku1.makan="Bakso";
aku1.minum="Es Degan";
aku1.tampilkanNama();
aku1.tampilkanNPM();
aku1.tampilbelajar();
aku1.tampilolahraga();
aku1.tampilmakan();
aku1.tampilminum();

mhs aku2 = new mhs();
aku2.nama="Fitri";
aku2.npm="090411100013";
aku2.belajar="Cerpen";
aku2.olahraga="Renang";
aku2.makan="Mie Rebus";
aku2.minum="Susu Coklat";
aku2.tampilkanNama();
aku2.tampilkanNPM();
aku2.tampilbelajar();
aku2.tampilolahraga();
aku2.tampilmakan();
aku2.tampilminum();
}
}

//Method
class mhs{
String nama, npm, belajar, olahraga, makan, minum;
void tampilkanNama(){
System.out.println("Nama : "+nama);
}
void tampilkanNPM(){
System.out.println("NPM : "+npm);
}
void tampilbelajar(){
System.out.println("Belajar : "+belajar);
}
void tampilolahraga(){
System.out.println("Olahraga : "+olahraga);
}
void tampilmakan(){
System.out.println("Makan : "+makan);
}
void tampilminum(){
System.out.println("Minum : "+minum);
}
}

Hasil Running:


Tugas Akhir
Tugas Akhir ini merupakan program terakhir yang harus saya buat dengan ketentuan sebagai berikut:
Class : Televisi
Object : Televisiku
Attribute
- Merek
- Tipe
- Ukuran
- Tombol volume
- Tombol Channel
ethod
- Menyalakan TV
- Memindahkan Channel
- Membesarkan volume
- Mematikan Televisi

Hasil :
Merek Televisi : Samsung
Tipe Televisi : LCD TV
Ukuran Televisi : 52 inchi
Saat ini televisi sudah on.....
Channel berpindah
Volume bertambah besar.
Press any key to continue . . .

Penyelesaian tugas akhir tersebut dengan mencoba source code di bawah ini:


public class televisi{
public static void main(String[ ] args){
televisiku aku = new televisiku();
aku.nama="televisiku";
aku.merk="Samsung";
aku.tipe="LCD TV";
aku.ukuran="52 inchi";
aku.tombolVolume="tambah besar";
aku.tombolChannel="berpindah";
aku.cetakNama();
aku.menyalakanTelevisi();
aku.memindahkanChannel();
aku.membesarkanVolume();
aku.mematikanTelevisi();
}
}
class televisiku{
String nama, merk, tipe, ukuran, tombolVolume, tombolChannel;
void cetakNama(){
System.out.println("Objek : "+nama);
System.out.println("Merk : "+merk);
System.out.println("Tipe : "+tipe);
System.out.println("Ukuran : "+ukuran);
}
void menyalakanTelevisi(){
System.out.println("Saat ini televisi sudah on...");
}
void memindahkanChannel(){
System.out.println("Channel "+tombolChannel);
}
void membesarkanVolume(){
System.out.println("Volume "+tombolVolume);
}
void mematikanTelevisi(){
System.out.println("Televisi sudah off...);
}

}

Hasil Running:


Demikian pembahasan saya mengenai modul kelas dan objek kali ini semoga bermanfaat bagi teman-teman untuk mencoba dan memahami perbedaan kelas dan objek. Ketemu lagi di pembahasan modul berikutnya ya....!!!Gotcha.....
»»  READMORE...