Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Modul - Pemrograman Berorientasi Objek

Modul - Pemrograman Berorientasi Objek

Published by Hendriyana, 2021-06-28 15:30:13

Description: Modul Pemrograman Berorientasi Objek menggunakan bahasa Pemrograman Java yang dilengkapi dengan script dan contoh kasus yang telah tersedia.

Keywords: Pemrograman Berorientasi Objek,PBO,OOP,Java

Search

Read the Text Version

PEMROGRAMANBERORIENTASIOBJEK HENDRIYANA DEDENPRADEKA

DAFTAR ISI Modul 1 Pengenalan Java...................................................................................................... 1 1. Sejarah JAVA.................................................................................................................... 1 1.1 Kelebihan Java ................................................................................................................. 2 1.2 Edisi Java ......................................................................................................................... 3 1.3 Text Editor......................................................................................................................... 2 2. Pemrograman Berorientasi Objek (OOP) .......................................................................... 4 3. Instalasi Java JDK ............................................................................................................ 6 4. Menjalankan File Java ...................................................................................................... 6 Modul 2 Tipe Data .................................................................................................................. 8 1. Tipe Data .......................................................................................................................... 8 2. Ekspresi ........................................................................................................................... 9 2.1 Operator Aritmatika .......................................................................................................... 9 2.2 Operator Relasional ......................................................................................................... 10 2.3 Operator Logika ............................................................................................................... 11 2.4 Operator String ................................................................................................................ 11 Modul 3 Kelas dan Objek....................................................................................................... 12 1. Method ............................................................................................................................. 12 2. Class ................................................................................................................................ 14 3. Objek ............................................................................................................................... 15 Modul 4 Constructor .............................................................................................................. 18 1. Enkapsulasi....................................................................................................................... 18 2. Constructor ...................................................................................................................... 21 Modul 5 Inheritance ............................................................................................................... 24 1. Inheritance ....................................................................................................................... 24 2. Bentuk Inheritance ........................................................................................................... 25 Modul 6 Polymorphism ......................................................................................................... 29 1. Polymotphism .................................................................................................................. 29 2. Polymotphism Menggunakan Method Overloading .......................................................... 32 Pemrograman Berorientasi Objek | Daftar Isi i

3. Polymotphism Menggunakan Method Overriding ............................................................. 32 Modul 7 Kelas Abstrak........................................................................................................... 33 1. Kelas Abstrak ................................................................................................................... 33 2. Latihan Koding ................................................................................................................. 34 Modul 8 Objek Interface......................................................................................................... 37 1. Objek Interface ................................................................................................................ 37 2. Deklarasi Interface ........................................................................................................... 38 3. Latihan Koding ................................................................................................................. 38 4. Perbedaan Abstrak dan Interface .................................................................................... 39 Modul 9 Graphical User Interface (GUI)................................................................................ 40 1. Netbeans .......................................................................................................................... 39 2. Graphical User Interface (GUI) ......................................................................................... 41 2.1 Abstract Windowing Toolkit (AWT) ................................................................................... 41 2.2 Swing ............................................................................................................................... 42 2.3 Java FX ........................................................................................................................... 42 2.4 Pembuatan GUI ............................................................................................................... 43 3. Aplikasi CRUD ................................................................................................................. 46 3.1 Koneksi Database ............................................................................................................ 46 3.2 Menu Login Dengan Database ........................................................................................ 49 3.3 Menu Multiple Document Interface ................................................................................... 53 3.4 Proses Menampilkan Data Dari Database ....................................................................... 59 3.5 Proses Input Data Ke Database ....................................................................................... 64 3.6 Proses Update Data Ke Database ................................................................................... 66 3.7 Proses Delete Data Ke Database .................................................................................... 67 4. Koding Lengkap Project ................................................................................................... 68 Pemrograman Berorientasi Objek | Daftar Isi ii

MODUL 1 Pengenalan JAVA Tujuan Praktikum  Mahasiswa memahami Sejarah OOP.  Mahasiswa memahami OOP digunakan untuk menyelesaikan masalah yang kurang tepat jika procedural oriented diterapkan.  Mahasiswa memahami pengenalan bahasa pemrograman Java. 1. Sejarah JAVA Tahun 1991, Sun dipimpin Patric Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat konsumer seperti cable TV Box. Karena perangkat itu tidak mempunyai banyak memori, maka dibutuhakan bahasa yang berukuran kecil dan menghasilkan kode program yang fleksibel. Selain itu juga beberapa manufaktur berbeda memilki pemroses- pemroses yang berbeda, maka harus menggunakan bahasa yang bebas dari arsitektur manapun. Proyek ini diberi nama kode “Green”. Kebutuhan untuk kecil, fleksibel dan kode netral terhadap platform menyebabkan tim mempelajari implementasi pascal yang pernah dicoba. Niklaus Wirth, pencipta bahasa pascal telah merancang bahasa portable yang menghasilkan intermediate kode untuk mesin hipotetis. Mesin ini sering disebut Virtual Machine. Kode antara ini kemudian dapat digunakan disembarang mesin yang memiliki interpreter. Proyek Green menggunakan virtual machine untuk mengatasi permasalahan utama yang dapat netral terhadap arsitektur mesin, maka proyek Green menggunakan Virtual Machine. Pemrograman Berorientasi Objek | Pengenalan JAVA 1

Karena orang-orang di proyek Green berbasis C++ bukan Pascal maka kebanyakan sintaks diambil dari C++, serta mengadopsi orientasi object bukan prosedural. Mulanya bahasa yang diciptakan diberi nama “Oak” kemudian diganti “Java” karena telah ada bahasa pemrograman bernama “Oak”. Produk pertama proyek Green adalah “*7”, sebuah kendali jauh yang sangat cerdas. Karena pasar masih belum tertarik dengan produk consumer cerdas maka proyek Green harus menemukan pasar lain dari teknologi yang diciptakan. Kemudian, penerapan mengarah menjadi teknologi yang berperan di web. Pada 1995, Netscape memutuskan membuat browser yang dilengkapi dengan Java. Setelah itu diikuti oleh IBM, Symantec, Inprise bahkan Microsoft. Setelah itu Java mulai terdengar, berbagai industri telah meliriknya. Dengan strategi terbukanya, banyak industri yang meliriknya. Bersamaan itu disusul berbagai universitas Amerika, Jepang dan Eropa yang mengubah pengenalan bahasa pemrograman komputer menjadi Java, meninggalkan C++. Java lebih sederhana dan telah mengakomodasikan hamper seluruh fitur penting bahasa-bahasa pemrograman yang ada semenjak perkembangan komputasi modern. 1.1. Kelebihan Java Berdasarkan sejarah perkembangan bahasa pemrograman java, terdapat kelebihan yang terdapat pada bahasa pemrograman java antara lain: 1. Multiplatform Multiplatform ialah dapat bekerja dan dapat dijalankan pada berbagai platform atau sistem operasi komputer. Dengan kelebihan ini pengembang dapat menulis sebuah program Java dan dikompilasi (diubah, dari bahasa yang dimengerti manusia menjadi bahasa mesin atau bytecode) sekali lalu hasilnya dapat dijalankan pada beberapa platform tanpa perubahan. Kelebihan ini memungkinkan sebuah program berbasis java dikerjakan di atas operating system Linux tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris. Pemrograman Berorientasi Objek | Pengenalan JAVA 2

2. OOP (Object Oriented Programming - Pemrogram Berorientasi Objek) Java adalah salah satu bahasa pemrograman berorientasi objek OOP atau Object Oriented Programming. Paradigma OOP menyelesaikan masalah dengan merepresentasikan masalah ke model objek. Konsep inilah yang mengadopsi permasalahan komputasi dapat diilustrasikan pada dunia nyata sebagai objek. 3. Library Class Lengkap Java terkenal dengan kelengkapan library atau perpustakaan (kumpulan program program yang disertakan dalam pemrograman java) yang sangat memudahkan dalam penggunaan oleh para pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini ditambah dengan keberadaan komunitas Java yang besar serta terus menerus membuat perpustakaan- perpustakaan baru untuk melingkupi seluruh kebutuhan pembangunan dan pengembangan aplikasi. 4. Bergaya C++ Memiliki sintaks seperti bahasa pemrograman C++ sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang pindah ke Java. Universitas-universitas di Amerika Serikat juga mulai berpindah dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan mengambil jurusan komputer. 5. Garbage Collection Memiliki fasilitas pengaturan penggunaan memori sehingga para pemrogram tidak perlu melakukan pengaturan memori secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas). 1.2. Edisi Java Java adalah bahasa yang dapat di jalankan dimanapun dan disembarang platform apapun, diberagam lingkungan seperti internet, intranet, konsumen produk elektronik, perangkat aplikasi komputer dan lainnya. Pemrograman Berorientasi Objek | Pengenalan JAVA 3

Java 2 platform tersedia dalam tiga edisi untuk keperluan berbeda. Untuk beragam aplikasi yang dibuat dengan bahasa java, java dipaketkan dalam edisi-edisi berikut: 1. Java 2 Standard Edition (J2SE) 2. Java 2 Enterprise Edition (J2EE) 3. Java 2 Micro Edition (J2ME) Masing – masing edisi berisi java 2 Software Development Kit (J2SDK) untuk mengembangkan aplikasi dan java 2 Runtime Environment (J2RE) untuk menjalankan aplikasi. 1.3. Editor Java Terdapat banyak editor yang bisa digunakan untuk menuliskan script atau source code bahasa pemrograman java, bahkan semua editor dimungkinkan selama editor tersebut mampu menyimpan file dengan ekstensi ( *.java ) yang merupakan ekstensi dari file untuk menyimpan source code bahasa pemrogramanjava. Editor ini bersifat opensource yang dapat di download pada link https://netbeans.apache.org/download/nb123/nb123.html. Terdapat aturan penulisan program di Java, yaitu: 1. Java adalah turunan dari C, sehingga Java memiliki sifat C yaitu Case sensitive, yaitu membedakan antara huruf besar dan kecil. 2. Dalam sebuah file program di Java, hanya diijinkan memiliki 1 buah class yang bersifat public. 3. Dalam sebuah file program Java, hanya ada satu method main(method yang pertama kali dibaca oleh interpreter Java). 4. Nama sebuah file program Java harus sama dengan nama class yang memiliki method main() di dalam tubuhnya. Perhatikan bahwa tulisan nama file dengan nama class (huruf besar maupun kecilnya) haruslah persis sama. 2. Pemrograman Berorientasi Objek (OOP) Objek-objek dalam dunia nyata, mempunyai 2 karakteristik khusus yaitu status dan perilaku. Contohnya sepeda memiliki property atau atribut (jumlah gir, jumlah pedal, dua buah ban) dan perilaku (mengerem, mempercepat, ubah gir). Bahasa yang berorientasi pada objek pun mempunyai karakteristik yang sama dengan objek-objek di dunia nyata. Properti dalam bahasa pemrograman biasanya disimpan sebagai variabel dan perilaku yang diimplementasikan sebagai Method. Karakteristik OOP antara lain: Pemrograman Berorientasi Objek | Pengenalan JAVA 4

1. Enkapsulasi Enkapsulasi adalah pelindung sebuah program dan data yang sedang diolah. Enkapsulasi mendefinisikan perilaku dan melindungi program dan data agar tidak dapat diakses secara sembarangan oleh program lain. Dalam bahasa pemrograman java, dasar enkapsulasi adalah class. Class dapat menentukan sebuah variable atau method tidak dapat diakses oleh class lain dengan menjadikan class tersebut private, protected yaitu hanya bisa diakses oleh turunannya dan public yakni bisa diakses oleh sembarang class. 2. Inheritance Objek-objek yang berada di sekitar kita adalah objek-objek yang saling terhubung secara hirarkis. Dengan adanya inheritance dapat mendefinisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada. Penurunan sifat ini bisa dilakukan secara bertingkat tingkat, sehingga semakin ke bawah kelas tersebut menjadi semakin spesifik. Sub kelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya. Dengan konsep pewarisan, seorang programmer dapat menggunakan script yang telah ditulisnya pada kelas super dan menggunakan secara berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua script tersebut. 3. Polimorfisme Polimorfisme merupakan kemampuan objek-objek antar kelas yang berbeda untuk merespon terhadap suatu pesan yang sama. Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan pada kelas tersebut, tergantung letak objek pada kelas induk. Pada implementasinya, method suatu kelas induk dapat diubah oleh sub-kelas, hal ini dikenal dengan overriding method. Deklarasi method sama tetapi implementasi atau definisinya berbeda (method atau perilaku yang sama tapi implementasinya yang berbeda-beda inilah yang disebut dengan Polimorfisme) Pemrograman Berorientasi Objek | Pengenalan JAVA 5

3. Instalasi Java JDK Untuk bisa bekerja dengan Java, maka kita perlu melakukan instalasi Java Development Kit (JDK) atau Java 2 Software Development Kit (J2SDK) secara langsung pada website oracle dengan tautan https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html. Setelah proses instalasi selesai, maka coba buka command prompt dengan mengetikan java – version dan javac, maka akan tampil informasi berikut. 1 2 Gambar 1.1 Java Tampilan jendela yang ditunjukan pada gambar 1.1 diatas, dengan menggunakan perintah java --version dan javac --version, maka akan menampilkan versi yang digunakan pada java berserta compiler hal ini menunjukan bahwa JDK terinstall dengan baik. Untuk mengeksekusi java menggunakan perintah java namafile.java, sedangkan untuk mengcomple script java tersebut menggunakan perintah javac namafile.java. 4. Menjalankan File Java Setelah mengenal bahasa pemrograman java beserta installasi JDK, selanjutnya akan membuat aplikasi sederhana dijava untuk menampilkan sebuah pesan dengan membuat file java bernama Hello.java menggunakan editor notedpad. Script untuk menampilkan sebuah pesan sebagai berikut: 1. public class Hello { 2. public static void main(String[] args) { 3. System.out.println(\"Halo JAVA... Semangat Pagii!\"); 4. } 5. } Pada baris pertama ditunjukan dengan perintah public class Hello, menujukan nama file harus sama dengan nama kelas dan bersifat case-sensitive atau huruf besar dan kecil berbeda Pemrograman Berorientasi Objek | Pengenalan JAVA 6

makna sehingga nama class Hello. Baris ke-2 menujukan main program atau titik awal program akan dijalankan. Program utama terdapat pada baris ke-3 perintah System.out.println merupakan suatu kelas pada java yang memiliki objek out dan memilki method println berfungsi untuk mencetak suatu pesan pada layar. Output yang dihasilkan oleh script diatas dapat dijalankan menggunakan command prompt yang ditunjukan pada gambar 1.2 berikut. Gambar 1.2 Output Menampilkan Pesan Java Setelah mengeksekusi script java, maka directori pada awalnya akan memunculkan file Hello.class yang menujukan javac membuatkan java byte code. Pada sub modul 1.3 Editor Java, salah satu editor yang digunakan dan langsung terdapat compliernya yaitu menggunakan netbeans sehingga eksekusi hasil pemrogramn bisa langsung terlihat tanpa harus menggunakan command prompt. Gambar berikut merupakan halaman dari editor yang ditunjukan pada gambar 1.3 Editor Netbeans. 12 3 Gambar 1.3 Editor Netbeans Pada gambar 1.3 pada halaman editor netbeans menunjukan point nomor 1 merupakan file yang sedang aktif, point yang ditunjukan pada nomor 2 merupakan halaman script java, dan point nomor 3 merupakan hasil atau output yang diberikan dari script nomor 2. Pemrograman Berorientasi Objek | Pengenalan JAVA 7

MODUL 2 Tipe Data Tujuan Praktikum  Mahasiswa memahami penamaan indentifier pada Java.  Mahasiswa mengetahui tipe data yang ada pada Java.  Mahasiswa mengetahui penggunaan variabel pada Java. 1. Tipe Data Setiap bahasa pemrograman memiliki variabel atau identifier yang digunakan untuk identitas atau menyimpan sebuah nilai tertentu. Suatu variabel memilki nama dan jenis tipe data yang digunakan. Penamaan variabel pada bahasa pemrograman java diawal oleh karakter tidak mengandung tanda baca serta serta bersifat case-sensitive atau dibedakan penggunaan variabel yang menggunakan huruf kapital ataupun tidak. Sebuah varibel dengan nama total akan berbeda makna dengan Total karena perbedaan karakter pada huruf sekalipun secara nyata yang dimaksud sama. Berikut merupakan aturan penamaan variabel, ialah: 1. Terdiri dari huruf atau abjad atau angka dan boleh menggunakan simbol underscore ( _ ). 2. Tidak boleh mengandung karakter khusus atau spasi. 3. Tidak boleh menggunakan reserved word seperti for, while, if, dan lainnya. 4. Tidak boleh diawali dengan angka. Tipe data menandakan tipe value atau nilai yang dibentuk oleh variabel yang digunakan. Pada sebuah kasus tertentu variabel total merupakan variabel digunakan untuk menghitung penjumalahan total barang yang dibeli oleh sesorang, maka jenis tipe data yang bersifat Pemrograman Berorientasi Objek | Tipe Data 8

numerical atau hitungan. Sama halnya seperti bahasa pemrograman pada umumnya, bahasa pemrogaman java memiliki tipe data yang ditunjukan pada tabel berikut: Tipe Data Keyword Jangkauan Contoh Integer int -2147483648 to 21474836 1234 Double +/- 3.4e +/- 38 (~7 digits) 3.14 Character double 127 to 127 or 0 to 255 A, B, C String char - Pemrograman JAVA Boolean string True atau False 0 atau 1 - 2. Ekspresi Ekspresi merupakan suatu bentuk yang dapat menghasilkan sebuah nilai. Ekspresi dapat berupa konstanta, variabel, ataupun kombinasi keduanya dengan menggunakan operator. Ekspresi operasi terdiri dari operand dan operator. Operand adalah bentuk variable, konstanta, atau nilai data constant. Sedangkan operator merupakan symbol yang mengolah nilai pada operand. 2.1 Operator Artimatika Operator aritmatika merupakan operator yang digunakan untuk proses perhitungan. Beberapa operator aritmatika ditunjukkan pada tabel berikut: Simbol Fungsi Contoh + Penambahan x=y+1 - Pengurangan x=y–1 * x=y*1 / Perkalian x=y/1 % Pembagian x=y%2 ++ -- Modulo x++ () Increment x-- Decrement x = (y + 1) *2 Priority Tipe data yang digunakan pada operator aritmatika bersifat numerik, antara lain integer, double dan lain sebagainya. Script berikut merupakan contoh untuk penggunaan operator aritmatika. Pemrograman Berorientasi Objek | Tipe Data 9

1. public class aritmatika { 2. public static void main(String[] args) { 3. int a = 10; 4. int b = 5; 5. 6. System.out.println(\"Penjumlahan Bilangan A + B : \"+ (a+b)); 7. System.out.println(\"Pengurangan Bilangan A - B : \"+ (a-b)); 8. System.out.println(\"Perkalian Bilangan A x B : \"+ (a*b)); 9. System.out.println(\"Pembagian Bilangan A / B : \"+ (a/b)); 10. System.out.println(\"Modulo 2 Bilangan A : \"+ (a%2)); 11. System.out.println(\"Modulo 2 Bilangan B : \"+ (b%2)); 12. } 13. } Berikut merupakan output yang dihasilkan dari script diatas sebagai berikut: Penjumlahan Bilangan A + B : 15 Pengurangan Bilangan A - B : 5 Perkalian Bilangan A x B : 50 Pembagian Bilangan A / B : 2 Modulo 2 Bilangan A :0 Modulo 2 Bilangan B :1 2.2 Operator Relasional Operator relasional merupakan proses perhitungan yang menghasilkan true atau false. Pada pemrograman, true bernilai 1 sedangkan false bernilai 0. Beberapa operator relasional ditunjukkan pada tabel berikut: Simbol Fungsi == Sama dengan != Tidak sama dengan < Kurang dari > Lebih dari <= Kurang dari sama dengan >= Lebih dari sama dengan ?; Conditional assignment Script berikut merupakan penggunaan operator relasi relasi untuk mengecek suatu nilai yang menghasilkan nilai true atau false. Pemrograman Berorientasi Objek | Tipe Data 10

1. public class aritmatika { : \"+ (a<b)); 2. public static void main(String[] args) { : \"+ (a>b)); 3. int a = 10; 4. int b = 5; 5. 6. System.out.println(\"Operasi Kurang Dari 7. System.out.println(\"Operasi Lebih Dari 8. } 9. } Hasil dari scipt diatas menghasilkan dua buah nilai true atau false. Operasi Kurang Dari : false Operasi Lebih Dari : true 2.3 Operator Logika Operator logika merupakan operator yang digunakan untuk menentukan suatu nilai yang hanya terdiri dari dua buah nilai yaitu true dan false. Operator logika memiliki memiliki fungsi antara lain AND, OR dan NOT. Simbol Fungsi && AND || OR ! NOT AB !A A && B A || B TT F T T TF F F T FT T F T FF T F F 2.4 Operator String Operator string digunakan untuk menggabungkan lebih dari dua buah teks, sibol yang digunakan untuk menggabungkan teks ialah ( + ). Pemrograman Berorientasi Objek | Tipe Data 11

MODUL 3 Kelas dan Objek Tujuan Praktikum  Mahasiswa memahami perbedaan kelas dan objek.  Mahasiswa dapat membuat kelas dan objek pada bahasa pemroraman java.  Mahasiswa dapat membuat program menggunakan tipe data dan operatornya. 1. Method Sebelum memasuki pembahasan kelas dan objek terdapat istilah method yang didefiniskan sebagai kumpulan program yang memiliki nama. Suatu program dibungkus dalam sebuah method yang pada suatu saat akan di panggil oleh kelas dan objek. Melalui method dapat dipanggil nama methodnya sehingga penggerjaan menjadi lebih efektif, praktis dan efisien dalam menuliskan code atau sintak. Bentuk umum dari method ialah sebagai berikut: nama_method (variabel/parameter){ statement method } Bentuk pemanggilan dari method diatas dapat ditulis sebagai berikut: nama_method(nilai variabel/paramater); Contoh pembuatan method untuk memanggil suatu pesan pada script berikut: 1. public class App { 2. public static void method_baru(){ 3. System.out.println(\"Semangat Pagi...\"); Pemrograman Berorientasi Objek | Kelas dan Objek 12

4. } 5. 6. public static void main(String[] args) throws Exception { 7. method_baru(); 8. } 9. } Pada script diatas akan menghasilkan output berupa tulisan pada screen “Semangat Pagi…”. Blok method ditunjukan pada baris ke-2 hingga ke-4, statement pada method tersebut digunakan untuk menampilkan pesan “Semangat Pagi…”. Sedangkan blok aplikasi utama atau main terdapat pada baris ke-6 hingga ke-8. Pemanggilan method ditunjukan oleh baris ke-7 yang langsung memanggil nama methodnya. Method terdiri dari dua jenis method, yaitu: 1. Method yang tidak mengembalikan nilai, method ini ditandai dengan penggunaan void sebelum nama methodnya. Pada contoh diatas termasuk pada method yang tidak mengembalikan nilai. 2. Method yang dapat mengembalikan nilai. Berbeda halnya dengan void, karena mengembalikan nilai maka method ini ditandai dengan tipe data yang akan dikembalikan nilainya dilanjutkan dengan nama methodnya dan diakhiri dengan return atau pengembalian nilai. Contoh berikut merupakan penggunaan method yang dapat mengembalikan sebuah nilai pada kasus penjumlahan dua buah bilangan dengan menggunakan parameter. 1. public class App { 2. //Method tanpa mengembalikan nilai 3. static void method_baru(){ 4. System.out.println(\"Semangat Pagii...\"); 5. } 6. 7. //Method mengembalikan nilai 8. static int penjumlahan(int a, int b){ 9. int jumlah = a + b; 10. return jumlah; 11. } 12. 13. public static void main(String[] args) throws Exception { 14. method_baru(); 15. Pemrograman Berorientasi Objek | Kelas dan Objek 13

16. System.out.println(\"Hasil Penjumlahan ialah \"+ penjumlahan(9,5) ); 17. } 18. } Output yang dihasilkan pada script diatas ialah sebagai berikut: Semangat Pagii... Hasil Penjumlahan ialah 14 Method yang menggunakan pengembalian nilai ditunjukan pada baris ke-8 sampai dengan baris ke-11 dengan nama method penjumlahan serta memiliki dua buah nilai a dan b yang bertipe data integer. Dua buah nilai a dan b dtangkap oleh method penjumlahan yang dikirimkan dari program utama sehingga pemanggilan pada program utama perlu ditambahkan dengan dua buah nilai juga. Baris ke-9 merupakan deklarasi variabel jumlah yang menampung penjumlahan nilai a dan b. Baris ke-10 merupakan pengembalian yang ditandai dengan return dilanjutkan dengan variabel yang mengembalikan nilai yaitu jumlah. Pemanggilan method terdapat pada baris ke-16 yaitu dengan perintah penjumlahan(9,5) artinya 9 akan diassign sebagai nilai variabel a dan 5 akan diassign sebagai variabel nilai b yang selanjutnya akan di proses pada statement pada method penjumlahan. 2. Class Class merupakan wadah yang berisi abstraksi (model) dari suatu fungsi objek (benda) yang mendeskripsikan data (sifat data) dan fungsi yang dimiliki oleh objek tersebut. Secara umum class menggambarkan ciri-ciri objek. Contoh kelas ialah sepeda jika pada suatu himpunan sepeda terdapat list data antara lain polygon, giant, bmx, united dan lain sebagainya. Merk dari sepeda tersebut memiliki kesamaan atribut antara lain tipe, berat, kapasitas, jenis sepeda dan lain sebagainya. Bentuk umum class pada bahasa pemrograman java dapat ditunjukan dengan formula script berikut: [modifier] class [nama_class]{ //isi statement class } Pemrograman Berorientasi Objek | Kelas dan Objek 14

3. Objek Objek merupakan segala sesuatu yang ada pada dunia ini. Konsep objek dalam kehidupan nyata akan menjadi objek dalam dunia pemrograman. Setiap objek memiliki dua elemen yaitu attribute (state) pada dunia pemrograman dikenal dengan variabel dan perilaku atau sifat pada bahasa pemrograman dikenal dengan method. Sebagai contoh pada sepeda memiliki attribut antara lain warna, merk, jenis sepeda. Sedangkan prilaku atau sifat antara lian dapat berjalan, berbelok, menambah kecepatan dan lain sebagainya. Objek yang memiliki kesamaan atribut dan method dapat dikelompokan menjadi sebuah class. Kumpulan objek yang berada pada suatu kelas tertentu disebut dengan instant of class. Untuk membuat objek dari class menggunakan operator new, dengan format sebagai berikut: NamaClass namaObjek = new NamaClass() Penggunaan kelas dan objek pada contoh diatas diberikan sebuah kelas bernama sepeda dan memilki atribut antara lain merk bertipe string, tipe sepeda bertipe string dan berat bertipe integer. Pada program utama akan sebuah objek dengan atribut tersebut dengan script berikut. 1. class sepeda{ 2. String merk; 3. String tipeSepeda; 4. int berat; 5. } 6. 7. public class App { 8. public static void main(String[] args) throws Exception { 9. sepeda objekSepeda1 = new sepeda(); 10. objekSepeda1.merk = \"Polygon\"; 11. objekSepeda1.tipeSepeda = \"Mountain Bike\"; 12. objekSepeda1.berat = 10; 13. 14. System.out.println(\"Merk Sepeda : \"+objekSepeda1.merk); 15. System.out.println(\"Tipe Sepeda : \"+objekSepeda1.tipeSepeda); 16. System.out.println(\"Berat Sepeda : \"+objekSepeda1.berat); 17. } 18. } Baris ke-9 menunjukan pembuatan objek dengan nama objekSepeda1 (penulisan bersifat case-sensitive), maka objekSepeda1 akan diberikan nilai pada atribut yang sesuai pada class sepeda. Pemberian nilai pada atribut ditunjukan pada baris ke-10 sampai dengan baris ke-12 dan sesuai dengan atribut yang terdapat pada kelas sepeda. Baris ke-14 sampai dengan baris ke-16 Pemrograman Berorientasi Objek | Kelas dan Objek 15

merupakan output yang akan dihasilkan dari sebuah objekSepeda1 berserta atributnya. Output yang dihasilkan ialah sebagai berikut. Merk Sepeda : Polygon Tipe Sepeda : Mountain Bike Berat Sepeda : 10 Output diatas merupakan objekSepeda1 beserta atribut yang dimiliki. Objek pada suatu kelas dapat memiliki lebih dari satu objek. Langkah yang dilakukan jika memiliki lebih dari satu objek dapat membuat objek kedua. Contoh selanjutnya merupakan pembuatan lebih dari satu objek pada kelas yang sama yaitu sepeda. 1. class sepeda{ 2. String merk; 3. String tipeSepeda; 4. int berat; 5. } 6. 7. public class App { 8. public static void main(String[] args) throws Exception { 9. sepeda objekSepeda1 = new sepeda(); 10. objekSepeda1.merk = \"Polygon\"; 11. objekSepeda1.tipeSepeda = \"Mountain Bike\"; 12. objekSepeda1.berat = 10; 13. 14. sepeda objekSepeda2 = new sepeda(); 15. objekSepeda2.merk = \"Giant\"; 16. objekSepeda2.tipeSepeda = \"Roadbike\"; 17. objekSepeda2.berat = 7; 18. 19. System.out.println(\"Objek 1\"); 20. System.out.println(\"Merk Sepeda : \"+objekSepeda1.merk); 21. System.out.println(\"Tipe Sepeda : \"+objekSepeda1.tipeSepeda); 22. System.out.println(\"Berat Sepeda : \"+objekSepeda1.berat); 23. 24. System.out.println(\"Objek 2\"); 25. System.out.println(\"Merk Sepeda : \"+objekSepeda2.merk); 26. System.out.println(\"Tipe Sepeda : \"+objekSepeda2.tipeSepeda); 27. System.out.println(\"Berat Sepeda : \"+objekSepeda2.berat); 28. } 29. } Pembuatan dua buah objek pada kelas sepeda ditunjukan pada baris ke-10 dan baris ke-14. Setelah mendefiniskan sebuah objek pada kelas tersebut dilanjutkan pendefinisian nilai atribut yang dimiliki kelas sepeda. Sehingga nilai yang telah didefinisikan dapat dicetak pada objek Pemrograman Berorientasi Objek | Kelas dan Objek 16

pertama pada baris ke-29 sampai baris ke-22 dan objek kedua pada baris ke-24 sampai baris ke- 27. Output yang dihasilkan ditunjukan sebagai berikut. Objek 1 Merk Sepeda : Polygon Tipe Sepeda : Mountain Bike Berat Sepeda : 10 Objek 2 Merk Sepeda : Giant Tipe Sepeda : Roadbike Berat Sepeda : 7 Penggunaan kelas dan objek dapat memudahkan pendefinisian variabel dengan nama variabel yang sama hanya saja jika memilki objek yang berbeda dapat dibuat objek yang baru dengan menggunakan operator new. Pemrograman Berorientasi Objek | Kelas dan Objek 17

MODUL 4 Constructor Tujuan Praktikum  Mahasiswa dapat memahami konsep enkapsulasi.  Mahasiswa dapat mengenal jenis modifier pada enkapsulasi.  Mahasiswa dapat memahami konsep constructor.  Mahasiswa dapat menggunakan enkapsulasi dan constructor pada bahasa pemrograman Java. 1. Enkapsulasi Informasi pada suatu class dapat disembunyikan dengan tujuan atribut-atribut yang dimliki pada class tertentu tidak dapat diakses dari program utama atau kelas lainnya. Salah satu cara pemberian pemberian akses control pada class ialah mengunakan perintah modifier (default, public, private dan protected) pada saat mendeklarasikan suatu atribut atau method yang sudah pernah digunakan pada bab sebelumnya. Bentuk umum penggunaan enkapsulasi pada pemrogaman java ialah sebagai berikut. modifier class nama_class{ tipedata nama_variabel; void nama_method(){ //isi blok syntax method } } Pemrograman Berorientasi Objek | Constructor 18

Terdapat empat hak akses yang modifier pada table berikut. No. Modifier Pada class dan interface Pada method dan variabel Default Diwarisi oleh subkelas dipaket yang Dapat diakses oleh yang 1. (tidak ada sama, dapat diakses oleh method- modifier) sepaket. method yang sepaket 2. Public Dapat diakses dimanapun Diwarisi oleh subkelasnya, dapat diakses dimanapun 3. Protected Tidak bisa diterapka Diwarisi oleh subkelasnya, dapat diakses oleh method-method yang sepaket 4. Private Tidak bisa diterapkan Tidak dapat dikases dimanapun kecuali oleh method-method yang ada dalam kelas itu sendiri Contoh penggunaan enkapsulasi pada class identias pengendara pada script berikut. 1. class identitas_pengendara{ 2. String nama = \"Rizal\"; //modifier default 3. public String namabelakang = \"Anugerah\"; //modifier public 4. protected String alamat = \"Bandung\"; //modifier protected 5. //private int usia = 20; //modifier private 6. } 7. 8. public class enkapsulasi { 9. 10. public static void main(String[] args) { 11. identitas_pengendara objPengendara = new identitas_pengendara( ); 12. System.out.println(\"Nama : \"+objPengendara.nama); 13. System.out.println(\"Nama Belakang : \"+objPengendara.namabelaka ng); 14. System.out.println(\"Alamat : \"+objPengendara.alamat); 15. //System.out.println(\"Usia : \"+objPengendara.usia); 16. } 17. } Pada script diatas terdapat dua buah class yaitu class identitas_pengendara dan class main atau kelas utama. Pada class identitas_pengendara terdapat masing-masing modifier yang ditunjukan pada baris ke-2 hingga baris ke-5, namun khusu modifier private akan dijelaskan lebih Pemrograman Berorientasi Objek | Constructor 19

detail selanjutnya. Class enkapsulasi terdapat program utama yang didalamnya berfungsi untuk mengeluarkan hasil berupa outputan variabel yang ada pada class identitas_pengendara. Output yang dihasilkan ialah sebagai berikut: Nama : Rizal Nama Belakang : Anugerah Alamat : Bandung Output yang dihasilkan diatas telah sesuai dengan pemberian value pada masing-masing variabel atau atribut yang terdapat pada class identias_pengendara, namun permasalahan akan muncul pada modifier private yaitu tidak dapat dimunculkan nilainya. Hal ini sesuai dengan aksesibilitas pada jenis-jenis modifier, karena modifier private hanya dapat digunakan oleh class yang sama. Jika hal tersebut tetap dirunning, maka akan muncul pesan error bahwa variabel usia tidak tersedia dengan tampilan sebagai berikut. Exception in thread \"main\" java.lang.Error: Unresolved compilation problem: The field identitas_pengendara.usia is not visible at enkapsulasi.main(enkapsulasi.java:15) Solusi pertama yang diberikan pada kasus tersebut ialah dengan memindahkan variabel private pada baris ke-5 dipindahkan pada class enkapsulasi, namun jika hal tersebut dilakukan maka perlu dibuatkan kembali definisi objek yang baru pada class enkapsulasi. Solusi kedua yaitu tetap variabel dengan jenis modifier private disimpan pada class identitas_pengendara namun perlu menambahkan method getter dan method setter. Script berikut merupakan penambahan method tersebut yang disimpan pada class identias_pengendara. 1. class identitas_pengendara{ 2. String nama = \"Rizal\"; //modifier default 3. public String namabelakang = \"Anugerah\"; //modifier public 4. protected String alamat = \"Bandung\"; //modifier protected 5. private int usia = 20; //modifier private 6. 7. public int getUsia(){ 8. return this.usia; 9. } 10. 11. public void setUsia(int usia){ 12. this.usia = usia; 13. } Pemrograman Berorientasi Objek | Constructor 20

14. } 15. 16. public class enkapsulasi { 17. 18. public static void main(String[] args) { 19. identitas_pengendara objPengendara = new identitas_pengendara( ); 20. System.out.println(\"Nama : \"+objPengendara.nama); 21. System.out.println(\"Nama Belakang : \"+objPengendara.namabelaka ng); 22. System.out.println(\"Alamat : \"+objPengendara.alamat); 23. System.out.println(\"Usia : \"+objPengendara.getUsia()); 24. } 25. } Penggunaan method setter dan getter terdapat pada method getUsia berfungsi mengembalikan nilai usia, sedangkan method getUsia mengambil nilai private usia yang berada pada class yang sama. Pengambilan dan pengiriman variabel dengan tipe modifier pada script diatas menggunakan operatos this. Operator this berfungsi untuk membedakan variabel Usia pada yang diprivate dan juga parameter yang diterima dari kelas pemanggilnya. Sehingga untuk memanggil variabel usia yang memiliki modifier private dengan cara memanggil method getternya yaitu getUsia(). Hasil running dari script diatas ialah sebagai berikut. Nama : Rizal Nama Belakang : Anugerah Alamat : Bandung Usia : 20 2. Constructor Constructor ialah suatiu method yang pertama kali dijalankan pada saat pembuatan sebuah objek. Constrructor berfungsi untuk menginisialisasi variabel-variabel yang akan dimiliki oleh sebuah objek. Constructor akan dipanggil pada saat proses inisialisasi kelas menjadi objek. Beberapa karakteristik yang dimliki constructor ialah: 1. Method constructor harus memiliki nama yang sama dengan nama class. 2. Tidak mengembalikan suatu nilai (tidak ada keyword return). 3. Satu class dapat memiliki lebih dari satu constructor (overloading). 4. Dapat ditambah access modifier public, private, protected maupun default. 5. Suatu constructor bisa dipanggil oleh constructor lain dalam satu class. Pemrograman Berorientasi Objek | Constructor 21

Bentuk umum dari constructor pada bahasa pemrogaman java. class nama_class{ //variabel global pada class tipedata nama_variabel; //constructor modifier nama_class(){ //isi blok constructor } } Penggunaan constructor juga dapat mengefisiensikan pembuatan objek serta pengriman nilai pada class yang dituju. Berikut merupakan contoh penggunaan constructor dengan contoh kasus yang sama pada contoh enkapsulasi. 1. class identitas_pengendara{ 2. String nama = \"Rizal\"; //modifier default 3. public String namabelakang = \"Anugerah\"; //modifier public 4. protected String alamat = \"Bandung\"; //modifier protected 5. private int usia = 20; //modifier private 6. 7. //method getter 8. public int getUsia(){ 9. return this.usia; 10. } 11. 12. //method setter 13. public void setUsia(int usia){ 14. this.usia = usia; 15. } 16. 17. //constructor 18. identitas_pengendara(String a, String b, String c, int d){ 19. this.nama = a; 20. this.namabelakang = b; 21. this.alamat = c; 22. this.usia = d; 23. } 24. 25. void cetak_pengendara(){ 26. System.out.println(\"Nama : \"+nama); 27. System.out.println(\"Nama Belakang : \"+namabelakang); Pemrograman Berorientasi Objek | Constructor 22

28. System.out.println(\"Alamat : \"+alamat); 29. System.out.println(\"Usia : \"+usia); 30. } 31. } 32. 33. public class constructor{ 34. 35. public static void main(String[] args) throws Exception { 36. identitas_pengendara objek1 = new identitas_pengendara(\"Rizal\", \"Anugerah\", \"Bandung\", 20); 37. objek1.cetak_pengendara(); 38. 39. } 40. } Script diatas sama halnya dengan contoh kasus sebelumnya saat menggunakan enkapsulasi hanya saja menggunakan constructor. Perbedaanya terlihat jelas pada pembuatan objek yang sekaligus pengiriman nilai variabel pada class identias pengendara yang ditunjukan pada baris ke-36. Sementara pembuatan constructor terlihat pada baris ke-18 sampai dengan baris ke-23. Pada baris ke-18 menujukan constructor harus memilki nama yang sama dengan class yaitu identias_pengendara disertai dengan parameter a, b, c dan d. Parameter yang diterima oleh constructor harus berurutan sesuai dengan yang dikirim pada program utama pada saat pembuatan objek yang langsung dilakukan pengiriman nilai. Parameter yang diterima oleh constructor pada baris ke-19 hingga baris ke-22 menunjukan penggunaan keyword this yang dilanjutkan dengan variabel lokal class tersbut bertujuan untuk memperlihakan perbedaan variabel antara yang variabel lokal dengan variabel yang diterima pada parameternya. Penggunaan constructor dapat memringkas script menjadi lebih efisien, singkat dan terstruktur karena pada pembuatan objek diberikan nilai secara langsung. Pemrograman Berorientasi Objek | Constructor 23

MODUL 5 Inheritance Tujuan Praktikum  Mahasiswa dapat memahami pengertian dari inheritance atau pewarisan.  Mahasiswa desain dari konsep inheritance.  Mahasiswa memahami perbedaan superclass dan subclass.  Mahasiswa dapat menggunakan konsep inheritance pada bahasa pemrograman Java. 1. Inheritance Inheritance atau turunan merupakan proses pewarisan data dan method dari suatu class yang telah ada (class induk) kepada suatu class anaknya, class yang mewariskan disebut dengan superclass atau parent class sedangkan class yang diwariskan disebut dengan subclass atau child class. Suatu subclass dapat mewarisi variebel yang dimiliki oleh parent classnya atau dapat memperluas (extend) parent classnya. Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, setelah itu diikuti dengan nama parent classnya. Berikut adalah contoh deklarasi inheritance. class superClass{ //statement SuperClass } class subClass extends superClass{ //statement SubClass, mewariskan dari SuperClass } Pemrograman Berorientasi Objek | Inheritance 24

Contoh diatas memberitahukan kompiler Java bahwa class subClass meng-extend ke class superClass. Java hanya memperkenankan adanya single inheritance. Konsep single inheritance hanya memperbolehkan suatu sublass mempunyai satu parent class. Dengan konsep single inheritance ini, masalah pewarisan akan dapat diamati dengan mudah. Suatu super class dapat tidak mewariskan sebagian atribut atau membernya kepada subclassnya. Sejauh mana suatu stgribut atau member dapat diwariskan ke subclass lainnya, ataupun suatu atribut atau membernya dapat diakses dari oleh subclass lain yang merupakan erat kaitannya dengen access control (pada modul enkapsulasi). 2. Bentuk Inheritance Untuk mengakses constructor pada superclass oleh subclass atau kelas anaknya dapat menggunakan perintah super. Bentuk yang digunakan untuk penggunaan kata kunci super ialah sebagai berikut. //untuk memanggil constructor milik super class super() super (parameter) //untuk memanggil atribut milik super class super.namaatribut //untuk memanggil method milik super class super.namamethod(parameter) Bagan berikut merupakan contoh penggunaan inherintance pada contoh kasus sepeda. Pemrograman Berorientasi Objek | Inheritance 25

Pada bagan diatas menjelaskan bahwa terdapat super class dengan nama sepeda() yang memiliki atribut (merk, warna dan ukuran) dan sifat atau method (berjalan, berhenti dan belok). Super class sepeda() memilki dua buah subclass yaitu RoadBike() dan MountainBike() yang masing-masing subclassnya mewariskan dari superclassnya yaitu rute dan sifat berjalan(). Maka diagram diatas dapat dituliskan pada bahasa pemrograman java sebagai berikut. 1. class sepeda{ 2. String merk; 3. String warna; 4. int ukuran; 5. 6. void berjalan(){ 7. //statement berjalan 8. } 9. 10. void berhenti(){ 11. //statement berhenti 12. } 13. 14. void belok(){ 15. //statement belok 16. } 17. 18. void cetak(){ 19. System.out.println(\"Merk Sepeda : \"+merk); 20. System.out.println(\"Warna Sepeda : \"+warna); 21. System.out.println(\"Ukuran Sepeda : \"+ukuran); 22. } Pemrograman Berorientasi Objek | Inheritance 26

23. } 24. 25. class RoadBike extends sepeda{ 26. String rute; 27. void berjalan() { 28. super.berjalan(); 29. } 30. } 31. 32. class MountainBike extends sepeda{ 33. String rute; 34. void berjalan() { 35. super.berjalan(); 36. } 37. } Script diatas merupakan generate dari bagan contoh kasus sepeda. Selanjutnya penggunaan serta pengaksesan attribute dari subclass (class RoadBike() dan MountainBike()) yang diwariskan oleh superclassnya sepeda(). Masing-masing subclass dapat mengirimkan data dari program utama, sekalipun pada subclass tidak terdapat script yang menunjukan atribut yang ada pada superclass. Pada contoh ini akan menghasilkan output berupa hasil dari tiap subclass, yang dicontohkan pada script berikut langsung pada program utama. 39. public class inheritance { 40. public static void main(String[] args) { 41. //subclass RoadBike 42. System.out.println(\"Subclass Road Bike\"); 43. RoadBike objekRB = new RoadBike(); 44. objekRB.merk = \"United\"; 45. objekRB.warna = \"Putih\"; 46. objekRB.ukuran = 15; 47. objekRB.cetak(); 48. 49. //subclass Moutainbike 50. System.out.println(\"Subclass Mountain Bike\"); 51. MountainBike objekMTB = new MountainBike(); 52. objekMTB.merk = \"Polygon\"; 53. objekMTB.warna = \"Hitam\"; 54. objekMTB.ukuran = 10; 55. objekMTB.cetak(); 56. } 57. } Pemrograman Berorientasi Objek | Inheritance 27

Scipt subclass RoadBike() yang ditunjukan pada baris ke-25 tidak memiliki atribut sama halnya dengan subclass MountainBike() yang ditunjukan pada baris ke-32. Namun kedua subclass tersebut memiliki atribut yang telah diwarikan oleh superclassnya pada class sepeda() serta memilki sifat atau method cetak(). Output yang dihasilkan pada script diatas ditunjukan sebagai berikut. Subclass Road Bike Merk Sepeda : United Warna Sepeda : Putih Ukuran Sepeda : 15 Subclass Mountain Bike Merk Sepeda : Polygon Warna Sepeda : Hitam Ukuran Sepeda : 10 Pemrograman Berorientasi Objek | Inheritance 28

MODUL 6 Polymorphism Tujuan Praktikum  Mahasiswa dapat memahami pengertian dari polymorphism.  Mahasiswa desain dari konsep polymorphism.  Mahasiswa memahami perbedaan overriding dan overloading  Mahasiswa dapat menggunakan konsep polymorphism pada bahasa pemrograman Java. 1. Polymorphism Polymorphism terdiri dari dua suku kata poly yang berarti banak dan morphism yang berarti bentuk, sehingga pengertian dari Polymorphism (polimorfisme) adalah kemampuan untuk mempunyai banyak method dengan tugas atau fungsi yang berbeda-beda namun memiliki nama yang sama. Polimorfisme ini terjadi pada saat suatu objek bertipe parent class, akan tetapi pemanggilan constructornya melalui subclass. Jika menginginkan sebuah objek yang dapat memanggil setiap method yang ada pada setiap class (superclass dan subclass) maka dapat menggunakan Teknik polymorphism. Teknik polymorphism hanya berlaku pada method dan tidak berlaku untuk atribut atau variabel. Untuk mendapatkan operasi polymorphism dari sebuah method, maka method yang ada pada subclass harus merupakan method yang ada pada superclass atau kelas induk. Gambar berikut merupakan ilustrasi polymorphism. Pemrograman Berorientasi Objek | Polymorphism 29

Class sepeda merupakan class induk atau superclass dari class Road Bike dan Mountain Bike yang mempunya method yang sama yaitu berjalan(). Walaupun kedua kelas tersebut memiliki nama method yang sama, namun isi atau sifat atau output yang dihasilkan dari masing- masing method berbeda. Sifat atau Method yang akan dihasilkan oleh class Roadbike() dapat berjalan pada lintasan aspal, sedangkan pada class Mountainbike() dapat berjalan pada lintasan offroad. Berikut untuk inisialisasi pendefinisial dari struktur bagan diatas dapat dituliskan dalam bahasa pemrograman java sebagai berikut. 1. class sepeda{ 2. void berjalan(){ 3. System.out.println(\"Lintasan Sepeda\"); 4. } 5. 6. void berhenti(){ 7. System.out.println(\"Sepeda Berhenti\"); 8. } 9. } 10. 11. class RoadBike extends sepeda{ 12. String rute; 13. void berjalan() { 14. System.out.println(\"Road bike berada pada Lintasan Aspal\"); 15. } 16. } 17. Pemrograman Berorientasi Objek | Polymorphism 30

18. class MountainBike extends sepeda{ 19. String rute; 20. void berjalan() { 21. System.out.println(\"Mountain bike berada pada Lintasan Offroad\" ); 22. } 23. } Sesuai dengan ketentuan pada polymorphism, method yang ada pada subclass harus terdapat juga pada superclassnya yaitu method berjalan(). Jika pada program utama akan memanggil class RoadBike() akan menghasilkan output berupa lintasan pada aspal, sedangkan jika class MountainBike() dipanggil akan menghasilkan output lintasan pada offroad. Script pada program utama java dapat dtuliskan sebagai berikut. 1. public class polymorphism { 2. public static void main(String[] args) { 3. sepeda objsepeda = new sepeda(); 4. objsepeda.berjalan(); 5. 6. RoadBike objRoadbike = new RoadBike(); 7. objRoadbike.berjalan(); 8. 9. MountainBike objMountainbike = new MountainBike(); 10. objMountainbike.berjalan(); 11. } 12. } Pada script diatas masing-masing class membentuk objek dengan nama obj dilanjutkan dengan classnya untuk membedakan objek lainnya dengan memanggil method berjalan(), script tersebut menghasilkan method masing-masing class yang berbeda-beda ditunjukan sebagai berikut. Lintasan Sepeda Road bike berada pada Lintasan Aspal Mountain bike berada pada Lintasan Offroad Pada polymorphism terdapat dua jenis method yaitu Overloading dan Overriding. Kedua jenis method tersebut terletak pada teknik pembuatan polymorphism. Pemrograman Berorientasi Objek | Polymorphism 31

2. Polymorphism Menggunakan Method Overloading Method Overloading ialah penggunaan nama method yang sama pada sebuah class yang sama. Terdapat aturan yang ada pada method overloading antara lain: 1. Nama method harus sama dengan method lainnya. 2. Parameter pada method harus berbeda. 3. Untuk pengembalian atau return bisa sama ataupun berbeda. 3. Polymorphism Menggunakan Method Overriding Overriding method ialah kemampuan dari subclass untuk memodifikasi method dari superclass dengan cara menumpuk (menginisialiasasi kembali) method superclass. Terdapat aturan-aturan method overring, antara lain: 1. Mode privilege atau mode akses method harus sama atau lebih luas daripada override method. 2. Subclass hanya dapat meng-override method superclass tidak boleh melebihi satu method pada class yang sama. 3. Subclass tidak memiliki privillage atau mode akses method overriding dibandingkan dengan hak hak akses method pada superclass. Pemrograman Berorientasi Objek | Polymorphism 32

MODUL 7 Kelas Abstrak Tujuan Praktikum  Mahasiswa memahami kelas abstrak pada pemrograman berbasis PBO.  Mahasiswa memahami kelas abstrak untuk membuat sebuah algoritma atau perangkat lunak.  Mahasiswa memahami pengenalan bahasa pemrograman Java. 1. Kelas Abstrak Kelas abstrak adalah sebuah kelas yang tidak bisa di instansiasi (tidak bisa dibuat menjadi objek) dan berperan sebagai kerangka dasar bagi kelas turunannya. Di dalam kelas abstrak biasanya memiliki method abstrak. Cara untuk membuat sebuah kelas abstrak adalah: 1. abstract class namaClassAbstrak 2. { 3. ......... // definisi class 4. } Method abstrak adalah sebuah method dasar yang harus diimplementasikan ulang di dalam kelas anak (child class). Method abstrak ditulis tanpa isi dari method, melainkan hanya signature saja. Signature adalah bagian method yang terdiri dari nama method dan parameternya. Cara membuat method abstrak adalah: 1. abstract void namaMethodAbstrak(double x, double y); //jika menggunakan parameter Kelas abstrak digunakan didalam inheritance (pewarisan) untuk memaksakan implementasi method yang sama bagi seluruh kelas yang diturunkan dari kelas abstrak. Sehingga jika kita Pemrograman Berorientasi Objek | Kelas Abstrak 33

menggunakan kelas abstrak di kelas parent atau induknya, maka kelas anak wajib memiliki sifat parent atau induknya, tapi kelas induk (bukan kelas abstrak) boleh tidak dimiliki oleh anaknya. 1. //abstract class 2. abstract class buah{ 3. //Indentifier atau variable atau atribut kelas 4. String rasa,warna,bentuk; 5. 6. //Definisi method abstract 7. abstract void Rasa(); 8. abstract void Warna(); 9. abstract void Bentuk(); 10. 11. //Method biasa 12. void Berat_Jeruk() 13. { 14. System.out.println(\"Berat Jeruk 0.5 ons\") 15. } 16. 17. void Harga_Pisang() 18. { 19. System.out.println(\"Berat Pisang 0.8 ons\") 20. } 21. } 2. Latihan Koding Latihan berikut ini akan menunjukan proses dan pola kelas abstrak bekerja dengan konsep inheritance: 1. package p09_pbo_abstrak; 2. 3. //Parent class abstract 4. abstract class Buah{ 5. //Identifier atau atribut class 6. 7. //Definisi method abstract 8. abstract void Rasa(); 9. abstract void Warna(); 10. abstract void Bentuk(); 11. 12. //Sifat induk yang tidak ada dianak 13. void Berat_Jeruk(){ 14. System.out.println(\"5 Kg\"); 15. } 16. 17. //Sifat induk yang tidak ada dianak Pemrograman Berorientasi Objek | Kelas Abstrak 34

18. void Harga_Pisang(){ 19. System.out.println(\"Rp. 15.000\"); 20. } 21. 22. } 23. 24. //Subclass atau child class 25. class Jeruk extends Buah{ 26. //Sifat induk 27. void Rasa(){ 28. System.out.println(\"Asam\"); 29. } 30. 31. //Sifat induk 32. void Warna(){ 33. System.out.println(\"Orange\"); 34. } 35. 36. //Sifat induk 37. void Bentuk(){ 38. System.out.println(\"Bulat\"); 39. } 40. } 41. 42. class Pisang extends Buah{ 43. //Sifat induk 44. void Rasa(){ 45. System.out.println(\"Manis\"); 46. } 47. 48. //Sifat induk 49. void Warna(){ 50. System.out.println(\"Kuning\"); 51. } 52. 53. //Sifat induk 54. void Bentuk(){ 55. System.out.println(\"Lonjong\"); 56. } 57. } 58. 59. public class P09_PBO_Abstrak { 60. public static void main(String[] args) { 61. 62. Buah objBuah; 63. objBuah = new Pisang(); 64. objBuah.Rasa(); 65. objBuah.Warna(); 66. objBuah.Bentuk(); 67. objBuah.Harga_Pisang(); Pemrograman Berorientasi Objek | Kelas Abstrak 35

68. 69. System.out.println(\"-----------------\"); 70. 71. objBuah = new Jeruk(); 72. objBuah.Rasa(); 73. objBuah.Warna(); 74. objBuah.Bentuk(); 75. objBuah.Berat_Jeruk(); 76. } 77. 78. } Hasil running dari koding: Pemrograman Berorientasi Objek | Kelas Abstrak 36

MODUL 8 Objek Interface Tujuan Praktikum  Mahasiswa memahami kelas interface pada pemrograman berbasis PBO.  Mahasiswa memahami kelas interface untuk membuat sebuah algoritma atau perangkat lunak.  Mahasiswa memahami pengenalan bahasa pemrograman Java. 1. Objek Interface Secara sederhana, Object Interface adalah sebuah ‘kontrak’ atau perjanjian implementasi method. Bagi class yang menggunakan object interface, class tersebut harus mengimplementasikan ulang seluruh method yang ada di dalam interface. Dalam pemrograman objek, penyebutan object interface sering disingkat dengan ‘Interface’ saja. Jika anda telah mempelajari abstract class, maka interface bisa dikatakan sebagai bentuk lain dari abstract class. Walaupun secara konsep teoritis dan tujuan penggunaannya berbeda. Sama seperti abstract class, interface juga hanya berisi signature dari method, yakni hanya nama method dan parameternya saja (jika ada). Isi dari method akan dibuat ulang di dalam class yang menggunakan interface. Jika kita menganggap abstract class sebagai ‘kerangka’ atau ‘blue print’ dari class-class lain, maka interface adalah implementasi method yang harus ‘tersedia’ dalam sebuah objek. Interface tidak bisa disebut sebagai ‘kerangka’ class. Jika terdapat class komputer, interface bisa dicontohkan dengan ‘mouse’, atau ‘keyboard’. Sehingga sifat dari kelas parent atau induk harus dan wajib di turunkan ke sifat anaknya, dan sifat dari kelas anaknya boleh memiliki sifat sendiri. Pemrograman Berorientasi Objek | Objek Interface 37

2. Deklarasi Interface Untuk mendeklarasikan sebuah interface menggunakan sintaks seperti berikut: 1. interface namaKelasInterface 2. { 3. …….. //Isi dari kelas interface 4. } 3. Latihan Koding Berikut ini akan ditampilkan bagaimana sintaks interface bekerja pada sebuah algoritma dalam bahasa java: 1. package p09_pbo_abstrak; 2. 3. //Parent class interface 4. interface Buah2{ 5. //Definisi method interface 6. void jenis_daun(); 7. void jenis_batang(); 8. } 9. 10. //Subclass atau child class 11. class Jambu implements Buah2{ 12. //Sifat induk 13. public void jenis_daun(){ 14. System.out.println(\"Jenis daun jambu: hijau\"); 15. } 16. 17. //Sifat induk 18. public void jenis_batang(){ 19. System.out.println(\"Jenis batang jambu: rimbun\"); 20. } 21. 22. //sifat anaknya sendiri yang tidak dimiliki induknya 23. public void jenis_akar(){ 24. System.out.println(\"Jenis akar jambu: serabut\"); 25. } 26. } 27. 28. public class P09_PBO_Interface { 29. public static void main(String[] args) { 30. 31. Jambu objJambu = new Jambu(); 32. objJambu.jenis_daun(); 33. objJambu.jenis_batang(); 34. objJambu.jenis_akar(); 35. } Pemrograman Berorientasi Objek | Objek Interface 38

36. } Hasil running dari koding: 4. Perbedaan Abstrak dan Interface Salah satu yang membedakan interface dengan abstract class adalah kita tidak bisa membuat method normal atau biasa di dalam Interface. Perbedaan lain antara Interface dengan Abstract Class adalah: Sebuah class bisa menggunakan lebih dari 1 interface, sedangkan untuk abstract class, kita hanya bisa menggunakan 1 abstract class dalam sekali penurunan class. Pemrograman Berorientasi Objek | Objek Interface 39

MODUL 9 Graphical User Interface (GUI) Tujuan Praktikum  Mahasiswa memahami GUI pada pemrograman berbasis java.  Mahasiswa memahami GUI untuk membuat sebuah aplikasi atau perangkat lunak.  Mahasiswa memahami pengenalan bahasa pemrograman Java. 1. Netbeans NetBeans IDE adalah GUI Editor yang memudahkan programmer untuk melakukan pembelajaran dan pengembangan software atau dalam tahapan membuat software atau aplikasi, yang sebelumnya banyak GUI Editor dalam bahasa pemrograman seperti notepad atau text editor, yang sebenarnya jika kita memakai notepad atau text editor maka pengetahuan kita akan lebih berkembang dibanding memakai GUI Editor. NetBeans mengacu pada dua hal, yakni platform untuk pengembangan aplikasi desktop java dan sebuah Integrated Development Environment (IDE) yang dibangun menggunakan platform NetBeans. NetBeans IDE adalah sebuah lingkungan pengembangan untuk pemrogram, menulis, mengompilasi, mencari kesalahan dan menjalankan program. NetBeans IDE ditulis dalam bahasa Java, namun dapat mendukung bahasa pemrograman lain. Terdapat banyak modul untuk memperluas NetBeans IDE. NetBeans IDE adalah sebuah produk bebas dengan tanpa batasan. NetBeans adalah Integrated Development Environment (IDE) berbasiskan Java yang berawal pada tahun 1997 yang diawali dari Xelfi, sebuah proyek mahasiswa di bawah bimbingan Fakultas Matematika dan Fisika Universitas Charles, Praha dan akhirnya Sun Microsystems membelinya. Pada tahun 1999, dikembangkan NetBeans Integrated Development Environment (IDE) berbasiskan Java dari Sun Microsystems yang berjalan di atas Swing. Swing sebuah teknologi Java untuk pengembangan aplikasi Desktop yang dapat bejalan di berbagai macam platforms seperti Windows, Linux, Mac OS X and Solar dengan kata lain, java dengan NetBeans dapat dikatakan sebagai pemrograman multi platforms karena fleksibel dengan segala sistem operasi. Pada tahun Pemrograman Berorientasi Objek | Graphical User Interface (GUI) 40

2000, sun menjadikan NetBeans sebagai software development yang Open Source, dengan kata lain software ini gratis tanpa biaya karena software ini di bawah pengembangan bersama. Software NetBeans dapat di download di http://www.netbeans.com atau juga bisa di download di situs yang lain. 2. Graphical User Interface (GUI) Aplikasi berbasis GUI memberi kemudahan pada pengguna atau user dalam mengoperasikan sebuah perangkat lunak. Semakin mudah dan user friendly sebuah perangkat lunak digunakan, artinya mempermudah percepatan dalam proses membantu penyelesaian masalah manusia. Ada 3 set Java API untuk membuat GUI: 1. Abstract Windowing Toolkit (AWT). 2. Swing 3. JavaFX 2.1 Abstract Windowing Toolkit (AWT) Abstract Windowing Toolkit (AWT), atau disebut juga “Another Windowing Toolkit”, adalah pustaka windowing bertujuan umum dan multiplatform serta menyediakan sejumlah kelas untuk membuat GUI di Java. Dengan AWT, dapat membuat window, menggambar, manipulasi gambar, dan komponen seperti Button, Scrollbar, Checkbox, TextField, dan menu pull-down. Pemrograman Berorientasi Objek | Graphical User Interface (GUI) 41

AWT merupakan produk pertama GUI java. Terdapat 12 packages dari 370 kelas didalam API. Hanya 2 packages yang digunakan pada awt, java.awt dan java.awt.event. Saat ini komponen AWT banyak digantikan oleh swing, contoh: label (AWT) dan Jlabel (Swing) 2.2 Swing Secara garis besar Swing merupakan perbaikan kelemahan di AWT. Banyak kelas swing menyediakan komponen alternatif terhadap AWT. Dengan Java Swing kita dapat membuat user interface yang cross platform atau OS independent. Artinya user interface yang kita buat dapat dijalankan pada system operasi apa saja (OS yang suport Java) dengan tampilan yang relative sama. Contohnya kelas JButton swing menyediakan fungsionalitas lebih banyak dibanding kelas Button. Selain itu komponen swing umumnya diawali dengan huruf “J”, misalnya JButton, JTextField, JFrame, JLabel, JTextArea, JPanel, dan sebagainya. Teknologi swing menggunakan dan memperluas gagasan-gagasan AWT. Sementara, penggunaan komponen Swing ditandai dengan adanya instruksi : import javax.swing.*; Swing merupakan pengembangan lanjutan untuk pembuatan GUI di Java. Swing memiliki komponen yang lebih banyak daripada AWT Swing terlihat lebih bagus secara desain. Terdapat 18 packages dari 737 kelas didalam API (JDK). 2.3 Java FX JavaFX merupakan bagian dari Rich Internet Application (RIA) dimana dapat dijalankan diberbagai platform dan device. JavaFX digunakan untuk membuat grafik 2D dan 3D. JavaFX dapat berjalan di desktop atau web browser. JavaFX dan Swing berjalan berbarengan. JavaFX Pemrograman Berorientasi Objek | Graphical User Interface (GUI) 42

adalah salah satu teknologi dari Java yang diperuntukan untuk membangun atau merancang aplikasi yang kaya dengan konten multimedia seperti: Grafis; Sound; Effect Grafis; dan Video; yang diintegrasikan kedalam WEB Site dalam jaringan internet maupun intranet. JavaFX sering disebut dengan RIAs (Rich Internet Applications), contoh aplikasi RIAs adalah: framework; Curl; GWT; Adobe Flash/ Adobe Flex/ AIR, Java/ JavaFX; Mozilla XUL; dan Microsoft Silverlight. JavaFX adalah sebuah platform software untuk membangun sebuah aplikasi rich internet application (RIA) yang bisa berjalan pada berbagai macam perangkat. Seperti komputer dekstop, web browser di Windows, Linux dan Mac OSX. JavaFX dirancang untuk menyediakan para developer java sebuah platform yang baru, ringan, dengan performa yang tinggi. Tujuannya adalah ingin mengantikan swing untuk membangun aplikasi GUI. Namun itu bukan berarti Swing sudah tidak digunakan lagi. Sejumlah besar aplikasi telah dibangun dengan menggunakan swing itu berarti, Swing telah menjadi bagian dari Java API untuk waktu yang cukup lama. Terutama bahwa aplikasi ini bisa digabungkan dengan JavaFX secara fungsi. 2.4 Pembuatan GUI Graphical Object  Container (tempat), obyek yang dapat menampung komponen grafis dan tempat yang lebih kecil. Contoh: frames, panels  Component, obyek grafis yang berfungsi untuk menampilkan data, menerima masukan, atau menunjukkan suatu kondisi. Contoh: buttons, labels, text fields  Event, obyek yang merepresentasikan suatu kejadian. Contoh: gerakan mouse, penekanan tombol Listener, suatu obyek yang menunggu suatu kejadian khusus dan akan bereaksi (melakukan sesuatu) jika kejadian tersebut terjadi. Pemrograman Berorientasi Objek | Graphical User Interface (GUI) 43

Pembuatan GUI pada tools netbeans sebetulnya sangat sederhana, karena netbeans sudah menyediakan fiture yang memudahkan para programer dalam bekerja. Langkah yang harus dilakukan adalah klik kanan di paket project > new > Jframe Form. Sehingga akan menampilkan halaman baru dan kita bisa menggunakan menu-menu disana dengan proses drag and drop saja. Pemrograman Berorientasi Objek | Graphical User Interface (GUI) 44

Kemudian, tulis nama file yang ingin kita tentukan, serta lokasi dimana kita ingin letakkan, lalau klik finish. Kemudian akan tampil menu untuk mendesain GUI, dimana menu palette container seperti swing containera, swing controls, swing menus bisa di drag dan drop ke desain yang ada ditengah, kemudian kita juga bisa melihat source code yang automatis terbentuk didalamnya. Pemrograman Berorientasi Objek | Graphical User Interface (GUI) 45

Pallete Desain 3. Aplikasi CRUD Aplikasi CRUD ini memiliki logika yang sangat sederhana, yaitu pertama saat aplikasi dijalankan, maka aplikasi CRUD akan meload semua data dan menampilkannya di tabel, serta mengisi text field dengan data – data yang sama pada tabel yang sudah siap untuk diubah. Selanjutnya jika melakukan perubahan berarti memerintahkan aplikasi untuk mengupdate data ke database, sedangkan jika melakukan penambahan data maka aplikasi akan menambah data tersebut dengan perintah insert ke database. Dan terakhir melakukan perintah delete, baris yang dipilih pada tabel akan dihapus secara permanent. Dibawah ini akan dijelaskan langkah pembuatan aplikasi GUI berbasis objek oriented programing dengan menggunakan bahasa java. Pada project kali ini sebagai contoh adalah aplikasi penyimpanan data karyawan, sehingga database dan tabel yang digunakan menyesuaikan kasus yang ada. Kemudian pada aplikasi ini menggunakan menu login dan fungsi multiple document interface. Kemudian aplikasi akan menampilkan data dari database, memiliki proses input dari interface ke database, update, dan juga delete data. Kesemua itu akan dibagi kedalam subjudul pembahasan, berikut pembahasannya: 3.1 Koneksi Database Dalam pembuatan aplikasi CRUD menggunakan bahasa java, kita membutuhkan database untuk penyimpanan data. Berikut ini akan dijelaskan langkah-langkah dalam mengkoneksikan netbeans ke database yang membutuhkan beberapa aplikasi tambahan: Pemrograman Berorientasi Objek | Graphical User Interface (GUI) 46

1. Langkah pertama yang harus dilakukan adalah pembuatan koneksi database, database yang digunakan adalah bahasa mysql. Dalam penggunaan bahasa sql kita bisa menggunakan xampp atau aplikasi lainnya yang mendukung database mysql. Anda bisa menginstall aplikasi tersebut terlebih dahulu. Untuk tutorial penginstalan xampp atau aplikasi pendukung database lainnya tidak dijelaskan disini, anda bisa mencari di internet. 2. Kemudian langkah kedua adalah menambahkan library “MySQL JDBC Driver” kedalam folder project kita. Caranya adalah buka netbeans dan klik menu “Windows > Project”, pilih salah satu project lalu klik kanan “Libraries > Add library” dan pilih “MySQL JDBC” Driver kemudian klik create dan add library. Tapi jika anda menggunakan postgreSQL anda bisa pilih juga “PostgreSQL JDBC Driver”. Langkah ini bisa anda lihat di https://www.youtube.com/watch?v=QuyXgi3AFsg Pemrograman Berorientasi Objek | Graphical User Interface (GUI) 47


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook