• Tidak ada hasil yang ditemukan

KEGIATAN BELAJAR 4 PEMROGRAMAN BERORIENTASI OBJEK DALAM PERANCANGAN APLIKASI/SISTEM INFOMASI

N/A
N/A
Protected

Academic year: 2022

Membagikan "KEGIATAN BELAJAR 4 PEMROGRAMAN BERORIENTASI OBJEK DALAM PERANCANGAN APLIKASI/SISTEM INFOMASI"

Copied!
99
0
0

Teks penuh

(1)

Modul 2, Rekayasa Perangkat Lunak

A. PENDAHULUAN 1. Deskripsi Singkat

Pemrograman berorientasi objek atau object-oriented programming disingkat OOP) merupakan paradigma pemrograman berdasarkan konsep "objek", yang dapat berisi data, dalam bentuk field atau dikenal juga sebagai atribut; serta kode, dalam bentuk fungsi/prosedur atau dikenal juga sebagai method. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek.

Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,

Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik peranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Pada Kegiatan belajar ini Anda akan mempelajari konsep dan implementasi pemrograman berorientasi objek dalam pengembangan apikasi atau sistem informasi, Materi pokok pada kegitan belajar ini adalah: 1) Konsep OOP dalam pengembangan aplikasi/sistem informasi, 2) Program untuk mengatasi kesalahan (error handling), 3) Koneksi database server melalui client-server, 4) Desain user interface dan 5) Model MVC dalam pengembangan aplikasi.

2. Relevansi

Rekayasa Perangkat Lunak (RPL) perlu dipandang melalui tiga dimensi besar literasi sains (scientific literacy) yaitu konten sains, proses sains, dan konteks aplikasi sains. Konten sains merujuk pada konsep-konsep kunci dari sains yang diperlukan untuk memahami fenomena alam dan perubahan yang dilakukan terhadap alam melalui aktivitas manusia. Proses sains mengembangkan

KEGIATAN BELAJAR 4

PEMROGRAMAN BERORIENTASI OBJEK DALAM

PERANCANGAN APLIKASI/SISTEM INFOMASI

(2)

kemampuan memahami hakikat sains, prosedur sains, serta kekuatan dan kelemahan sains. Konteks aplikasi sains lebih pada kehidupan sehari-hari daripada kelas atau laboratorium. Kegiatan Belajar ini dibagi menjadi empat bahan kajian atau pokok bahasan yang mengacu pada dimensi literasi sains (sains liyteracy).

Tujuan pembelajaran yang diharapkan Anda capai pada kegiatan pembelajaran ini adalah: (1) Menerapkan konsep pemrograman berorientasi obyek dalam pengembangan aplikasi/sistem informasi (2) Memodifikasi program untuk mengatasi kesalahan (error handling), (3) Membuat desain user interface (4) Membuat koneksi database server melalui client-server, dan (5) Menerapkan model MVC dalam pengembangan aplikasi.

3. Petunjuk Belajar

Modul ini dirancang untuk memfasilitasi Anda dalam melakukan kegiatan belajar secara mandiri, jangan lupa berdoa sebelum mempelajarinya. Bacalah modul dengan seksama, terutama bagian instruksi.

a. Pahami dulu tentang capaian pembelajaran mata kegiatan, sub capaian pembelajaran mata kegiatan, dan pokok-pokok materi pada setiap Kegiatan Belajar sebelum Anda mempelajari uraian materi

b. Lakukan kajian terhadap uraian materi pada setiap Kegiatan Belajar dan lengkapi informasi Anda dengan melihat berbagai media dan sumber belajar yang telah disediakan serta menganalisis contoh penelitian atau kasus nyata pada setiap topik materi.

c. Anda diharapkan juga dapat menguasai prinsip, teknik, dan aplikasi integrasi pengetahuan keilmuan sains, pedagogi dan teknologi (technology pedagogy and content knowledge/TPCK). Oleh karena itu, lakukan kajian terhadap metode membelajaran yang telah disediakan pada setiap Kegiatan Belajar ini.

Anda juga dapat menambahkan cara alternatif lain ketika Anda membelajarkan topik tersebut pada peserta didik di sekolah

d. Keberhasilan proses pembelajaran pada PPG Dalam Jabatan ini sangat tergantung pada kesungguhan Anda dalam mengerjakan tugas dan tes yang telah disediakan pada setiap Kegiatan Belajar Kerjakanlah tugas dan latihan

(3)

Modul 2, Rekayasa Perangkat Lunak

yang terdapat di dalamnya dengan jujur tanpa melihat kunci jawaban sebelum Anda mengerjakannya.

e. Gunakan teknik membaca cepat dalam mempelajari modul.

f. Pelajari media dan sumber belajar lain yang relevan dengan materi g. Anda diperbolehkan bertanya kepada instruktur jika dianggap perlu.

h. Usahakan menyelesaikan setiap modul lebih cepat dari waktu yang ditetapkand. Jika ada bagian yang belum anda pahami, cobalah terlebih dahulu mendiskusikan dengan teman yang sedang mengerjakan bagian yang sama, sebelum Anda bertanya pada instruktur. Jika perlu, berusahalah mencari tahu jawabannya pada sumber yang lain.

Kegiatan Belajar 4 ini menggunakan beberapa dukungan perangkat yang yang harus disediakan. Peserta dapat menggunakan perangkat yang dimiliki tetapi harus memenuhi standar spesifikasi yang telah ditetapkan. Hal ini bertujuan agar setiap kegiatan pembelajaran yang dilakukan dapat berjalan dengan semestinya.

Perangkat-perangkat yang digunakan dalam kegiatan pembelajaran modul ini adalah:

a. Personal Computer/Laptop yang sudah terinstal minimal OS Windows 7.

b. Aplikasi teks editor

c. Aplikasi JDK dan NetBeans d. Aplikasi web server local host

B. INTI

1. Capaian Pembelajaran

Menganalisis prinsip-prinsip Rekayasa Perangkat Lunak beserta aplikasi terkait dalam pembelajaran bidang studi Teknik Komputer dan Informatika

2. Pokok-Pokok Materi

Pokok-pokok materi dalam kegiatan belajar ini adalah:

a. Konsep OOP dalam pengembangan aplikasi/sistem informasi b. Program untuk mengatasi kesalahan (error handling)

c. Koneksi database server melalui client-server

(4)

d. Desain user interface

e. Model MVC dalam pengembangan aplikasi

3. Uraian Materi

a. Konsep Pemrograman Berorientasi Objek

Pada bagian ini akan diuraikan konsep pemrograman beroroentasi objek (Object Oriented Programming/OOP) pada Java. Java adalah bahasa pemrograman dan platform komputasi pertama kali dirilis oleh Sun Microsystems pada tahun 1995. Java merupakan teknologi yang mendasari kekuatan program untuk utilitas, permainan, dan aplikasi bisnis. Java berjalan pada lebih dari 850 juta komputer pribadi di seluruh dunia, dan pada miliaran perangkat di seluruh dunia, termasuk ponsel dan perangkat TV.

Salah satu karakteristik Java adalah portabilitas, yang berarti bahwa program komputer yang ditulis dalam bahasa Java harus dijalankan secara sama, pada setiap hardware/platform sistem operasi. Hal ini dicapai dengan menyusun kode bahasa Java ke sebuah Java bytecode. Pengguna aplikasi biasanya menggunakan Java Runtime Environment (JRE) diinstal pada mesin mereka sendiri untuk menjalankan aplikasi Java, atau dalam browser web untuk applet Java.

Untuk pembuatan dan pengembangan aplikasi berbasis Java diperlukan Java Development Kit (JDK), dimana saat ini pemilik lisensi dari JDK adalah Oracle Corporation yang telah secara resmi mengakuisisi Sun Microsystem pada awal tahun 2010. Ada beberapa Java platform untuk keperluan development, yaitu:

• Java SE (Standard Edition), yang khusus digunakan untuk pengembangan aplikasiaplikasi pada PC atau workstation.

• Java ME (Micro Edition), yaitu khusus digunakan untuk pengembangan aplikasi-aplikasi yang ada di perangkat mobile spt HP, smartphone, PDA, tablet dan sebagainya.

• Java EE (Enterprise Edition), yaitu khusus digunakan untuk pengembangan aplikasi skala besar (enterprise), dan aplikasi web berbasis java.

Instalasi Java Development Kit (JDK) menggunakan Java SE sebagai JDK nya. Perangkat yang dibutuhkan untuk pembuatan aplikasi Java:

(5)

Modul 2, Rekayasa Perangkat Lunak

• Java (SE – Standard Edition) Development Kit. JDK adalah suatu paket perangkat yang digunakan untuk membangun aplikasi, applet, dan komponen menggunakan bahasa Java. Berikut ini perangkat yang ada di dalam sebuah JDK:

development tools , Java runtime environtment (JRE), library, Java DB (Java relational database), demo aplikasi dan applet, serta contoh-contoh program.

• Java Development IDE (Integrated Development Environment), misal:

NetBeans atau eclipse.

Berikut ini langkah instalasinya:

1. Unduh keduanya (JDK dan NetBeans) sekaligus di:

http://www.oracle.com/technetwork/java/javase/downloads/index.html 2. Pilih JDK + Netbeans

Gambar 4.1. Pilihan download Java SE 3. Pilih platform sistem operasi yang sesuai

Gambar 4.2. Pilihan platform sistem operasi instalasi JDK+Netbeans Keterangan: Windows x64 adalah untuk sistem operasi Windows 64 bit.

4. Jalankan instalasi JDK dan Netbeans hasil download

(6)

Gambar 4.3. Tampilan installer JDK+Netbeans Klik NEXT

Gambar 4.4. Tampilan persetujuan instalasi JDK+Netbeans Pilih ‘I accept the terms in the license agreement, Install JUnit’, Klik NEXT

Gambar 4.5. Tampilan pilihan lokasi instalasi JDK+Netbeans

(7)

Modul 2, Rekayasa Perangkat Lunak

Tentukan PATH untuk lokasi instalasi JDK.

Gambar 4.6. Tampilan penentuan PATH instalasi JDK+Netbeans Tentukan PATH untuk NetBeans IDE

Gambar 4.7. Tampilan summary instalasi JDK+Netbeans Keterangan: Hilangkan tanda cek pada ‘Check for updates’

5. Klik INSTALL dan tunggu sampai instalasi selesai

Membuat Program Java Pertama

Pada bab ini akan dibuat program Java untuk yang pertama kalinya.

Contoh 1

Program ini nanti hanya sekedar menampilkan sebuah pesan ‘Hello World’.

Berikut ini langkah pembuatannya:

1. Jalankan NetBeans

(8)

Gambar 4.8. Tampilan awal Netbeans

2. Klik menu FILE – NEW PROJECT, setelah itu akan muncul PROJECT WIZARD yang memudahkan untuk membuat Java Project

3. Pada bagian CATEGORIES, pilih JAVA, pada bagian PROJECT pilih JAVA APPLICATION

Gambar 4.9. Tampilan penentuan pilihan project 4. Klik NEXT

5. Beri nama Projectnya, misalnya: Contoh1, serta tentukan path untuk menyimpan projectnya.

Dalam contoh ini, misalnya file project disimpan di D:/JavaApp. Pastikan folder ‘JavaApp’ tersebut sudah dibuat sebelumnya.

Gambar 4.10. Tampilan pemiilihan penyimpanan file project 6. Klik FINISH

7. Setelah itu NetBeans secara otomatis menyiapkan sebuah source program yang

(9)

Modul 2, Rekayasa Perangkat Lunak

sudah lengkap strukturnya, dan tinggal ditambahkan beberapa perintah sesuai keinginan pada bagian

TODO code application logic here

Tempat menyisipkan perintah yang diinginkan

Gambar 4.11. Tampilan tempat menyisipkan perintah

8. Selanjutnya silakan tambahkan perintah berikut ini, untuk menampilkan pesan

‘Hello World’.

System.out.println("Hello World");

Sehingga tampilan source Contoh1.java menjadi sebagai berikut:

9. Cek apakah ada tanda seru warna merah di sisi sebelah kiri source. Jika tanda ini muncul maka menandakan ada sintaks yang salah pada baris tersebut.

Contoh tampilan pesan kesalahan pada suatu baris program

Untuk mengetahui apa kesalahannya, cukup dekatkan saja kursor pada tanda seru warna merah tersebut.

(10)

Untuk melihat ada tidaknya kesalahan sintaks, bisa juga dilakukan proses COMPILE, dengan cara mengklik menu RUN – COMPILE. Proses COMPILE hanya bisa dilakukan sekali saja.

10. Untuk melihat tampilan program Java yang sudah dibuat klik menu RUN – RUN PROJECT.

11. Setelah melihat hasil running aplikasi Java, selanjutnya lakukan proses BUILD supaya dihasilkan file aplikasi Java yang executable. Hasil proses BUILD ini berupa file *.jar. Untuk melakukan proses BUILD suatu project, caranya klik RUN – BUILD PROJECT. Hasil dari proses BUILD project ini (*.jar), secara otomatis akan tersimpan di folder ‘dist’, dalam contoh ini di dalam direktori D:\JavaApp\Contoh1\dist.

Sedangkan source codenya sendiri tersimpan di direktori D:\JavaApp\Contoh1\src.

12. Selanjutnya, file Java Executable File (*.jar) bisa dieksekusi via command prompt dengan perintah

java -jar "D:/JavaApp/Contoh1/dist/Contoh1.jar"

Tipe Data Dalam Java

Sebagaimana bahasa pemrograman yang lain, di dalam Java juga dikenal istilah tipe data. Tipe data ini digunakan untuk pengalokasian memory guna menyimpan nilai/valuenya. Di dalam Java, ada beberapa tipe data sebagai berikut:

(11)

Modul 2, Rekayasa Perangkat Lunak

Tabel 4.1 Tipe Data dalam Java

Tipe Data Range nilai Keterangan

Byte -128 ... 127 Bilangan bulat

Short -32768 ... 32767 Bilangan bulat

Int - 2147483648 ... 2147483647 Bilangan bulat Long -9223372036854775808 ... 9223372036854775807 Bilangan bulat

Float Bilangan riil

Double Bilangan riil

Char Karakter

String String (beberapa

karakter)

Boolean true/false -

Berikut ini contoh program Java untuk menyimpan nilai beberapa tipe data:

Contoh 2

Misalkan akan dibuat project dengan nama ‘Contoh3’. Langkahnya adalah:

1. Klik NEW PROJECT

Gambar 4.12. Tampilan New Project untuk contoh 2

2. Pilih JAVA pada Categories dan JAVA APPLICATION pada Projects.

3. Isikan nama projectnya dengan nama ‘Contoh3’

Gambar 4.13. Tampilan pemilihan penyimpanan file project contoh 2 4. Kemudian tulis kode berikut ini,

package contoh3;

public class Contoh3 {

public static void main(String[] args) { // deklarasi variabel dan tipe datanya int gajiPokok;

float potonganGaji, gajiBersih;

String namaKaryawan, kodeKaryawan;

char golDarah;

// assignment nilai pada setiap variabel kodeKaryawan = "K00001";

(12)

namaKaryawan = "ROSIHAN ARI YUANA";

golDarah = 'A';

gajiPokok = 3000000;

potonganGaji = (float) 0.2;

gajiBersih = gajiPokok - (potonganGaji * gajiPokok);

// tampilkan output

System.out.println("KODE KARYAWAN : "+kodeKaryawan);

System.out.println("NAMA KARYAWAN : "+namaKaryawan);

System.out.println("GOL DARAH : "+golDarah);

System.out.println("GAJI POKOK : Rp. "+gajiPokok);

System.out.println("GAJI BERSIH : Rp. "+gajiBersih);

} }

Output dari project ini seperti tampak pada gambar berikut,

Gambar 4.14. Output project contoh 2

Pemrograman Java menggunakan konsep Pemrograman Berorientasi Obyek (PBO) atau Object Oriented Programming (OOP). Semua program Java merupakan suatu obyek. Dasar-dasar OOP meliputi istilah yaitu: class, object, attribute dan method.

Secara umum, OOP adalah teknik yang memfokuskan desain program pada obyek dan class berdasarkan pada skenario di dunia nyata. Sebagai contoh, misalkan mobil. Sebuah mobil secara umum tentunya memiliki beberapa karakteristik, yaitu misalnya memiliki sejumlah roda, memiliki warna, memiliki beberapa pintu dsb. Selanjutnya mobil ini bisa terdapat berbagai macam merek, misalnya mobil Suzuki Ertiga, Toyota Avanza dsb. Sebuah mobil tentunya juga bisa dijalankan, baik maju maupun mundur atau dihentikan. Dalam OOP, mobil tersebut identik dengan Class, mobil Suzuki Ertiga, Avanza dll itu merupakan obyek. Jumlah roda, warna mobil, jumlah tempat duduk dll identik dengan atribut dari suatu obyek, serta proses untuk mengendalikan mobil (maju, mundur dan berhenti) itu dalam OOP identik dengan method dari suatu obyek.

(13)

Modul 2, Rekayasa Perangkat Lunak

Class

Class adalah model dari suatu obyek yang menjelaskan karakteristik (sifat) serta fungsi yang dimiliki dari suatu obyek. Class merupakan wadah (tempat) yang digunakan untuk menciptakan suatu obyek. Dengan kata lain sebuah Class merupakan blueprint dari suatu obyek.

Berikut ini adalah aturan pembuatan class dalam Java:

public class namaclass {

. . }

Aturan pemberian nama class:

- Dimulai dengan huruf, atau tanda _ atau tanda $ - Tidak boleh menggunakan reserved word dalam Java - Tidak boleh memuat operator aritmatika

- Bersifat case sensitif

Oleh karena itu, jika diperhatikan ketika membuat project baru, maka secara otomatis akan dibuat class sesuai nama projectnya. Misalkan Anda membuat project baru dengan nama ‘project1’, maka secara otomatis akan dibuat class dengan nama ‘Project1’.

public class Project1 { .

. . }

Dalam sebuah project, dapat dibuat lebih dari satu class sebanyak kebutuhan.

Atribut

Atribut adalah elemen data dari suatu class. Atribut menyimpan informasi tentang class. Atribut dapat diartikan sebagai data, variabel, properti atau sebuah field.

Method

Method adalah sebuah function atau fungsi yang ada dalam suatu class.

Setiap method memiliki tugas sendiri. Di dalam Java ada 2 jenis method yaitu void dan non void method. Method void adalah method yang tidak

(14)

mengembalikan nilai, sedang non void method adalah method yang mengembalikan suatu nilai. Jika diperhatikan, ketika membuat project baru misalnya ‘project1’, maka akan di dalam class ‘project1’ ini akan dibuat pula method dengan nama main().

public class Project1 {

public static void main(String[] args) { .

. }

}

Method main() dalam suatu class menunjukkan method tersebut adalah method utama yang akan dijalankan pertama kali ketika program Java dijalankan. Khusus method main(), perlu diberikan ‘static’ setelah modifiernya. Pada suatu class, bisa dibuat method berapapun sesuai keigninan.

Perlu diingat juga bahwa di dalam Java, beberapa class itu bisa digabung atau disimpan menjadi satu dalam sebuah paket atau package jika diperlukan. Hal ini dimaksudkan untuk memudahkan pengelolaan class saja.

Contoh 3

Sebagai contoh dari penerapan konsep OOP dalam pemrograman Java, misalkan akan dibuat sebuah program untuk menjumlahkan dua buah bilangan.

Untuk langkah awal, desain terlebih dahulu bentuk class untuk penjumlahan bilangan tersebut. Misalkan dibuat class dengan nama ‘operasiBilangan’. Di dalam class tersebut, misalkan dibuat atribut yaitu ‘bilangan1’ dan ‘bilangan2’, merupakan kedua bilangan yang akan dioperasikan, serta ‘hasil’ yang merupakan hasil dari operasi kedua bilangan. Selanjutnya di dalam class ‘operasiBilangan’

tersebut dibuat sebuah method ‘jumlah’ untuk menjumlahkan kedua bilangan, serta method untuk menampilkan hasil operasi bilangan.

Sesuai desain class tersebut, sekarang implementasikan di Java. Berikut ini langkah-langkahnya:

1. Klik NEW PROJECT

Gambar 4.15. Tampilan New Project untuk contoh 3

(15)

Modul 2, Rekayasa Perangkat Lunak

2. Pilih ‘JAVA’ pada Categories, dan ‘Java Application’ pada ‘Project’

3. Misalkan untuk Nama Project, diberi nama “contoh2”

Gambar 4.16. Tampilan pemilihan penyimpanan file project contoh 3 4. Setelah pembuatan project ‘contoh2’ ini berhasil, maka secara otomatis akan

muncul package dengan nama ‘contoh2’.

Gambar 4.17. Tampilan source package file project contoh 2

5. Selanjutnya, buat Class dengan nama ‘operasiBilangan’ dalam package

‘contoh2’ tersebut yaitu dengan mengklik kanan pada nama package-nya, lalu pilih NEW, dan pilih JAVA CLASS

Gambar 4.18. Tampilan untuk membuat Java class 6. Isikan ‘operasiBilangan’ pada isian nama class yang akan dibuat.

Gambar 4.19. Form pengisian nama class

(16)

7. Setelah membuat class ‘operasiBilangan’, maka secara otomatis Java akan membuat file dengan nama ‘operasiBilangan.java’ pada direktori project. Class

‘operasiBilangan’ ini terletak dalam package ‘contoh2’. Kemudian akan tulis kode dalam class operasiBilangan tersebut.

8. Tulislah kode berikut ini di dalam class operasiBilangan

public class operasiBilangan {

// deklarasi atribut atau properties public int bilangan1;

public int

bilangan2; private int hasil;

// method jumlah() public void

jumlah() {

this.hasil = this.bilangan1 + this.bilangan2;

}

// method

tampilHasil() public void tampilHasil() {

System.out.println("Hasil operasi bilangan : " + this.hasil);

} }

Keterangan:

- Bilangan1, bilangan2 dan hasil merupakan atribut atau properties dari class operasibilangan, sedangkan jumlah() dan tampilHasil() adalah methodnya.

(17)

Modul 2, Rekayasa Perangkat Lunak

- Perhatikan, di depan atribut atau method ada ‘public’ atau ‘private’. Jika diberikan ‘public’ maka atribut atau method tersebut bisa diakses dari class manapun (jika terdapat lebih dari satu class). Namun jika private’, maka

atribut atau method hanya bisa diakses di dalam class itu saja. Selain ‘public’

dan ‘private’ sebuah atribut atau method bisa juga diset dengan sifat

‘protected’ yang artinya hanya bisa diakses dalam class itu saja ata class lain yang masih dalam satu package yang sama. Keterangan ‘public’, ‘private’

dan ‘protected’ dalam OOP disebut modifier yang digunakan untuk menentukan aksesibilitas method atau atribut.

- Perintah ‘this.’ digunakan untuk mengakses atribut atau method yang ada dalam class tersebut.

9. Kemudian, di class ‘Contoh2’ nya (di file ‘Contoh2.java’), tulis kode program sebagai berikut

public class Contoh2 {

public static void main(String[] args) {

operasiBilangan op1 = new operasiBilangan();

op1.bilangan1 = 10;

op1.bilangan 2 = 20;

op1.jumlah()

;

op1.tampilHa sil();

} }

Keterangan:

Perintah:

operasiBilangan op1 = new operasiBilangan();

digunakan untuk instantisasi, yaitu proses membuat obyek baru dengan nama

‘op1’. Obyek ini termasuk dalam class ‘operasiBilangan’.

Perintah:

op1.bilangan1 = 10;

adalah mengeset atribut ‘bilangan1’ pada obyek ‘op1’ dengan suatu nilai.

Demikian juga dengan perintah

op1.bilangan2 = 20;

Perintah

op1.jumlah();

(18)

dimaksudkan untuk menjalankan method jumlah() yaitu menjumlahkan kedua nilai atribut ‘bilangan1’ dan ‘bilangan2’ pada obyek ‘op1’.

Sedangkan perintah,

op1.tampilHasil();

digunakan untuk menjalankan method tampilHasil() yaitu menampilkan hasil penjumlahan.

10. Untuk melihat hasil output program, Anda bisa mengcompilenya dahulu kemudian menjalankan RUN PROJECT. Adapun outputnya adalah sebagai berikut:

Gambar 4.20. Output project contoh 3

Dalam sebuah program, bisa dibuat instantisasi beberapa obyek dari class yang sama.

Contoh 4

Berikut ini contoh yang merupakan pengembangan dari project ‘contoh2’

public class Contoh2 {

public static void main(String[] args) { // instantisasi obyek ‘op1’

operasiBilangan op1 = new operasiBilangan();

op1.bilangan1 = 10;

op1.bilangan2 = 20;

op1.jumlah();

op1.tampilHasil();

// instantisasi obyek ‘op2’

operasiBilangan op2 = new operasiBilangan();

op2.bilangan1 = 30;

op2.bilangan2 = 25;

op2.jumlah();

op2.tampilHasil();

} }

Dalam contoh di atas, dibuat 2 obyek dari class yang sama yaitu ‘op1’ dan

‘op2’. Adapun hasil output dari program ini adalah,

(19)

Modul 2, Rekayasa Perangkat Lunak

Gambar 4.21. Output project contoh 4

Untuk mengecek apakah suatu class yang sudah dibuat itu betul atau tidak, atau bisa tidak diakses dari class lain, dapat dilihat dari tool tips yang muncul ketika menulis kode program.

Sebagai contoh, misalkan di file ‘Contoh2.java’ ini dituliskan ‘op1.’ maka jika muncul tool tips seperti gambar di bawah ini,

Gambar 4.22. Tool tips

Yang menandakan bahwa atribut dan method yang ada dalam class

‘operasiBilangan’ bisa diakses. Atribut dan method yang muncul dalam tool tips hanyalah yang diset sebagai PUBLIC saja, sedangkan yang PRIVATE tidak muncul. Perhatikan, bahwa atribut ‘hasil’ yang sebelumnya diset PRIVATE dalam class ‘operasiBilangan’ tidak muncul dalam tool tips.

Jika struktur penulisan class itu benar, maka secara otomatis class-class tersebut dapat diakses dari class lainnya dalam package yang sama. Namun, jika ingin melakukan instantisasi obyek dari suatu class yang class tersebut berasal dari package yang berbeda, maka perlu ditambahkan perintah:

import namapackage.namaclass;

sebelum kode classnya.

Contoh 5

Sebagai contoh, misalkan akan dibuat package baru dalam project ‘Contoh2’

dengan nama ‘paketku’. Di dalam package ‘paketku’ ini akan dibuat class dengan nama ‘classku’. Selanjutnya di dalam class ‘classku’ dibuat sebuah method

(20)

dengannama ‘cetakHelloWorld’ untuk menampilkan pesan ‘Hello World’

Adapun cara membuat package baru dalam project ‘Contoh2’ ini adalah dengan mengklik kanan pada ‘Source Package’, lalu pilih NEW – JAVA PACKAGE

Gambar 4.23. Cara membuat package baru Kemudian isikan nama package yang akan dibuat, yaitu ‘paketku’

Gambar 4.24. Form pengisian package baru

Setelah package ‘paketku’ dibuat, buat class dengan nama ‘classku’. Caranya adalah dengan mengklik kanan pada package ‘paketku’, pilih NEW – JAVA CLASS.

Gambar 4.25. Tampilan pembuatan class baru Lalu isikan nama class yang akan dibuat yaitu ‘classku’

Gambar 4.26. Form pengisian class baru

(21)

Modul 2, Rekayasa Perangkat Lunak

Selanjutnya buat method cetakHelloWorld() di dalam class ‘classku’ yang sudah terbentuk sebagai berikut:

public class classku {

public void cetakHelloWorld() {

System.out.println("Hello World");

} }

Kemudian, misalkan di method main() dalam class ‘Contoh2’ akan lakukan instantisasi suatu obyek dari class ‘classku’ ini, maka sebelum proses instantisasi ini dilakukan terlebih dahulu tambahkan perintah,

import paketku.classku;

Sebelum class “Contoh2”nya (dalam file “Contoh2java’), perhatikan gambar berikut,

Gambar 4.27. Perintah import

Setelah menambahkan perintah import, barulah bisa lakukan proses instantisasi suatu obyek dari class ‘classku’. Misalkan:

package contoh2;

import paketku.classku;

public class Contoh2 {

public static void main(String[] args) { // instantisasi obyek ‘op1’

operasiBilangan op1 = new operasiBilangan();

op1.bilangan1 = 10;

op1.bilang an2 = 20;

op1.jumlah ();

op1.tampil Hasil();

// instantisasi obyek ‘op2’

operasiBilangan op2 = new operasiBilangan();

op2.bilangan1 = 30;

op2.bilang an2 = 25;

op2.jumlah

(22)

();

op2.tampil Hasil();

// instantitasi obyek ‘kelas’ dari class ‘classku’ classku kelas = new classku();

kelas.cetakHelloWorld();

} }

Mengapa sebelum instantisasi obyek ‘kelas’ yang termasuk class ‘classku’ ini perlu dilakukan import dari package ‘paketku’? Karena class ‘Contoh2’ ini beda package dengan class ‘classku’ di mana class ‘Contoh2’ ini ada di dalam package

‘contoh2’ sedangkan class ‘classku’ ada dalam package ‘paketku’.

Adapun output dari program java di atas adalah,

Gambar 4.28. Output project contoh 5 Input dan Output dalam Java

Dalam bagian ini akan dibahas cara membaca data input melalui console serta menampilkan outputnya juga melalui console.

Input Data Via Console

Untuk keperluan input data via console, perlu dibuat class khusus.

Contoh 6:

Sebagai contoh, berikut ini adalah sebuah pembuatan program Java untuk perhitungan gaji karyawan yang beberapa datanya diinput lewat console:

• Buat Project dengan nama ‘gajikaryawan’, untuk package nya juga diberi nama

‘gajikaryawan’

• Buat class ‘inputConsole” yang disimpan dalam file inputConsole.java

(23)

Modul 2, Rekayasa Perangkat Lunak

Gambar 4.29. Menu input console dengan isi kode sebagai berikut:

inputConsole.java import java.io.*;

public class inputConsole { // membaca data

string public String

bacaString() {

BufferedReader bfr = new BufferedReader(new InputStreamReader(System.in), 1); String string = "";

try {

string = bfr.readLine();

}

catch (IOException ex) {

System.out.println(ex);

}

return string;

}

// membaca data integer public int bacaInt()

{

return Integer.parseInt(bacaString());

}

// membaca data float public float

bacaFloat() {

return Float.parseFloat(bacaString());

}

// membaca data long integer public long bacaLong()

{

return Long.parseLong(bacaString());

} }

(24)

Secara umum, di dalam class ‘inputConsole’ tersebut, mekanisme method- method untuk membaca input dalam berbagai tipe data itu adalah membaca setiap input dalam bentuk string kemudian input string tersebut diubah ke tipe data yang bersesuaian.

• Selanjutnya buat beberapa kode di bawah ini pada class Gajikaryawan

public class Gajikaryawan {

public static void main(String[] args) { String

nama, kodekar

; int gapok, jmlanak

; float gaber, tunjana k;

inputConsole input1 = new inputConsole();

// input kode karyawan System.out.print("KODE KARYAWAN : "); kodekar = input1.bacaString();

// input nama karyawan System.out.print0;("NAMA KARYAWAN : "); nama = input1.bacaString();

// input gaji pokok karyawan System.out.print("GAJI POKOK: ");

gapok = input1.bacaInt();

// input jumlah anak System.out.print("JML ANAK: ");

jmlanak = input1.bacaInt();

// hitung tunjangan anak -> setiap anak 10% dari gaji pokok tunjanak = (float) ((float) gapok * 0.1 * jmlanak);

// hitung gaji bersih = gaji pokok + tunj anak gaber = gapok + tunjanak;

// output

System.out.println("NAMA KARYAWAN : "+nama+"("+

kodekar +")"); System.out.println("GAJI BERSIH : Rp. "+gaber);

} }

Output Via Console

Secara umum perintah untuk menampilkan output ke layar console adalah

System.out.println(string);

atau

(25)

Modul 2, Rekayasa Perangkat Lunak

System.out.print(string);

Perbedaan keduanya adalah jika dengan println() setelah menampilkan suatu string ke output console, maka terjadi perpindahan baris pada pointernya. Sedangkan untuk System.output.print() tidak terjadi perpindahan baris pointernya.

Mengatur Digit Presisi Bilangan Riil (Float)

Secara default, Java akan menampilkan bilangan riil atau float dalam bentuk 15 digit di belakang koma, misalnya:

System.out.print(22./7);

akan muncul hasil di layar, bilangan 3.142857142857143

Selanjutnya bagaimana jikaingin membatasi digit presisi di belakang komanya, misalnya hanya 3 digit saja? Caranya adalah dengan memanfaatkan built in class

‘DecimalFormat’ yang sudah tersedia dalam Java. Berikut ini contohnya, Contoh 7

Contoh program Java untuk menampilkan 3 digit di belakang koma untuk bilangan Phi (22/7)

import

java.text.DecimalForm at; public class Contoh2 {

public static void main(String[] args) {

// membuat obyek dari class DecimalFormat untuk 3 digit presisi DecimalFormat jmldigit = new

DecimalFormat("0.000"); System.out.println("Bilangan Pi: " + jmldigit.format(22./7));

} }

Class DecimalFormat ada dalam suatu package Java dengan nama

‘java.text.DecimalFormat’ sehingga di bagian atas program perlu ditambahkan perintah:

import java.text.DecimalFormat;

Input Data Via GUI (Graphics User Interface)

Selain via console, input data juga bisa dilakukan via GUI. Di dalam Java, untuk membuat aplikasi berbasis GUI bisa menggunakan SWING sebagai package nya,

(26)

sehingga di dalam program perlu melakukan import dengan perintah sebagai berikut:

import javax.swing.*;

Berikut ini contoh kode Java untuk menerima input melalui form GUI kemudian outputnya melalui console.

Contoh 8

Contoh program Java yang menerima input berupa nama (string) kemudian menampilkan nama yang tadi diinputkan via console.

import javax.swing .*; public class Contoh2 {

public static void main(String[] args) { String nama;

nama = JOptionPane.showInputDialog("Masukkan nama Anda"); System.out.println("Hallo selamat datang, " + nama);

} }

Tampilan dari kode di atas setelah dirunning adalah sebagai berikut:

Gambar 4.30. Contoh tampilan input melalui GUI dan outputnya:

Gambar 4.31. Output contoh 8 Contoh 9

Contoh program Java untuk menjumlahkan dua buah bilangan integer yang diinput melalui GUI kemudian menampilkan hasilnya via Message Dialog.

(27)

Modul 2, Rekayasa Perangkat Lunak

Import javax.swing .*; public class Contoh2 {

public static void main(String[] args) { int bil1; int bil2; int hasil;

// baca nilai bilangan ke-1 bil1 =

Integer.parseInt(JOptionPane.showInputDialog("Masukkan bilangan pertama"));

// baca nilai bilangan ke-2 bil2 =

Integer.parseInt(JOptionPane.showInputDialog("Masukkan bilangan kedua"));

// jumlahkan kedua

bilangan hasil = bil1 + bil2;

// tampilkan hasil penjumlahannya via message dialog JOptionPane.showMessageDialog(null, "Hasil

penjumlahannya:

"+hasil);

} }

Adapun tampilan program Java tersebut adalah sebagai berikut:

Gambar 4.32. Contoh input dan hasil project melalui GUI Struktur Kontrol Proses

Struktur kontrol proses bertujuan untuk dapat menentukan urutan statement/perintah yang akan dikerjakan atau diproses. Struktur kontrol proses ini antara lain:

Struktur Kontrol Kondisional

Struktur kontrol ini untuk menyatakan proses yang berbentuk persyaratan/kondisional.

Struktur Kontrol IF

Tata cara penulisan statement IF:

(28)

if (syarat) {

statement; statement;

. . }

Bisa juga berbentuk sebagai berikut,

if (syarat) {

statement; statement;

. . }

else {

statement; statement;

. . }

atau bisa juga berbentuk

if (syarat1) {

statement;

statement;

. . }

else if (syarat2) {

statement;

statement;

. .

}

else if (syarat3) {

statement;

statement;

} . . else { statement;

statement;

. .

}

(29)

Modul 2, Rekayasa Perangkat Lunak

Statement SWITCH

Struktur penulisan statement SWITCH adalah sebagai berikut:

switch(ekspresi) {

case variabel1 :statement;

statement;

. . break;

case variabel2 : statement;

statement;

. . break;

. .

Default : statement;

statement;

. .

}

Struktur Kontrol Perulangan (Looping)

Struktur kontrol perulangan digunakan untuk mengatur proses yang dijalankan secara berulang-ulang. Berikut ini beberapa statement yang dapat digunakan untuk mengatur proses perulangan:

Statement FOR

Aturan penulisan (syntax) nya adalah:

for(ekspresiawal; syarat; ekspresiakhir) {

statemen t;

statemen t;

. . }

Statement WHILE Aturan penulisannya:

while(syarat) {

statemen t;

statemen t;

. . }

(30)

Statement DO WHILE Aturan penulisanya:

do {

statemen t;

statemen t;

. . }

while (syarat);

Contoh 10

Dalam contoh ini, akan dibuat sebuah project untuk menentukan gaji bersih karyawan dengan ketentuan:

Gaji bersih = gaji pokok + tunjangan istri + tunjangan anak – potongan

Di mana tunjangan istri diberikan sebesar 10% dari gaji pokok, dan tunjangan anak adalah 5% dari tiap anak. Sedangkan potongannya adalah 5% dari total gaji pokok dan tunjangan-tunjangan.

Pertama buat dahulu project dengan nama misalnya: ‘projectGaji’

Gambar 4.33. Input nama project baru Selanjutnya desain class, method dan atributnya sebagai berikut:

Nama Class: ‘gaji’

Tabel 4.2. Struktur class ‘gaji’

Nama Atribut Sifat Tipe Data Keterangan kodeKaryawan Public String Kode karyawan namaKaryawan Public String Nama karyawan gajipokok Public Float Gaji pokok karyawan statusMenikah Public Char Status menikah ‘Y’ atau ‘N’

jmlAnak Public Integer Jumlah anak

(31)

Modul 2, Rekayasa Perangkat Lunak

Tabel 4.3. Struktur method ‘gaji’

Nama method Sifat Method Tipe Data

Return Value Keterangan hitungTunjIstri(char s)

s: status menikah (y/n)

Public (non void) Float Menghitung tunjangan istri hitungTunjAnak(int n)

n: jumlah anak

Public (non void) Float Menghitungan tunjangan anak hitungGajiBersih() Public (non void) Float Menghitung gaji

bersih hitungPotongan() Public (non void) Float Menghitung

potongan

Kemudian implementasikan desain di atas ke dalam bentuk coding di dalam class

‘gaji’

gaji.java

package projectgaji;

public class gaji {

// deklarasi untuk atribut class 'gaji' public String kodekaryawan;

public String namakaryawan;

public float gajiPokok;

public char statusMenikah;

public int jmlAnak;

// deklarasi untuk method dari class 'gaji' public float hitungTunjIstri(char s)

{

float tunjIstri = 0; if (s == 'y') if (s == 'y')

{

tunjIstri = (float) (0.1 * this.gajiPokok);

}

return tunjIstri;

}

public float hitungTunjAnak(int n) {

float tunjAnak;

tunjAnak = (float) (n * 0.05 * this.gajiPokok); return tunjAnak;

}

public float hitungPotongan() {

float jmlPotongan;

jmlPotongan = (float) (0.05 * (this.gajiPokok + this.hitungTunjAnak(this.jmlAnak) +

this.hitungTunjIstri(this.statusMenikah)));

return jmlPotongan;

}

public float hitungGajiBersih() {

float gaber;

gaber = (float) (this.gajiPokok + this.hitungTunjAnak(this.jmlAnak) +

(32)

this.hitungTunjIstri(this.statusMenikah) - this.hitungPotongan());

return gaber;

} }

Sedangkan berikut ini isi dari method main() dalam class projectGaji nya.

ProjectGaji.java

package projectgaji;

public class ProjectGaji {

public static void main(String[] args) { gaji g1 = new gaji();

g1.kodekaryawan = "K001";

g1.namakaryawan = "ROSIHAN ARI";

g1.statusMenikah = 'y';

g1.jmlAnak = 3;

g1.gajiPokok = 2500000;

System.out.println("=========================================

====");

System.out.println("KODE KARYAWAN : "+g1.kodekaryawan);

System.out.println("NAMA KARYAWAN : "+g1.namakaryawan);

System.out.println("STATUS MENIKAH : "+g1.statusMenikah);

System.out.format("GAJI POKOK : Rp %10.1f \n", g1.gajiPokok);

System.out.println("======================================");

System.out.format("TUNJANGAN ISTRI : Rp %10.1f \n", g1.hitungTunjIstri(g1.statusMenikah));

System.out.format("TUNJANGAN ANAK : Rp %10.1f

\n", g1.hitungTunjAnak(g1.jmlAnak));

System.out.format("POTONGAN : Rp %10.1f \n",

g1.hitungPotongan());

System.out.println("======================================");

System.out.format("GAJI BERSIH : Rp %10.1f

\n", g1.hitungGajiBersih());

System.out.println("======================================");

} }

Keterangan:

Perintah System.out.format() digunakan untuk memformat tampilan, khususnya untuk pengaturan bilangan yang dalam contoh di atas digunakan untuk memformat tampilan bilangan riil dengan 1 digit angka di belakang koma (%10.1f). Perintah ini sebagai alternatif cara untuk memformat tampilan output selain yang pernah di bahas di bab sebelumnya.

Sedangkan berikut ini tampilan output dari program Javanya

(33)

Modul 2, Rekayasa Perangkat Lunak

Gambar 4.34. Output project contoh 10 Constructor

Di dalam OOP, ada istilah ‘constructor’. ‘Constructor’ ini melekat pada suatu class, sehingga bisa menset beberapa nilai atribut sekaligus dari suatu obyek ketika proses instansiasi. Jika sebelumnya setiap ingin menset nilai atribut dari sebuah obyek, maka prosesnya adalah instansiasi baru set nilai atribut, namun dengan

‘constructor’ ini kedua langkah tersebut bisa dijadikan dalam satu langkah saja.

Contoh 11

Berikut ini contoh constructor yang ada dalam sebuah class. Perhatikan contoh class

‘operasi’ berikut ini

public class operasi { public int

bil1;

public int bil2;

public int hasil;

private void jumlahkan() {

this.hasil = this.bil1 + this.bil2;

}

public void tampilhasil() {

System.out.println("Hasil penjumlahannya : " + this.hasil);

} }

Apabila ingin menjumlahkan 2 bilangan misalnya 10 dan 20, maka lakukan perintah sebagai berikut:

(34)

operasi op1 = new operasi();

op1.bil1 = 10;

op1.bil2 = 20;

op1.jumlahkan();

op1.tampilhasil();

Selanjutnya, misalkan buat constructor sebagai berikut:

public class operasi { public int

bil1;

public int bil2;

public int hasil;

// constructor class operasi public

operasi(int x, int y)

{

this.bil1 = x;

this.bil2 = y;

}

public void jumlahkan() {

this.hasil = this.bil1 + this.bil2;

}

public void tampilhasil() {

System.out.println("Hasil penjumlahannya : " + this.hasil);

} }

Setelah dibuat constructor, selanjutnya berikan perintah berikut ini,

operasi op1 = new operasi(10, 20);

untuk proses instansiasi sekaligus menset atribut bil1 dan bil2 nya, sehingga secara umum perintah untuk menjumlahkan dua bilangannya adalah sebagai berikut:

operasi op1 = new operasi(10, 20);

op1.jumlahkan();

op1.tampilhasil();

Larik (Array)

Seperti halnya bahasa pemrogaman yang lain, di dalam Java juga ada penggunaan

(35)

Modul 2, Rekayasa Perangkat Lunak

Array. Di dalam java nomor indeks suatu array dimulai dari 0.

Berikut ini cara mendeklarasikan sebuah array dengan n buah elemen

tipedata[] namaarray = new tipedata[n];

Sebagai contoh, perhatikan perintah berikut ini untuk membuat array dengan nama arrayku bertipe data integer dengan jumlah elemennya 10.

int[] arrayku = new int[10];

Pewarisan (Inheritance)

Di dalam Java, sifat suatu class dapat diturunkan atau diwariskan pada sebuah class lain. Istilah sifat yang diwariskan ini adalah atribut atau method.

Class yang sifatnya diwariskan ini dinamakan superclass, dan class yang sifatnya mewarisi class lain dinamakan subclass.

Pewarisan ini merupakan keuntungan dalam PBO karena suatu sifat atau method yang didefinisikan dalam suatu superclass dapat diwariskan pada semua subclassnya. Sehingga di dalam subclass tersebut tidak perlu menulis kode program lagi untuk method tersebut.

Misalkan diberikan sebuah class dengan nama ‘kendaraan’ sebagai berikut::

public class kendaraan {

public int jmlRoda; public int jmlSeat;

public String nama;

public void tampilJmlRoda() {

System.out.println(this.nama + " jumlah rodanya:

" + this.jmlRoda);

}

public void tampilJmlSeat() {

System.out.println(this.nama + "

jumlah seat: " + this.jmlSeat);

} }

Selanjutnya buat class di file yang lain yang merupakan turunan atau warisan dari class ‘kendaraan’ tersebut dengan nama ‘keretaApi’. Dalam hal ini class

(36)

‘kendaraan’ disebut superclass, dan ‘keretaApi’ adalah subclass.

public class keretaApi extends kendaraan { public int jmlGerbong;

public void tampilJmlGerbong() {

System.out.println(this.nama + " jumlah gerbongnya "

+ this.jmlGerbong);

}

Perhatikan, di dalam class ‘keretaApi’ terdapat atribut tambahan yaitu

‘jmlgerbong’ dan method ‘tampilJmlGerbong’.

Sekarang, bagaimana cara menggunakan kedua class tersebut? Perhatikan contohnya berikut ini,

Public static void main(String[] args) { kendaraan ob1 = new

kendaraan(); ob1.nama

= "Kijang Innova";

ob1.jmlRoda = 4;

ob1.jmlSeat = 6;

ob1.tampilJmlRoda();

ob1.tampilJmlSeat();

keretaApi ob2 = new keretaApi(); ob2.nama

= "KA. Argo Lawu";

ob2.jmlRoda = 100;

ob2.jmlSeat = 500;

ob2.jmlGerbong = 20;

ob2.tampilJmlGerbong(

);

ob2.tampilJmlRoda();

ob2.tampilJmlSeat();

}

Perhatikan contoh di atas, bahwa obyek ‘ob2’ dari instansiasi class ‘keretaApi’

bisa diset atribut- atributnya seperti halnya ‘ob1’, demikian juga method- methodnya. Khusus atribut ‘jmlGerbong’ dan method ‘tampilJmlGerbong()’

hanya dimiliki oleh class ‘keretaApi’ saja.

Keterangan:

(37)

Modul 2, Rekayasa Perangkat Lunak

Semua atribut dan method dari superclass yang memiliki modifier ‘public’ akan bisa langsung diwariskan pada subclassnya, demikian juga ‘protected’ namun dengan syarat subclass dan superclass nya berada dalam package yang sama.

Overriding Method

Misalkan terdapat sebuah superclass sebagai berikut,

public class superclass1 { public int atribut1;

public int atribut2;

public void method1() {

System.out.println("Ini adalah hasil method1() superclass");

} }

Kemudian buat beberapa subclass dari superclass di atas, yaitu,

public class subclass1 extends superclass1 { public void method1()

{

System.out.println("Ini adalah hasil method1() subclass1");

} }

Dan

public class subclass2 extends superclass1 {

public void method1() {

System.out.println("Ini adalah hasil method1() subclass2");

} }

Jika diperhatikan, maka baik di superclass maupun di subclass1 dan subclass2 terdapat method dengan nama yang sama yaitu method1(). Dalam hal ini, method1() yang ada di subclass1 dikatakan overriding method dari method1() yang ada di superclass1. Demikian juga untuk method1() yang ada di subclass2. Jika suatu obyek diinstasiasikan dari class subclass1, dan kemudian obyek tersebut

(38)

diberikan method method1() maka akan memanggil method1() yang ada dalam subclass1 tersebut karena sudah mengoverride method1() yang ada di superclass1.

Berikut ini contoh implementasinya untuk beberapa obyek dari class yang berbeda

public static void main(String[] args) { superclass1 ob1 = new

superclass1(); subclass1 ob2

= new subclass1(); subclass2 ob3 = new subclass2();

// memanggil method1 dari superclass1 ob1.method1();

// memanggil method1 dari subclass1 ob2.method1();

// memanggil method1 dari subclass2 ob3.method1();

}

Akan menghasilkan output:

Polimorfisme

Istilah polimorfisme secara umum adalah suatu materi yang bisa memiliki banyak bentuk. Dalam PBO, istilah polimorfisme adalah kemampuan untuk mendefinisikan karakteristik subclass-subclass secara unik. Untuk contoh gambaran dari kemampuan polimorfisme dalam Java ini, adalah tinjau kembali superclass1, subclass1 dan subclass2 dari bab Overriding Method.

Selanjutnya di main method-nya, seperti berikut ini,

public static void main(String[] args) { superclass1 ob1, ob2, ob3;

ob1 = new superclass1();

ob2 = new subclass1();

ob3 = new subclass2();

ob1.method1();

ob2.method1();

ob3.method1();

}

Perhatikan pada perintah:

superclass1 ob1, ob2, ob3;

(39)

Modul 2, Rekayasa Perangkat Lunak

Meskipun ob1, ob2, dan ob3 didefinisikan sebagai tipe data superclass1 yang sama, namun method method1() yang dipanggil dari tiap-tiap obyek melalui perintah:

ob1.method1();

ob2.method1();

ob3.method1();

Menghasilkan output yang berbeda-beda:

Hal ini dikarenakan sebelum pemanggilan method method1() untuk setiap obyeknya, terlebih dahulu instansiasi masing-masing obyeknya untuk class yang berbeda:

ob1 = new superclass1();

ob2 = new subclass1();

ob3 = new subclass2();

Exception Handling

Exception adalah peristiwa yang terjadi ketika proses running program yang mengakibatkan program berhenti, ditandai dengan munculnya pesan error.

Sebagai contoh, misalkan program Java sebagai berikut:

public static void main(String[] args) { int bilBulat;

bilBulat =

Integer.parseInt(JOptionPane.showInputDialog("Masukkan bilangan bulat"));

} }

Ketika program sederhana di atas dijalankan, maka akan meminta masukan sebuah bilangan bulat (integer). Namun, apa yang akan terjadi jika yang dimasukkan bukan bilangan bulat?

(40)

atau

Maka selanjutnya akan muncul pesan error exception sebagai berikut:

Untuk mengantisipasi munculnya exception tersebut, bisa dilakukan penanganan dengan statement:

try {

...

}

catch (namaexception var) {

...

}

Keterangan:

- ‘namaexception’ nantinya diisikan dengan nama exception yang muncul, dalam contoh kasus sebelumnya yang merupakan nama exception adalah

‘NumberFormatException’

- Secara umum, bisa digunakan keyword ‘Exception’ pada ‘namaexception’

untuk menangkap semua exception yang terjadi. Keyword ‘Exception’ adalah top level dari semua exception.

Sedangkan ‘var’ diisikan dengan sembarang nama variabel.

Dengan statement try-catch di atas, maka pesan error exception tidak akan muncul

(41)

Modul 2, Rekayasa Perangkat Lunak

namun akan digantikan dengan pesan atau prosedur lain yang dituliskan dalam bagian catch.

Berikut ini contoh penanganan exception dari kasus sebelumnya.

try {

bilBulat =

Integer.parseInt(JOptionPane.showInputDialog("Masukkan bilangan bulat"));

}

catch (NumberFormatException e) {

JOptionPane.showMessageDialog(null, "Input salah");

}

Dengan penanganan di atas, maka ketika input yang dimasukkan bukan bilangan bulat maka akan muncul pesan ‘Input Salah’.

Blok try-catch juga dapat berbentuk sebagai berikut:

try {

...

}

catch (exception1 var1) {

...

}

catch (exception2 var2) {

...

} . .

catch (exceptionn varn) {

...

}

Blok try-catch juga dapat diletakkan di sembarang struktur control, misalnya dalam looping.

public static void main(String[] args) { int bil1, bil2;

// selama input untuk bil1 bukan bilangan bulat // maka akan terus

mengulang input while (true)

{

try {

(42)

bil1 =

Integer.parseInt(JOptionPane.showInputDialog(

"Masukkan Bilangan 1 (Integer)"));

break;

}

catch (Exception e) {

JOptionPane.showMessageDialog(null, "Bukan bilangan integer");

} {

// selama input untuk bil2 bukan bilangan bulat // maka akan terus mengulang input

while (true) {

try {

bil2 =

Integer.parseInt(JOptionPane.showInputDialog("Masukkan Bilangan 2 (Integer)"));

break;

}

catch (Exception e) {

JOptionPane.showMessageDialog(null, "Bukan bilangan integer");

} }

JOptionPane.showMessageDialog(null, "Hasil penjumlahannya: " + (bil1+bil2));

} b. Error Handling

Error handling atau sering juga disebut exception handling merupakan mekanisme yang paling diperlukan dalam menangani error yang terjadi pada saat runtime (program berjalan) atau yang lebih dikenal dengan sebutan runtime error.

Secara umum, adanya kesalahan yang terjadi pada program pada saat runtime dapat menyebabkan program berhenti atau hang. Untuk itulah diperlukan mekanisme untuk memastikan bahwa program tetap dapat berjalan meskipun terdapat kesalahan yang terjadi.

Secara umum, exception handling yang dijelaskan pada KB ini adalah exception handling pada pemrograman java yang dilakukan menggunakan keyword try-catch.

(43)

Modul 2, Rekayasa Perangkat Lunak

Tabel 4. 4. Fungsi pada exception handling Kata kunci Deskripsi

try Digunakan untuk menentukan bagian statement program dimana akan terjadi pengecualian. Blok dari try ini harus diikuti dengan catch atau finally

catch Digunakan untuk menangani kesalahan/pengecualian yang terjadi. Blok catch ini dapat berdiri sendiri tanpa blok try.

Blok catch dapat diikuti oleh blok finally

finally Digunakan untuk mengeksekusi bagian code yang penting dari program. Bagian iji akan tetap dijalankan baik terjadi pengecualian maupun tidak.

throw Digunakan untuk melempar pengecualian yang terjadi, dimana throw digunakan dalam body dari code yang ada throws Digunakan untuk mendeklarasikan pengecualian yang akan

terjadi pada bagian fungsi tersebut.

Berikut ini beberapa contoh kesalahan yang terjadi terjadi, yaitu:

• Pembagian bilangan dengan 0

• Pengisian elemen array diluar ukuran array

Kegagaalan koneksi database

File yang akan dibuka tidak exist

Operand yang akan dimanipulasi out of prescribed range

• Mengakses obyek yang belum diinisialisasi Common exception terdiri atas:

• Arithmetic exception

Hasil dari operasi divide-by-zero pada integer Misal : int i = 12/0;

• Null pointer exception

Mencoba mengakses atribut atau method suatu objek padahal objek belum dibuat.

Misal : Date d = null;

System.out.println(d.toString());

• Negative array size exception

Mencoba membuat array dengan ukuran negatif.

ArrayIndexOutOfBoundsException

(44)

Mencoba mengakses elemen array dimana index nya melebihi ukuran array.

• Security exception

Biasanya Biasanya dilempar dilempar ke browser, class security manager browser, class security manager melempar melempar exception untuk applet yang mencoba melakukan:

Mengakses lokal file

Open socket ke host yang berbeda dengan host yang diopen oleh applet Berikut ini contoh exception,

Class DivByZero {

public static void main(String args[]) { System.out.println(3/0);

System out println(Pls.print me”);

} }

• Menampilkan pesan error

Exception in thread "main“ java.lang.ArithmeticException:/by zero at DivByZero.main(DivByZero.java:3)

Jika terjadi kesalahan, maka akan terjadi kejadian berikut:

• Secara otomatis akan dilempar sebuah object yang disebut dengan exception.

• Exception dapat diproses lebih lanjut oleh fungsi-fungsi yang siap menangani menangani kesalahan kesalahan.

• Proses pelemparan exception disebut dengan throwing exception.

• Proses penerimaan exception disebut dengan cath exception.

Contoh berikut ini menunjukkan kejadian error yang merupakan cara lama, yaitu loading loading file from the disk.

int status = loadTexfile();

If (status != 1) { If (status != 1) {

// something unusual happened, describe it switch (status) { case 2: // file not found

break;

case 3: //disk error break; case 4:

case 4: //file corrupted break;

default: // other error }

} else {

// file loaded OK, continue with program

Gambar

Gambar 4.3. Tampilan installer JDK+Netbeans  Klik NEXT
Gambar 4.6. Tampilan penentuan PATH instalasi JDK+Netbeans  Tentukan PATH untuk NetBeans IDE
Gambar 4.8. Tampilan awal Netbeans
Gambar 4.11. Tampilan tempat menyisipkan perintah
+7

Referensi

Dokumen terkait

Hasil penelitian ini sama dengan penelitian yang dilakukan oleh Yemima (2013) tentang mekanisme koping pada pasien penyakit ginjal kronik yang menjalani terapi

Crash program merupakan cara melakukan percepatan dengan perkiraan biaya yang dibutuhkan untuk mereduksi waktu pekerjaan pada lintasan kritis.Perhitungan dimulai

Modul Serial Control sudah mendukung perpustakaan untuk mengelola lebih dari satu kopi langganan (dari lebih dari satu vendor) untuk setiap judul majalah. Fungsi

sektor Publik yang terkait termasuk Kepolisian Selandia Baru, Korporasi Kompensasi Kecelakaan, Kementerian Kehakiman, Imigrasi Selandia Baru dan organisasi non- pemerintah

Plant Growth Promoting Rhizobacteria (PGPR) pertama kali didefinisikan oleh Kloepper dan Schroth (1978) untuk mendeskripsikan bakteri tanah yang berkumpul di akar setelah

Kawasan padat penduduk di Kecamatan Wates Kabupaten Kulonprogo merupakan kawasan yang menjadi pusat berbagai jenis kegiatan masyarakat. Kawasan ini juga mempunyai potensi

(2000) menyatakan bahwa ekuitas merek selain dibentuk oleh dimensi ekuitas seperti kesadaran merek, asosiasi merek, kesan kualitas, dan loyalitas merek juga

D-IV TEKNIK OTOMOTIF ELEKTRONIK | JURUSAN TEKNIK MESIN 4.. keruang ser'is yang nantinya akan di layani oleh !A ) Service Advisor * tugas !A sendiri yaitu mendata