konsep dari pemrograman berorientasi objek

17
Objek Suatu objek adalahunik.Ia mewakilisuatuobjek dunia-nyata, seperti orang (contohnya seorang penumpang atau kedatangan pesawat), mobil, rekening Objek mirip dengan suatu rekaman (record) dalam suatu sistem berkas (misalnya rekaman karyawan). Suatu objek didefinisikan berdasarkan namanya, sebuah kata benda seperti: karyawan, rekening bank, ataupun kartu kredit. Objek juga mem atribut dan metode. Dalam konteks pemrograman berorientasi objek, kelas adalah suatu struktur da program yang berisi satu ataubeberapa metode (dapat berupa fungsi dan/atau prosedur) dan atribut (dapat berupa data ataupun variabel yang akan dipoerasikan dalam metode). Dengan demikian atribut merupakan anggota kelas yang statis, sedangkan metode merupakan anggota kelas yang bersifat dinami pemrograman, metode dan atribut biasanyadapat dibedakan dari format penulisannya, yaitunama_metode(tipe_parameter daftar_parameter, (…)) untuk format metode (parameter dan tipe parameter bisa lebih dari satu) dan tipe p nama_atribut untuk format atribut. Jadi Berbicara (int Suara) dan Jumlahkan Bil1,double Bil2) merupakan metode, sedangkan int Suara, double Bil1 dan doub Bil2 merupakan atribut. Sedangkan objek merupakan contoh-langsung atau contoh- nyata dari kelas. Misal: dari kelas Guru dapat dibuat objek Umar_Bakrie. Artinya, Umar_Bakrie merupakan contoh-langsung dari kelas Guru. Secara definisi, dapat dijelaskan bahwa: “An object is an instance of class”. Pada dasarnya semua benda yang ada di dunia nyata dapat dianggap sebagai s objek. Jika perhatikan lebihlanjut, pada dasarnya ada dua karakteristik yang utama pada sebuah objek , yaitu : Setiap objek memilikiatribut sebagaistatus yang kemudian akan disebut sebagai state. Setiap objek memilikitingkah laku yang kemudian akan disebut sebagai behaviour. Contoh sederhananya adalah : objek sepeda Sepeda memiliki atribut ( state ) : pedal, roda, jeruji, dan warna. 1

Upload: pangestu-hardiningtyas

Post on 07-Jul-2015

132 views

Category:

Documents


0 download

TRANSCRIPT

Objek Suatu objek adalah unik. Ia mewakili suatu objek dunia-nyata, seperti orang (contohnya seorang penumpang atau kedatangan pesawat), mobil, rekening bank. Objek mirip dengan suatu rekaman (record) dalam suatu sistem berkas (misalnya rekaman karyawan). Suatu objek didefinisikan berdasarkan namanya, sebuah kata benda seperti: karyawan, rekening bank, ataupun kartu kredit. Objek juga memiliki atribut dan metode. Dalam konteks pemrograman berorientasi objek, kelas adalah suatu struktur dalam program yang berisi satu atau beberapa metode (dapat berupa fungsi dan/atau prosedur) dan atribut (dapat berupa data ataupun variabel yang akan dipoerasikan dalam metode). Dengan demikian atribut merupakan anggota kelas yang bersifat statis, sedangkan metode merupakan anggota kelas yang bersifat dinamis. Dalam pemrograman, metode dan atribut biasanya dapat dibedakan dari format penulisannya, yaitu nama_metode(tipe_parameter daftar_parameter, ()) untuk format metode (parameter dan tipe parameter bisa lebih dari satu) dan tipe parameter nama_atribut untuk format atribut. Jadi Berbicara (int Suara) dan Jumlahkan (double Bil1,double Bil2) merupakan metode, sedangkan int Suara, double Bil1 dan double Bil2 merupakan atribut. Sedangkan objek merupakan contoh-langsung atau contohnyata dari kelas. Misal: dari kelas Guru dapat dibuat objek Umar_Bakrie. Artinya, Umar_Bakrie merupakan contoh-langsung dari kelas Guru. Secara definisi, dapat dijelaskan bahwa: An object is an instance of class. Pada dasarnya semua benda yang ada di dunia nyata dapat dianggap sebagai sebuah objek. Jika perhatikan lebih lanjut, pada dasarnya ada dua karakteristik yang utama pada sebuah objek , yaitu : Setiap objek memiliki atribut sebagai status yang kemudian akan disebut sebagai state. Setiap objek memiliki tingkah laku yang kemudian akan disebut sebagai behaviour. Contoh sederhananya adalah : objek sepeda Sepeda memiliki atribut ( state ) : pedal, roda, jeruji, dan warna.

1

Sepeda memiliki

tingkah

laku

(

behaviour

)

:

kecepatannya menaik,

kecepatannya menurun, dan perpindahan gigi sepeda. Dalam pengembangan perangkat lunak berorientasi objek, objek dalam perangkat lunak akan menyimpan state-nya dalam variabel dan menyimpan informasi tingkah laku ( behaviour ) dalam method-method atau fungsifungsi/prosedur. Objek dalam Dunia Nyata Teknologi objek memerlukan paradigma yang membedakannya dengan sudut pandang tradisional dari pemrograman terstruktur. Dunia, selain dapat dipandang sebagai sekumpulan fungsi, dapat pula dipandang sebagai sekumpulan kelas. Orangorang, tempat, benda-benda, dan sebagainya, semuanya merupakan kelas. Contohnya, suatu bandara terdiri atas ratusan kelas yang nampak, termasuk: a. pesawat terbang b. penumpang c. bagasi Abstraksi dapat pula merupakan kelas: a. pemesanan tiket b. penundaan c. cek keamanan Meskipun tampaknya konsep ini sangat dasar, ia memberikan fondasi yang penting bagi pemahaman kelas dalam konteks komputasi. Objek dalam Model Komputasi Bisnis Objek-objek dari dunia komputasi bisnis merupakan sesuatu yang berguna secara nyata dalam lingkungan bisnis. Sebagai contoh, objek dalam perangkat lunak komputasi bisnis pada suatu bandara bisa berupa penumpang, penerbangan, landaspacu, pemesanan, dan jadwal.

2

Atribut Suatu objek memiliki atribut-atribut. Atribut merupakan deskripsi (data) yang berhubungan dengan objek. Sebagai contoh, seorang karyawan dapat mencakup nama, alamat, tanggal lahir, nomorjaminan sosial, dan tanggal awal kerja. Atribut mirip dengan elemen-elemen data. Class 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. Contoh : class Buku { String pengarang; String judul; void Isi(String isi1,String isi2) { judul } void CetakKeLayar() { if(judul==null && pengarang==null) return; System.out.println("Judul : " + judul + ", pengarang : " + pengarang); } } class Karangan { public static void main(String[] args) { Buku a,b,c,d; a = b = c = d = new Buku(); a.Isi("Pemrograman Java","Asep Herman Suyanto"); = isi1; pengarang = isi2;

3

a.CetakKeLayar(); b.Isi(null,null); b.CetakKeLayar(); c.Isi(null,"Johan Prasetyo Hendriyanto"); c.CetakKeLayar(); d.Isi("Pemrograman Web",null); d.CetakKeLayar(); } } Konsep Objek Obyek dalam software analysis & design adalah sesuatu berupa konsep(concept), benda (thing), dan sesuatu yang membedakannya dengan lingkungannya. Secara sederhana obyek adalah mobil, manusia, alarm dan lainlainnya. Tapi obyek dapat pula merupakan sesuatu yang abstrak yang hidup didalam sistem seperti tabel, database, event, system messages. Obyek dikenali dari keadaannya dan juga operasinya. Sebagai contoh sebuahmobil dikenali dari warnanya, bentuknya, sedangkan manusia dari suaranya. Ciri-ciri ini yang akan membedakan obyek tersebut dari obyek lainnya. Alasan mengapa saat ini pendekatan dalam pengembangan software dengan object-oriented, pertama adalah scalability dimana obyek lebih mudah dipakai untuk menggambarkan sistem yang besar dan komplek. Kedua dynamicmodeling, adalah dapat dipakai untuk permodelan sistem dinamis dan real time. Konsep dasar PBO Pemrograman berorientasi objek sering sekali disebut sebagai PBO/OOP (Object Oriented Programming). Bahasa pemrograman yang lazim digunakan dalam PBO adalah C++ ( Keluaran Borland disebut Borland C++, sedangkan dari Microsoft disebut Ms C++. Namun yang terakhir kurang poluler ). Demikian pula, jka ada

4

bahasa pemrograman yang menggunakan C++ sebagai landasan utama bagi pengembangannya, maka bahasa tersebut bisa dipakai untuk PBO, seperti Java, yang menjadi perhatian utama dalam pelatihan ini (bahasa ini sangat populer pada jaringan komputer, dalam hal ini adalah: Internet). Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya. Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat. Konsep dari pemrograman berorientasi objek (OOP/object-oriented programming) terdiri atas 4, yaitu : 1. Encaptulation Enkapsulasi merupakan kombinasi dari data dan fungsionalitas dalam sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi. Dimana dengan adanya proses enkapsulasi, hal ini dapat memepermudah kita dalam menggunakan objek dari suatu kelas karena kita tidak perlu mengetahui segala hal dengan rinci. Dimana enkapsulasi menekankan pada antar muka suatu kelas. Manfaat dari proses enkapsulasi adalah : Modularitas Kode sumber dari sebuah objek dapat dikelola secara independen dari kode sumber objek yang lain.

5

Information Hiding Karena kita dapat menentukan hak akses sebuah variabel/method dari objek, dengan demikian kita bisa menyembunyikan informasi yang tidak perlu diketahui objek lain.

Contoh 1: Mobil adalah sebuah kelas. Seorang pengendara mobil tidak harus tahu bagaimana proses kerja mesin mobilnya, pembakaran bahan bakar, proses pemindahan transmisi gigi, dan seterusnya. Yang dia tahu adalah bahwa setir untuk mengendalikan jalannya mobil, pedal gas untuk menambah kecepatan, pedal rem untuk mengurangi kecepatan, dan seterusnya. Singkatnya dia hanya tahu bahwa mobilnya berjalan dengan baik. Contoh 2: Kelas rice cooker (penanak nasi). Seorang ibu rumah tangga tidak tahu mengapat rice cooker bisa bekerja seperti itu. Barangkali seorang ibu rumah tangga tidak menyadari bahwa rice cooker modern memiliki sebuah mikroposesor setara Z80. 2. Abstraction Kelas merupakan deskripsi abstrak informasi dan tingkah laku dari sekumpulan data. Kelas juga dikenal sebagai type objek. Karenanya, refresentasi atau wakil dari suatu kelas adalah objek kelas tersebut. Dimana sebuah kelas merupakan type data yang mengengkapsulasi data dan operasi pada data dalam suatu unti tunggal. Berbeda dengan Procedural Programing yang memisahkan antara data dan fungsi sebagai elemen yang berbeda. Suatu kelas mendefinisikan suatu struktur yang terdiri atas data kelas (data field) , prosedur/fungsi kelas (method), dan sifat kelas (property). Sebuah field pada dasarnya adalah sebuah variable bagian dari kelas. Method merupakan semua prosedur yang berasosiasi dengan kelas tersebut. Ada method yang dipanggil melalui objek dari kelas, dan ada pula method yang dipanggil dari kelas itu sendiri. Properti adalah antar muka

6

untuk data yang berkaitan dengan objek dari kelas. Dimana property memiliki cara khusus untuk mengaksesnya, yang dikenal dengan akses specifiers. Diluar objek itu, property tampak pada dasarnya hamper sama seperti field. Setiap objek secara dinamis mengalokasikan sejumlah memori dengan struktur yang telah ditentukan oleh type kelasnya. Setiap objek memiliki salinan yang bersifat tunggal untuk setiap field yang didefinisikan dalam kelas tersebut. Berbeda halnya dengan method, semua objek dari kelas itu berbagi method yang sama. Obejk diciptakan dan dimusnahkan dengan method khusus yang disebut constructor dan destructor. 3. Inheritance

Dari konsep penurunan ini suatu kelas bisa diturunkan menjadi kelas baru yang masih mewarisi sifat-sifat kelas orangtuanya. Hal ini dapat dianalogikan dengan kelas manusia. Manusia merupakan turunan dari orang tuanya dan sifat-sifat orang tua diwarisi olehnya. Bisa ditarik kesimpulan bahwa semua kelas di dunia selalu memiliki hirarki yang menggambarkan silsilah kelas tersebut. Keuntungan dari inheritance adalah : 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. Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class, untuk mendefinisikanclass dengan behaviour dan state secara umum.

7

Istilah dalam inheritance yang perlu diperhatikan : Extends Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass. Superclass Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak. Subclass Subclass adalah class anak atau turunan secara hirarki dari superclass. Super Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass. Methode Overriding Pendefinisian ulang method yang sama pada subclass. Dalam inheritance, method overriding berbeda dengan method overloading. Kalau method overriding adalah mendefinisikan kembali method yang sama, baik nama method maupun signature atau parameter yang diperlukan dalam subclass, kalau method overloading adalah mendefinisikan method yang memiliki nama yang sama, tetapi dengan signature yang berbeda dalam definisi class yang sama. Contoh 1: Dari kelas kendaraan bermotor dapat diturunkan beberapa kelas baru, misalnya: sepeda motor, sedan, pick-up, mini-bus, dan kendaraan roda banyak

8

Gambar

Masing-masing kendaraan bermotor ini memiliki beberapa data yang sama, seperti posisi gigi persnelling, kecepatan putaran mesin, kecepatan linear kendaraan, dan sebagainya. Namun masing-masing kelas turunan ini memiliki beberapa data dan metode yang berlainan. Contoh 2: Sedan memiliki data AC, sedangkan sepeda motor tidak. Karena sedan memiliki data AC maka terdapat juga metode-metode yang berhubungan dengan AC seperti menyalakan AC, mengubah suhu AC, mematikan AC, dan sebagainya. Hirarki suatu kelas tidak harus bertingkat satu seperti contoh di atas. Hirarki kelas dapat bertingkat-tingkat dan sangat kompleks. Contoh 3: kelas sepeda motor mungkin masih dibagi lagi menjadi dua kelas, yaitu sepeda motor 2 tak dan 4 tak. Sepeda motor 2 tak mungkin masih dibagi lagi menurut pabrik pembuatnya, seperti Honda, Suzuki, Yamaha, dan seterusnya. Masing-masing pabrik mungkin masih mempunyai beberapa kelas turunan lagi, seperti Honda Astrea Star, Honda Astrea Grand, dan seterusnya

9

Gambar

4. Polymorphism Kata polimorfisme yang berarti satu objek dengan banyak bentuk yang berbeda, adalah konsep sederhana dalam bahasa pemrograman berorientasi objek yang berarti kemampuan dari suatu variabel referensi objek untuk memiliki aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe objeknya. Kondisi yang harus dipenuhi supaya polimorfisme dapat diimplementasikan adalah : Method yang dipanggil harus melalui variabel dari basis class atau superclass. Method yang dipanggil harus juga menjadi method dari basis class. Signature method harus sama baik pada superclass maupun subclass. Method access attribute pada subclass tidak boleh lebih terbatas dari basis class.

10

Contoh: Kelas untuk input sound system. Sebuah tape recorder dan CD player memiliki tombol PLAY yang berfungsi untuk memainkan musik yang dikehendaki. Tape recorder mengimplementasikan tombol PLAY dengan membaca isyarat-isyarat yang terekam di pita magnetis kaset, sedangkan CD player menggunakan sinar laser untuk membaca bit-bit digital yang terekam di permukaan CD. Contoh abstract class Bentuk { protected int panjang; protected int lebar; public String getBentuk() { return "Bentuk Dasar"; } public abstract int hitungLuas(); } class BujurSangkar extends Bentuk { public BujurSangkar(int panjang1, int lebar1) { this.panjang = panjang1; this.lebar = lebar1; } public String getBentuk() { return "Bentuk Bujur Sangkar"; } public int hitungLuas() { return panjang*lebar; } } class SegiTiga extends Bentuk { public SegiTiga(int panjang2, int lebar2) {

11

this.panjang = panjang2; this.lebar = lebar2; } //public String getBentuk() { //return "Bentuk Segi Tiga"; //return ""; //} public int hitungLuas() { return this.panjang*this.lebar/2; } } class Polimorfisme { public static void cetakLuasBentuk(Bentuk btk) { System.out.println(btk.getBentuk() + " dengan luas " + btk.hitungLuas()); } public static void main(String[] args) { BujurSangkar bs = new BujurSangkar(10,20); BujurSangkar bs1 = new BujurSangkar(10,20); SegiTiga st = new SegiTiga(5,10); SegiTiga st1 = new SegiTiga(50,100); cetakLuasBentuk(bs); cetakLuasBentuk(bs1); cetakLuasBentuk(st); cetakLuasBentuk(st1); } }

12

UML Pengenalan UML

UML sebagai sebuah bahasa yang memberikan vocabulary dan tatanan penulisan kata-kata dalam MS Word untuk kegunaan komunikasi. Sebuah bahasa model adalah sebuah bahasa yang mempunyai vocabulary dan konsep tatanan / aturan penulisan serta secara fisik mempresentasikan dari sebuah sistem. Seperti halnya UML adalah sebuah bahasa standard untuk pengembangan sebuah software yang dapat menyampaikan bagaimana membuat dan membentuk model-model, tetapi tidak menyampaikan apa dan kapan model yang seharusnya dibuat yang merupakan salah satu proses implementasi pengembangan software. UML tidak hanya merupakan sebuah bahasa pemograman visual saja, namun juga dapat secara langsung dihubungkan ke berbagai bahasa pemograman, seperti JAVA, C+ +, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah object-oriented database. Begitu juga mengenai pendokumentasian dapat dilakukan seperti; requirements, arsitektur, design, source code, project plan, tests, dan prototypes. Untuk dapat memahami UML membutuhkan bentuk konsep dari sebuah bahasa model, dan mempelajari 3 (tiga) elemen utama dari UML seperti building block, aturan-aturan yang menyatakan bagaimana building block diletakkan secara bersamaan, dan beberapa mekanisme umum (common). Building blocks 3 (tiga) macam yang terdapat dalam building block adalah katagori benda/Things, hubungan, dan diagram. Benda/things adalah abstraksi yang pertama dalam sebuah model, hubungan sebagai alat komunikasi dari benda-benda, dan diagram sebagai kumpulan / group dari benda-benda/things. Benda/Things Adalah hal yang sangat mendasar dalam model UML, juga merupakan bagian paling statik dari sebuah model, serta menjelaskan elemen-elemen lainnya dari sebuah konsep dan atau fisik. Bentuk dari beberapa benda/thing adalah sebagai berikut:

13

Pertama, adalah sebuah kelas yang diuraikan sebagai sekelompok dari object yang mempunyai atribute, operasi, hubungan yang semantik. Sebuah kelas mengimplementasikan 1 atau lebih interfaces. Sebuah kelas dapat digambarkan sebagai sebuah persegi panjang, yang mempunyai sebuah nama, atribute, dan metoda pengoperasiannya, seperti terlihat dalam gambar 1.

Kedua, yang menggambarkan interface merupakan sebuah antar-muka yang menghubungkan dan melayani antar kelas dan atau elemen. Interface / antarmuka mendefinisikan sebuah set / kelompok dari spesifikasi pengoperasian, umumnya digambarkan dengan sebuah lingkaran yang disertai dengan namanya. Sebuah antar-muka berdiri sendiri dan umumnya merupakan pelengkap dari kelas atau komponen, seperti dalam gambar 2.

Ketiga, adalah collaboration

yang didefinisikan dengan interaksi dan sebuah

kumpulan / kelompok dari kelas-kelas/elemen-elemen yang bekerja secara bersama-sama. Collaborations mempunyai struktura dan dimensi. Pemberian sebuah kelas memungkinkan berpartisipasi didalam beberapa collaborations dan digambarkan dengan sebuah elips dengan garis terpotong-potong.

14

Keempat, sebuah use case adalah rangkaian/uraian sekelompok yang saling terkait dan membentuk sistem secara teratur yang dilakukan atau diawasi oleh sebuah aktor. use case digunakan untuk membentuk tingkah-laku benda/ things dalam sebuah model serta di realisasikan oleh sebuah collaboration. Umumnya use case digambarkan dengan sebuah elips dengan garis yang solid, biasanya mengandung nama, seperti terlihat dalam gambar 4.

Kelima, sebuah node merupakan fisik dari elemen-elemen yang ada pada saat dijalankannya sebuah sistem, contohnya adalaha sebuah komputer, umumnya mempunyai sedikitnya memory dan processor. Sekelompok komponen mungkin terletak pada sebuah node dan juga mungkin akan berpindah dari node satu ke node lainnya. Umumnya node ini digambarkan seperti kubus serta hanya mengandung namanya, seperti terlihat dalam gambar 5.

15

Hubungan/Relation Ada 4 macam hubungan didalam penggunaan UML, yaitu; dependency, association, generalization, dan realization. Pertama, sebuah dependency adalah hubungan semantik antara dua benda/things yang mana sebuah benda berubah mengakibatkan benda satunya akan berubah pula. Umumnya sebuah dependency digambarkan sebuah panah dengan garis terputus-putus seperti terlihat dalam gambar 6.

Kedua, sebuah

association adalah hubungan antar benda struktural yang

terhubung diantara obyek. Kesatuan obyek yang terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural diantara seluruh atau sebagian. Umumnya assosiation digambarkan dengan sebuah garis yang dilengkapi dengan sebuah label, nama, dan status hubungannya seperti terliahat dalam gambar 7.

Ketiga, sebuah generalization adalah menggambarkan hubungan khusus dalam obyek anak/child yang menggantikan obyek parent / induk . Dalam hal ini, obyek anak memberikan pengaruhnya dalam hal struktur dan tingkah lakunya kepada obyek induk. Digambarkan dengan garis panah seperti terlihat dalam gambar 8.

Keempat,

sebuah

realization

merupakan

hubungan

semantik

antara

pengelompokkan yang menjamin adanya ikatan diantaranya. Hubungan ini dapat

16

diwujudkan diantara interface dan kelas atau elements, serta antara use cases dan collaborations. Model dari sebuah hubungan realization seperti terlihat dalam gambar 9.

Diagram UML sendiri terdiri atas pengelompokkan aspek atau sudut pandang tertentu. diagram-diagram sistem menurut Diagram adalah yang menggambarkan

permasalahan maupun solusi dari permasalahan suatu model. UML mempunyai 9 diagram, yaitu; use-case, class, object, state, sequence, collaboration, activity, component, dan deployment diagram. menggambarkan sekelompok Diagram pertama adalah use case use cases dan aktor yang disertai dengan

hubungan diantaranya. Diagram use cases ini menjelaskan dan menerangkan kebutuhan / requirement yang diinginkan/ dikehendaki user/pengguna, serta sangat berguna dalam menentukan struktur organisasi dan model dari pada sebuah sistem.

17