Nothing Special   »   [go: up one dir, main page]

Academia.eduAcademia.edu
LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK MODUL III “ABTRAKSI PEMROGRAMAN BERORIENTASI OBYEK” Disusun Oleh : TGL. PRAKTIKUM NAMA NRP KELAS DOSEN : 06 November 2014 : NABILA SANI FADDIA : 11.04.111.00045 :A : Yonathan Fery H. S.T., M.IT., Disetujui :......./........../............../Bangkalan ASISTEN DOSEN (Doffy Oktaviano Mukit) 12.04.1.1.1.00039 LABORATORIUM COMMON COMPUTING JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS TRUNOJOYO MADURA 2014 BAB I PENDAHULUAN 1.1 LATAR BELAKANG Pemrograman Berorientasi Obyek merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Konsep dasar dari Pemrograman Berorientasi Objek. 1.2 TUJUAN PRAKTIKUM 1. Mahasiswa dapat memahami Karakteristik Abstraksi PBO 2. Mahasiswa dapat memahami Konsep Inheritance PBO 3. Mahasiswa dapat memahami Konsep Polymorfisme PBO BAB II DASAR TEORI 2.1 Abstraksi PBO Abstraksi, merupakan pengenalan secara umum, ringkasan atau high level terhadap sebuah obyek, tanpa memerlukan pengetahuan secara detail. Contoh obyek yang bersifat abstrak : Hewan mengabstraksi beragam jenis hewan seperti ayam, anjing, kucing, dll. Sehingga kita bisa menyebut ketiga obyek tersebut adalah hewan, dikarenakan memiliki kelakuan sebagai hewan, seperti: bisa berjalan, bisa berbunyi. Ataupun kita bisa menyebut Mobil dimana ada beragam jenis mobil Sedan, Truk, Bus, dimana ketiga obyek tersebut adalah mobil dikarenakan mempunyai mesin, bisa berjalan, bisa mengangkut orang atau barang, dll. Dalam pemodelan UML Class diagram abstraksi obyek dapat digambarkan sebagai berikut: Dari model Class diagram diatas dapat diuraikan Car sebagai Superclass memiliki berbagai atrbut yang dapat diwariskan kepada obyek Subclass berbagai jenis Car seperti halnya mobil Manual dan Matic. Selain mewarisi atribut, mobil Manual dan Matic harus memiliki fungsional dasar yang harus ada untuk dikatakan sebagai Car yaitu bisa start, stop, accelerate dan breakdown. Namun dikarenakan tiap obyek turunan Subclass memiliki ciri dan kerja yang spesifik dan berbeda antara satu dengan yang lainnya maka kedua obyek Manual dan Car bisa menentukan bagaimana cara kerjanya masing-masing. Karena itu dalam konsep OOP, karakteristik abstraksi obyek didukung melalui penerapan konsep utama OOP yaitu inheritance dan polimorfisme. Melalui inheritance digunakan untuk mewariskan berbagai atribut dan fungsional dasar, sedangkan melalui polimorfisme digunakan untuk dapat melakukan modifikasi dan pengembangan dari fungsional yang sudah ditetapkan. Untuk realisasi dari abstraksi obyek sendiri, dapat digunakan dua metode yaitu:   Abstrak Interface Obyek abstract terdiri atas methode abstract sebagai jalur pengaksesan yang akan diimplementasikan oleh berbagai obyek turunannya, selain itu obyek abstract dapat dibekali dengan beragam konten properti atribut dan methode yang dapat diwariskan, dikembangkan dan dimodifikasi oleh obyek turunannya. Dengan konsep tersebut obyek abstract didukung secara penuh Inheritance dan Polymorfisme obyek. Berikut aturan dari obyek Abstract: 1. Dapat memiliki keseluruhan property dan mewariskannya kepada obyek turunannya 2. Abstract methode merupakan kontrak yang harus dipenuhi oleh obyek turunan 3. Tidak dapat dibangun instance dari Superclass, sehingga Superclass hanya sebagai prototype. Implementasi melalui instance hanya bisa dilakukan pada subclass. 4. Obyek turunan subclass ditujukan sebagai obyek implementator untuk melakukan perubahan cara kerja dan pengembangan obyek. Sistematika penulisan kelas Superclass abstract : < modifier> abstract class < Class_name> Sedangkan obyek turunan subclass : < modifier> class < Class_name> extends < Superclass> 2.2 Inheritance Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan mewarisi state (variabel-variabel) dan behaviour (method-method) dari superclass-nya. Subclass kemudian dapat menambahkan state dan behaviour baru yang spesifik dan dapat pula memodifikasi (override) state dan behaviour yang diturunkan oleh superclass-nya. Keuntungan dari inheritance adalah : 1. Subclass mewarisi semua property yang terdapat didalam Superclass 2. Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari superclass yang telah ada. 3. Pewarisan yang mengikat sesuai kontrak menggunakan abstract class Keywords inheritance yang perlu diperhatikan :   Extends : Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass yang menunjukkan sebagai obyek pewaris. Super : Keyword ini digunakan oleh subclass untuk mengakses properti yang telah disediakan oleh superclass. Sistematika penulisan kelas Superclass abstract : <modifier> class <Class_name> extends <Superclass> 2.3 Polymorfisme Polymorfisme merupakan konsep OOP yang ditujukan untuk melakukan perubahan pada methode implementator di subclass terhadap methode yang telah diwariskan dari superclass. Melalui konsep ini maka polymorfisme juga terkait dengan inheritance, dimana pengembangan obyek dapat dilakukan dengan dinamis dengan tetap dapat menggunakan ulang properti yang telah diwariskan. Kata kunci dari polymorfisme adalah @override, yang menggunakan notifikasi @ sebagai penanda bahwa methode yang dituliskan setelahnya dalah sebuah methode warisan yang dilakukan perubahan fungsi kerjanya. Sistematika penulisan kelas Superclass abstract : @override < modifier> < methode_name> 2.4 Implementas abstrak class Berikut contoh penerapan abstract class sebagai superclass, class Car: Sedangkan subclass turunan yang menerapkan inheritance dan polymorfisme class Manual : class matic : Bentuk yang lain dari abstraksi adalah Interface, dimana Interface merupakan abstraksi dengan bentuk yang lebih sederhana. Berikut ketentuan Interface: 1. Interface hanya digunakan sebagai pengantar atau penghubung sebuah obyek, sehingga bukan obyek itu sendiri. Karena itu interface tidak memiliki propertilengkap namun hanya kontrak methode. 2. Interface diimplementasikan melalui berbagai kelas implementator, yang terikat harus memiliki kontrak methode sebagaimana telah ditentukan interface. Contoh Interface: Sedangkan kelas implementator: BAB III TUGAS PENDAHULUAN 3.1 Pertanyaan 1. Apa yang dimaksud dengan karakteristik abstraksi obyek…? 2. Apa yang dimaksud dengan Interface…? 3. Apa yang dimaksud dengan inheritance…? 4. Apa yang dimaksud dengan polymorfisme…? 3.2 Jawab 1. Karakteristik Abstraksi obyek : kareketristik yang digunakan untuk mewariskan berbagai atribut dan fungsional dasar, melalui polimorfisme yang digunakan untuk dapat melakukan modifikasi dan pengembangan dari fungsional yang sudah ditetapkan. 2. Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau constant). Interface mendefinisikan sebuah (signature) dari sebuah kumpulan method tanpa tubuh. Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. 3. Inheritance (pewarisan) adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, Anda dapat menuliskan kode method hanya sekali dan mereka dapat digunakan oleh semua subclass. Subclass hanya perlu mengimplementasikan perbedaannya sendiri dan induknya. 4. Polimorfisme adalah proses kebanyakrupaan, artinya kita dapat mengimplementasikan sesuatu hal yang berbeda melalui satu cara yang sama. untuk mengerti hal ini saya akan berikan ilustrasi nya : misalnya terdapat 5 orang penyanyi(didalam program dianggap sebagai 5 buah objek), kemudian kelimanya kita perintahkan untuk bernyanyi, maka hasil atau implementasinya tentu akan berbeda sesuai dengan karakteristik suara dari masing-masing penyanyi tersebut. Dalam OOP, hal ini disebut dengan istilah polimorfisme. BAB IV IMPLEMENTASI 4.1 Pertanyaan 1. Dari ilustrasi berikut buatlah konsep abstraksinya: Dalam kehidupan kampus terdapat obyek-obyek Civitas yang berinteraksi yaitu diantaranya: Dosen, Mahasiswa dan Staff. Civitas memiliki atribut umum:    Nama Nid Prodi Sedangkan mereka memiliki fungsi dan perilaku yang berbeda:   Pekerjaan Jam Class diagram : 2. Jelaskan bagaimana proses penggunaan dari abstraksi obyek dari program yang anda kembangkan ! 4.2 Jawab 1. Class Civitas public abstract class Civitas { String nama; String nid; String prodi; public Civitas(String nama, String nid, String prodi) { this.nama = nama; this.nid = nid; this.prodi = prodi; } public String getNama() { return nama; } public String getNid() { return nid; } public String getProdi() { return prodi; } public abstract void masukKerja(); public abstract void pekerjaan(); } Class Dosen public class Dosen extends Civitas { String bidangMinat; String riset; public Dosen(String bidangMinat, String riset, String nama, String nid, String prodi) { super(nama, nid, prodi); this.bidangMinat = bidangMinat; this.riset = riset; } public String getBidangMinat() { return bidangMinat; } public String getRiset() { return riset; } @Override public void masukKerja() { System.out.println("Pukul 10.00 WIB"); } @Override public void pekerjaan() { System.out.println("Dosen"); } } Class Mahasiswa public class Mahasiswa extends Civitas { String bidangMinat; public Mahasiswa(String bidangMinat, String nama, String nid, String prodi) { super(nama, nid, prodi); this.bidangMinat = bidangMinat; } public String getBidangMinat() { return bidangMinat; } @Override public void masukKerja() { System.out.println("Pukul 08.00 WIB"); } @Override public void pekerjaan() { System.out.println("Mahasiswa"); } } Class Staff public class Staff extends Civitas { String fungsional; public Staff(String fungsional, String nama, String nid, String prodi) { super(nama, nid, prodi); this.fungsional = fungsional; } public String getFungsional() { return fungsional; } @Override public void masukKerja() { System.out.println("Pukul 07.30 WIB"); } @Override public void pekerjaan() { System.out.println("Staff "); } } Class Main public class Main { public static void main(String[] args) { System.out.println("==========Dosen=========="); Dosen ti = new Dosen("Sistem Informasi", "Riset Ilmiah", "Tika Setyawati", "10036725860023", "Teknik Informatika"); System.out.println("Nama : " + ti.getNama() + "\nNID : " + ti.getNid() + "\nProdi : " + ti.getProdi() + "\nBidang Minat : " + ti.getBidangMinat() + "\nRiset : " + ti.getRiset()); System.out.print("Masuk kerja : "); ti.masukKerja(); System.out.print("Pekerjaan : "); ti.pekerjaan(); System.out.println("\n========Mahasiswa========"); Mahasiswa baru = new Mahasiswa("Digital Multimedia", "Santy Sartika", "130411100021", "Teknik Informatika"); System.out.println("Nama : " + baru.getNama() + "\nNID : " + baru.getNid() + "\nProdi : " + baru.getProdi() + "\nBidang Minat : " + baru.getBidangMinat()); System.out.print("Masuk kuliah : "); baru.masukKerja(); System.out.print("Pekerjaan : "); baru.pekerjaan(); System.out.println("\n==========Staff=========="); Staff utm = new Staff("Administrasi", "Andi Sulton", "1009673458002", "Teknik Informatika"); System.out.println("Nama : " + utm.getNama() + "\nNID : " + utm.getNid() + "\nProdi : " + utm.getProdi() + "\nFungsional : " + utm.getFungsional()); System.out.print("Masuk kerja : "); utm.masukKerja(); System.out.print("Pekerjaan : "); utm.pekerjaan(); } } Running 2. Pada program abstraksi tersebut, ada 5 kelas yang dibuat antara lain : Civitas (Sebagai superclass), Dosen, Mahasiswa, Staff (Sebagai Subclass) dan main untuk pengaksesan beberapa class tersebut. a. Class Civitas  Pada class Civitas, memiliki kata kunci abstract. Hal ini dimaksudkan agar semua yang ada dalam kelas Civitas dapat diturunkan ke class turunannya.  Civitas memiliki atribut umum yaitu : nama, nid dan prodi.  Constructor digunakan untuk menginisialisasi nilai awal pada atribut-atribut yang dimiliki oleh suatu objek.  Getter pada kelas ini digunakan untuk mengambil nilai kedalam atribut yang digunakan untuk kelas turunannya.  public abstract void masukKerja(); public abstract void pekerjaan(); Method abstact yang digunakan untuk membedakan antara objek yang satu dengan objek yang lain. Method tersebut diisi pada kelas turunannya dan akan diisi sesuai dengan fungsi dan perilakunya sendiri. b. Class Dosen  public class Dosen extends Civitas { Terdapat kata kunci Extend untuk menjelaskan bahwa class dosen adalah class turunan dari Class Civitas.  Memiliki atribut bidang minat dan riset  Costructor pada dosen fungsinya juga sama seperti pada class Civitas. super(nama, nid, prodi); kata kunci super tersebut digunakan untuk menunjukkan bahwa Class Dosen juga memiliki atribut yang sama seperti Civitas.  Getter digunakan untuk mengambil nilai.  @Override public void masukKerja() { System.out.println("Pukul 10.00 WIB"); } @Override public void pekerjaan() { System.out.println("Dosen"); } Pada kelas ini mempunyai method yang diturunkan dari kelas Civitas yang ditandai dengan “@Override” namun memiliki perilaku yang berbeda-beda jika dibandingkan dengan class turunan yang lain. Superclass memiliki beberapa atribut dan method yang nantinya akan diwariskan kepada subclassnya. Untuk dapat mewariskan sifat-sifatnya, maka pada class Civitas ditulis Abstract. Pada subclass, juga memliki beberapa atribut dan method yang membedakannya dengan subclass yang lain. Pada program tersebut, method yang dituliskan antara class Dosen, Mahasiswa dan Staff tersebut memiliki perbedaan satu sama lain. Kemudian pada Class Main, agar class-class yang dibuat sebelumnya beserta method dan atributnya dapat diakses, maka dilakukan pemanggilan dan beberapa modifikasi pada tampilan. Sehingga tampilan atau outputnya seperti gambar dibawah ini. BAB V PENUTUP 5.1 Kesimpulan Sebelum menulis class Anda, pertama pertimbangkan dimana Anda akan menggunakan class dan bagaimana class tersebut akan digunakan. Pertimbangkan pula nama yang tepat dan tuliskan seluruh informasi atau properti yang ingin Anda isi pada class. Jangan sampai terlupa untuk menuliskan secara urut method yang akan Anda gunakan dalam class. 5.2 Saran Pada praktikum kali ini saya rasa sudah cukup baik. Namun,ada beberapa hal yang perlu diperhatikan,diantaranya yaitu cara menjelaskan atau penyampaian materinya masih terlalu cepat.Dan penjelasan dari pemateri (asdos) kurang terperinci.