Anda di halaman 1dari 94

Modul Praktikum

Pemrograman
Berorientasi Objek
Oleh : Kristin Lebdaningrum S.Kom

D3 SISTEM INFORMASI

LABORATORIUM KOMPUTER

UNIVERSITAS DINAMIKA SURABAYA

2020
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Thank You for reading this modul

Laboratorium Komputer Universitas Dinamika


1
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

DAFTAR ISI

DAFTAR ISI ........................................................................................................... 2

BAB I ...................................................................................................................... 4

PENGENALAN OOP ............................................................................................. 4

TUGAS 1 .............................................................................................................. 15

BAB II ................................................................................................................... 16

CONSTRUCTOR ................................................................................................. 16

TUGAS 2 .............................................................................................................. 28

BAB III ................................................................................................................. 30

INHERINTANCE ................................................................................................. 30

TUGAS 3 .............................................................................................................. 38

BAB IV ................................................................................................................. 40

POLYMORPHISM ............................................................................................... 40

TUGAS 4 .............................................................................................................. 47

BAB V................................................................................................................... 48

ABSTRACT CLASS ............................................................................................ 48

TUGAS 5 .............................................................................................................. 54

BAB VI ................................................................................................................. 55

INTERFACE ......................................................................................................... 55

TUGAS 6 .............................................................................................................. 63

BAB VII ................................................................................................................ 65

INPUT / OUTPUT STREAM ............................................................................... 65

TUGAS 7 .............................................................................................................. 71

BAB VIII............................................................................................................... 72

GUI (joptionpane) ................................................................................................. 72

Laboratorium Komputer Universitas Dinamika


2
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

TUGAS 8 .............................................................................................................. 81

BAB IX ................................................................................................................. 82

KOMPONEN SWING .......................................................................................... 82

TUGAS 9 .............................................................................................................. 91

BAB X................................................................................................................... 93

KOMPONEN SWING (lanjutan) ......................................................................... 93

Laboratorium Komputer Universitas Dinamika


3
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

BAB I
PENGENALAN OOP

Waktu Penyampaian : 1 x 170 Menit


Tujuan : Praktikan dapat mempraktikkan pembuatan class, object dan method
pada Bahasa pemrograman java.
Materi :
• Class • Acces Modifier
• Object • Encapsulation
• Method • Atribut
• Intance Of Class

Pada bab 1 ini kita akan mempelajari Object Oriented Programming (OOP)
atau dalam Bahasa Indonesia “Pemrograman Berorientasi Objek”. Sebagai Bahasa
pemrograman yang modern, Bahasa pemrograman java hadir sebagai Bahasa yang
dapat mengimplementasikan OOP dalam perkembangan software / program /
aplikasi. Object Oriented Programming (OOP) sendiri merupakan cara untuk
membungkus sebuah objek yang didalamnya terdapat identitas, sifat, dan
keinginan. Contohnya seperti seorang manusia memiliki identitas dalam bentuk
nama, umur, jenis kelamin, berat badan dan lain sebagainya. Lalu manusia juga
memiliki sifat seperti membaca, menulis, ataupun bermain game dan lainnya.
Pada pengertian aslinya bahwa OOP adalah pemrograman berorientasi
objek dimana dalam objek terdapat atribut dan operasi (method) yang dapat diakses
oleh objek lainnya sesuai dengan kebutuhan bahkan ada juga objek yang hanya
boleh digunakan oleh objek itu sendiri.
Pemrograman Berorientasi Objek (OOP) memiliki beberapa keunggulan
dibandingkan pemrograman procedural:
✓ OOP lebih cepat dan lebih mudah dijalankan.
✓ OOP memberikan struktur yang jelas untuk sebuah program.
✓ OOP membuat kode lebih mudah untuk di maintance, dimodigikasi dan di-
debug.

Laboratorium Komputer Universitas Dinamika


4
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

✓ OOP memungkinkan untuk membuat aplikasi yang dapat digunakan kembali


dengan kode yang lebih singkat dan waktu pembuatan yang lebih cepat.

CLASS
Suatu template / blueprint / rancangan dari objek yang akan dibuat untuk
menggambarkan ciri-ciri objek secara umum. Class dan objek adalah dua aspek
utama dari OOP.
CLASS OBJEK
Buah Nanas
Apel
Jeruk
CLASS OBJEK
Mobil Toyota
Honda
Daihatsu

Pembuatan Class:
• Nama Class → Nama Benda
• Diawali dengan huruf Kapital : Mobil, Buah, Mahasiswa
• Access Modifier 4P : Public, Private, Package, Protected
• Body of class :
▪ Attribute : Variabel, Constanta, Field
▪ Methods

Create Class:
Membuat sebuah class dengan nama “LatihanKu” dengan sebuah variable
bilangan:

Laboratorium Komputer Universitas Dinamika


5
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Ingat untuk sintak java bahwa nama class harus selalu dimulai
dengan HURUF BESAR pertama, dan nama file java harus cocok
dengan nama class

Create Multiple Class:


Kita juga dapat membuat objek class dan mengaksesnya lewat class lain.
Jadi class pertama memiliki semua atribut dan method, sementara class lainnya
memiliki main method untuk mengeksekusi. Ingat untuk nama file java harus sama
/ sesuai dengan nama class. Dalam contoh ini, terdapat dua class di dua file yang
terletak di folder yang sama:
1. LatihanKu.java
2. LatihanMu.java
LatihanKu.java

LatihanMu.java

NOTE: class LatihanKu hanya bisa decompile, tidak bisa di-run,


karena class LatihanKu bukanlah program aplikasi utama (tidak
memiliki main method).

OBJEK
Objek berfungsi untuk membungkus data dan fungsi menjadi suatu unit dalam
sebuah program atau aplikasi. Objek merupakan dasar dari modularitas dan struktur
dalam sebuah pemrograman berorientasi objek. Objek memiliki kesamaan atribut

Laboratorium Komputer Universitas Dinamika


6
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

dan method, objek dapat dikelompokkan menjadi sebuah class. Dan objek-objek
yang dibuat dari suatu class inilah yang disebut dengan instance of class.

Atribut: warna, merk

Method: injak gas, injak rem dll

Objek
Di Java, sebuah objek dibuat dari sebuah class. Kita sebelumnya sudah
membuat class bernama LatihanKu, jadi sekarang kita dapat menggunakan class ini
untuk tempat pembuatan objek. Untuk membuat objek LatihanKu, panggil nama
class, diikuti dengan nama objek baru dan gunakan kata kunci baru.
Create an Object:
Buat sebuah objek baru bernama objekKu dan cetak nilai bilangan:

Create Multiple Object:

ATRIBUT
Atribut merupakan sebuah sifat atau ciri-ciri yang melekat pada sebuah
objek. Pada pengertian sebelumnya, kita menggunakan istilah variable untuk
bilangan dalam contoh sebelumnya. Bilangan ini sebenarnya adalah atribut di

Laboratorium Komputer Universitas Dinamika


7
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

sebuah class. Kita dapat mengatakan bahwa atribut class adalah variable didalam
class.

Create Atribut:
Pada sebuah class yang bernama LatihanKu memiliki 2 atribut: bilangan1
dan bilangan2:

Cara Memanggil Atribut

Kita dapat memanggil atau mengakses sebuah atribut dengan menggunakan


objek class yang sudah dibuat dan dengan menggunakan sintak titik (.). Pada
contoh dibawah ini kita memakai contoh yang sudah dibuat diatas dengan class dan
objek yang sudah dibuat. Dan kita menggunakan atribut bilangan pada objek untuk
mencetak nilainya. Buat sebuah objek yang bernama objekKu dan cetak bilangan:

Cara Mengubah Atribut


Kita dapat mengubah atau memodifikasi nilai atau isi dari sebuah atribut.
Seperti contoh dibawah ini, kita akan mengubah nilai atribut a menjadi 88.

Laboratorium Komputer Universitas Dinamika


8
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Selain mengubah atribut, kita dapat melakukan timpa atribut yang sudah
memiliki nilai sebelumnya. Seperti contoh dibawah, mengubah nilai a yang
memiliki nilai sebelumnya 88 menjadi 55:

Apabila kita membuat objek lebih dari satu didalam satu class, kita dapat
mengubah nilai atribut dalam satu objek tanpa mempengaruhi nilai atrribut di objek
lainnya. Seperti contoh dibawah ini, ubah nilai atribut a menjadi 33 di objekKu2,
dan biarkan nilai di atribut objekKu tidak berubah.

Cara Membuat Multiple Atribut


Di Java kita dapat membuat atribut lebih dari satu atribut di dalam satu class.
Seperti contoh berikut:

Laboratorium Komputer Universitas Dinamika


9
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

METHOD
Method merupakan sekumpulan kode yang hanya berjalan saat kita panggil.
Didalam method terdapat parameter untuk mengirim sebuah data. Method
digunakan untuk melakukan proses tertentu yang disebut juga sebagai fungsi. Jadi
method terdiri dari fungsi-fungsi yang digunakan untuk memanipulasi nilai-nilai
pada atribut untuk melakukan proses-proses yang bisa dilakukan oleh objek.
Dengan method, pekerjaan jadi lebih singkat dan tidak boros menuliskan
banyak kode saat pembuatan program karena method dapat memanggil kumpulan
kode tersebut hanya dengan memanggil nama methodnya. Didalam java memiliki
method berupa static dan public. Method static dapat diakses tanpa membuat objek
class, tetapi kalua public hanya dapat diakses jika kita sudah membuat objek atau
dapat diakses oleh objek. Berikut adalah contoh dari method static dan public.

Akses method dengan objek di beberapa class


1. Handphone.java

2. Utama.java

Laboratorium Komputer Universitas Dinamika


10
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

ACCES MODIFIER
Access Modifier digunakan untuk mengatur hak akses kepada class, atribut,
method dan constructor. Berikut merupakan kemampuan aksesabilitas pada
masing-masing access modifier:

a) Untuk Class, yang digunakan adalah Public atau Default

Access Modifier Keterangan


Public Class dapat diakses oleh class lainnya
Default Class hanya diakses oleh class dalam package yang sama.

b) Untuk Atribut, Method dan Constructor, yang digunakan adalah


salah satu dari berikut:

Access Modifier Keterangan


Public Kode dapat diakses untuk semua class
Private Kode hanya dapat diakses didalam class yang sudah
dideklarasikan
Default Kode hanya dapat diakses dalam package yang sama
Protected Kode dapat diakses dalam package dan subclass yang sama. Kita
akan mempelajari lebih lanjut tentang subclass dan superclass di
bab inherintance

Note: Kode didalam table merupakan sebuah atribut, method maupun constructor.

ENCAPSULATION
Enkapsulasi adalah mekanisme untuk membungkus data (variable) dan
method bersama-sama menjadi satu. Enkapsulasi memastikan bahwa data “sensitif”
disembunyikan dari pengguna. Ketentuan untuk membuat enkapsulasi:
1. Mendeklarasi variable atau atribut class menjadi private
2. Menyediakan method get dan set untuk mengakses dan
memperbarui nilai variable private

Laboratorium Komputer Universitas Dinamika


11
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Get dan Set


Variable private hanya dapat diakses didalam class yang sama (class lain
tidak dapat mengakses untuk variable private). Tetapi, kita dapat mengakses
variable private dengan membuat method setter dan getter.
Method get mengembalikan nilai variable, dan method set menetapkan
nilainya. Sintaks untuk membuat method setter dan getter diawali dengan set dan
get, diikuti dengan nama variable dengan huruf pertama kapital. Seperti contoh
dibawah ini, ada sebuah class Mahasiswa dengan nama file yang sama yaitu
Mahasiswa.java.
Didalam class tersebut berisi deklarasi variable, setter dan getter. Class
memerlukan pendeklarasi variable yang nantinya akan menyimpan data bersifat
sementara. Setelah mendeklarasi variable yang bersifat private, kita membuat setter
untuk masing-masing variable yang sudah kita buat, guna untuk menset nilai yang
akan diinputkan. Dalam pembuatan tipe data variable di Setter harus sesuai atau
sama dengan tipe data pada variable yang sudah dideklarasikan diatas.
Method setter menggunakan proses program berjenis prosedur, dimana data
yang akan kita set tidak mengalami umpan balik didalam program. Pada pembuatan
method setter terdapat keywor this untuk mengacu kepada variable yang sudah
dideklarasikan diluar method setter. Jika variable didalam method setter tidak diberi
keyword this, maka variable tersebut akan mengacu kepada variable yang sudah
dideklarasikan pada parameter methor setter.
Dalam pembuatan method getter sama dengan method setter, yaitu kita
membuat method getter memanggil masing-masing variable yang sudah
dideklarasikan diluar method getter untuk mengambil nilainya. Pembuatan variable
pada parameter di method getter, harus sama dengan tipe data pada variable yang
sudah dideklarasikan sebelumnya.

Laboratorium Komputer Universitas Dinamika


12
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

- Pembuatan Setter

- Pembuatan Getter dan Method Lain

Laboratorium Komputer Universitas Dinamika


13
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

INSTANCE OF CLASS
Instance of class merupakan objek yang dibuat dari class. Jadi instance of
class terletak di class utama (main) yang memiliki sebuah objek untuk memanggil
class lainnya. Seperti contoh dibawah ini ada sebuah main class yang memiliki
nama Utama.java yang akan memanggil class Mahasiswa.java yang sudah kita buat
sebelumnya. Selanjutnya kita membuat class BufferedReader yang terdapat pada
package java.io, untuk mengakses class tersebut kita harus mengimport class
tersebut dengan menaruh kalimat import sebelum java.io, lalu kita tulis
BufferedReader.
Tahap berikutnya kita membuat sebuah inputan dari user yang memiliki
variable untuk tempat menampung inputan tersebut. Setelah ditampung di variable,
maka buat perintah set satu persatu variable yang sudah dibuat untuk diset kedalama
class Mahasiswa.
Tahap terakhir adalah pembuatan proses output dengan menggunakan get,
karena kita sudah membuat proses input. Untuk mengambil data yang sudah
diinputkan, kita hanya memanggil method get().

Laboratorium Komputer Universitas Dinamika


14
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

TUGAS 1

Buatlah sebuah program untuk transaksi pembayaran tiket pesawat dan hotel.
Didalam program ini terdapat 2 class yaitu class Utama.java dan class Tiket.java.
Untuk atributnya bisa dilihat pada gambar. Gambar dibawah ini adalah proses input
data.

Untuk proses outputnya seperti dibawah ini. Didalam proses ini terdapat cara
penghitungan dari total biaya kamar hotel dan harga tiket pesawat.
• Untuk total harga tiket pesawat dihitung dari:
Harga Tiket = (Harga tiket pesawat x jumlah penumpang)
Total = Harga Tiket + (jumlah penumpang x 29.000 (asuransi/penumpang))
• Untuk total biaya kamar hotel dengan diskon 45%
Diskon= 45% x harga kamar hotel
Total Biaya = (harga kamar hotel – diskon) * jumlah kamar

Laboratorium Komputer Universitas Dinamika


15
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

BAB II
CONSTRUCTOR

Waktu Penyampaian : 1 x 170 Menit


Tujuan : Praktikan dapat mempraktikkan pembuatan constructor dan overloading
constructor
Materi:
• Constructor • Constructor Paramater
• Overloading Constructor

CONSTRUCTOR
Constructor di java adalah method khusus yang digunakan untk
menginisialisasi objek. Constructor dipanggil Ketika object class dibuat. Hal ini
dapat digunakan untuk mengatur nilai awal untuk atribut objek.
Ciri-ciri Constructor:
1) Constructor dapat dipanggil oleh constructor lainnya dalam satu class yang
sama
2) Tidak mengembalikkan nilai, jadi tidak ada keyword return (seperti void)
3) Method constructor harus mempunyai nama yang sama dengan nama class
tempat constructor dibuat
4) Satu class dapat memiliki labih dari 1 constructor (overloading constructor)
5) Dapat ditambahkan acces modifier yaitu public, private, protected dan
default
Contoh :

Laboratorium Komputer Universitas Dinamika


16
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Hasil:

Ingat, dan perhatikan jika nama constructor harus sama atau cocok
dengan nama class yang sudah dibuat, dan tidak boleh memiliki tipe atai nilai yang
dikembalikan (seperti penggunaan void). Dan juga bahwa constructor dipanggil
saat kita sudah membuat sebuah objek. Semua class yang sudah kita buat
sesungguhnya telah memiliki constructor secara default. Jadi, jika kita tidak
membuat class constructor sendiri, Java secara otomatis akan membuat constructor
untuk kita. Namun, kita tidak dapat memberikan nilai awal untuk atribut object.
Contoh dengan konsep OOP:
• Mahasiswa.java

• Pert2.java

Hasil:

Laboratorium Komputer Universitas Dinamika


17
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

CONSTRUCTOR PARAMATER
Constructor juga dapat mengambil parameter yang digunakan untuk
menginisialisasi atribut yang sudah kita buat sebelumnya. Contoh berikut, kita
menambahkan parameter namaD, namaB, dan nim ke constructor. Didalam
constructor dibawah ini kita atur namaD ke nmDepan(namaD=nmDepan), namaB
ke nmBlakang(namaB=nmBlakang), dan nim ke nim(nim=nim). Ketika kita
memanggil constructor, kita meneruskan parameter ke constructor
(Kristin,Lebda,123456) yang akan menetapkan nilai namaD menjadi Kristin,
namaB menjadi Lebda, nim menjadi 123456. Di constructor kita dapat memiliki
parameter sebanyak yang kita inginkan.

Contoh Constructor dengan parameter:


• Mahasiswa.java

• Pert2.java

Hasil:

Laboratorium Komputer Universitas Dinamika


18
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

OVERLOADING CONSTRUCTOR
Overloading constructor di java adalah Teknik yang memiliki lebih dari satu
constructor dengan daftar parameter yang berbeda. Source code tersebut diatur
sedemikian rupa sehingga setiap constructor melakukan tugas yang berbeda.
Beberapa constructor tersebut dibedakan oleh kompilator dengan jumlah parameter
dalam daftar dan tipenya. Jadi yang membedakan antara constructor yang satu
dengan yang lainnya merupakan jumlah parameterdan tipe data didalamnya.
Contoh dibawah ini Sebagian diambil dari contoh sebelumnya yang terdapat
atribut nama depan, nama belakang dan nim. Disini ditambahkan constructor baru
dengan tambahan atribut baru serta parameter baru untuk contructor yang baru. Di
constructor yang kedua terdapat aparameter alamat dan umur yang akan tampil di
class Utama(Pert2.java) dengan bantuan objek baru dan disini tidak terdapat access
modifier. Dicontoh juga terdapat method tambahan untuk menampilkan nama
lengkap yang terdiri dari nama depan dan nama belakang.
Contoh Overloading Constructor:
• Mahasiswa.java

• Pert2.java

Laboratorium Komputer Universitas Dinamika


19
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Hasil:

PERBEDAAN CONSTRUCTOR DAN METHOD SETTER


Pada method Setter(), objek dibuat dari sebuah class (instance of class).
Setelah kita membuat object, lalu object tersebut kita beri atribut. Berbeda dengan
constructor, dalam constructor, object yang dibuat dari sebuah class langsung diberi
atribut. Seperti gambar dibawah ini:

SETTER

ATRIBUT:
NIM: 123456
NAMA: Kristin

CLASS OBJEK

CONSTRUCTOR

CLASS OBJEK

ATRIBUT:
NIM: 123456
NAMA: Kristin

Laboratorium Komputer Universitas Dinamika


20
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

CONTOH CONTRUCTOR KOMPLEKS


Didalam contoh ini kita akan membuat menu login yang memiliki
constructor dan method lainnya. Ada dua class, class utama dan class login. Menu
login memiliki sub menu seperti berikut:
1) Login Admin
2) Buat User
3) Ubah Password
4) Lihat Data User
5) Keluar
Pertama kita buat class login yang akan berisi atribut username dan
password. Terdapat 2 constructor login, contructor pertama tidak memiliki
parameter dan memiliki nilai default yaitu username = “admin” dan
password=”123456”. Constructor kedua memiliki parameter untuk set nilai
username dan password berdasarkan inputan user. Class login ini memiliki method
setter dan getter untuk set/merubah dan mengambil nilai dari username dan
password.
Selanjutnya kita membuat class utama yang digunakan untuk memanggil
class login yang sudah kita buat sebelumnya.
1. Login.java
Pada class Login.java ini terdapat 2 constructor, 2 setter dan 2 getter.
Berikut tampilan 2 constructor.

Laboratorium Komputer Universitas Dinamika


21
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Lalu ada 2 setter dan 2 getter seperti gamabr dibawah ini:

2. Utama.java
Pada class Utama.java akan memiliki object, menu, input, proses dan
output. Disini juga terdapat perulangan untuk fungsi menu yang menggunakan
while. Untuk gambar dibawah ini masih terdapat 2 object dan emnu yang memiliki
5 submenu.

Berikutnya terdapat sebuah input untuk memilih salah satu dari submenu yang
sudah dibuat diatas.

Laboratorium Komputer Universitas Dinamika


22
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Tepat dibawah input terdapat 5 submenu yang menggunakan switch case.


Inputan user akan diisi untuk menentukan pilihan yang akan dieksekusi. Maka dari
itu dibutuhkan pengecekan inputan user dengan menu yang dipilih oleh user.
Pengecekan tersebut menggunakan switch…case, karena penggunaannya lebih
mudah dalam pengecekan sub menu.

Laboratorium Komputer Universitas Dinamika


23
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Dapat dilihat diatas terdapat break dalam setiap case, yang bertugas untuk
menghentikan proses pengecekan menu jika salah satu case sudah terpenuhi dan
sudah dieksekusi.

• Case 1
Pada case 1 ini berisi login admin. Dalam proses login kita mengisi
username dan password yang sudah kita buatkan. Jadi saat kita melakukan proses
pada case ini, pasti ada pengecekan untuk mencocokan apakah cocok dengan
username dan password yang sudah kita buat. Jika dalam input username dan
password cocok, maka login berhasil, apabila tidak cocok login akan gagal.

Hasil

Laboratorium Komputer Universitas Dinamika


24
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

• Case 2
Pada Case 2 digunakan untuk membuat User baru. Disini terdapat 2 inputan
dari keyboard yaitu username dan password baru untuk dibuat. Setelah membuat
inputan, kita memanggil object kedua yang sudah kita buat diatas yaitu user2 yang
memanggil class Login dengan 2 parameter username dan password yang akan diisi
dengan inputan keyboard yaitu newUser dan newPass. Jika username dan
password yang baru sudah terbuat, program akan menampilkan pesan USER
BERHASIL DIBUAT.

Hasil

Laboratorium Komputer Universitas Dinamika


25
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

• Case 3
Pada Case 3 merupakan proses untuk mengubah password lama dengan
password baru yang akan dibuat. Sesuai urutan source code yang ada pada gambar
dibawah ini, pertama terdapat inputan password baru dan lama dari inputan
keyboard. Setelah itu ada proses pembuatan password baru sekaligus pengecekan
dari password lama yang telah diinputkan. Jika dalam penginputan password lama
benar, maka proses tersebut akan mengubah password lama ke password baru.
Apabila dalam penginputan password lama terjadi kesalahan maka terdapat pesan
bahwa password lama telash diinputkan dan tidak berhasil mengubah password
lama ke password baru.

Hasil

Laboratorium Komputer Universitas Dinamika


26
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

• Case 4
Pada Case 4 untuk menampilkan data user yang mempunyai username dan
password. Apabila kita melakukan pembuatan user baru yang ada di proses Case 2,
maka nanti yang ditampilkan ada dua user. User 1 adalah user default yang sudah
kita buat sebelumnya dan user kedua adalah user yang baru kita buat pada proses
Case 2.

Hasil

Laboratorium Komputer Universitas Dinamika


27
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

TUGAS 2

Buatlah sebuah program untuk transaksi pembayaran tiket pesawat dan hotel.
Didalam program ini terdapat 2 class yaitu class Utama.java dan class Tiket.java.
Pada program ini, memiliki proses Login. Proses Login ini dibuat didalam
CONSTRUCTOR yang terletak di class Tiket.java. Apabila anda dapat melakukan
proses login dan berhasil, maka akan muncul 3 menu, yaitu
1. Input Data Transaksi
2. Lihat Data Tiket
3. Keluar

1. Input Data Transaksi


Pada menu Input Data Transaksi terdapat inputan data dari keyboard yang
berisi data transaksi tiket.

Laboratorium Komputer Universitas Dinamika


28
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

2. Lihat Data Tiket


Untuk proses menu kedua (Lihat Data Tiket) seperti soal Tugas 1. Didalam
proses ini terdapat cara penghitungan dari total biaya kamar hotel dan harga tiket
pesawat.

3. Keluar
Menu ketiga yaitu proses keluar dari menu

Laboratorium Komputer Universitas Dinamika


29
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

BAB III
INHERINTANCE

Waktu Penyampaian : 1 x 170 Menit


Tujuan : Praktikan dapat mempraktikkan pembuatan perwarisan class inherintance
dengan constructor.
Materi :
• Inherintance • Super Class
• Subclass

Dijava terdapat perwarisan atribut dan method dari satu class ke class
lainnya. Inherintance sangat penting dari OOP, dengan inherintance, informasi
dibuat dapat dikelola dalam urutan hierarki. Saat kita mewarisi dari class yang ada,
kita dapat menggunakan Kembali method dan atribut dari class induk. Selain itu,
kita juga dapat menambahkan method dan atribut di anak class. Disini, konsep
perwarisan dikelompokkan menjadi dua kategori:
• Subclass (child) → Class yang diwarisi dari class lain.
• Superclass (parent) → Class yang mewarisi.
Inherintance menggunakan kata kunci EXTENDS. Pada contoh dibawah ini,
class laptop (subclass) mewarisi atribut dan method dari class elektronik
(superclass). Di contoh ini memiliki 2 class yaitu: Elektronik.java dan Laptop.java.
Untuk gambar dibawah ini merupakan class Elektronik yang merupakan superclass.
Di class elektronik memiliki atribut berupa brand dan satu method yang memiliki
nama spesifikasi(). Pada atribut brand disetting dengan access modifier private.
Karena jika disetting ke private, maka class laptop tidak dapat mengaksesnya.

Laboratorium Komputer Universitas Dinamika


30
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Pada gambar dibawah ini merupakan class laptop yang merupakan anak class
dari superclass Elektronik. Didalam anak class ini terdapat atribut namamodel dan
2 object. Kenapa memiliki 2 object? Karena dalam penampilan dibawah akan
menampilkan 2 atribut dari dua class. Jadi object lap dibuat untuk menampilkan
method spesifikasi() dan atribut brand. Object l dibuat untuk menampilkan atribut
namamodel yang dimiliki oleh class laptop itu sendiri.

MANFAAT PENGGUNAAN INHERINTANCE


Berguna untuk penggunaan kembali code atau dapat menggunakan kembali
atribut dan method class yang sudah ada untuk class lainnya.
Bersifat reusable, dengan menggunakan inherintance, kita cukup
mengambil data atau method pada class induk dan memberikan beberapa
tambahan atribut atau method pada class anaknya apabila diperlukan.
Mudah dalam memodifikasi atribut atau method pada smeua class. Jadi kita
cukup melakukan perubahan atribut atau method pada superclass yang
mewarisi subclass

PENGGUNAAN SUPER
Keyword super berfungsi untuk memanggil method constructor atau
method lainnya yang terletak pada superclassnya. Berikut adalah cara penulisan
super pada subclass untuk memanggil constructor pada superclass.
Super() ATAU super(parameter)
Sedangkan cara penulisan super pada subclass untuk memanggil method pada
superclass adalah sebagai berikut:

Laboratorium Komputer Universitas Dinamika


31
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Super.namaMethod() ATAU super.namaMethod(parameter)


Untuk contoh penggunaan keyword super akan dijelaskan pada contoh dibawah
ini.
CONTOH PENGGUNAAN SUPER
Pada contoh ini kita akan membuat program menu untuk mengimputkan
data elektronik rice cooker. Di program ini akan menggunakan konsep inherintance
yaitu dari superclass elektronik memiliki subclass rice cooker. Jadi disini, rice
cooker merupakan anak class dari superclass. Seperti pada gambar design UML
dibawah ini.

Berdasarkan pada gambar diatas, terdapat elektronik class, rice cooker class
dan pastinya ada main class juga. Design UML berfungsi untuk membantu logika
kita untuk pembuatan program. Kita dapat melihat didalam class terdapat tanda (-)
dan (+). Tanda (-) diartikan sebagai private dan tanda (+) diartikan sebagai public.
Terdapat juga anak panah ke atas yang menandakan class rice cooker extends ke
class elektronik yang menggunakan konsep inherintance, dimana class rice cooker
merupakan turunan dari class elektronik. Sehingga atribut brand, warna dan berat
yang dimiliki class elektronik tidak perlu dideklarasikan ulan di class rice cooker.
Class elektronik (Elektronik.java) memiliki beberapa private atribut yang
sudah digambarkan diatas. Pada class ini juga terdapat beberapa method yaitu:

Laboratorium Komputer Universitas Dinamika


32
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

• Method constructor pertama yang tidak memiliki parameter dan tidak ada
isinya(kosong)
• Method constructor kedua memiliki parameter untuk mengeset
brand,warna, dan berat berdasarkan inputan user. Disini kita menggunakan
keyword this untuk memanggil atribut yang sudah dideklarasikan
sebelumnya diatas apabila nama atribut dan nama parameter yang ada di
constructor sama.
• Method setter untuk mengeset nilai dari atribut yang akan diinputkan oleh
user.
• Method getter untuk mengambil nilai dari atribut yang sudah diset dan
diinputkan oleh user.

Class rice cooker (Rice_Cooker.java) memiliki beberapa private atribut


yang sudah digambarkan diatas dan menggunakan keyword extends. Pada class ini
juga terdapat beberapa method yaitu:

Laboratorium Komputer Universitas Dinamika


33
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

• Constructor pertama memiliki parameter untuk mengeset nilai brand, warna


dan berat berdasarkan inputan user. Data parameter brand, warna, dan berat
diambil dari constructor kedua pada constructor elektronik. Dalam
pemanggilan parameter tersebut menggunakan keyword super, karena
disini kita memanggil parameter yang dimiliki oleh superclass.
• Constructor kedua memiliki parameter untuk mengeset nilai dari atribut
superclass elektronik dan atribut subclass rice cooker. Atribut tersebut
terdiri dari brand, warna, berat, kapasitas_menanak, dan aksesoris. Pada
pemanggilan tersebut menggunakan keyword super yang memanggil setter
pada superclass elektronik.
• Method setter untuk mengeset nilai atribut yang dimiliki oleh subclass rice
cooker yaitu kapasitas_menanak dan aksesoris dari inputan user.
• Method getter untuk mengambil nilai dari atribut brand, warna, dan berat
pada superclass elektronik. Method getter ini juga untuk mengambil nilai
dari atribut subclass rice cooker yaitu kapasitas_menanak dan aksesoris.

Laboratorium Komputer Universitas Dinamika


34
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Class Utama (Utama.java) berfungsi untuk menjalankan program menu


kita. Didalam pembuatan main class ini kita menggunakan Buffered Reader yang
berada pada package java.io* yang digunakan untuk meneriman inputan user.
Setelah membuat main class, kita membuat sebuah object didalamnya yang
memiliki nama object rice. Dimana object ini memanggil constructor kedua dari
subclass rice cooker. Didalam object ini kita belum mengetahui nilai-nilainya,
maka dari itu kita memberikan nilai awal berupa tanda “” untuk tipe data String
dan 0.0 untuk tipe data double.

Setelah pembuatan object, kita akan membuat menu yang berisi inputan,
proses dan output. Dalam pembuatan menu pasti kita akan menggunakan
perulangan. Didalam menu ini terdapat pilihan menu input data, lihat data dan
keluar.

Laboratorium Komputer Universitas Dinamika


35
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Lalu kita mebuat switch case untuk pembuatan proses menu 1 sampai 3.
Seperti pada gambar dibawah ini. Switch case ini diletakkan didalam while yang
sudah dibuat sebelumnya.

Hasil :
❖ MENU

❖ MENU PILIHAN 1

Laboratorium Komputer Universitas Dinamika


36
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

❖ MENU PILIHAN 2 DAN 3

Laboratorium Komputer Universitas Dinamika


37
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

TUGAS 3

Perhatikan design UML pada gambar dibawah ini

Sebelumnya pada contoh diatas, kalian sudah membuat subclass rice cooker
dan superclass elektronik. Pada tugas 3 ini kalian hanya menambahkan subclass
baru lagi yaitu headphone wireless yang merupakan anak dari superclass elektronik.
Tidak hanya subclass headphone saja yang baru, ada penambahan atribut, method
juga pada class sebelumnya yaitu di class rice cooker dan elektronik. Jangan lupa
juga terdapat class utama yang akan menampilkan program menu. Didalam memnu
juga terdapat pilihan menu baru juga.

MENU

Laboratorium Komputer Universitas Dinamika


38
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

MENU PILIHAN 1

MENU PILIHAN 2

MENU PILIHAN 3

Laboratorium Komputer Universitas Dinamika


39
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

BAB IV
POLYMORPHISM

Waktu Penyampaian: 1 x 170 Menit


Tujuan: Praktikan dapat mempraktikkan pembuatan perwarisan class
polymorphism dan overriding method didalam konsep OOP
Materi:
• Polymorphism • Ketentuan Penggunaan Polymorphism
• Overring Method

Di Java, polymorphism berarti “banyak bentuk/forms” yang terjadi ketika


kita memiliki banyak class terkait satu sama lain melalui konsep inherintance.
Seperti pada bab sebelumnya yaitu inherintace, yang memungkinkan kita mewarisi
atribut dan method dari class lain. Polymorphism menggunakan method tersebut
untuk melakukan tugas yang berbeda. Ini memungkinkan kita untuk melakukan
suatu tindakan dengan cara yang berbeda.
Polymorphism merupakan konsep penting dari OOP. Karena polymorphism
lebih dari satu bentuk/form. Artinya, entitas yang sama (method atau operator atau
object) berperilaku berbeda dalam scenario berbeda.
Sebagai contoh, operator + di Java digunakan untuk melakukan dua fungsi
tertentu. Ketika digunakan dengan angka (integer dan angka float dan double) itu
digunakan untuk fungsi penambahan.

Dan ketika kita menggunakan operator + dengan String, maka operator


tersebut melakukan penggabungan String, seperti contoh berikut:

Laboratorium Komputer Universitas Dinamika


40
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Terdapat contoh lain misalnya terdapat superclass manusia yang memiliki


method aktivitas(). Subclass manusia dapat berupa Mahasiswa, Dosen, dan
programmer. Mereka juga memiliki penerapan aktivitas mereka sendiri(aktivitas
belajar, aktivitas mengajar, dan aktivitas membuat program). Ingat dari bab
sebelumnya yaitu inherintance bahwa kita menggunakan keyword EXTENDS
untuk mewarisi dari superclass. Sekarang di contoh kita bisa membuat object
mahasiswa, dosen dan programmer untuk memanggil method aktivitas() pada
ketiganya.
Manusia.java (Superclass)

Dosen.java (Subclass)

Mahasiswa.java (Subclass)

Programmer.java (Subclass)

Laboratorium Komputer Universitas Dinamika


41
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Utama.java (Main class)

Polymorphism berguna untuk penggunaan kembali kode yaitu penggunaan


kembali atribut dan method class yang ada saat kita membuat class baru.

KETENTUAN PENGGUNAAN POLYMORPHISM


Didalam penggunaan polymorphism, ada 2 ketentuan yang harus dipenuhi yaitu:
Nama method yang digunakan pada superclass harus ditulis ulang (overring
method) pada subclass, dengan ketentuan nama dan tipe data method harus
sama
Method dari subclass yang akan dieksekusi, dipanggil oleh object dari
superclass

OVERRIDING METHOD
Overriding method adalah method yang mendefinisikan kembali method
superclass dalam subclass. Dalam pembuatan overriding method nama dan tipe data
method harus sama dengan superclass guna pembuatan polymorphism.
Aturan untuk Overriding Method
✓ Ketentuan untuk method yaitu nama method, daftar parameter, dan jenis
pengembalian harus sama persis
✓ Method yang diganti dapat memperluas aksesbilitas tetapi tidak
mempersempitnya, yaitu jika privat di superclass, subclass dapat membuat
menjadi public tetapi tidak sebaliknya.

Laboratorium Komputer Universitas Dinamika


42
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Untuk lebih jelasnya overriding method dapat kita lihat dari contoh berikut.

CONTOH OVERRIDING METHOD


Pada contoh ini kita akan membuat program perhitungan berat badan idela
untuk Laki-laki dan perempuan. Di program ini akan menggunakan konsep
polymorphism overriding method yaitu dari superclass Manusia memiliki subclass
laki-laki dan perempuan yang memiliki method sama. Jadi disini, laki-laki dan
perempuan merupakan anak class dari superclass. Seperti pada gambar design UML
dibawah ini.

Berdasarkan pada gambar diatas, terdapat manusia class, laki-laki class,


perempuan class dan pastinya ada main class juga. Design UML berfungsi untuk
membantu logika kita untuk pembuatan program. Kita dapat melihat didalam class
terdapat tanda (-) dan (+). Tanda (-) diartikan sebagai private dan tanda (+)
diartikan sebagai public. Terdapat juga anak panah ke atas yang menandakan class
laki-laki dan perempuan extends ke class manusia yang menggunakan konsep
inherintance dan polymorphism, dimana class laki-laki dan perempuan
merupakan turunan dari class manusia yang memiliki method yang sama. Sehingga
class laki-laki dan perempuan memiliki method yang sama dari manusia yaitu
method HtgBB(), method ini berfungsi untuk perhitungan berat badan laki-laki dan
perempuan. Dan TB merupakan tinggi badan.

Laboratorium Komputer Universitas Dinamika


43
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Rumus untuk hitung berat badan ideal sebagai berikut:


▪ Laki-laki = (tinggi badan(cm)-100)kg x 90%
▪ Perempuan = (tinggi badan(cm)-100)kg x 80%
Class Manusia(Manusia.java) memiliki private atribut tinggi badan
seperti yang digambarkan diatas. Di class manusia ini terdapat beberapa method
yaitu:
▪ Method Constructor Manusia yang memiliki parameter untuk mengeset
tinggi badan.
▪ Method Getter untuk mengambil nilai dari atribut yang diinputkan oleh user.
▪ Method biasa dengan nama HtgBB(), method ini digunakan untuk
menampung perhitungan yang akan dilakukan oleh subclassnya. Jadi disini
belum terdapat rumus(hanya mendeklarasikan saja) dan meminta nilai
balik(return) maka diberikan nilai default 0.0.

Class Laki (Laki.java) terdapat penggunaan extends yang menunjukkan


bahwa laki-laki merupakan turunan dari class manusia. Pada constructor laki,
memiliki keyword super. Keyword tersebut berfungsi untuk memanggil constructor
manusia (sesuai parameter) yang merupakan superclass. Di class ini juga terdapat
method biasa yaitu method HtgBB() yang digunakan untuk pendeklarasian
kembali(overriding method) sesusai dengan superclassnya, dimana method
HtgBB() diberi rumus untuk menghitung berat badan ideal laki-laki.

Laboratorium Komputer Universitas Dinamika


44
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Class Perempuan (Perempuan.java) terdapat penggunaan extends yang


menunjukkan bahwa perempuan merupakan turunan dari class manusia. Pada
constructor perempuan, memiliki keyword super. Keyword tersebut berfungsi
untuk memanggil constructor manusia (sesuai parameter) yang merupakan
superclass. Sama dengan clas laki, class perempuan ini jjuga memiliki method
HtgBB() yang sama dan memiliki fungsi yang yaitu untuk menghitung berat badan
ideal perempuan.

Class Utama (Utama.java) berfungsi untuk menjalankan program menu


kita. Didalam pembuatan main class ini kita membuat sebuah object yang bertipe
superclass, yaitu manusia, karena kita menggunakan konsep polymorphism. Karena
superclass manusia memiliki 2 subclass, maka object yang kita buat berbentuk
array-of-class. Jadi memerlukan Panjang elemen array untuk menampung data dari
class laki-laki maupun class perempuan.
Pada contoh ini terdapat panjang elemen array yang diberi nilai 2 bukan
berasal dari 2 class tetapi inputan yang ingin dilakukan adalah sebanyak 2 kali.
Setelah membuat object, disini kita mendeklarasikan atribut atau variable
untuk menghitung index array pada object mns dan terdapat juga perulangan dalam
mengisi inputan user dan terdapat juga proses increment untuk menambah isi +1

Laboratorium Komputer Universitas Dinamika


45
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

pda variable a. Didalam perulangan ini terdapat inputan user yang juga terdapat
pengecekan inputan user yang menggunakan method equals(). Terdapat juga
toUpperCase yang berfungsi untuk mengconvert semua inputan user menjadi
huruf besar semua.

Hasil:

Laboratorium Komputer Universitas Dinamika


46
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

TUGAS 4

Perhatikan gambar dibawah ini :

Buatlah class untuk menghitung luas permukaan balok dan keliling balok
sesuai dengan rancangan gambar di atas. Rumusnya adalah :
• Luas Permukaan Balok = 2(pxl)+2(pxt)+2(lxt)
• Keliling Balok = 4(p+l+t)

Tambahkan pula class utama yang digunakan untuk memanggil class rumus
balok. Ketika class utama dijalankan, hasilnya akan tampak seperti dibawah ini :

Sebuah Inputan

Sebuah Output

Sebuah Inputan

Sebuah Output

Laboratorium Komputer Universitas Dinamika


47
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

BAB V
ABSTRACT CLASS

Waktu Penyampaian : 1 x 170 Menit


Tujuan : Praktikan dapat mempraktikkan konsep abstract class, abstract method
dan keyword final didalam OOP
Materi :
• Abstract Class • Abstract Method
• Final

Abstract data merupakan proses menyembunyikan detail tertentu dan hanya


menampilkan informasi penting kepada pengguna. Abstract dapat dicapai dengan
abstract class atau interface. Kata kunci abstract adalah pengubah nonakses,
digunakan untuk class dan method:
Abstract Class → adalah class terbatas yang tidak dapat digunakan untuk membuat
object (untuk mengaksesnya, harus diturunkan dari class lain).
Abstract Method → Method ini hanya dapat digunakan dalam class abstract, dan
tidak memiliki isi. Jadi kerangka atau tubuhnya disediakan oleh subclass.
Jadi abstract class merupakan class yang berada pada posisi tertinggi dalam
sebuah hierarki class. Sesuai dengan Namanya, abstract class dapat didefinisikan
pada class itu sendiri. Untuk mengakses abstract class, itu harus diwarisi dari class
lain. Mari kita ubah class Manusia yang kita gunakan di bab polymorphism menjadi
abstract class. Ingat dari bab inherintance bahwa kita menggunakan kata kunci
extends untuk mewarisi dari superclass.

Manusia.java

Laboratorium Komputer Universitas Dinamika


48
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Dosen.java

Utama.java

Hasil:

Kenapa dan Kapan kita membuat abstract class dan abstract method ?
Untuk mencapai keamanan – Ketika kita menyembunyikan detail tertentu dan
hanya menampilkan detail penting dari suatu object.
Abstract juga dapat dibuat dengan interface, yang akan kita pelajari bab
selanjutnya

Laboratorium Komputer Universitas Dinamika


49
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

CATATAN
Jika didalam abstract class memiliki Didalam abstract class tidak diharuskan
abstract method serta class tersebut memiliki abstract method, karena
memiliki subclass, maka abstract bersifat optional. Tetapi jika di sebuah
method tersebut harus dideklarasikan class memiliki abstract method, maka
ulang(overriding method) di class tersebut harus berbentuk abstract
subclassnya dengan memberi class.
statement didalam methodnya.

KEYWORD FINAL
Keyword final ini digunakan untuk mencegah suatu class diturunkan atau
untuk pendeklarasian ulang(overriding method) pada suatu method. Penggunaan
keyword final dapat dilihat pada contoh dibawah ini.

CONTOH ABSTRACT CLASS


Pada contoh ini kita akan menggunakan contoh yang sudah dibuat pada bab
sebelumnya yaitu membuat program perhitungan berat badan idela untuk Laki-laki
dan perempuan. Di program ini akan menggunakan konsep abastract class dengan
superclass Manusia memiliki subclass laki-laki dan perempuan yang memiliki
method sama. Jadi disini, laki-laki dan perempuan merupakan anak class dari
superclass. Seperti pada gambar design UML dibawah ini (perhatikan baik-baik
design UML), karena terdapat perbedaan.

Laboratorium Komputer Universitas Dinamika


50
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Class laki-laki dan perempuan merupakan turunan dari class manusia yang
memiliki method yang sama. Sehingga class laki-laki dan perempuan memiliki
method yang sama dari manusia yaitu method HtgBB(), method ini berfungsi untuk
perhitungan berat badan laki-laki dan perempuan. Dan TB merupakan tinggi badan.
Rumus untuk hitung berat badan ideal sebagai berikut:
▪ Laki-laki = (tinggi badan(cm)-100)kg x 90%
▪ Perempuan = (tinggi badan(cm)-100)kg x 80%
Abstract Class Manusia (Manusia.java) memiliki private atribut tinggi
badan seperti yang digambarkan diatas. Di class manusia ini terdapat beberapa
method yaitu:
▪ Method Constructor Manusia yang memiliki parameter untuk mengeset
tinggi badan.
▪ Method Getter untuk mengambil nilai dari atribut yang diinputkan oleh user.
▪ Method HtgBB() termasuk abstract method. Jadi disini belum terdapat isi dari
method.

Class Laki (Laki.java) terdapat penggunaan extends yang menunjukkan


bahwa laki-laki merupakan turunan dari class manusia. Pada constructor laki,
memiliki keyword super. Keyword tersebut berfungsi untuk memanggil constructor
manusia (sesuai parameter) yang merupakan superclass. Di class ini juga terdapat
method biasa yaitu method HtgBB() yang digunakan untuk pendeklarasian
kembali(overriding method) sesusai dengan superclassnya, dimana method
HtgBB() diberi rumus untuk menghitung berat badan ideal laki-laki.

Laboratorium Komputer Universitas Dinamika


51
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Class Perempuan (Perempuan.java) terdapat penggunaan extends yang


menunjukkan bahwa perempuan merupakan turunan dari class manusia. Pada
constructor perempuan, memiliki keyword super. Keyword tersebut berfungsi
untuk memanggil constructor manusia (sesuai parameter) yang merupakan
superclass. Berbeda dengan class laki-laki, class perempuan menggunakan
keyword final yang etrletak sebelum class dan nama class, untuk pencegahan
pembuatan class baru lagi dari class turunan perempuan. Sedangkan keyword final
yang terletak pada method HtgBB() berfungsi untuk tidak lagi pendeklarasian ulang
pada class turunannya.

Class Utama (Utama.java) berfungsi untuk menjalankan program menu


kita. Pada class ini masih sama dengan code yang dimiliki oleh contoh
polymorphism. Untuk tambahan saja, di abstract class pembuatan object pada main
class tidak diharuskan menggunakan array of class(konsep polymorphism). Kita
bisa juga membuat object berdasarkan class turunannya.

Laboratorium Komputer Universitas Dinamika


52
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Hasil:

Laboratorium Komputer Universitas Dinamika


53
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

TUGAS 5

Untuk Tugas 5, Ubahlah Tugas 4 Menjadi Abstract Class Dengan Design


UML Seperti Berikut.

Laboratorium Komputer Universitas Dinamika


54
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

BAB VI
INTERFACE

Waktu Penyampaian : 1 x 170 Menit


Tujuan : Praktikan dapat mempraktikkan konsep interface dan penerapan interface
didalam OOP
Materi :
• Interface • Implementasi Interface
• Multiple Interface

Cara lain untuk mencapai abstract class dijava adalah dengan interface.
Interface merupakan “abstract class” sepenuhnya yang digunakan untuk
mengelompokkan method terkait dengan isi kosong. Untuk mengakses method
interface, interface harus “diimplementasikan” (seperti diwariskan) oleh class lain
dengan kata kunci implements bukan extends lagi. Isi dari method interface
disediakan oleh class implements. Jadi interface adalah tipe referensi di java yang
mirip dengan class yang merupakan kumpulan dari method abstract. Sebuah class
mengimplementasikan sebuah interface, sehingga mewarisi method abstract dari
interface.
Bersama dengan method abstract, interface juga dapat berisi konstanta,
method default, method static, dan tipe bertingkat. Menulis interface mirip dengan
menulis class. Tetapi sebuah class mendeskripsikan atribut dan perilaku suatu
object. Sedangkan interface berisi perilaku yang diterapkan class. Kecuali jika class
yang mengimplementasikan abstract interface, semua method interface perlu
didefinisikan di class.
Interface akan sama dengan sebuah class jika mempunyai cara seperti berikut:
✓ Sebuah interface dapat berisi beberapa method.
✓ Sebuah interface ditulis didalam file dengan ekstensi .java, dengan nama
interface yang sama dengan nama file.
✓ Kode byte dari sebuah interface muncul dalam file .class.

Laboratorium Komputer Universitas Dinamika


55
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

✓ Sebuah interface terdapat pada sebuah package, dan file bytecode yang
sesuai harus berada dalam struktur direktori yang sesuai dengan nama
package.
Namun, sebuah interface berbeda dengan sebuah class apabila:
✓ Kita tidak dapat membuat contoh interface.
✓ Sebuah interface tidak berisi constructor apapun.
✓ Satu-satunya fields yang dapat muncul di sebuah interface harus dinyatakan
sebagai static dan final.
✓ Interface diimplementasikan oleh class.
✓ Interface dapat memperluas banyak interface.

HUBUNGAN ANTARA CLASS DAN INTERFACE


Seperti yang ditunjukkan pada gambar dibawah ini, class dapat memperluas
(extends) class lainnya, interface dapat memperluas (extends) interface lainnya,
tetapi class mengimplementasikan interface. (Interface in Java, 2020)

BEBERAPA PEWARISAN DI JAVA BERDASARKAN

INTERFACE
Apabila sebuah class mengimplementasikan banyak interface, atau sebuah
interface memperluas beberapa interface yang dikenal dengan multiple
inherintance.

Laboratorium Komputer Universitas Dinamika


56
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

CONTOH INTERFACE SEDERHANA


Contoh sederhana disini seperti contoh yang ada bab sebelumnya yaitu bab
abstract. Kita akan membuat sebuah contoh manusia(Manusia.java) sebagai
interface pertama dan diimplementasikan ke class Dosen (Dosen.java), yang
tentunya akan ditampilkan di main class (Utama.java).

Manusia.java

Dosen.java

Utama.java

Hasil:

Laboratorium Komputer Universitas Dinamika


57
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

MULTIPLE INTERFACE
Untuk menerapkan banyak interface, kita dapat memanggilnya dengan
dipisahkan oleh koma. Didalam contoh ini akan menampilkan output yang sama
dengan contoh sebelumnya tetapi output tersebut diambil dari 2 interface yang
berbeda dan dipanggil oleh 1 class dengan menggunakan implements dan
dipisahkan oleh koma. Contoh dapat dilihat dibawah ini:
Manusia.java (INTERFACE)

Pekerjaan.java (INTERFACE)

Dosen.java (CLASS)

Laboratorium Komputer Universitas Dinamika


58
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Utama.java

Hasil:

CATATAN INTERFACE

▪ Seperti abstract class, interface tidak dapat digunakan untuk


membuat object (pada contoh diatas tidak menggunakan object
Manusia di main class)

▪ Method di didalam interface tidak memiliki isi/body, isi tersebut


akan disediakan oleh class implements nya

▪ Ketika mengimplementasikan sebuah interface, kita harus


mengganti semua methodnya

▪ Method interface secara default sebuah abstract dan public

▪ Atribut di interface secara default adalah public, static dan final

▪ Sebuah interface tidak dapat berisi sebuah constructor(karena


sebuah interface tidak dapat digunakan untuk membuat object)

Kenapa dan Kapan kita menggunakan INTERFACE


1) Untuk mencapai keamanan – menyembunyikan detail tertentu dan hanya
menampilkan detail penting dari suatu object(interface)

Laboratorium Komputer Universitas Dinamika


59
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

2) Java tidak mendukung multiple inherintance (class hanya dapat mewarisi


dari satu superclass). Jadi hal tersebut dilakukan oleh interface, karena class
dapat mengimplementasikan banyak interface. Untuk
mengimplementasikan banyak interface, pisahkan dengan koma seperti
contoh diatas.

CONTOH INTERFACE KALKULATOR


Kita akan membuat contoh interface berupa kalkulator sederhana yang memiliki
design UML seperti berikut:

Didalam contoh ini terdapat satu interface yaitu interface operasi, satu class
kalkulator yang akan mengimplementasikan interface operasi. Tidak lupa terdapat
juga main class yang akan memanggil class kalkulator dengan membuat object.
Interface Opersi(Operasi.java) memiliki 4 method kosong didalamanya.
Terdapat 2 method void dan 2 method non void.

Laboratorium Komputer Universitas Dinamika


60
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Class Kalkulator(Kalkulator.java) merupakan hasil implementasi dari


interface operasi. Untuk menghubungkan antara class kakulator dengan interface
operasi dengan menggunakan keyword implements. Didalam class kalkulator
terdapat 2 atribut, 2 constructor, 2 getter dan 4 method pengimplementasian dari
interface operasi. Jadi didalam class kalkulator terdapat method yang sudah dibuat
di interface operasi yaitu method void Penjumlahan(), void Pengurangan(), Double
Perkalian(), dan Double Pembagian(). Empat method tersebut diisi didalam class
kalkulator.

Laboratorium Komputer Universitas Dinamika


61
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Main class(Utama.java) berfungsi untuk menampilkan sebuah program


yang sudah dibuat. Disini terdapat object yang memanggil class kalkulator, karena
interface tidak berlaku untuk object. Setelah membuat sebuah inputan, inputan
tersebut ditampung didalam object yang sudah dibuat, yang akan terkoneksi ke
class kalkulator dan akan menampilkan sebuah output sesuai dengan yang sudah
diinput.

Hasil:

Laboratorium Komputer Universitas Dinamika


62
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

TUGAS 6

Perhatikan gambar UML dibawah ini :

Buatlah 2 interface untuk menampung method-method yang dimiliki oleh bangun


datar dan bangun ruang. Setelah membuat interface, buatlah sebuah class untuk
mengimplementasikan 2 interface tersebut. Untuk rumus dari masing-masing
method ada dibawah ini:
• Volume Kerucut : 1/3 x π x r x r x t
• Volume Bola : 4/3 x π x r x r x r
• Volume Tabung : π x r x r x t
• Luas Lingkaran : π x r x r
• Luas Segitiga : 1/2 x a x t

Dan berikut untuk tampilan-tampilannya:


MENU

Laboratorium Komputer Universitas Dinamika


63
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

PILIHAN 1

PILIHAN 2

Laboratorium Komputer Universitas Dinamika


64
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

BAB VII
INPUT / OUTPUT STREAM

Waktu Penyampaian : 1 x 170 Menit


Tujuan : Praktikan dapat mempraktikkan konsep input dan output stream didalam
bahasa pemrograman java
Materi :
• Input Stream • Output Stream

Java melakukan input / output melalui Streams. Stream dihubungkan ke


layer fisik oleh sistem input/output java untuk membuat operasi input dan output di
java. Secara umum, aliran berarti aliran data yang terus menerus. Package java.io
berisi hampir setiap class yang mungkin kita perlukan untuk melakukan input dan
output di java. Streams dalam package java.io mendukung banyak data seperti
object, lokal karakter dll. Aliran dapat didefinisikan sebagai urutan data. Ada dua
jenis streams:

OUTPUT STREAM
OutputStream digunakan untuk menulis data ketujuan. Aplikasi java
menggunakan outputStream untuk menulis data ketujuan: itu bisa berupa file, array,
perangkat peripheral atau soket. Jenis class outputStream adalah abstract class,
yang class tersebut tidak dapat digunakan secara langsung pada class utama,
melainkan harus diturunkan terlebih dahulu ke subclassnya.

Laboratorium Komputer Universitas Dinamika


65
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Untuk menggunakan fungsionalitas OutputStream, kita dapat menggunakan


subclassnya, beberapa diantaranya:

• FileOutputStream • ByteArrayOutputStream
• FilterOutputStream • PipedOutputStream
• ObjectOutputStream

Hirarki OutputStream

FileOutputStream digunakan untuk membuat file dan menulis data


kedalamnya. Stream akan membuat file, jika belum ada, sebelum membukanya
untuk ouput. Berikut adalah dua constructor yang dapat digunakan untuk membuat
object FileOutputStream. Constructor berikut mengambil object file untuk
membuat object stream output untuk menulis file. Pertama, kita membuat object
file menggunakan method File() sebagai berikut:

Berikut contoh dari penggunanaan FileOutputStream dan


DataOutputStream yang akan disimpan pada file .txt. Didalam contoh tersebut, kita
menggunakan write untuk menyimpan data yang telah kita input. Untuk
menampung type data String menggunakan writeUTF(nama_variable), type data
Integer menggunakan writeInt(nama_variable) dan type data Double
menggunakan writeDouble(nama_variable). Untuk membuat file Baju.txt, kita
menggunakan class FileOutputStream. Setelah membuat file Baju.txt, kita

Laboratorium Komputer Universitas Dinamika


66
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

memberikan fungsi pada file tersebut dalam menulis sebuah data ke dalam file
menggunakan DataOutputstream. Setelah selesai, kita melakukan proses close
dengan code nama DataOutputstream.Close().

Tampilan:

Tempat File:

Laboratorium Komputer Universitas Dinamika


67
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

INPUT STREAM
InputStream digunakan untuk membaca data dari sumber. Aplikasi java
menggunakan inputstream untuk membaca data dari sumber, itu bisa berupa file,
array, perangkat peripheral atau soket. Jenis class InputStream adalah abstract class,
yang class tersebut tidak dapat digunakan secara langsung pada class utama,
melainkan harus diturunkan terlebih dahulu ke subclassnya.
Untuk menggunakan fungsionalitas InputStream, kita dapat menggunakan
subclassnya, beberapa diantaranya:
• FileInputStream • ByteArrayInputStream
• FilterInputStream • PipedInputStream
• ObjectInputStream

Hirarki InputStream

FileInputStream digunakan untuk membaca data dari file yang sudah ada.
Object dapat dibuat dengan menggunakan kata kunci new dan ada beberapa jenis
constructor yang tersedia. Berikut contoh dari penggunanaan FileInputStream dan
DataInputStream yang akan mengambil data pada file .txt.

Laboratorium Komputer Universitas Dinamika


68
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Hasil:

CONTOH DENGAN KALKULATOR


Pada bab sebelumnya kita sudah membuat contoh kalkulator dengan
interface. Pada package / project kalkulator tersebut, kita tambahkan 1 main class
yang akan menggunakan proses input/output Stream. Dan didalam class tersebut
kita akan memberikan perintah output stream sekaligus input stream dalam 1 class.
Disini kita akan menampung data pada file “Kalkulator.txt”.

Pada gambar diatas terdapat main class yang sudah melakukan proses
Output Stream. Didalam class tersebut kita membuat file kalkulator.txt terlebih
dahulu dengan menggunakan FileOutputStream dan DataOuputStream. Setelah
membuat file, kita membuat sebuah inputan yang akan diproses dan disimpan
dengan fungsi writeDouble. Lalu kita melakukan penutupan dengan fungsi .close.
Selanjutnya kita mengambil data dari file kalkulator.txt dengan
FileInputStream dan DataInputStream. Untuk menampilkan hasil outputnya kita

Laboratorium Komputer Universitas Dinamika


69
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

menggunakan .readDouble. Source code yang ada pada gambar dibawah ini
diletakkan tepat dibawah source code yang ada pada gambar diatas.

Laboratorium Komputer Universitas Dinamika


70
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

TUGAS 7

Untuk Tugas 7, Tambahkan 1 Main Class pada Tugas 6 yang akan


menampung data dan menampilkan data dengan menggunakan Input dan
Output Stream.

Laboratorium Komputer Universitas Dinamika


71
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

BAB VIII
GUI (JOPTIONPANE)

Waktu Penyampaian : 1 x 170 Menit


Tujuan : Praktikan dapat mempraktikkan konsep GUI didalam JOptionPane
dengan menggunakan OOP.
Materi :
• GUI • JOptionPane

GUI(Graphical User Interface) di Java merupakan pemrograman yang


memberikan pengalaman visual dengan mudah digunakan untuk membangun
sebuah aplikasi dengan bahasa pemrograman java. Hal tersebut terbuat dari
komponen grafis seperti buttons, labels, windows dll, untuk membuat pengguna
dapat berinteraksi dengan aplikasi. Beberapa class yang terlibat dengan GUI
tersebar di package java.awt yang relative lebih lama dan package javax.swing yang
lebih baru. Secara umum apabila nama class dimulai dengan huruf “J”, maka itu
terdapat dalam package javax.swing(SWING). Karena beberapa fungsionalitas
tampaknya diduplikasi dalam package Swing, seperti frame dan buttons, maka kita
selalu menggunakan komponen Swing daripada komponen AWT yang lebih lama
jika kita dapat memilih.
• Java.awt → Berisi superclass utama untuk komponen GUI ditambah
sejumlah class utilitas, seperti color dan point.
• Javax.swing → Berisi sebagaian besar komponen GUI yang digunakan
seperti buttons, text fields, dan panels.
Class lain yang terdapat pada library javax.swing, yang berguna untuk menerima
inputan pengguna/user dan menampilkan hasil adalah class JOptionPane. Class
JOptionPane adalah komponen yang menyediakan standar method untuk
memunculkan kotak dialog standar untuk memberi tahu user/pengguna tentang
sesuatu. Kotak dialog satandar yang dibuat oleh JOptionPane seperti kotak dialog
pesan, kotak dialog konfirmasi, dan kotak dialog inputan. Class JOptionPane

Laboratorium Komputer Universitas Dinamika


72
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

mewarisi class JComponent. Yang perlu kita ketahui dalam mengakses class
JOptionPane, kita harus mengimport javax.swing.

GENERAL METHOD CLASS JOPTIONPANE


Ada beberapa method yang digunakan dalam class JOptionPane seperti berikut:

METHODS STRUKTUR CODE KETERANGAN


JDialog String title Digunakan untuk membuat dan
CreateDialog mengembalikan JDialog tanpa
induk baru dengan judul yang
ditentukan
static void Component Digunakan untuk membuat
showMessageDialog parentComponent, dialog informasi pesan berjudul
Object Message “Message”
static void Component Digunakan untuk membuat
showMessageDialog parentComponent, dialog pesan dengan judul dan
Object message, String type data pesan yang diberikan
title, int messageType
Static int Component Digunakan untuk membuat
showConfirmDialog parentComponent, dialog dengan pilihan ya, tidak
Object message dan cancel, dengan
menggunakan title, select an
option
Static String Component Digunakan untuk menampilkan
showInputDialog parentComponent, dialog pertanyaan pesan yang
Object message meminta inputan dari user
Void setInputValue Object newValue Digunakan untuk mengatur
nilai input yang dipilih atau
diinputkan oleh user

Laboratorium Komputer Universitas Dinamika


73
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Keterangan dari Source Code diatas


Source Code Pengertian
Title Judul pada dialog box
Component parentComponent Merupakan komponen yang menjadi induk
dari dialog box. Apabila kita mengisi dengan
kata null, maka dialog box tersebut akan
menjadi parent component secara default
Object message Pesan yang akan ditampilkan didalam dialog
box
messageType Tipe pesan yang akan memberi icon pada
dialog box. Tipe pesan dapat seperti berikut:
INFORMATION_MESSAGE,
WARNING_MESSAGE,
ERROR_MESSAGE, PLAIN_MESSAGE
dll
Object newValue Pemberian nilai pada data yang diinputkan
oleh user

CONTOH SHOW MESSAGE DIALOG


Pada contoh ini kita akan membuat berbagai macam message dialog
sederhana. Contoh tersebut, seperti information message, warning message, error
message, dan plain message. Terdapat juga contoh yang menggunakan icon kita
sendiri. Didalam contoh pembuatan icon sendiri, kita harus memanggil alamat dan
nama dari gambar yang sudah disimpan didalam folder sebelumnya. Dalam
pemanggilannya, kita membutuhkan sebuah object ImageIcon. Setelah dipanggil,
kita dapat memanggil nama object tersebut kedalam message dialog.

Laboratorium Komputer Universitas Dinamika


74
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Berikut adalah source code keseluruhan

Contoh Tidak menggunakan Title

JOptionPane.showMessageDialog(null,"TEST");

Contoh Information Message dengan title

JOptionPane.showMessageDialog(null, "INFORMASI", "INFO",


JOptionPane.INFORMATION_MESSAGE);

Warning Message

JOptionPane.showMessageDialog(null,"WARNING KUNING",
"PERINGATAN",JOptionPane.WARNING_MESSAGE);

Laboratorium Komputer Universitas Dinamika


75
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Error Message

JOptionPane.showMessageDialog(null, "PESAN ERROR", "ERROR


TITLE", JOptionPane.ERROR_MESSAGE);

Tidak Menggunakan Icon

JOptionPane.showMessageDialog(null, "TIDAK ADA ICON", "NO


ICON TITLE", JOptionPane.PLAIN_MESSAGE);

Membuat Icon sendiri

ImageIcon icon = new ImageIcon("src/image/java.png");


JOptionPane.showMessageDialog(null,"LOGO JAVA", "JAVA",
JOptionPane.INFORMATION_MESSAGE,icon);

CONTOH CONFIRM DIALOG


Pada contoh confirm dialog ini terdapat sebuah pesan pertanyaan yang
nantinya apabila dijawab yes atau no akan muncul message dialog baru. Didalam
pembuatan contoh ini kita menggunakan percabangan if else. Apabila pilihan user
yes maka pilihan tersebut merupakan pilihan=0, sedangkan pilihan user No maka
pilihan tersebut merupakan pilihan=1.

Laboratorium Komputer Universitas Dinamika


76
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Source Code

Hasil Output

Hasil jawaban dari pertanyaan diatas

Hasil Jawaban Yes Hasil Jawaban No

CONTOH INPUT DIALOG


Pada contoh showInputDialog, kita dapat menginputkan dari inputan user.
Type data dari inputan user tersebut dapat bermacam-macam type, misalnya kita
dapat menggunakan type data String, Double, Int dll. Serta dalam showInputDialog
juga dapat menampilkan semua perhitungan aritmatika yang sudah kita setting
didalamnya. Pada contoh dibawah ini kita akan menginputkan nama depan dan
nama belakang yang nantinya akan ditampilkan nama lengkap yaitu gabungan dari
nama depan dan nama belakang. Berikut source codenya. Didalam source code
dibawah ini menggunakan sebuah object JOptionPane maka saat kita melakukan
Component parentComponent, kita tidak lagi menggunakan null, melainkan

Laboratorium Komputer Universitas Dinamika


77
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

menggunakan nama object dari JOptionPane yaitu pada contoh tersebut


menggunakan nama jp.

Berikut hasilnya outputnya:

Inputan untuk Nama Depan Inputan untuk Nama Belakang

Hasil Kedua inputan sebelumnya

CONTOH KALKULATOR
Pada contoh kalkulator disini kita memakai interface juga. Contoh ini sama
seperti contoh pada bab interface, hanya saja ada sedikit perbedaan dan ketika kita
ingin menampilkannya, kita menggunakan JOoptionPane.

Laboratorium Komputer Universitas Dinamika


78
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Di class interface terdapat 4 method kosong yang nantinya akan diisi sebuah fungsi
pada class kalkulator.
Interface Operasi.java

Class Kalkulator.java

Setelah kita sudah membuat interface operasi dan class kalkulator, kita
membuat main class yang terdapat fungsi JOptionPane.

Laboratorium Komputer Universitas Dinamika


79
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Main Class UtamaGUI.java

Hasil Output Program

Hasil dari jawaban diatas

Laboratorium Komputer Universitas Dinamika


80
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

TUGAS 8

Buatlah program pembelian dengan menggunakan JOptionPane. Terdapat program


pembelian baju, yang nantinya kita akan menginputkan nama dan alamat dari
pembeli. Dalam pembelian nantinya akan menginputkan merk, harga dan jumlah
pembelian baju. Apabila pembeli tidak membeli pembeli akan keluar dari program
dengan pesan warning anda keluar.
Pesan Inputan

Pesan Pertanyaan untuk pembelian baju atau tidak

Inputan jika memilih membeli baju

Hasil Pembelian Pesan jika tidak membeli akan keluar

Laboratorium Komputer Universitas Dinamika


81
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

BAB IX
KOMPONEN SWING

Waktu Penyampaian : 1 x 170 Menit


Tujuan : Praktikan dapat mempraktikkan konsep GUI dengan menggunakan
komponen Swing.
Materi :
• GUI • Komponen Swing

Komponen Swing di Java adalah toolkit Graphical User Interface (GUI)


yang mencakup banyak sekumpulan widget. Hal tersebut adalah bagian dari Java
Foundation Classes (JFC) yang merupakan API untuk program java yang
menyediakan GUI. Swing menyertakan packages yang memungkinkan kita
membuat sekumpulan komponen GUI yang canggih untuk sebuah aplikasi java kita
dan tidak bergantung pada platform seperti AWT. Swing library dibangun diatas
Java Abstract Toolkit (AWT), toolkit GUI yang lebih lama dan bergantung pada
platform. Kita dapat menggunakan komponen Swing seperti button, textfield, label,
radiobutton, combobox dll, dari library dan tidak membutuhkan pembuatan
komponen dari awal.
Komponen swing yang akan digunakan sebagian besar terdapat dalam
package javax.swing dan javax.swing.event. Komponen yang ada dalam
javax.swing memiliki nama yang dimulai dengan J, contoh JButton,JList, dan
sebagainya.
Secara umum terdapat 5 bagian swing yang akan sering digunakan yaitu:
1. Top-level Container, merupakan container dasar dimana komponen
lainnya akan diletakkan. Contoh container seperti ini, yaitu Frame, Dialog,
dan Applet yang diimplementasikan berupa class Jframe, Jdialog, dan
Japplet. Modul Pemrograman Berorientasi Objek PRODI S1 SISTEM
INFORMASI Universitas Dinamika 73
2. Intermediate Container, merupakan container perantara dimana
komponen lainnya akan diletakkan, salah satu contohnya pane yang
diimplementasikan berupa class Jpanel.

Laboratorium Komputer Universitas Dinamika


82
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

3. Atomic Component, merupakan komponen yang memiliki fungsi yang


spesifik, dimana umumnya user langsung berinteraksi dengan komponen
jenis ini. Contoh Jbutton, Jlabel, JtextField, dan JtextArea
4. Layout Manager, berfungsi untuk mengatur bagaimana tata letak atau
posisi komponen yang akan diletakkan, satu sama lain di dalam suatu
container. Contoh BorderLayout, BoxLayout, FlowLayout,
GridBagLayout, dan GridLayout.
5. Event Handling, untuk menangani event yang dilakukan oleh user seperti
menekan tombol, memperbesar atau memperkecil ukuran frame dll

HIRARKI CLASS JAVA SWING


Hirarki java swing API ditunjukkan seperti pada Gambar dibawah ini:

KOMPONEN SWING
Ada beberapa komponen swing di bab ini yang akan dijelaskan dan diberikan
beberapa contoh.

Laboratorium Komputer Universitas Dinamika


83
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

A. JFrame
JFrame adalah sebuah window yang dapat memiliki title, border, menu,
button, textfield dan beberapa komponen lainnya. Sebuah swing harus memiliki
frame agar komponen dapat ditambahkan kedalam.

Pembuatan Frame Frame

Apabila kita ingin frame kita selalu muncul ditengah/center maka kita bisa atur di
menu Code lalu ke form size policy dan pilih Generate Resize Code, lalu centang
pada Generate Center.

Laboratorium Komputer Universitas Dinamika


84
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

B. JPanel
JPanel merupakan class container bagian dari package swing paling
sederhana untuk menyimpan sekumpulan komponen. Sebuah frame dapat memiliki
lebih dari satu panel dan setiap panel dapat memeiliki beberapa komponen. Kita
juga bisa menyebutnya bagian dari JFrame. Panel berguna untuk mengelompokkan
komponen dan menempatkannya ke lokasi yang sesuai dalam sebuah frame. Kita
dapat mencari komponen panel di menu Palette, apabila ingin mengaturnya kita
dapat pergi ke menu Properties.

C. JLabel
JLabel digunakan untuk menampilkan string pendek atau icon gambar.
JLabel dapat menampilkan teks, gambar atau keduanya. Secara default, label
ditampilkan secara vertical tetapi kita dapat mengubah posisi label. Sama seperti
JPanel, kita dapat mencari komponen JLabel di menu palette dan dapat
mengaturnya pada menu properties.

Laboratorium Komputer Universitas Dinamika


85
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Penggunaan untuk text atau icon Gambar dan text

Hasil dari JLabel


Cara menginputkan icon gambar

Menu untuk text dan icon

D. JTextField
JTextField adalah bagian dari package javax.swing. Komponen JTextField
adalah komponen yang memungkinkan pengeditan dan penginputan datu baris teks.
JTextField mewarisi class JTextComponent dan menggunakan antarmuka
SwingConstants.

Laboratorium Komputer Universitas Dinamika


86
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Tampilan TextField

E. JButton
Class JButton digunakan untuk membuat tombol berlabel yang memiliki
implementasi independent platform. Aplikasi di Java dapat menghasilkan beberapa
proses atau Tindakan saat atau setelah tombol(button) ditekan. JButton pewarisan
dari class AbstractButton.

Laboratorium Komputer Universitas Dinamika


87
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

CONTOH PENGGUNAAN KOMPONEN SWING


Buatlah sebuah program penjualan baju yang akan menginputkan nama
baju, harga baju dan jumlah baju yang dibeli. Pada program ini jika pembeli
membeli baju lebih dari 5 akan mendapatkan diskon 45%. Disini terdapat 3 textfield
yang memiliki variable name jtx_baju, jtx_harga dan jtx_jml. Memiliki 3 button
yang memiliki variable name btnSimpan, btnClear dan btn_hapus. Dan memiliki 2
label untuk menampilkan hasil/output program yaitu dengan variable name jl_baju
dan jl_total. Program ini akan menampilkan pesan dialog jika kita mendapatkan
diskon.
Pertama dalam pembuatan program dibawah ini adalah design program
tersebut semenarik mungkin. Lalu mulailah dengan penamaan variable name dan
atur size dari beberapa komponen tersebut. Setelah selesai dengan design baru kita
akan melakukan penulisan fungsi atau code didalam beberapa komponen tersebut
seperti didalam semua button tersebut.
Hasil Program jika pembelian dibawah 5 baju.

Hasil Program jika pembelian diatas 5 baju

Laboratorium Komputer Universitas Dinamika


88
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Pada program diatas terdapat button clear dan hapus yang memiliki fungsi
berbeda. Button clear berfungsi untuk menghapus inputan data yang ada di textfield
dan button hapus untuk menghapus hasil output yang ada di JLabel.
Pada menu source, kita akan menuliskan perintah source code. Pertama kita
membuat deklarasi variable dulu dan jangan lupa import javax swing juga.

Selanjutnya kita memberikan fungsi pada button simpan(btnSimpan).


Pertama terdapat .getText() yang berfungsi untuk menangkap inputan data. Lalu
jika ada proses percabangan, kita letakkan di button ini juga serta hasil output.
Apabila kita mau menampilkan output, kita gunakan fungsi .setText().

Laboratorium Komputer Universitas Dinamika


89
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Setelah memberikan fungsi pada button simpan. Kita akan memberikan


fungsi pada button clear dan hapus. Disini caranya sama untuk keduanya yaitu
dengan .setText(“”) yaitu dengan memberikan 2 tanda petik dua kali atau yang
berarti isinya kosong.

Laboratorium Komputer Universitas Dinamika


90
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

TUGAS 9

Buatlah program untuk menginputkan nilai mahasiswa pada praktikum pbo. Pada
program ini terdapat 5 inputan seperti berikut: nim, nama mahasiswa, nilai tugas,
nilai uts dan nilai uas, serta memiliki 3 tombol untuk simpan, clear input data dan
hapus hasil data. Program ini akan menampilkan nim, nama mahasiswa, nilai akhir
dan status nilai akhir yang berupa grade dan kelulusan. Untuk menghitung nilai
akhir dengan: (tugas x 50%)+(uts x 25%)+(uas x 25%).
Di praktikum PBO nilai akhir minimum kelulusan yaitu 60
Untuk Grade Kelulusan:
Nilai Akhir Grade Nilai Keterangan
80-100 A Istimewa
75-79 B+ Memuaskan
65-74 B Baik
60-64 C+ Sedang
55-59 C Cukup
40-54 D Kurang
0-39 E Gagal

Tampilan Mahasiswa Lulus

Laboratorium Komputer Universitas Dinamika


91
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

Tampilan Mahasiswa tidak lulus

Laboratorium Komputer Universitas Dinamika


92
Modul Praktikum Pemrograman Berorientasi Objek
PRODI D3 SISTEM INFORMASI

BAB X
KOMPONEN SWING (LANJUTAN)
ON PROSES
Waktu Penyampaian : 1 x 170 Menit
Tujuan : Praktikan dapat mempraktikkan konsep GUI dengan menggunakan
komponen Swing.
Materi :
• Komponen Swing • JCheckBox
• JRadio Button • JCombo box
• JButtonGroup • JTable

Laboratorium Komputer Universitas Dinamika


93

Anda mungkin juga menyukai