SlideShare a Scribd company logo
XI-RPL-1 
MODUL OBOR 
Toby Zulkarnain
Pendahuluan 
Dalam memecahkan masalah pemrograman OOP membagi program dalam objek- objek, kemudian memodelkan sifat dan tingkah laku masing-masing dan menentukan serta mengatur interaksi antara objek yang satu dengan lainnya. Modul Praktikum Object Oriented Programming (OOP) menggunakan bahasa pemrograman JAVA yang bekerja dengan platform editor console dan GUI. Modul ini terdiri atas 6 unit dan meliputi 3 pilar utama pemrograman OOP yaitu Inheritance, Encapsulation,dan polymorphism. 
Berbagai method pada OOP diimplementasikan pada modul ini untuk pembentukan kelas, instans dan objek. Penggunaan interface dan proses streaming pada input dan output (modul 4), selain itu untuk error handling pada proses kompilasi program juga di berikan dengan cara penangan eksepsi (modul 5 ). Pada Modul 6 method yang digunakan pada OOP di implementasikan menggunakan Graphis User Interface (GUI) untuk pembuatan komponen memalui Abstrak Windowing Toolkits (AWT) dan SWING seperti. Container, Button, EditText, Label, MessageBox, ProgressBar, Canvas, Frame dan lain-lain dan kemudian pada bab terakhir yaitu (modul 7) akan dibahas masalah koneksi MYSQL dengan JAVA menggunakan IDE Netbeans dan penerapan aplikasinya. 
Penilain dari hasil praktikum ini meliputi penguasaan materi, kecakapan pembuatan program pada latihan yang diberikan oleh instruktur serta Tugas Akhir program dengan problem yang berbeda-beda untuk masing-masing praktikan yang di demokan diakhir masa praktikum ini. 
Diharapkan dalam pelaksanaan praktikum ini mahasiswa praktikan mampu memahami konsep OOP dan mampu membuat program secara konseptual dan praktis melalui latihan-latihan 
Sebagai penutup kami sampaikan bahwa untuk mampu membuat program OOP maka selayaknya rajin membuat program sesuai dengan konsep OOP dan berusaha menangani kesalahan pada program yang dibuat. 
Konsep Object Oriented Programing 
OOP (Object Oriented Programming) bukanlah merupakan bahasa pemrograman melainkan sebuah cara untuk menjadikan program yang kita buat menjadi lebih modular karena suatu permasalahan akan dikumpulkan dalam satu objek, yang selanjutnya akan disebut dengan kelas. Pembahasan lebih lanjut mengenai kelas dan objek ini baru akan dibahas pada bab selanjutnya. Dengan kata lain pada bab ini akan dibahas pengenalan dan konsep dasar dari OOP sehingga akan lebih mudah memahami bab-bab selanjutnya. 
Secara umum kerangka OOP terdiri atas 7 bagian yaitu :
1. Komentar 
2. Paket ( Package ) dan Import 
3. Badan Kelas ( Class body) 
4. Data 
5. Method 
Main Method 
Gambar 1.1 Blok Kerangka Dasar OOP 
Pada pemrograman berorientasi objek terdapat dua istilah yang sangat terkenal yaitu kelas dan objek. Kelas dapat didefinisikan sebagai sesuatu yang mempunyai data (sifat) dan fungsi (kelakuan). Sedangkan Objek adalah instance dari sebuah kelas. 
Contoh: Manusia adalah suatu kelas, maka instance atau objek dari kelas manusia adalah Udin, Sandra, Dewi, dan yang lainnya.
Penciptaan Kelas 
Kelas dapat dibuat sebagai kelas yang baru atau dibentuk dari kelas yang sudah ada. Proses pembentukan kelas baru dari kelas yang sudah ada menggunakan method Inheritance (pewarisan) menjadi kelas Super(induk) dan Kelas Sub(anak). Proses pembentukan kelas menghasilkan hierarki kelas yaitu puncak hierarki yang disebut sebagai kelas abstrak dengan memiliki dsekripsi data dan method yang sangat umum. 
Gambar 1.2 Diagram Kelas OOP 
Kelas pada java didefinisikan dengan menggunakan kata kunci class. Contoh sederhana penciptaan kelas: 
class Siswa{ 
//variable instan String nama; 
//metode 
void isiData(String namaku) { nama=namaku; 
} 
String ambilNama(){ return nama; 
} 
} 
Penciptaan Objek
Objek dibuat dengan mula-mula membuat variable yang kelak merujuk ke objek. Variabel seperti ini biasa disebut variable objek. Selanjutnya objek diciptakan dengan melalui new dan hasilnya ditugaskan ke variabel objek 
Contoh: 
Siswa mahasiswa_itn = new Siswa();Contoh Listing Program 
Untuk membuat file java harus diperhatikan beberapa ketentuan berikut : 
File yang dibuat harus berekstensi java dan nama file sama dengan nama kelas yang dibuat. 
Untuk mencompile file java dengan perintah javac [nama file].java. 
Untuk menjalankan file java dengan perintah java [nama file]. 
Latihan 1 : 
class Siswa 
{ 
String nama; String nim; 
void isiData ( String namaku,String nimku ) { nama = namaku; 
nim = nimku; 
} 
String ambilNama() { return nama; 
} 
String ambilNim() { return nim; 
} 
} 
public class Mahasiswa { 
public static void main ( String [] args) { Siswa mahasiswa_itn = new Siswa(); 
//mengisi variable instant 
mahasiswa_itn.isiData ("Dina Damayanti", 
"0412585"); 
//menampilkan isi variable instant 
"Nama 
: 
" 
+ 
System.out.println( 
mahasiswa_itn.ambilNama()); 
"Nim 
: 
" 
+ 
System.out.println( 
mahasiswa_itn.ambilNim()); 
} 
} 
Hasilnya akan ditampilkan seperti ini :
KONSTRUKTOR & OVERLOADING 
Konstruktor 
Kita sudah mengetahui bahwa kelas adalah alat untuk menciptakan objek. Sekarang yang menjadi pertanyaan adalah bagaimana cara menciptakan objek menggunakan sebuah kelas. Jawabannya adalah dengan menggunakan sebuah konstruktor. 
Apakah sebuah konstruktor itu? Konstruktor adalah bagian dari definisi suatu kelas yang berfungsi menciptakan instans dari kelas tersebut. Konstruktor ini bisa kita buat sendiri, atau bila kita tidak mendefinisikannya, maka kompiler Java akan membuatkan konstruktor default untuk kelas tersebut pada saat kompilasi. Yang perlu diperhatikan adalah bahwa suatu konstrukor tidak termasuk anggota suatu kelas seperti metode dan variabel dan bahwa konstruktor bisa dibuat lebih dari satu. 
Metode konstruktor ini akan dipanggil secara otomatis oleh java ketika new dipakai untuk menciptakan instant kelas. 
Konstruktor mempunyai sifat: 
1. Namanya sama dengan nama kelas. 
2. Tidak memiliki nilai balik ( termasuk tidak boleh ada kata-kunci void). 
Contoh : 
class MOTOR{ String merk; int tahun; 
String noPolisi; String warna; 
public MOTOR(String merk,int tahun, String noPolisi,String warna){ 
this.merk=merk; 
this.tahun=tahun; 
this.noPolisi=noPolisi; 
this.warna=warna; 
} 
void showInfoMotor(){ System.out.println("Merk : "+this.merk); System.out.println("Tahun: "+this.tahun); 
System.out.println("No Polisi: "+this.noPolisi); System.out.println("Warna : " + this.warna); 
} 
} 
public class KelasMotorku{ 
public static void main(String [] args){ 
MOTOR motorku = new MOTOR("Honda GL Pro",1997,"G 5879 BF","Hitam"); 
motorku.showInfoMotor(); 
} 
} 
Hasilnya ditampilkan sebagai berikut :
Overloading 
Overload adalah pembuatan metode-metode dengan nama yang sama tetapi jumlah parameter dari metode-metode tersebut berbeda. 
Contoh : 
Public class Hitung { 
static int tambah(int x, int y){ return x+y; 
} 
static double tambah(double x, double y){ return x+y; 
} 
static int tambah(int x, int y, int z){ return x+y+z; 
} 
static void tambah2(int x, int y){ System.out.println("x"+x+" + y"+y+"="+(x+y)); 
} 
public static void main(String[] args){ int x,y; 
x=2; 
y=x+3; 
x=tambah(2,3); 
System.out.println("1. "+x); System.out.printf("2. %.2f n",tambah(2.3, 4.1)); System.out.println("3. "+tambah(5, 12, 3)); System.out.println("4. "+tambah(100, 0.5)); System.out.println("5. "+tambah(2.5, 4)); 
System.out.println("6. "+tambah(tambah(x*2, (x*2y)), tambah((yx), 
tambah(7, 3), 2))); System.exit(0); 
} 
} 
Hasilnya akan ditampilkan sebagai berikut :
INHERITANCE & ABSTRACTION 
Inheritance 
Inheritance adalah kemampuan suatu objek atau kelas untuk mewariskan sifat- sifat yang terdapat didalamnya ke kelas turunannya. Inheritance merupakan suatu mekanisme yang memungkinkan seorang pemrogram menciptakan kelas baru berdasarkan kelas yang sudah tersedia sehingga tidak perlu menuliskan kode dari nol. Kelas dasar/kelas induk mewarisi semua metode dan variable instant, namun kelas turunan dapat menambahkan metode baru atau variable instant baru tersendiri. 
a. Cara Pewarisan Kelas. 
Kelas turunan secara prinsip dapat dibuat dengan menggunakan bentuk : 
Class KelasTurunan extends KelasDasar{ 
Tubuh kelas 
} 
b. Pemanggilan Konstrktor Super Kelas 
Pada contoh sebelumnya , Superkelas tidak mengandung konstruktor. Bagaimana jika superkelas memiliki konstruktor. Bagaimana apabila subkelas ingin memanggil konstruktor. Anda bias menggunakan kata kunci super. 
Super (nama , nim ); 
Pemanggilan konstruktor kelas dasar harus memenuhi persyaratan berikut : 
 Pemanggilan dengan super seperti diatas hanya bisa dilakukan pada konstruktor.  
 
 Pemanggilan konstruktor superkelas harus berkedudukan sebagai pernyataan pertama dalam kosntruktor. 
Contoh : 
class Salam { 
String slm=" Hello !!!"; 
public void info1() {
System.out.println(slm); 
} 
} 
class PanggilSalam extends Salam{ String salamku="selamat pagi"; 
public void info2(){ System.out.println(salamku); 
} 
public static void main(String[] args){ PanggilSalam obj=new PanggilSalam(); 
obj.info1(); 
obj.info2(); 
} 
} 
Hasilnya akan ditampilkan sebagai berikut : 
Abstraction 
Abstraksi adalah proses pengabstrakan atau penyembunyian detail program yang sangat rumit sehingga kita tidak perlu untuk mempermasalahkan pembuatannya. Kita hanya perlu obyek tersebut dapat kita gunakan sesuai fungsinya.Dalam java suatu metode ditentukan dari dalam kelas tetapi tidak disertai definisinya, metode ini dikenal dengan metode abstrak, sedangkan kelasnya disebut kelas abstrak. Definisi kelas diletakkan pada masing- masing kelas turunannya. Kelas abstrak biasanya dibuat apabila pada subkelas-subkelas memerlukan operasi yang sama dengan metode tersebut, akan tetapi antara subkelas dengan subkelas lain memiliki tindakan yang berbeda.Untuk mendeklarasikan kelas abstrak dan metodenya, dipergunakan kata kunci abstract. 
Contoh : 
public abstract class Pelajar{ protected String nama; 
public abstract void belajar(); 
} 
// Berkas : TesAbstrak1.java
class siswa1 extends Pelajar{ 
public siswa1( String nama){ this.nama=nama; 
} 
public void belajar(){ 
class siswa2 extends Pelajar{ public siswa2 ( String nama){ 
this.nama=nama; 
} 
public void belajar(){ 
System.out.println(this.nama+ " memperhatikan gurunya yang mengajar di depan kelas"); 
} 
} 
public class TesAbstrak1{ 
public static void main ( String[] args) { siswa1 mhs=new siswa1("Ani"); 
mhs.belajar(); 
siswa2 mrd=new siswa2("Budi"); mrd.belajar(); 
} 
} 
Hasilnya akan ditampilkan sebagai berikut :
PENENTU AKSES & POLIMORFISME 
Penentu Akses 
Berkaitan dengan boleh-tidaknya suatu variable instant diakses dari luar kelas, java menyediakan penentu akses, yaitu : 
 Public berarti bahwa pengaksesan suatu variable instant atau metode dapat dilakukan dari luar kelas. 
 Private berarti bahwa pengaksesan suatu variable instant atau metode hanya dapat dilakukan di dalam kelas; tidak bias diakses dari luar kelas. 
 Protected berati bahwa pengaksesan suatu variable instant atau metode yang terdapat pada sebuah kelas dapat diakses pada kelas itu sendiri dan pada sub kelas. 
Polimofisme 
Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda melalui satu cara yang sama. Apabila mempunyai objek yang bertipe superkelas, variable objek ini bisa diisi dengan objek superkelas ataupun objek subkelas tanpa perlu melakukan perubahan tipe. 
Contoh : 
class Binatang{ 
public void info() { 
System.out.println(" Info tentang Hewan : "); 
} 
} 
class Herbivora extends Binatang { public void info() { 
System.out.println ("Info pada herbivora: Memakan makanan 
berupa tumbuh - tumbuhan"); 
} 
class Kelinci extends Herbivora{ public void info(){ 
System.out.println("Info pada Kelinci: Memakan makanan berupa wortel"); 
} 
} 
public class Polimorfisme { 
public static void main(String[] args) { 
Herbivora herbivora; 
Kelinci kelinciku; 
Binatang hewan; 
herbivora=new Herbivora(); kelinciku=new Kelinci(); 
hewan=herbivora; 
hewan.info();
hewan=kelinciku; 
hewan.info(); 
} 
} 
Hasilnya akan ditampilkan sebagai berikut : 
STREAM & EXCEPTION 
Stream 
Operasi input dan output pada java menggunakan konsep aliran data,Aliran data sendiri sudah di lakukan dan di pelajari pada bab-bab sebelumnya yaitu aliran data dari device output dengan memanfaakan method println() pada objek System.out, dan device input pada objek System.in dari kelas System Stream adalah aliran data yang berupa aliran byte atau karakter, dari device input ke divice output pada saat program di eksekusi. Proses untuk membaca data dari layar lalu memprosesnya pada saat program dijalankan serta menampilkan hasil proses tersebut pada layar console dilakukan oleh kelas InputStreamReader, kelas ini akan membaca data yang diketikkan oleh user melalui console dan sekaligus memperlakukannya sebagai Stream, tahap yang dilakukan oleh kelas InputStreamReader meliputi 3 langkah yaitu: 
1. Membuat objek dari kelas InputStreamReader, dengan sintaks 
InputStreamReader dataIn = new InputStreamReader(System.in); 
2. Menampung objek Stream ke buffer 
BufferedReader bufIn = new BufferedReader(dataIn,1); 
3. Membaca data dari objek Stream 
String data = bufIn.readLine(); 
Proses diatas akan menampung inputan dari console dan mengembalikannya sebagai tipe data String , kita harus melakukan parsing dari string itu ke tipe data yang diinginkan untuk membaca suatu nilai int, byte, long, double dan sebagainya. Inputan dan
penyimpanan sementara data dari keybord untuk proses kemudian di outputkan hasilnya bisa bermacam-macam cara antara lain: 
1. Dengan melakukan langkah-langkah seperti InputStreamReader diatas dimana kita harus membuat objek dari kelas InputStramReader, lalu menampung objek Stream ke buffer, kemudian membaca data dari objek stream 
2. Selain itu juga ada cara untuk mengimputkan data dari console dengan memanfaatkan kelas yang kita buat sendiri dimana kelas ini nantinya akan diwariskan pada suatu file yang memanggil dan membutuhkan warisan dari kelasyang kita buat, sehingga proses yang dilakukan oleh kelas InputStreamReader hanya ada pada kelas induk yang akan mewarisi.dan kelas yang menerima inputan hanya memanggil kelas induk saja sesuai dengan tipe datanya masing-masing Kelas Induk yaitu kelas utama yang akan mewarisi sifat2nya pada kelas yang memanggilnya sesuai dengan tipe data yang diinginkan oleh kelas pemanggil, kelas induk dan kelas pemanggil harus berada pada satu direktori yang sama agar proses pemanggilan tidak mengalami error. 
Kelas induk tidak akan berfungsi sebagai apa-apa jika tidak ada yang memanggil dan mewarisi sifat-sifat yang ada pada kelas pemanggil, maka dari itu kita harus membuat kelas pemanggil agar kelas induk bisa berguna. 
Exception 
Dalam pembuatan sebuah program sering muncul error, yang sering disebut dengan istilah eksepsi (exception). Agar terbebas dari kesalahan pada saat runtime maka java memiliki mekanisme penanganan eksepsi. Yaitu memiliki pernyataan try, catch, finaly. 
Penggunaan dari pernyataan tersebut : 
Try { 
//Blok yang ditangkap sekiranya terjadi eksepsi 
} 
catch (parameter) { 
//Blok yang dijalankan kalau terjadi eksepsi 
} 
finally { 
//Blok yang akan dijalankan terakhir kali 
}
Contoh : 
public class BagiNol { 
public static void main ( String [] args ){ 
System.out.println ( "Sebelum pembagian "); 
try { 
System.out.println(8/0); 
} 
catch(Throwable t){ System.err.print("Pesan Kesalahan: "); System.err.println(t.getMessage()); 
} 
finally{ 
System.out.println("finally pasti dijalankan()"); 
} 
System.out.println ("Selesai"); 
} 
} 
Hasilnya akan ditampilkan sebagai berikut : 
Melontarkan Eksepsi 
Java menyediakan pernyataan untuk melontarkan eksepsi yaitu berupa pernyataan throw. 
Throw variableObjek; 
variabelObjek menyatakan variable objek yang merujuk ke suatu kelas eksepsi. 
Contoh : 
//Berkas : EfekThrow.java public class EfekThrow { 
public static void main(String[] args) { System.out.println("Sebelum pembagian"); try { 
System.out.println(5/0); 
} 
catch (ArithmeticException a){
a = new ArithmeticException ( "Anda telah melakukan pembagian dengan nilai nol"); 
throw(a); 
} 
} 
} 
Hasilnya akan ditampilkan sebagai berikut :

More Related Content

DOCX
Modul oop with java application mauludin
PDF
Modul prak2 constructor dan overloading
DOCX
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
PDF
Modul Pemrograman Berorientasi Objek
PPT
Pert 4. class dan objek
DOCX
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
DOCX
Laporan PBO pratikum 2
PDF
Konsep Inheritance
Modul oop with java application mauludin
Modul prak2 constructor dan overloading
Java (Netbeans) - Class, Constructor, Object (Object Oriented Programming)
Modul Pemrograman Berorientasi Objek
Pert 4. class dan objek
Java (Netbeans) Polymorphism - Object Oriented Programming (OOP)
Laporan PBO pratikum 2
Konsep Inheritance

What's hot (20)

PDF
Pengenalan Java
DOC
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
PDF
Modul praktikum PBO
DOCX
Laporan PBO Pratikum 3
PDF
Materi pelatihan java_fundamental
PDF
Materi pelatihan java fundamental
DOCX
Laporan PBO Modul 4
PDF
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
PDF
[PBO] Pertemuan 10 - Generic Programming & Collection
PDF
Modul praktikum java pemrograman berorientasi objek
PDF
Modul pratikum pbo - Polimorphism
PDF
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
PDF
Modul pratikum pbo - inheritance
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
PDF
Modul pratikum pbo - ENCAPSULATION
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)
DOCX
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
PDF
[PBO] Pertemuan 4 - Kontruktor Destruktor
DOCX
Kelas dan objek
Pengenalan Java
Java (Netbeans) - Abstract & Interface - Object Oriented Programming
Modul praktikum PBO
Laporan PBO Pratikum 3
Materi pelatihan java_fundamental
Materi pelatihan java fundamental
Laporan PBO Modul 4
Pelajaran oop java ii pengertian method dan cara pembuatan method by hermawan
[PBO] Pertemuan 10 - Generic Programming & Collection
Modul praktikum java pemrograman berorientasi objek
Modul pratikum pbo - Polimorphism
[PBO] Pertemuan 3 - Pengenalan Pemrograman Berbasis Objek
Modul pratikum pbo - inheritance
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul pratikum pbo - ENCAPSULATION
Modul Praktikum Pemrograman Berorientasi Objek (Chap.12)
Laporan Modul 1 Praktikum Pemrograman Berbasis Objek
[PBO] Pertemuan 4 - Kontruktor Destruktor
Kelas dan objek
Ad

Similar to Modul Object Oriented Programming (20)

PPTX
CCIT OOP Pertemuan 1
PPTX
Pemograman berorientasi objek
PDF
Pengantar Pemrograman Berorientasi Objek
PPT
Lanjutan-Konsep-OOPLanjutan-Konsep-OOP.ppt
PDF
5475 1 review konsep pbo
PPT
inheritance
PPTX
Pemrograman Berorientasi Objek (PBO).pptx
PPTX
Java Object Oriented Programming good understanding
PPTX
PRAKTIKUM PBO PERTEMUAN 5 (3).pptx
PDF
Pemrograman berbasis Objek
DOCX
Tugas Praktikum Pemrograman Berorientasi Objek
PPT
T1 - Konsep Pemrograman Berorientasi Obyek.ppt
PPT
PPT
1. konsep pbo
DOCX
analisa konstruktor mm.docx analisa data
PDF
Kelas, Kontrol Kelas, dan Konstruktor
PPT
dasar OOP
PPT
pbo 3 ervan
PPTX
Object-Oriented-Programming-New-OOP.pptx
CCIT OOP Pertemuan 1
Pemograman berorientasi objek
Pengantar Pemrograman Berorientasi Objek
Lanjutan-Konsep-OOPLanjutan-Konsep-OOP.ppt
5475 1 review konsep pbo
inheritance
Pemrograman Berorientasi Objek (PBO).pptx
Java Object Oriented Programming good understanding
PRAKTIKUM PBO PERTEMUAN 5 (3).pptx
Pemrograman berbasis Objek
Tugas Praktikum Pemrograman Berorientasi Objek
T1 - Konsep Pemrograman Berorientasi Obyek.ppt
1. konsep pbo
analisa konstruktor mm.docx analisa data
Kelas, Kontrol Kelas, dan Konstruktor
dasar OOP
pbo 3 ervan
Object-Oriented-Programming-New-OOP.pptx
Ad

Recently uploaded (8)

PPTX
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
PPTX
Materi_Array_Karakter_String untuk kelas XI sma.pptx
PPTX
PERANCANGAN DAN PENGEMBANGAN VIDEO GAME SEBAGAI MEDIA TERAPI DEPRESI
PPT
pengantar-sistem-informasi manajemen.ppt
DOCX
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
DOCX
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
PPTX
Implementasi Microservices pada Manufaktur
PPTX
PEMAHAMAN MAPEL KODING DAN KECERDASAN ARTIFICIAL
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
Materi_Array_Karakter_String untuk kelas XI sma.pptx
PERANCANGAN DAN PENGEMBANGAN VIDEO GAME SEBAGAI MEDIA TERAPI DEPRESI
pengantar-sistem-informasi manajemen.ppt
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
Implementasi Microservices pada Manufaktur
PEMAHAMAN MAPEL KODING DAN KECERDASAN ARTIFICIAL

Modul Object Oriented Programming

  • 1. XI-RPL-1 MODUL OBOR Toby Zulkarnain
  • 2. Pendahuluan Dalam memecahkan masalah pemrograman OOP membagi program dalam objek- objek, kemudian memodelkan sifat dan tingkah laku masing-masing dan menentukan serta mengatur interaksi antara objek yang satu dengan lainnya. Modul Praktikum Object Oriented Programming (OOP) menggunakan bahasa pemrograman JAVA yang bekerja dengan platform editor console dan GUI. Modul ini terdiri atas 6 unit dan meliputi 3 pilar utama pemrograman OOP yaitu Inheritance, Encapsulation,dan polymorphism. Berbagai method pada OOP diimplementasikan pada modul ini untuk pembentukan kelas, instans dan objek. Penggunaan interface dan proses streaming pada input dan output (modul 4), selain itu untuk error handling pada proses kompilasi program juga di berikan dengan cara penangan eksepsi (modul 5 ). Pada Modul 6 method yang digunakan pada OOP di implementasikan menggunakan Graphis User Interface (GUI) untuk pembuatan komponen memalui Abstrak Windowing Toolkits (AWT) dan SWING seperti. Container, Button, EditText, Label, MessageBox, ProgressBar, Canvas, Frame dan lain-lain dan kemudian pada bab terakhir yaitu (modul 7) akan dibahas masalah koneksi MYSQL dengan JAVA menggunakan IDE Netbeans dan penerapan aplikasinya. Penilain dari hasil praktikum ini meliputi penguasaan materi, kecakapan pembuatan program pada latihan yang diberikan oleh instruktur serta Tugas Akhir program dengan problem yang berbeda-beda untuk masing-masing praktikan yang di demokan diakhir masa praktikum ini. Diharapkan dalam pelaksanaan praktikum ini mahasiswa praktikan mampu memahami konsep OOP dan mampu membuat program secara konseptual dan praktis melalui latihan-latihan Sebagai penutup kami sampaikan bahwa untuk mampu membuat program OOP maka selayaknya rajin membuat program sesuai dengan konsep OOP dan berusaha menangani kesalahan pada program yang dibuat. Konsep Object Oriented Programing OOP (Object Oriented Programming) bukanlah merupakan bahasa pemrograman melainkan sebuah cara untuk menjadikan program yang kita buat menjadi lebih modular karena suatu permasalahan akan dikumpulkan dalam satu objek, yang selanjutnya akan disebut dengan kelas. Pembahasan lebih lanjut mengenai kelas dan objek ini baru akan dibahas pada bab selanjutnya. Dengan kata lain pada bab ini akan dibahas pengenalan dan konsep dasar dari OOP sehingga akan lebih mudah memahami bab-bab selanjutnya. Secara umum kerangka OOP terdiri atas 7 bagian yaitu :
  • 3. 1. Komentar 2. Paket ( Package ) dan Import 3. Badan Kelas ( Class body) 4. Data 5. Method Main Method Gambar 1.1 Blok Kerangka Dasar OOP Pada pemrograman berorientasi objek terdapat dua istilah yang sangat terkenal yaitu kelas dan objek. Kelas dapat didefinisikan sebagai sesuatu yang mempunyai data (sifat) dan fungsi (kelakuan). Sedangkan Objek adalah instance dari sebuah kelas. Contoh: Manusia adalah suatu kelas, maka instance atau objek dari kelas manusia adalah Udin, Sandra, Dewi, dan yang lainnya.
  • 4. Penciptaan Kelas Kelas dapat dibuat sebagai kelas yang baru atau dibentuk dari kelas yang sudah ada. Proses pembentukan kelas baru dari kelas yang sudah ada menggunakan method Inheritance (pewarisan) menjadi kelas Super(induk) dan Kelas Sub(anak). Proses pembentukan kelas menghasilkan hierarki kelas yaitu puncak hierarki yang disebut sebagai kelas abstrak dengan memiliki dsekripsi data dan method yang sangat umum. Gambar 1.2 Diagram Kelas OOP Kelas pada java didefinisikan dengan menggunakan kata kunci class. Contoh sederhana penciptaan kelas: class Siswa{ //variable instan String nama; //metode void isiData(String namaku) { nama=namaku; } String ambilNama(){ return nama; } } Penciptaan Objek
  • 5. Objek dibuat dengan mula-mula membuat variable yang kelak merujuk ke objek. Variabel seperti ini biasa disebut variable objek. Selanjutnya objek diciptakan dengan melalui new dan hasilnya ditugaskan ke variabel objek Contoh: Siswa mahasiswa_itn = new Siswa();Contoh Listing Program Untuk membuat file java harus diperhatikan beberapa ketentuan berikut : File yang dibuat harus berekstensi java dan nama file sama dengan nama kelas yang dibuat. Untuk mencompile file java dengan perintah javac [nama file].java. Untuk menjalankan file java dengan perintah java [nama file]. Latihan 1 : class Siswa { String nama; String nim; void isiData ( String namaku,String nimku ) { nama = namaku; nim = nimku; } String ambilNama() { return nama; } String ambilNim() { return nim; } } public class Mahasiswa { public static void main ( String [] args) { Siswa mahasiswa_itn = new Siswa(); //mengisi variable instant mahasiswa_itn.isiData ("Dina Damayanti", "0412585"); //menampilkan isi variable instant "Nama : " + System.out.println( mahasiswa_itn.ambilNama()); "Nim : " + System.out.println( mahasiswa_itn.ambilNim()); } } Hasilnya akan ditampilkan seperti ini :
  • 6. KONSTRUKTOR & OVERLOADING Konstruktor Kita sudah mengetahui bahwa kelas adalah alat untuk menciptakan objek. Sekarang yang menjadi pertanyaan adalah bagaimana cara menciptakan objek menggunakan sebuah kelas. Jawabannya adalah dengan menggunakan sebuah konstruktor. Apakah sebuah konstruktor itu? Konstruktor adalah bagian dari definisi suatu kelas yang berfungsi menciptakan instans dari kelas tersebut. Konstruktor ini bisa kita buat sendiri, atau bila kita tidak mendefinisikannya, maka kompiler Java akan membuatkan konstruktor default untuk kelas tersebut pada saat kompilasi. Yang perlu diperhatikan adalah bahwa suatu konstrukor tidak termasuk anggota suatu kelas seperti metode dan variabel dan bahwa konstruktor bisa dibuat lebih dari satu. Metode konstruktor ini akan dipanggil secara otomatis oleh java ketika new dipakai untuk menciptakan instant kelas. Konstruktor mempunyai sifat: 1. Namanya sama dengan nama kelas. 2. Tidak memiliki nilai balik ( termasuk tidak boleh ada kata-kunci void). Contoh : class MOTOR{ String merk; int tahun; String noPolisi; String warna; public MOTOR(String merk,int tahun, String noPolisi,String warna){ this.merk=merk; this.tahun=tahun; this.noPolisi=noPolisi; this.warna=warna; } void showInfoMotor(){ System.out.println("Merk : "+this.merk); System.out.println("Tahun: "+this.tahun); System.out.println("No Polisi: "+this.noPolisi); System.out.println("Warna : " + this.warna); } } public class KelasMotorku{ public static void main(String [] args){ MOTOR motorku = new MOTOR("Honda GL Pro",1997,"G 5879 BF","Hitam"); motorku.showInfoMotor(); } } Hasilnya ditampilkan sebagai berikut :
  • 7. Overloading Overload adalah pembuatan metode-metode dengan nama yang sama tetapi jumlah parameter dari metode-metode tersebut berbeda. Contoh : Public class Hitung { static int tambah(int x, int y){ return x+y; } static double tambah(double x, double y){ return x+y; } static int tambah(int x, int y, int z){ return x+y+z; } static void tambah2(int x, int y){ System.out.println("x"+x+" + y"+y+"="+(x+y)); } public static void main(String[] args){ int x,y; x=2; y=x+3; x=tambah(2,3); System.out.println("1. "+x); System.out.printf("2. %.2f n",tambah(2.3, 4.1)); System.out.println("3. "+tambah(5, 12, 3)); System.out.println("4. "+tambah(100, 0.5)); System.out.println("5. "+tambah(2.5, 4)); System.out.println("6. "+tambah(tambah(x*2, (x*2y)), tambah((yx), tambah(7, 3), 2))); System.exit(0); } } Hasilnya akan ditampilkan sebagai berikut :
  • 8. INHERITANCE & ABSTRACTION Inheritance Inheritance adalah kemampuan suatu objek atau kelas untuk mewariskan sifat- sifat yang terdapat didalamnya ke kelas turunannya. Inheritance merupakan suatu mekanisme yang memungkinkan seorang pemrogram menciptakan kelas baru berdasarkan kelas yang sudah tersedia sehingga tidak perlu menuliskan kode dari nol. Kelas dasar/kelas induk mewarisi semua metode dan variable instant, namun kelas turunan dapat menambahkan metode baru atau variable instant baru tersendiri. a. Cara Pewarisan Kelas. Kelas turunan secara prinsip dapat dibuat dengan menggunakan bentuk : Class KelasTurunan extends KelasDasar{ Tubuh kelas } b. Pemanggilan Konstrktor Super Kelas Pada contoh sebelumnya , Superkelas tidak mengandung konstruktor. Bagaimana jika superkelas memiliki konstruktor. Bagaimana apabila subkelas ingin memanggil konstruktor. Anda bias menggunakan kata kunci super. Super (nama , nim ); Pemanggilan konstruktor kelas dasar harus memenuhi persyaratan berikut :  Pemanggilan dengan super seperti diatas hanya bisa dilakukan pada konstruktor.    Pemanggilan konstruktor superkelas harus berkedudukan sebagai pernyataan pertama dalam kosntruktor. Contoh : class Salam { String slm=" Hello !!!"; public void info1() {
  • 9. System.out.println(slm); } } class PanggilSalam extends Salam{ String salamku="selamat pagi"; public void info2(){ System.out.println(salamku); } public static void main(String[] args){ PanggilSalam obj=new PanggilSalam(); obj.info1(); obj.info2(); } } Hasilnya akan ditampilkan sebagai berikut : Abstraction Abstraksi adalah proses pengabstrakan atau penyembunyian detail program yang sangat rumit sehingga kita tidak perlu untuk mempermasalahkan pembuatannya. Kita hanya perlu obyek tersebut dapat kita gunakan sesuai fungsinya.Dalam java suatu metode ditentukan dari dalam kelas tetapi tidak disertai definisinya, metode ini dikenal dengan metode abstrak, sedangkan kelasnya disebut kelas abstrak. Definisi kelas diletakkan pada masing- masing kelas turunannya. Kelas abstrak biasanya dibuat apabila pada subkelas-subkelas memerlukan operasi yang sama dengan metode tersebut, akan tetapi antara subkelas dengan subkelas lain memiliki tindakan yang berbeda.Untuk mendeklarasikan kelas abstrak dan metodenya, dipergunakan kata kunci abstract. Contoh : public abstract class Pelajar{ protected String nama; public abstract void belajar(); } // Berkas : TesAbstrak1.java
  • 10. class siswa1 extends Pelajar{ public siswa1( String nama){ this.nama=nama; } public void belajar(){ class siswa2 extends Pelajar{ public siswa2 ( String nama){ this.nama=nama; } public void belajar(){ System.out.println(this.nama+ " memperhatikan gurunya yang mengajar di depan kelas"); } } public class TesAbstrak1{ public static void main ( String[] args) { siswa1 mhs=new siswa1("Ani"); mhs.belajar(); siswa2 mrd=new siswa2("Budi"); mrd.belajar(); } } Hasilnya akan ditampilkan sebagai berikut :
  • 11. PENENTU AKSES & POLIMORFISME Penentu Akses Berkaitan dengan boleh-tidaknya suatu variable instant diakses dari luar kelas, java menyediakan penentu akses, yaitu :  Public berarti bahwa pengaksesan suatu variable instant atau metode dapat dilakukan dari luar kelas.  Private berarti bahwa pengaksesan suatu variable instant atau metode hanya dapat dilakukan di dalam kelas; tidak bias diakses dari luar kelas.  Protected berati bahwa pengaksesan suatu variable instant atau metode yang terdapat pada sebuah kelas dapat diakses pada kelas itu sendiri dan pada sub kelas. Polimofisme Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda melalui satu cara yang sama. Apabila mempunyai objek yang bertipe superkelas, variable objek ini bisa diisi dengan objek superkelas ataupun objek subkelas tanpa perlu melakukan perubahan tipe. Contoh : class Binatang{ public void info() { System.out.println(" Info tentang Hewan : "); } } class Herbivora extends Binatang { public void info() { System.out.println ("Info pada herbivora: Memakan makanan berupa tumbuh - tumbuhan"); } class Kelinci extends Herbivora{ public void info(){ System.out.println("Info pada Kelinci: Memakan makanan berupa wortel"); } } public class Polimorfisme { public static void main(String[] args) { Herbivora herbivora; Kelinci kelinciku; Binatang hewan; herbivora=new Herbivora(); kelinciku=new Kelinci(); hewan=herbivora; hewan.info();
  • 12. hewan=kelinciku; hewan.info(); } } Hasilnya akan ditampilkan sebagai berikut : STREAM & EXCEPTION Stream Operasi input dan output pada java menggunakan konsep aliran data,Aliran data sendiri sudah di lakukan dan di pelajari pada bab-bab sebelumnya yaitu aliran data dari device output dengan memanfaakan method println() pada objek System.out, dan device input pada objek System.in dari kelas System Stream adalah aliran data yang berupa aliran byte atau karakter, dari device input ke divice output pada saat program di eksekusi. Proses untuk membaca data dari layar lalu memprosesnya pada saat program dijalankan serta menampilkan hasil proses tersebut pada layar console dilakukan oleh kelas InputStreamReader, kelas ini akan membaca data yang diketikkan oleh user melalui console dan sekaligus memperlakukannya sebagai Stream, tahap yang dilakukan oleh kelas InputStreamReader meliputi 3 langkah yaitu: 1. Membuat objek dari kelas InputStreamReader, dengan sintaks InputStreamReader dataIn = new InputStreamReader(System.in); 2. Menampung objek Stream ke buffer BufferedReader bufIn = new BufferedReader(dataIn,1); 3. Membaca data dari objek Stream String data = bufIn.readLine(); Proses diatas akan menampung inputan dari console dan mengembalikannya sebagai tipe data String , kita harus melakukan parsing dari string itu ke tipe data yang diinginkan untuk membaca suatu nilai int, byte, long, double dan sebagainya. Inputan dan
  • 13. penyimpanan sementara data dari keybord untuk proses kemudian di outputkan hasilnya bisa bermacam-macam cara antara lain: 1. Dengan melakukan langkah-langkah seperti InputStreamReader diatas dimana kita harus membuat objek dari kelas InputStramReader, lalu menampung objek Stream ke buffer, kemudian membaca data dari objek stream 2. Selain itu juga ada cara untuk mengimputkan data dari console dengan memanfaatkan kelas yang kita buat sendiri dimana kelas ini nantinya akan diwariskan pada suatu file yang memanggil dan membutuhkan warisan dari kelasyang kita buat, sehingga proses yang dilakukan oleh kelas InputStreamReader hanya ada pada kelas induk yang akan mewarisi.dan kelas yang menerima inputan hanya memanggil kelas induk saja sesuai dengan tipe datanya masing-masing Kelas Induk yaitu kelas utama yang akan mewarisi sifat2nya pada kelas yang memanggilnya sesuai dengan tipe data yang diinginkan oleh kelas pemanggil, kelas induk dan kelas pemanggil harus berada pada satu direktori yang sama agar proses pemanggilan tidak mengalami error. Kelas induk tidak akan berfungsi sebagai apa-apa jika tidak ada yang memanggil dan mewarisi sifat-sifat yang ada pada kelas pemanggil, maka dari itu kita harus membuat kelas pemanggil agar kelas induk bisa berguna. Exception Dalam pembuatan sebuah program sering muncul error, yang sering disebut dengan istilah eksepsi (exception). Agar terbebas dari kesalahan pada saat runtime maka java memiliki mekanisme penanganan eksepsi. Yaitu memiliki pernyataan try, catch, finaly. Penggunaan dari pernyataan tersebut : Try { //Blok yang ditangkap sekiranya terjadi eksepsi } catch (parameter) { //Blok yang dijalankan kalau terjadi eksepsi } finally { //Blok yang akan dijalankan terakhir kali }
  • 14. Contoh : public class BagiNol { public static void main ( String [] args ){ System.out.println ( "Sebelum pembagian "); try { System.out.println(8/0); } catch(Throwable t){ System.err.print("Pesan Kesalahan: "); System.err.println(t.getMessage()); } finally{ System.out.println("finally pasti dijalankan()"); } System.out.println ("Selesai"); } } Hasilnya akan ditampilkan sebagai berikut : Melontarkan Eksepsi Java menyediakan pernyataan untuk melontarkan eksepsi yaitu berupa pernyataan throw. Throw variableObjek; variabelObjek menyatakan variable objek yang merujuk ke suatu kelas eksepsi. Contoh : //Berkas : EfekThrow.java public class EfekThrow { public static void main(String[] args) { System.out.println("Sebelum pembagian"); try { System.out.println(5/0); } catch (ArithmeticException a){
  • 15. a = new ArithmeticException ( "Anda telah melakukan pembagian dengan nilai nol"); throw(a); } } } Hasilnya akan ditampilkan sebagai berikut :