Anda di halaman 1dari 103

Modul 2, Rekayasa Perangkat Lunak

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


124
Infomasi
Modul 2, Rekayasa Perangkat Lunak

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

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

125 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


126
Infomasi
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

127 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

d. Desain user interface


e. Model MVC dalam pengembangan aplikasi

3. Uraian Materi
a. Konsep Pemrograman Berorientasi Objek
Object-oriented programming atau OOP adalah suatu metode pemrograman
yang berorientasi pada objek. Program-program yang telah ada merupakan
gabungan dari beberapa komponen-komponen kecil yang sudah ada sebelumnya.
Hal itu dapat mempermudah pekerjaan seorang programmer dalam melakukan
pengembangan program.
Objek-objek yang saling berkaitan dan disusun kedalam satu kelompok ini
disebut dengan clas, nantinya, objek-objek tersebut akan saling berinteraksi untuk
menyelesaikan masalah program yang rumit. Jika sebelumnya developer harus
berfokus pada logic yang akan dimanipulasi, dengan OOP, developer dapat lebih
terfokus pada objeknya saja untuk dimanipulasi. Pendekatan ini menawarkan cara
yang mudah untuk menangani kerumitan suatu pemrograman. Tujuan utama OOP
adalah untuk mengatasi kelemahan pendekatan pemrograman konvensional.
Dalam object oriented programming, dikenal empat prinsip yang menjadi
dasar penggunaannya. Merangkum Freecodecamp, keempat prinsip OOP tersebut
adalah sebagai berikut:
1) Encapsulation
Encapsulation atau pengkapsulan adalah konsep tentang pengikatan data atau
metode berbeda yang disatukan atau “dikapsulkan” menjadi satu unit data.
Maksudnya, berbagai objek yang berada dalam class tersebut dapat berdiri
sendiri tanpa terpengaruh oleh yang lainnya. Encapsulation dapat
mempermudah pembacaan kode. Hal tersebut terjadi karena informasi yang
disajikan tidak perlu dibaca secara rinci dan sudah merupakan satu kesatuan.
Proses enkapsulasi mempermudah untuk menggunakan sebuah objek dari suatu
kelas karena kita tidak perlu mengetahui segala hal secara rinci.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


128
Infomasi
Modul 2, Rekayasa Perangkat Lunak

2) Abstraction
Prinsip selanjutnya yaitu abstraction. Prinsip ini sendiri berarti memungkinkam
seorang developer memerintahkan suatu fungsi, tanpa harus mengetahui
bagaimana fungsi tersebut bekerja. Lebih lanjut, abstraction berarti
menyembunyikan detail latar belakang dan hanya mewakili informasi yang
diperlukan untuk dunia luar. Ini adalah proses penyederhanaan konsep dunia
nyata menjadi komponen yang mutlak diperlukan. Seperti kala menggunakan
handphone, kamu cukup memberikan suatu perintah, tanpa tahu bagaimana
proses terlaksananya perintah tersebut.
3) Inheritance
Inheritance dalam konsep OOP adalah kemampuan untuk membentuk class
baru yang memiliki fungsi turunan atau mirip dengan fungsi yang ada
sebelumnya. Konsep ini menggunakan sistem hierarki atau bertingkat.
Maksudnya, semakin jauh turunan atau subclass-nya, maka semakin sedikit
kemiripan fungsinya.
4) Polymorphism
Prinsip terakhir dalam OOP adalah polymorphism. Pada dasarnya
polymorphism adalah kemampuan suatu pesan atau data untuk diproses lebih
dari satu bentuk. Salah satu ciri utama dari OOP adalah adanya polymorphism.
Tanpa hal ini, suatu pemrograman tidak bisa dikatakan sebagai OOP.
Polymorphism sendiri adalah konsep di mana suatu objek yang berbeda-beda
dapat diakses melalui interface yang sama. Sebagai contoh, kamu memiliki
fungsi untuk menghitung luas suatu benda, sementara benda tersebut berbentuk
segitiga, lingkaran, dan persegi. Tentu, ketiga benda tersebut memiliki rumus
perhitungan tersendiri. Dengan polymorphism, kamu dapat memasukkan fungsi
perhitungan luas ke tiga benda tersebut, dengan tiap benda memiliki metode
perhitungannya sendiri. Ini tentu akan mempermudah perintah yang sama
untuk beberapa class atau subclass tertentu.
Pemrograman berorientasi objek bisa digunakan jika tahap penulisan kode
program sudah mencapai tingkat kerumitan yang tinggi. Hal ini biasanya terjadi
pada bahasa pemrograman yang tingkatan bahasa pemrogramannya termasuk

129 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

tinggi, sehingga membutuhkan penulisan yang lebih kompleks. Macam-macam


bahasa pemrograman yang cocok untuk penerapan metode OOP adalah sebagai
berikut:
1) Visual Foxpro
2) Java
3) C++
4) Pascal (bahasa pemrograman)
5) Visual Basic.NET
6) SIMULA
7) Smalltalk
8) Ruby
9) Python
10) PHP
11) C#
12) Delphi
13) Eiffel
14) Perl
15) Adobe Flash AS 3.0
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.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


130
Infomasi
Modul 2, Rekayasa Perangkat Lunak

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:
1) Java SE (Standard Edition), yang khusus digunakan untuk pengembangan
aplikasiaplikasi pada PC atau workstation.
2) Java ME (Micro Edition), yaitu khusus digunakan untuk pengembangan
aplikasi-aplikasi yang ada di perangkat mobile spt HP, smartphone, PDA,
tablet dan sebagainya.
3) 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:
1) 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.
2) 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

131 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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

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

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


132
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Gambar 4.5. Tampilan pilihan lokasi instalasi JDK+Netbeans


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

133 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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

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.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


134
Infomasi
Modul 2, Rekayasa Perangkat Lunak

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
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:

135 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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.

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

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


136
Infomasi
Modul 2, Rekayasa Perangkat Lunak

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:
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’

137 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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";
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,

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


138
Infomasi
Modul 2, Rekayasa Perangkat Lunak

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.
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 {
.
.
.
}

139 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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
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

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


140
Infomasi
Modul 2, Rekayasa Perangkat Lunak

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

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

141 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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

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;

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


142
Infomasi
Modul 2, Rekayasa Perangkat Lunak

}
// 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.
- 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:

143 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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();

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;

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


144
Infomasi
Modul 2, Rekayasa Perangkat Lunak

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,

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

145 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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
dengan nama ‘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.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


146
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Gambar 4.25. Tampilan pembuatan class baru


Lalu isikan nama class yang akan dibuat yaitu ‘classku’

Gambar 4.26. Form pengisian class baru

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’

147 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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
();
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

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


148
Infomasi
Modul 2, Rekayasa Perangkat Lunak

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

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());
}

149 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

// membaca data long


integer public long
bacaLong()
{
return Long.parseLong(bacaString());
}
}

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);
}
}

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


150
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Output Via Console


Secara umum perintah untuk menampilkan output ke layar console adalah
System.out.println(string);
atau
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;

151 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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,
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

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


152
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Contoh 9
Contoh program Java untuk menjumlahkan dua buah bilangan integer yang diinput
melalui GUI kemudian menampilkan hasilnya via Message Dialog.
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

153 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

persyaratan/kondisional.

Struktur Kontrol IF
Tata cara penulisan statement IF:
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;

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


154
Infomasi
Modul 2, Rekayasa Perangkat Lunak

statement;
.
.
}

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)
{

155 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

statemen
t;
statemen
t;
.
.
}

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

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


156
Infomasi
Modul 2, Rekayasa Perangkat Lunak

namaKaryawan Public String Nama karyawan


gajipokok Public Float Gaji pokok karyawan
statusMenikah Public Char Status menikah ‘Y’ atau ‘N’
jmlAnak Public Integer Jumlah anak

Tabel 4.3. Struktur method ‘gaji’

Tipe Data
Nama method Sifat Method Keterangan
Return Value
hitungTunjIstri(char s) Public (non void) Float Menghitung
s: status menikah (y/n) tunjangan istri
hitungTunjAnak(int n) Public (non void) Float Menghitungan
n: jumlah anak 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)));

157 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

return jmlPotongan;
}
public float hitungGajiBersih()
{
float gaber;
gaber = (float) (this.gajiPokok +
this.hitungTunjAnak(this.jmlAnak) +
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

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


158
Infomasi
Modul 2, Rekayasa Perangkat Lunak

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

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);
}
}

159 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

Apabila ingin menjumlahkan 2 bilangan misalnya 10 dan 20, maka lakukan


perintah sebagai berikut:

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);

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


160
Infomasi
Modul 2, Rekayasa Perangkat Lunak

op1.jumlahkan();
op1.tampilhasil();

Larik (Array)
Seperti halnya bahasa pemrogaman yang lain, di dalam Java juga ada penggunaan
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);

161 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

}
}
Selanjutnya buat class di file yang lain yang merupakan turunan atau warisan dari
class ‘kendaraan’ tersebut dengan nama ‘keretaApi’. Dalam hal ini class
‘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.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


162
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Keterangan:
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

163 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

ada di superclass1. Demikian juga untuk method1() yang ada di subclass2. Jika
suatu obyek diinstasiasikan dari class subclass1, dan kemudian obyek tersebut
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:

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


164
Infomasi
Modul 2, Rekayasa Perangkat Lunak

superclass1 ob1, ob2, ob3;

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?

165 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


166
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Sedangkan ‘var’ diisikan dengan sembarang nama variabel.


Dengan statement try-catch di atas, maka pesan error exception tidak akan muncul
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.

167 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

public static void main(String[] args) {


int bil1, bil2;
// selama input untuk bil1 bukan bilangan bulat
// maka akan terus
mengulang input while
(true)
{
try
{
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.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


168
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Secara umum, exception handling yang dijelaskan pada KB ini adalah


exception handling pada pemrograman java yang dilakukan menggunakan keyword
try-catch.

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

169 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

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
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.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


170
Infomasi
Modul 2, Rekayasa Perangkat Lunak

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
}

Contoh programnya adalah.


Fungsi bacaFile
BukaFile
BacaBarisFileSampaiHabis
TutupFile

Selanjutnya ditambahkan program untuk pengecekan berhasil tidaknya pembacaan


file,
Fungsi bacaFile
BukaFile
Jika Gagal Buka File
Lakukan Sesuatu
Jika Berhasil Buka File
BacaBarisFileSampaiHabis
TutupFile
Keterangan
• Bagaimana bila ditambahkan program untuk pengecekan terhadap status
pembacaan file?
• Bagaimana bila ditambahkan program untuk pengecekan terhadap status
penutupan file?
• Maka pgroram akan menjadi sangat panjang dan banyak terdapat nested if-
else.
Solusi menangani kejadian di atas adalah dengan menggunakan exception
Bentuk:
try {
………
} catch (ExceptionType x) {
………
}

Keterangan:

171 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

• Blok try digunakan digunakan untuk menempatkan menempatkan kode-kode


program java yang mengandung kode program yang mungkin melemparkan
exception.
• Blok catch digunakan untuk menempatkan kode-kode program java yang
digunakan untuk menangani sebuah exception tertentu.

Berikut ini contoh implementasintya,


try {
Fungsi bacaFile
BukaFile
BacaBarisFileSampaiHabis
TutupFile
} catch (KesalahanBukaFile) {
// lakukan sesuatu
}

Try Dengan Banyak Catch


Try dengan banyak catch dapat digunakan beberapa blok catch untuk satu blok try.
Exception dalam satu program bisa mengatasi banyak exception.
Contoh implementasi:
Misal dalam satu blok try terdapat kemungkinan terjadi:
NullPointerException
IndexOutOfBoundsException
ArithmeticException
Implementasi 1
try {
………
} catch (ExceptionType1 x1{
………..
} catch (ExceptionType2 x2{
………
}

Implementasi 2
try {
Fungsi bacaFile
BukaFile
BacaBarisFileSampaiHabis
TutupFile
} catch (KesalahanBukaFile) {

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


172
Infomasi
Modul 2, Rekayasa Perangkat Lunak

// lakukan sesuatu
} catch (KesalahanAlokasiMemori) {
// lakukan sesuatu
} catch (KesalahanTutupFile) {
// lakukan sesuatu
}

Checked/Unchecked Exceptions
Checked/unchecked exceptions terdiri atas beberapa jenis, yaitu:
• Exception bisa checked atau unchecked
- Checked = dicek oleh the compiler
• Checked exception hanya dapat ditangani dalam try block atau method yang
didesain didesain untuk melempar melempar exception.
• Compiler akan memberitahu jika checked exception tidak ditangani secara tepat
Contoh : IOException.
• Unchecked exception tidak memerlukan penanganan langsung . Pada saat
dicompile tidak ada pemberitahuan kesalahan.
Contoh : RunTimeException dan turunannya

Melempar Exception ‐ Throw


Java memperbolehkan untuk melempar exception (generate exception)
throw <exception object>;
Exception yang dilempar adalah sebuah object exception (object exception yang
sudah disediakan oleh java atau yang di create sendiri)
• Contoh:
throw new ArithmeticException(“testing...”)

Contoh,

173 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

Mendefinisikan method yang menghasilkan exception:


• Dilakukan bila method tidak ingin menangani exception sendiri.
• Method tertentu dalam program mungkin akan menghasilkan error yang tidak
dikenali secara otomatis oleh Java Virtual Machine.
• Berlaku bagi kategori exception yang bukan subclass dari RunTimeException.
Contoh: EOFException, MallformedURLException
• Dengan cara membuat method yang dapat melempar exception.
• Sintaks

<type> <methodeName> (<paramaterList>)


Throws <exception>{
<methodeBody>
}

Contoh method yang mendefinisikan exception


Class methodKu{
public Image loadImage(String s)
throws EOFException, MalformedURLException {
If(kondisierroryangterjadi)
throw new EOFException()
}
}

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


174
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Exception Propagation
Exception dapat ditangani pada tingkat yang lebih tinggi, jika di tempat
terjadinya terjadinya exception exception tidak ditangani ditangani secara tepat.
Exception merambat naik (propagate up) melalui method calling hierarchy sampai
exception ditangkap atau sampai mencapai level method main.

void method1 throws IOException {


throw new IOException("Error in method1");
}
void method2 throws IOException {
// do stuff, but no catch, just specify method1();
}
void method3 throws IOException {
// do stuff, but no catch, just specify method2();
}
public static void main (String args[]){
// catch if just specify error to console try {
method3();
} catch (IOException e){
// handle the exception from method1
}
}

Object Exception
Object exception yang dihasilkan dihasilkan dapat dimanfaatkan untuk
mengetahui lebih lanjut mengenai error atau exception yang terjadi. Exception
merupakan subclass dari class Throwable.
Berikut ini merupakan method yang diwarisi oleh exception:
• getMessage()

175 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

Method ini mengembalikan mengembalikan isi pesan untuk menggambarkan


menggambarkan exception yang terjadi
• printStackTrace()
Method ini menampilkan menampilkan pesan error dan stack trace ke standard
standard error output stream yang biasanya merupakan konsol window apabila
program merupakan program konsol.
• printStackTrace(PrintStreams)
Method ini mengembalikan pesan error ke objek PrintStream yang dijadikan
parameter. Apabila ingin menampilkan pesan ke konsol, anda dapat
menggunakan ystem.out sebagai parameter.

Overriding Method dan Exception


Overriding method hanya boleh melempar exception yang merupakan
subclass dari exeption yang dilempar oleh overriden method atau sama. Overriding
method boleh mendeklarasikan exception lebih sedikit dari jumlah exception
kepunyaan overridden method kepunyaan overridden method.
Catatan;
• Overriding method =method yang mengoveride.
• Overridden method = method yang dioveride.
Berikut ini adalah contoh methode overriding

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


176
Infomasi
Modul 2, Rekayasa Perangkat Lunak

• Class TestB1 → ok karena ArithmeticException merupakan subclass dari


RuntimeException.
• Class TestB2 → error karena Exception merupakan superclass dari
RuntimeException.

• Class TestMultiB1 → ok karena FileNotFoundException dan


UTFDDataFormatException merupa kan subclass dan IOException
• Arithmetic Exception merupakan subclass dari RuntimeException.

c. Koneksi Database Server Melalui Client-Server


Klien-server atau client-server merupakan sebuah paradigma dalam
teknologi informasi yang merujuk kepada cara untuk mendistribusikan aplikasi ke
dalam dua pihak: pihak klien dan pihak server.
Dalam model klien/server, sebuah aplikasi dibagi menjadi dua bagian yang
terpisah, tetapi masih merupakan sebuah kesatuan yakni komponen klien dan
komponen server. Komponen klien juga sering disebut sebagai front-end,
sementara komponen server disebut sebagai back-end. Komponen klien dari
aplikasi tersebut dijalankan dalam sebuah workstation dan menerima masukan data
dari pengguna. Komponen klien tersebut akan menyiapkan data yang dimasukkan
oleh pengguna dengan menggunakan teknologi pemrosesan tertentu dan
mengirimkannya kepada komponen server yang dijalankan di atas mesin server,

177 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

umumnya dalam bentuk request terhadap beberapa layanan yang dimiliki oleh
server. Komponen server akan menerima request dari klien, dan langsung
memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada klien. Klien
pun menerima informasi hasil pemrosesan data yang dilakukan server dan
menampilkannya kepada pengguna, dengan menggunakan aplikasi yang
berinteraksi dengan pengguna.
Sebuah contoh dari aplikasi client/server sederhana adalah aplikasi web
yang didesain dengan menggunakan Active Server Pages (ASP) atau PHP. Script
PHP atau ASP akan dijalankan di dalam web server (Apache atau Internet
Information Services), sementara skrip yang berjalan di pihak klien akan dijalankan
oleh web browser pada komputer klien. Klien-server merupakan penyelesaian
masalah pada software yang menggunakan database sehingga setiap komputer tidak
perlu diinstall database, dengan metode klien-server database dapat diinstal pada
suatu komputer sebagai server dan aplikasinya diinstal pada client. Dengan
menggunakan client server database hanya dapat diakses oleh komputer server,
dimana komputer tersebut hanya dapat diakses oleh admin dari database tersebut.
Didalam tutorial database mysql ini saya menggunakan MySQL sebagai
databasenya. Untuk lebih jelasnya berikut fungsi dari client server itu sendiri.
Dalam konteks basis data, client mengatur interface berfungsi sebagai
workstation tempat menjalankan aplikasi basis data. Client menerima permintaan
pemakai, memeriksa sintaks dan generate kebutuhan basis data dalam SQL atau
bahasa yang lain. Kemudian meneruskan pesan ke server, menunggu response dan
bentuk response untuk pemakai akhir. Server menerima dan memproses permintaan
basis data kemudian mengembalikan hasil ke client.
Proses-proses ini melibatkan pemeriksaan autorisasi, jaminan integritas,
pemeliharaan data dictionary dan mengerjakan query serta proses update. Selain itu
juga menyediakan kontrol terhadap concurrency dan recovery.
Beberapa keuntungan menggunakan Client Server sebagai koneksi
database, berikut keuntungannya :
• Memungkinkan akses basis data yang besar

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


178
Infomasi
Modul 2, Rekayasa Perangkat Lunak

• Aplikasi menyelesaikan bagian operasi pada client dan mengirimkan hanya


bagian yang dibutuhkan untuk akses basis data melewati jaringan,
menghasilkan data yang sedikit yang akan dikirim melewati jaringan.
• Jika client dan server diletakkan pada komputer yang berbeda kemudian CPU
yang berbeda dapat memproses aplikasi secara paralel. Hal ini
mempermudah merubah mesin server jika hanya memproses basis data.
• Server dapat menangani pemeriksaan integrity sehingga batasan perlu
didefinisikan dan validasi hanya di satu tempat, aplikasi program
mengerjakan pemeriksaan sendiri.
• Biaya untuk hardware dapat dikurangi
• Hanya server yang membutuhkan storage dan kekuatan proses yang cukup
untuk menyimpan dan mengatur basis data
• Menaikkan kinerja
• Biaya komunikasi berkurang
• Meningkatkan kekonsistenan
• Map ke arsitektur open-system dengan sangat alami
Sedangkan fungsi dari masing-masing Client Server
Client
• Mengatur user interface
• Menerima dan memeriksa sintaks input dari pemakai
• Memproses aplikasi
• Generate permintaan basis data dan memindahkannya ke server
• Memberikan response balik kepada pemakai
• Menyediakan akses basis data secara bersamaan
• Menyediakan control recovery
Server
• Menerima dan memproses basis data yang diminta dari client
• Memeriksa autorisasi
• Menjamin tidak terjadi pelanggaran terhadap integrity constraint
• Melakukan query/pemrosesan update dan memindahkan response ke client
• Memelihara data dictionary

179 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

Cara Setting Koneksi Database secara Client Server


Untuk lebih jelasnya langsung saja ke tutorialnya sehingga anda akan
mudah mengerti dari pada penjelasan diatas. Maksudnya client-server adalah
databasenya di komputer server dan programnya di client. Dalam pembuatan
database dibutuhkan suatu software yang bisa menjalankan MySQL dan Apache.
Pada contoh ini aplikasi yang digunakan adalah XAMPP versi 1.8.
1. Download terlebih dahulu Xampp
2. Install dan jalankan Xampp dan jalankan Apche dan Mysql.

Gambar 4.35. Tampilan utama XAMP control panel

3. Setalah itu buka browser dan ketikan localhost/phpmyadmin/ klik database yang
ingin diakses client.

Gambar 4.36. Tampilan phpyadmin


4. Klik Privileges, lalu klik Add user
5. Kemudian isi seperi gambar di bawah ini,

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


180
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Gambar 4.37. Tampilan menu Privileges

6. Kemudi klik GO yang berada di pojok kanan bawah, jika sudah di GO maka
akan otomatis user yang ditambahkan masuk ke data user.

Gambar 4.38. Tampilan data user yang telah ditambahkan


7. Setelah menambah user kembali lagi ke Xamp, buka Xampp Klik Config di
bagian Apache dan pilih Apache (httpd-xampp.conf)

181 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

Gambar 4.39. Tampilan Apache (httpd-xampp.conf)


8. Kemudian cari pada bagian <Locationmatch >

Gambar 4.40. Tampilan </Locationmatch > pada Apache (httpd-xampp.conf)

9. Ubah pada bagian Require local dengan script berikut ini :


</LocationMatch>
“^/(?i:(?:xampp|security|licenses|phpmyadmin|webalizer|server-
status|server-info))”>
#Require local
order deny,allow
deny from all
Allow from 192.168.1.1
ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
</LocationMatch>

Pada bagian Allow from isi dengan alamat IP client yang telah di setting di PC
Client.
10. Setelah itu Save.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


182
Infomasi
Modul 2, Rekayasa Perangkat Lunak

11. Terakhir pada bagian script kode koneksinya dibuat seperti berikut gambar
berikut

Gambar 4.41. Script kode koneksi

Pada bagian String url = itu di isi alamat ip yang diisi dengan alamat IP yang di
tambahkan di localhost. Pada bagian con = DriverManager.getConnection(url,
“adi”,”12345″); adi = nama user yang telah ditambahkan di localhost yang telah
dibuat tadi 12345 = password yang telah disetting di localhost juga
Setelah itu jalankan program dari komputer Client dan sudah selesai. Dan yang
terpenting pastikan komputer Client-Server saling terhubung.

d. Desain User Interface


User interface (UI) merupakan cara sebuah program dengan pengguna
untuk saling berkomunikasi atau bisa dikatakan sebagai segala sesuatu yang
dirancang menjadi sebuah perangkat informasi, dimana pengguna dapat melakukan
sebuah interaksi dengan sebuah program dengan lebih mudah. Media yang dapat
digunakan pengguna untuk berinteraksi dengan program (apliksi atau website)
dapat berupa tampilan layar (layout), keyboard, dan mouse.
Deborah J. Mayhew, mengemukakan bahwa terdapat 17 prinsip yang harus
dipahami para perancang sistem, terutama untuk mendapatkan hasil maksimal dari
tampilan yang dibuat, yaitu:
• User compatibility, yang bisa berarti kesesuaian tampilan dengan tipikal dari
user. karena berbeda user bisa jadi kebutuhan tampilannya berbeda. misalnya,

183 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

jika aplikasi diperuntukkan bagi anak-anak, maka jangan menggunakan istilah


atau tampilan orang dewasa.
• Product compatibility, istilah ini mengartikan bahwa produk aplikasi yang
dihasilkan juga harus sesuai. memiliki tampilan yang sama/serupa. baik untuk
user yang awam maupun yang ahli.
• Task compatibility, berarti fungsional dari task/tugas yang ada harus sesuai
dengan tampilannya. misal untuk pilihan report, orang akan langsung
mengartikan akan ditampilkan laporan. sehingga tampilan yang ada bukanlah
tipe data (dari sisi pemrogram).
• Work flow compatibility, aplikasi bisa dalam satu tampilan untuk berbagai
pekerjaan.
• Consistency, contohnya, jika anda menggunakan istilah save yang berarti
simpan, maka gunakan terus istilah tersebut.
• Familiarity, icon disket akan lebih familiar jika digunakan untuk perintah
menyimpan.
• Simplicity, aplikasi harus menyediakan pilihan default yang sederhana untuk
suatu pekerjaan.
• Direct manipulation, manipulasi secara langsung. misalnya untuk mempertebal
huruf, cukup dengan ctrl+B.
• Control, berikan kontrol penuh pada user, tipikal user biasanya tidak mau terlalu
banyak aturan.
• WYSIWYG, What You See Is What You Get, buatlah tampilan mirip seperti
kehidupan nyata user. dan pastikan fungsionalitas yang ada berjalan sesuai
tujuan.
• Flexibility, tool/alat yang bisa digunakan user. jangan hanya terpaku pada
keyboard atau mouse saja.
• Responsiveness, tampilan yang dibuat harus ada responnya. misal, yang sering
dilihat ketika ada tampilan please wait... 68%...
• Invisible technology. user tidak penting mengetahui algoritma apa yang
digunakan. Contohnya untuk mengurutkan pengguna tidak perlu mengetahui

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


184
Infomasi
Modul 2, Rekayasa Perangkat Lunak

algoritma yang digunakan programmer (max sort, bubble sort, quick sort, dsb)
• Robustness, handal. Dapat mengakomodir kesalahan user. jangan malah error,
apalagi sampai crash.
• Protection, melindungi user dari kesalahan yang umum dilakukan. misalnya
dengan memberikan fitur back atau undo.
• Ease of learning. aplikasi. mudah dipelajari.
• Ease of use, aplikasi harus mudah digunakan

1) Desain Output
Output adalah komponen yang paling dapat dilihat dari sistem informasi
yang bekerja/berfungsi. Oleh karena itu, output sering menjadi basis penilaian akhir
manajemen terhadap kesuksesan sebuah sistem. Salah satu cara untuk
menggolongkan output adalah dengan melihat distribusinya apakah ke dalam atau
ke luar perusahaan, dan orang-orang yang membaca dan menggunakan output.
Internal output digunakan untuk para pemilik dan pengguna sistem dalam
sebuah perusahaan. Output internal mendukung operasi bisnis sehari-hari atau
pengawasan manajemen dan pengambilan keputusan.
Tiga jenis output internal adalah sebagai berikut:
• Detailed report, menyajikan informasi dengan sedikit atau tanpa dilakukan
penyaringan atau pembatasan. Contoh daftar seluruh tagihan pelanggan.
• Summary report, berisi informasi dari manajer yang tidak perlu diperlihatkan
keseluruhan laporan secara detail. Contoh laporan ringkasan total penjualan
dalam hitungan bulanan dan grafik penjualan per-tahun.
• Exception report, menyaring data sebelum ditunjukkan kepada manajer sebagai
sebuah informasi. Contoh laporan persediaan barang yang hampir habis.
Eksternal output bersifat keluar organisasi. Output ini ditujukan kepada
konsumen, pemasok, mitra bisnis dan badan pemerintahan. Output eksternal
menyimpulkan dan melaporkan transaksi bisnis. Contoh faktur, nota pembelian,
jadwal kursus, tiket pesawat, tagihan telepon dan lain sebagainya. Turnaround
output adalah output eksternal yang akhirnya masuk kembali ke dalam sistem
sebagai input. Contoh tagihan telepon yang hasil pembayaran pelanggan menjadi

185 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

inputnya.
Berikut adalah hal-hal penting untuk mendesain output:

• Output dari komputer harus mudah dibaca dan diinterpretasikan :


- Setiap output harus memiliki judul
- Setiap output harus diperbaharui dan diberi tanggal
- Laporan dan layar (screen) harus memiliki bab dan sub bab pada
masingmasing segmen informasinya.
- Pada output berbasis form, semua bagian harus diberi label/nama yang jelas
- Pada output berbasis tabel, semua kolom yang digunakan juga harus diberi
nama
- Karena judul bab, field name dan judul kolom sering mengalami
penyingkatan untuk menghemat tempat, maka laporan harus menyediakan
akses untuk melihat dan menginterpretasikan singkatan tersebut.
- Hanya informasi yangdibutuhkan saja yang dicetak atau ditampilkan.
- Agar informasi tersebut dapat digunakan, maka informasi tidak boleh diubah
secara manual
- Informasi harus tampak seimbang pada laporan atau tampilannya, jangan
terlalu penuh atau tersebar.
- Para pengguna harus dapat dengan mudah menemukan output tersebut
- Jargon komputer dan pesan error harus diabaikan dari semua output

• Timing output komputer penting untuk diperhatikan

• Distribusi atau akses ke output komputer harus mencukupi untuk membantu


seluruh pengguna sistem yang relevan.

• Output komputer harus mudah diterima oleh pengguna sistem yang akan
menerima output.

2) Proses Desain Output


Langkah-langkah atau proses desain output adalah:
a) Mengidentifikasi output sistem dan meninjau persyaratan logis
b) Menentukan persyaratan output fisik
Setelah memastikan bahwa tipe laporan dari output dipahami dan bagaimana

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


186
Infomasi
Modul 2, Rekayasa Perangkat Lunak

output akan digunakan, maka perlu menekankan beberapa hal yang terkait
dengan masalah desain:

- Metode implementasi yang mana yang terbaik untuk melayani output


tersebut? Keputusan-keputusan di bawah ini dutuhkan untuk pengguna
sistem:
• Format apa yang paling cocok untuk laporan tersebut? tabel? zone?
grafik? atau gabungan?
• Jika dibutuhkan printout, anda harus menentukan tipe form atau kertas
yang akan digunakan.
• Pada screen output, anda harus mengetahui batasan peralatan display
pengguna.
• Form image dapat disimpan dan dicetak dengan printer laser modern

- Seberapa sering output dihasilkan? Sesuai permintaan? Per jam? Harian?


Bulanan? Untuk output yang sudah terjadwal, kapan pengguna sistem
membutuhkan laporan?

- Berapa buah halaman atau lembar dari output yang akan dihasilkan untuk
salinan tunggal dari printed output?

- Apakah output membutuhkan banyak salinan? Jika ya, berapa banyak?

- Untuk output yang sudah tercetak, apakah kontrol distribusi sudah


terselesaikan? Untuk output online, kontrol akses harus ditetapkan.
c) Mendesain semua preprinted form. Dokumen eksternal dan turnaround
dipisahkan untuk pertimbangan tertentu karena mereka berisi informasi yang
dinilai konstan dan belum tercetak (preprinted).
d) Mendesain, memvalidasi dan menguji output. Format atau layout sebuah output
secara langsung berpengaruh pada kemudahan pengguna untuk membaca dan
menerjemahkannya. Cara paling baik untuk menyusun format tersebut adalah
dengan membuat sketsa atau dengan membuat contoh dari dokumen atau
laporan.

187 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

3) Desain Input
Untuk menginput data ke dalam komputer, analis sistem harus mendesain
dokumen sumber, screen input dan metode serta prosedur untuk memasukkan data
ke dalam komputer (dari konsumen ke form ke staf entry data ke komputer).
• Data caputre adalah identifikasi dan penambahan data baru.
• Source document adalah form yang digunakan untuk menyimpan transaksi
perusahaan, khususnya data-data yang ada pada transaksi tersebut.
• Data entry adalah suatu proses translasi source data atau dokumen ke dalam
format yang mudah dibaca oleh computer. Ketika komputasi onlikne menjadi
kian umum, maka tanggung jawab data entry sekarang beralih langsung kepada
pengguna sistem.
Masalah Pengguna Sistem pada Desain Input
Input berasal dari sistem, maka human factor memainkan peranan yang
sangat penting dalam desain input. Input harus dibuat sesederhana mungkin dan
didesain untuk mengurangi kemungkinana kesalahan pemasukan data. Kebutuhan
pengguna sistem harus dipertimbangkan.
Jumlah data yang dimasukkan harus seminimal mungkin, semakin banyak
data yang dimasukkan, semakin besar potensi kesalahan input dan makin lama juga
waktu yang diperlukan untuk menginput data. Jadi, ada berbagai pertimbangan
yang perlu dilakukan pada data yang akan di capture sebagai input. Berikut ini
prinsip-prinsip desain input yang harus diikuti:
• Dapatkan hanya data variabel, jangan memasukkan data konstan. Misalnya
pada input sales order, maka dibutuhkan part numbner dari seluruh bagian
yang akan dipesan, tetapi tidak perlu menginput part descriptions untuk
bagian-bagian tersebut.
• Jangan meng-capture data yang dapat dikalkulasi atau dihitung dengan
menggunakan program komputer.
• Gunakan kode untuk atribut yang tepat.
Jika source document digunakan untuk menangkap data, maka dokumen
tersebut harus mudah digunakan oleh pengguna sistem untuk dilengkapi dan
kemudian dimasukkan ke dalam sistem. Beberapa pertimbangandi bawah ini dapat

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


188
Infomasi
Modul 2, Rekayasa Perangkat Lunak

membantu :
• Masukkan perintah untuk melengkapi form. Ingat bahwa orang tidak suka jika
harus membaca perintah yang dicetak dibalik form.
• Minimalkan jumlah tulisan tangan. Banyaknya orang yang tidak mempunyai
kemampuan menulis indah. Petugas data entry dapat salah membaca data lalu
salah memasukkan data tersabut.
• Data yang akan dimasukkan harus diurutkan terlebih dahulu sehingg dapat
dibaca dari atas ke bawah dan dari kiri ke kanan.
• Jika memungkinkan gunakan desain yang berbasis metapora (input yang mirip
dengan kertas) yang sudah dikenal.

4) Kontrol Internal – Data Editing untuk Input


Kontrol internal merupakan persyaratan yang ada di seluruh sistem berbasis
computer. Kontrol input internal menjamin input data pada komputer tersebut
akurat dan bahwa sistem tersebut aman terhadap suatu kesalahan incidental dan
penyalahgunaan. Di bawah ini petunjuk control internal yang dianjurkan :
• Jumlah input harus diawasi.
• Perhatian juga harus diberikan untuk memastikan bahwa data tersebut valid.
Terdapat dua tipe kesalahan yang dapat terjadi pada data: kesalahan data entry
dan penyimpanan data invalid oleh pengguna sistem. Kesalahan pemasukan
data terdiri dari kesalahan meng-copy, pemindahan posisi (mengetik 123
dengan 123) dan penyelipan (keying 345.36 menjadi 3453.6).
5) Proses Desain Input
Langkah-langkahnya adalah sebagai berikut:
• Mengidentifikasi input sistem dan memberikan persyaratan logika
• Memilih control GUI yang sesuai
• Mendesain, memvalidasi dan mengetes input dengan menggunakan
beberapa kombinasi dari : Peralatan layout dan Prototyping peralatan.
• Jika perlu, mendesain source document
6) Desain Antar Muka
Pada desain antarmuka, audiens adalah system user. System user dapat

189 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

diklasifikasikan secara luas baik sebagai pakar atau orang baru dan baik secara
terikat dan tidak terikat. Expert user (dedicated user) adalah pengguna komputer
yang berpengalaman yang banyak menghabiskan waktunya untuk menggunakan
program aplikasi khusus. Expert user umumnya terbiasa dengan (tetapi tidak perlu
ahli dalam) lingkungan operasi aplikasi. Mereka telah menghabiskan waktu untuk
belajar menggunakan komputer. Mereka akan menginvestasikan waktu untuk
menguasai antarmuka pengguna yang kurang user-friendly. Umumnya, mereka
telah hapal operasi rutin dan tingkat di atasnya sehingga tidak memerlukan atau
menginginkan feedback atau perintah dari komputer. Mereka ingin dapat
mengerjakan tugas mereka dengan tindakan dan keystroke seminimal mungkin.
Novice user (casual user) adalah pengguna komputer yang pengalamannya
lebih sedikit yang biasanya menggunakan komputer pada frekuensi sedikit atau
bahkan pada saat-saat tertentu saja. Boleh dikatakan, novice user membutuhkan
lebih banyak bantuan daripada expert user. Bantuan dapat berupa beberapa bentuk,
meliputi menu, dialogue, perintah dan help screen. Kebanyakan sistem yang ada
saat ini didesain untuk novice system user, tetapi disesuaikan dengan expert user.
Fokusnya adalah user friendlines atau human engineering.
Ahli desain antarmuka pengguna, Wilbert Galitz, mengemukakan masalah-
masalah antarmuka adalah:

• Terlalu banyak menggunakan jargon atau akronim komputer

• Desain yang tidak jelas atau kurang intuitif

• Tidak mampu membedakan antara tindakan pilihan (”Apa yang harus saya
lakukan selanjutnya?”)

• Pendekatan pemecahan masalah yang tidak konsisten

• Ketidakkonsistenan desain.
Untuk mengatasi masalah tersebut maka desainer mempertimbangkan hal
berikut ini:

• Pahami pengguna anda dan tugas mereka.

• Libatkan pengguna pada desain antarmuka

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


190
Infomasi
Modul 2, Rekayasa Perangkat Lunak

• Uji sistem pada pengguna aktual. Setelah dilakukan training awal. Amati
tindakan dan kesalahan mereka dan dengarkan komentar dan pertanyaan
mereka untuk lebih memahami interaksi mereka dengan antarmuka pengguna.

• Lakukan desain interatif. Antarmuka pengguna yang pertama mungkin tidak


memuaskan. Gunakan desain antarmuka pengguna yang lain untuk melakukan
beberapa iterasi desain dan pengujian. Desain antarmuka akan berakhir jika
95% pengguna khusus dapat melakukan tugas yang diharapkan tanpa kesulitan
atau bantuan.

7) Petunjuk Human Engineering


Dengan tipe pengguna seperti yang telah dijelaskan diatas, beberapa faktor
human engineering penting harus digabungkan pada desain:
a) Pengguna sistem harus selalu menyadari apa yang harus dilakukan selanjutnya.
Sistem harus selalu memberikan perintah tentang bagaimana cara maju,
mundur, keluar dan lain-lain. Beberapa situasi membutuhkan tipe feedback:
- Katakan pada pengguna apa yang sekarang diharapkan oleh sistem. Hal
ini dapat dilakukan dalam bentuk pesan sederhana. Contoh “Pilih salah
satu”.
- Katakan pada pengguna bahwa data sudah dimasukkan dengan benar.
Hal ini dapat dilakukan sesederhana mungkin, seperti menggerakan
kursor ke field selanjutnya atau menampilkan sebuah pesan seperti “Data
OK”. C
- Katakan pada pengguna bahwa data belum dimasukkan dengan benar.
Gunakan pesan pendek dan sederhana untuk memberikan pesan tentang
kebenaran format.
- Jelaskan kepada pengguna penyebab penundaan yang terjadi dalam
pemrosesan. Contoh pada saat melakukan pencetakan, pengurutan dan
sebagainya.
- Katakan kepada pengguna bahwa tugas telah diselesaikan atau belum
diselesaikan. Pesan seperti ”Printing not ready” dan sebagainya.
b) Screen harus diformat sehingga bermacam-macam tipe informasi, perintah dan

191 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

pesan selalu muncul pada area tampilan umum yang sama.


c) Pesan, perintah atau informasi harus ditampilkan dengan cukup panjang
(secukupnya) sehingga pengguna sistem dapat membacanya.
d) Gunakan atribut tampilan dengan hemat. Atribut seperti blinking, higlighting
dapat membingungkan jika terlalu banyak.
e) Nilai yang salah pada field dan jawaban yang harus dimasukkan oleh pengguna
harus ditentukan.
f) Antisipasi kesalahan yang dapat dibuat oleh pengguna. Contoh “data akan
dihapus?”
g) Berkenaan dengan error, pengguna seharusnya tidak diperkenankan untuk
meneruskan langkah sebelum memperbaiki error tersebut.
h) Jika pengguna melakukan sesuatu yang dapat menimbulkan akibat yang parah,
maka keyboard harus dikunci untuk mencegah semua input lain, dan perintah
untuk memanggil analis atau technical support harus ditampilkan.

8) Tone dan Terminologi pada Dialogue


Keseluruhan aliran screen dan pesan disebut dialogue. Gunakan kalimat
yang sederhana dan benar secara gramatikal, jangan membuat sesuatu yang lucu
atau manis dan jangan rendah diri, jangan menghina kecerdasan pengguna sistem.
Berkenaan dengan terminologi yang digunakan pada dialogue komputer,
sebaiknya:
• Jangan menggunakan jargon komputer
• Hindari penggunaan singkatan. Jika menggunakan singkatan, maka
dianggap bahwa pengguna telah paham bagaimana menerjemahkannya.
• Gunakan istilah yang sederhana
• Penggunaan terminologi harus konsisten
• Berhati-hati mengungkapkan perintah – gunakan kata kerja tindakan yang
tepat.

9) Pertimbangan khusus untuk desain antarmuka pengguna


Selain membangun sytle antarmuka pengguna, ada beberapa pertimbangan

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


192
Infomasi
Modul 2, Rekayasa Perangkat Lunak

khusus bagi desain antarmuka pengguna. Bagaimana pengguna akan dikenali dan
diautentikasi untuk menggunakan sistem tersebut? Adakah beberapa pertimbangan
keamanan atau privasi yang akan diberikan dalam antarmuka pengguna? Akhirnya
bagaiamana pengguna akan mendapatkan pertolongan melalui antarmuka
pengguna?

10) Internal control – autentikasi dan autorisasi


Pada sebagian besar lingkungan, pengguna harus diautentikasi dan
diautorisasi oleh sistem sebelum mereka diizinkan melakukan beberapa tindakan
tertentu. Dengan kata lain, pengguna sistem harus ”log into” ke dalam sistem.
Sebagian besar log-in membutuhkan User ID dan Password.
Terdapat beberapa model untuk membuka dan mengatur sebuah hak
istimewa. Satu petunjuk penting adalah menentukan hak istimewa untuk peran/role,
bukan untuk individu. Untuk masing-masing peran, perlu ditetapkan hak-hak
istimewa khusus yang akan diberikan kepada peran. Hak istimewa tersebut meliputi
iin untuk membaca tabel atau view tertentu; izin membuat, mengubah atau
menghapus record pada tabel atau view khusus dan sebagainya. View pengguna
yang berbeda-beda dapat digunakan untuk mengkustomisasi antarmuka pengguna
untuk kategori pengguna yang berbeda-beda. Misalnya cukup mudah untuk ”ghost”
(mengubah font dari hitam ke abu-abu) dan men-disable opsi menu dan dialogue
box yang dilarang untuk beberapa kelompok pengguna sistem.
Online Help. Orang menginginkan akses langsung dan segera ke context sensitive
help, yakni help yang cukup pintar untuk menggambarkan apa yang dapat mereka
lakukan. Help system yang lengkap meliputi daftar isi, berbagai perintah, contoh
dan sebuah index yang rinci.
Help wizards memandu pengguna melalui proses yang kompleks dengan cara
menampilkan sebuah urutan dialogue box yang membutuhkan input dari user dan
feedback dari sistem. Perhatikan hal-hal berikut:
• Sebagai help wizards tipikal, dialogue baisanya memasukkan serangkaian
perintah atau pertanyaan untuk mendapatkan respons pengguna. • Wizard
berisi penjelasan untuk membantu pemahaman pengguna dan pengambilan
keputusan.

193 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

• Wizard juga menyediakan sebuah tombol untuk meminta help yang lebih
detail guna menyelesaikan tugas.
• Tombol ”Next” menganjurkan langkah tambahan atau lanjutan untuk
didukung oleh help wizard (tombol ”Next” biasanya diubah menjadi
”Finish” setelah serangkaian dialogue box selesai).

e. Model View Controller (MVC)


Model View Controller atau MVC adalah sebuah metode untuk membuat
sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara
bagaimana memprosesnya (Controller). Dalam implementasinya
kebanyakan framework dalam aplikasi dan website adalah berbasis MVC. MVC
memisahkan pengembangan aplikasi berdasarkan komponen utama yang
membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan
bagian yang menjadi kontrol dalam sebuah aplikasi web.
Komponen MVC, terdiri atas:
1) Model, model mewakili struktur data. Biasanya model berisi fungsi-fungsi
yang membantu seseorang dalam pengelolaan basis data seperti memasukkan
data ke basis data, pembaruan data dan lain-lain.
2) Viewers, viewers adalah bagian yang mengatur tampilan ke pengguna. Bisa
dikatakan berupa halaman web.
3) Controller, controller merupakan bagian yang menjembatani model dan view.
Controller berisi perintah-perintah yang berfungsi untuk memproses
suatu data dan mengirimkannya ke halaman web.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


194
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Gambar 4.42. Komponen MVC


Jenis-jenis MVC
Setidaknya terdapat tiga jenis MVC, yaitu:
• Server Side MVC, Server Side MVC biasa terjadi pada aplikasi web tradisional,
yang tidak melibatkan client side seperti Javascript, Java applet, Flash, dan
lain-lain. Server Side MVC menyerahkan keseluruhan proses bisnis pada
server, aplikasi pada sisi pengguna hanya dapat menerima. MVC jenis ini
kadang-kadang disebut juga dengan nama Thin Client.
• Mixed Client Side and Server Side MVC, Pada Mixed Client Side and Server
Side MVC 1 client tidak menggunakan model sebagai jembatan untuk
melakukan komunikasi pada server, dibandingkan dengan Server Side MVC,
arsitektur ini memiliki tingkat kompleksitas yang lebih tinggi karena lebih
banyak komponen yang terlibat. Untuk selanjutnya arsitektur ini disebut,
dengan Mixed MVC 1. Pada Mixed Client Side and Server Side MVC 2, client
menggunakan model sebagai jembatan untuk melakukan komunikasi pada
server, dibandingkan dengan arsitektur MVC yang lain, arsitektur ini memiliki
tingkat kompleksitas yang paling tinggi karena lebih banyak komponen yang
terlibat, sehingga membutuhkan sumber daya yang lebih besar pula. Untuk
selanjutnya arsitektur ini disebut dengan Mixed MVC 2.

195 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

• Rich Internet Application MVC, Application MVC Rich Internet Application


(RIA) disebut juga dengan nama Fat Client, merupakan aplikasi web yang
memiliki kemampuan dan fungsi hampir seperti aplikasi desktop. RIA pada sisi
client, memiliki mesin untuk mengambil data yang berada pada server,
sehingga pada client terdapat bagian MVC sendiri dan hanya membutuhkan
bagian model pada sisi server.
Sebagian besar framework telah menggunakan konsep MVC. Untuk
framework PHP, ada cukup banyak dan hampir semuanya menggunakan konsep
MVC, yaitu Laravel, Symfony, CakePHP, Zend, Codeigniter (versi 3 kebawah
sudah tidak recommended untuk dipelajari dan lain-lain. Untuk framework Python
di antaranya: Django, Turbogears2, Watson-Framework. Untuk framework Nodejs
di antaranya: Express, Adonis, Sails.js, Total.js, Mean.js, Mojito dan lain-lain.

Contoh Kasus
Ketika pengunjung memasuki perpustakaan kemungkinan akan diminta untuk
mengisi buku tamu. Kebetulan buku tamu di perpustakaan yang dikunjungi
menggunakan aplikasi web. Jadi di sana sudah terdapat satu komputer, di mana
setiap pengunjung perpustakaan harus melewati dan mengisi datanya melalui
komputer tersebut.
1) Ketika pengunjung melihat layar komputer, di sana ditampilkan form untuk
mengisi data diri pengunjung. Dapat disimpulkan bahwa, browser (sebagai
client) meminta aksi kepada server (yang ditangani oleh controller) untuk
menampilkan halaman form input data. Lalu controller memutuskan dan
mengerti bahwasanya ia hanya perlu menampilkan view. Maka controller
memanggil dan mengembalikan view (atau halaman) yang diminta.
2) Pengunjung kemudian mengisi data. Lalu menekan tombol submit. Di sini
browser (sebagai client) mengirimkan data anda kepada server. Data itu
ditangkap oleh controller dan controller tahu apa yang harus dia lakukan. Yaitu
memanggil model dan memberi data tersebut untuk kemudian disimpan (oleh
model) ke dalam database. Setelah proses penyimpanan selesai, controller

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


196
Infomasi
Modul 2, Rekayasa Perangkat Lunak

memanggil dan mengembalikan view kepada user sebagai informasi bahwa


data telah masuk.
3) Jika ada pengunjung baru, maka kembali ke step 1.

Dengan menggunakan metode MVC maka aplikasi akan lebih mudah untuk dirawat
dan dikembangkan. Untuk memahami metode pengembangan aplikasi
menggunakan MVC diperlukan pengetahuan tentang pemrograman berorientasi
objek (Object Oriented Programming).

MVC model pada Java

Gambar 4.43. Konsep MVC Pada Java

Dalam hal koneksi aplikasi ke database, penerapan MVC pada Java


ditambahkan dengan pembuatan kelas DAO (Data Access Object), yaitu kelas
yang khusus menyediakan operasi Insert, Update, Delete, dan Query ke database.
Berdasarkan skema di atas, developer hendaknya membuat 5 buah package,
yaitu: view, controller, model, dao, dan database.
• Bagian View merupakan kelas-kelas yang mengimplementasikan user interface
dari program yang dibangun. Bagian inilah yang dilihat oleh user dan menjadi
media user untuk berinteraksi. Setiap ada request atau aksi yang diminta oleh
user yang berhubungan dengan data akan diteruskan ke bagian controller yang
sesuai.

197 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

• Bagian Controller merupakan kelas-kelas yang mengendalikan alur program


secara keseluruhan, mengandung business logic, dan sebagai penghubung
antara view dengan model dan dao. Kelas ini akan merespon permintaan atau
aksi dari view ke kelas dao yang diinginkan.
• Bagian Model pada Java menggambarkan struktur data pada database. Bagian
ini direpresentasikan oleh POJO (Plain Old Java Object), yaitu kelas Java biasa
yang lengkap dengan property (atribut) dan method getter-setter terhadap
atribut-atributnya. Biasanya tidak memiliki method lain selain getter-setter.
Contoh: Kelas Mahasiswa yang memiliki atribut: nip, nama, jenisKelamin,
alamat. Kelas Mahasiswa hanya memiliki method getter-setter yang sesuai
dengan atributnya yaitu: getNip, setNip, getNama, setNama, getJenisKelamin,
setJenisKelamin, getAlamat, setAlamat.
• Bagian DAO (Data Access Object) merupakan kelas-kelas yang melakukan
manipulasi data yang terdapat pada database. Manipulasi bisa
berupa Create, Read, Update, atau Delete (CRUD). Bagian ini terhubung ke
Model (karena merupakan representasi data) dan Database (untuk
mendapatkan koneksi).
• Bagian Database, berisi kelas yang bertugas untuk membuka koneksi dengan
database tertentu dan memberikan objek connection ke kelas dao yang
membutuhkan koneksi.

Contoh Kasus: Aplikasi Daftar Menu Restoran


Anda sebagai developer Java diminta membuatkan aplikasi untuk
menginputkan daftar menu yang ada pada restoran dan menampilkannya dalam
bentuk tabel. Buatlah aplikasi dengan menerapkan konsep MVC!
Jawaban: (Diasumsikan bahwa anda telah memahami database MySQL dan
koneksinya ke Java, pemakaian Java Swing, pembuatan package, serta penggunaan
interface). Berdasarkan kasus tersebut, bisa dirancang file-file kelas dengan
package sebagai berikut:

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


198
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Gambar 4.44. Package aplikasi menu restoran

Selanjutnya dirancang diagram kelas sebagai berikut:

Gambar 4.45. Class diagram aplikasi

199 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

Hasil running dari program adalah sebagai berikut:

Gambar 4.46. Screen shoot aplikasi

4. Forum Diskusi
a. Seorang arsitek ingin memperkirakan berapa biaya yang diperlukan untuk
membangun sebuah rumah. Berikut ini adalah bahan material utama yang
dibutuhkan untuk membangun rumah tersebut:
- Pasir : 500 m3 (harga Rp 120.000/m3)
- Semen : 70 sak (harga Rp 90.000/sak)
- Batu-Bata : 10.000 buah (harga Rp 500/buah)
- Kayu kalimantan : 300 m3 (harga Rp 200.000/m3)
- Batu kali untuk pondasi: 200 buah (harga Rp 1000/buah)
- Genting : 500 buah (harga Rp 2000/buah)
Menurtut Anda program Java untuk menghitung berapa biaya yang
diperlukan untuk membangun rumah tersebut, dengan terlebih dahulu
merancang class-classnya, serta atribut dan method nya.
b. Sebuah mobil akan melakukan perjalanan dari kota A ke kota F. Untuk
menuju ke kota F, mobil harus melewati beberapa kota yaitu B, C, D dan
E dengan jarak sebagai berikut:

Kota A ke B : 45 km

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


200
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Kota B ke C : 51 km
Kota C ke D : 38 km
Kota D ke E : 104 km
Kota E ke F : 93 km

Jika konsumsi bensin untuk mobil tersebut adalah 1 liter untuk tiap 9
km, maka hitunglah berapa liter yang dibutuhkan mobil untuk:
- Berjalan dari kota A ke F
- Berjalan dari kota B ke E
- Berjalan dari kota A ke F, kemudian kembali lagi ke kota B
- Berjalan dari kota A ke F – E – D – C – D – E – D – E – F

Diskusikan program Java untuk menjawab persoalan di atas, dengan


terlebih dahulu merancang class, atribut dan method nya.

C. PENUTUP
1. Rangkuman
Pemrograman berorientasi 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.
Klien-server atau client-server merupakan sebuah paradigma dalam
teknologi informasi yang merujuk kepada cara untuk mendistribusikan aplikasi ke
dalam dua pihak: pihak klien dan pihak server. Dalam model klien/server, sebuah

201 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

aplikasi dibagi menjadi dua bagian yang terpisah, tetapi masih merupakan sebuah
kesatuan yakni komponen klien dan komponen server. Komponen klien juga sering
disebut sebagai front-end, sementara komponen server disebut sebagai back-end.
Komponen klien dari aplikasi tersebut dijalankan dalam sebuah workstation dan
menerima masukan data dari pengguna. Komponen klien tersebut akan menyiapkan
data yang dimasukkan oleh pengguna dengan menggunakan teknologi pemrosesan
tertentu dan mengirimkannya kepada komponen server yang dijalankan di atas
mesin server, umumnya dalam bentuk request terhadap beberapa layanan yang
dimiliki oleh server. Komponen server akan menerima request dari klien, dan
langsung memprosesnya dan mengembalikan hasil pemrosesan tersebut kepada
klien. Klien pun menerima informasi hasil pemrosesan data yang dilakukan server
dan menampilkannya kepada pengguna, dengan menggunakan aplikasi yang
berinteraksi dengan pengguna.
User interface (UI) merupakan cara sebuah program dengan pengguna
untuk saling berkomunikasi atau bisa dikatakan sebagai segala sesuatu yang
dirancang menjadi sebuah perangkat informasi, dimana pengguna dapat melakukan
sebuah interaksi dengan sebuah program dengan lebih mudah. Media yang dapat
digunakan pengguna untuk berinteraksi dengan program (apliksi atau website)
dapat berupa tampilan layar (layout), keyboard, dan mouse.
Model View Controller atau MVC adalah sebuah metode untuk membuat
sebuah aplikasi dengan memisahkan data (Model) dari tampilan (View) dan cara
bagaimana memprosesnya (Controller). Dalam implementasinya
kebanyakan framework dalam aplikasi dan website adalah berbasis MVC. MVC
memisahkan pengembangan aplikasi berdasarkan komponen utama yang
membangun sebuah aplikasi seperti manipulasi data, antarmuka pengguna, dan
bagian yang menjadi kontrol dalam sebuah aplikasi web.

2. Tes Formatif
Pilihkah salah satu jawaban yang paling tepat
1. Fungsi method System.in dalam java adalah…
A. Mengirimkan keluaran ke layar

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


202
Infomasi
Modul 2, Rekayasa Perangkat Lunak

B. Menangani pembacaan dari keyboard


C. Menampilkan pesan kesalahan
D. Menangani suatu objek
E. Menampilan class dari suatu objek
2. Diantara pernyataan berikut, penulisan sintaks BbufferredReader yang benar
adalah
A. int data =BufferedReader = new BufferedReader(new input
Stream Reader(System.in)).Readline( ).intValue( );
B. int data =BufferedReader = new BufferedReader(new
InputStreamReader(System.in)).Readline( ).intValue( );
C. int data=(new Integer((new BufferedReader = new
BufferedReader(new input Stream
Reader(System.in))).readline( )).intValue( ));
D. int data = (new Integer( (new BufferedReader (new
InputStreamReader (System.in))).readLine()).intValue());
E. int data=(new Integer((BufferedReader = new
BufferedReader(new input Stream
Reader(System.in))).readline( )).intValue( ));
3. Perhatikan penggalan source code dibawah ini
if ( grade > 70 )
System.out.println(“Passed”);
else
System.out.println(“Failed”)

Jika penggalan program diatas diubah dengan menggunakan operator kondisi


maka hasilnya akan menjadi…
A. System.out.println(?grade>70“Passed”:“Failed”)
B. System.out.println(grade>70?“Passed”:“Failed”)
C. System.out.println(grade>70:“Passed”?“Failed”)
D. System.out.println(grade>70?“Passed”?:“Failed”)
E. System.out.println(?grade>70?“Passed”:“Failed”)
4. Yang bukan cara inisialisasi variabel bertipe class string, kecuali:
A. String me = new String(“Inisialisasi 1”);

203 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

B. String me;
me = new String “inisialisasi 1” ;
C. String me;
me = new String(“inisialisasi 1”);
D. String me;
me = “inisialisasi 1”;
E. String me;
me = “inisialisasi 1”;
5. Keyword ini digunakan dalam suatu blok program. Ketword ini digunakan
untuk mencoba menjalankan blok program kemudian mengenal dimana
muncunya kesalahan yang ingin diproses.
A. Catch
B. Throw
C. Finally
D. Method
E. Try
6. Kesalahan yang disebabkan oleh tidak tersedianya sumber daya, misalnya
kukurangan memory komputer disebut dengan....
A. Syntax error
B. Hardware failure
C. Runtime error
D. Logical Erro
E. Aritmatic error
7. Perhatikan kode berikut ini:
class DemoSatu {
public static void main (String[] args){
System.out.println("awal program");
int x = 10;
x = x / 0;
System.out.println(x);
System.out.println("akhir program");
}
}
Jika kode tersebut dijalankan di konsol, maka output yang akan muncul
adalah....
A. $ javac DemoSatu.java

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


204
Infomasi
Modul 2, Rekayasa Perangkat Lunak

$ java DemoSatu
awal program
Exception in thread "main" java.lang.
NegativeArraySizeException Exception: / by zero
at DemoSatu.main(DemoSatu.java:7)
B. $ javac DemoSatu.java
$ java DemoSatu
awal program
Exception in thread "main"
java.lang.NullPointerException: / by zero
at DemoSatu.main(DemoSatu.java:7)
C. $ javac DemoSatu.java
$ java DemoSatu
awal program
Exception in thread "main"
java.lang.LogicalException: / by zero
at DemoSatu.main(DemoSatu.java:7)
D. $ javac DemoSatu.java
$ java DemoSatu
awal program
Exception in thread "main"
java.lang.SecurityException: / by zero
at DemoSatu.main(DemoSatu.java:7)
E. $ javac DemoSatu.java
$ java DemoSatu
awal program
Exception in thread "main"
java.lang.ArithmeticException: / by zero
at DemoSatu.main(DemoSatu.java:7)

8. Manakah kode yang paling tepat untuk mengatasa error pada soal No. 7 di
atas?
A. class DemoSatu {
public static void main (String[] args){
System.out.println("awal program");
int x = 10;
try
x = x / 0;
}
catch (Exception e){
e.printStackTrace();
System.out.println("error karena pembagian
nol");
}
System.out.println(x);
System.out.println("akhir program");
}
}
B. class DemoSatu {

205 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

public static void main (String[] args){


System.out.println("awal program");
int x = 10;
try {
x = x / 0;
catch (Exception e){
e.printStackTrace();
System.out.println("error karena pembagian
nol");
}
System.out.println(x);
System.out.println("akhir program");
}
}
C. class DemoSatu {
public static void main (String[] args){
System.out.println("awal program");
int x = 10;

try {
x = x / 0;
{
catch (Exception e){
e.printStackTrace();
System.out.println("error karena pembagian
nol");
}

System.out.println(x);

System.out.println("akhir program");
}
}
D. class DemoSatu {
public static void main (String[] args){
System.out.println("awal program");
int x = 10;
try {
x = x / 0;}
}
catch (Exception e){
e.printStackTrace();
System.out.println("error karena pembagian
nol");
}
System.out.println(x);
System.out.println("akhir program");
}
}
E. class DemoSatu {
public static void main (String[] args){
System.out.println("awal program");{
int x = 10;}
try {

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


206
Infomasi
Modul 2, Rekayasa Perangkat Lunak

x = x / 0;
}
catch (Exception e){
e.printStackTrace();
System.out.println("error karena pembagian
nol");
}

System.out.println(x);
System.out.println("akhir program");
}
}

9. Dalam perancangan UI, User tidak penting mengetahui algoritma apa yang
digunakan, user misalnya algoritma untuk mengurutkan harga sebuah produk
dalam sebuah e-commerce. Hal ini telah sesuai dengan prisnip
A. Invisible technology
B. Task Compatibility
C. Work Flow Compatibility
D. Familiarity,
E. Direct manipulation
10. Sebuab user interface memungkinkan penguna untuk memiringkan huruf
dengan dengan control keyboard Ctrl+i. Kemampuan user interface tersebut
dikenal dengan prisnip....
A. User compatibility
B. Product compatibility
C. Work Flow Compatibility
D. Flexibility
E. Direct manipulation

DAFTAR PUSTAKA

Jubile Enterprise, 2016. Belajar Java, Database dan NetBeans dari Nol, Jakarta:
PT Elex Media Komputindo.
Loy, Marc, et all, 2003. Java Swing, Second Edition, California: O’Reilly Media.
Mayhew, J Deborah, 1992. Software User Interface Design, New Jersey: Prentice
Hall.

207 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

Nofriadi, M.Kom, Java Fundamental Dengan Netbeans 8.0.2


Rusli, Muhammad, dkk, 2016. Belajar Pemrograman Java dengan NerBeans,
Sebuah Pengantar, Yogyakarta: Penerbit Andi.
Sugiarti, Yuni, S.T., M.Kom, 2018. Dasar-dasar Pemrograman Java NetBeans,
Bandung: PT Remaja Rosdakarya.
Yener, Muraat & Theedom, Alex, 2015. Professional Java EE Design Patterns,
Indianapolis: John Wiley.
Yuana, Rosihan Ari, Pemrograman Java, Online di http://blog.rosihan.net
Wahana Komputer, 2010. Panduan Belajar MySQL Database Server, Jakarta:
Media Kita.
http://dinus.ac.id/repository/docs/ajar/IMK10-Desain_User_Interface.pdf
http://yuliana.lecturer.pens.ac.id/OOP/Exception%20Handling/T%20-
%20Exception%20Handling.pdf

TUGAS AKHIR
Buatlah proposal pengembangan Sistem Informasi Perpustakaan di sekolah Anda
masing-masing dengan mengikuti format berikut ini,
BAB I
PENDAHULUAN
A. Latar Belakang
Uraikan secara deskriptif dan ringkas mengenai latar belakang pengembangan
proyek sistem informasi, termasuk peluang yang bisa ditangkap
B. Maksud dan Tujuan
Jelaskan secara rinci maksud dan tujuan pengembangan proyek sistem
informasi.
Maksud
1.
2.
Tujuan
1.
2.
C. Ruang Lingkup Pekerjaan

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


208
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Uraikan secara rinci ruang lingkup pekerjaan yang nantinya akan ditangani,
misalnya:
1. Pengembangan
2. Pengumpulan data
Deskripsikan sampai sejauh mana tahapan pengumpulan data, misalnya entry
data sampai availability data terpenuhi
3. Pemeliharaan
4. Pelatihan
BAB II
NAMA SISTEM INFORMASI YANG DIUSULKAN
A. Latar Belakang
Uraikan secara deskriptif dan ringkas mengenai latar belakang sistem informasi,
bukan proyek pengembangan sistem informasi seperti di Bab 1 yang akan
dikembangkan.
B. Perspektif Produk
Deskripsikan gambaran umum dari produk sistem informasi yang akan
dikembangkan. Sebaiknya dilengkapi dengan gambar arsitektur global. Jika
proyek ini merupakan peningkatan sistem yang ada, gambarkan juga
keterhubungannya.
C. Deskripsi Subsistem
Uraikan deskripsi subsistem yang akan dikembangkan Lebih disukai jika
dilengkapi dengan gambar subsistem. Contoh:
• Modul pendaftaran
• Modul peminjaman
• Modul pengembalian
• Modul reporting (pelaporan)
• Modul backup dan recovery
D. Manfaat Bagi Perusahaan/Organisasi/Instansi*
Tegaskan lagi benefit yang didapat oleh sekolah ketika mengimplementasikan
sistem informasi ini.
* pilih salah satu (sesuaikan)

209 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

BAB III
METODOLOGI KERJA
A. Survei dan Analisis Sistem
Jelaskan tahapan survei dan analisis kebutuhan sistem
1. Survei Kebutuhan Sistem
Uraikan metode dan tahapan-tahapannya (observasi, wawancara, dll)
2. Analisis Kebutuhan Sistem
Uraikan tahapan-tahapan analisis Misal:
a. Analisis fungsionalitas produk
b. Analisis kebutuhan perangkat keras
c. Analisis tingkat kebutuhan operator
B. Perancangan Sistem
Deskripsikan tahapan-tahapan perancangan sistem yang akan dilakukan
Misal:
1. Perancangan data
a. DAD Konteks
b. DAD Analysis (Penjelasan aliran data setiap proses)
c. ERD
d. Kamus Data
2. Perancangan proses
a. Class Diagram
b. Use Case Diagram
c. Activity Diagram
d. Sequence Diagram
e. Collaboration Diagram
3. Perancangan jaringan
Jika perlu, buat desain topologi jaringan dengan mengacu gambar lokasi
proyek yang dijelaskan dalam RFP.
4. Perancangan interace (antar muka)
C. Implementasi Sistem

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


210
Infomasi
Modul 2, Rekayasa Perangkat Lunak

Uraikan tahapan implementasi produk Mencakup bahasa pemrograman,


DBMS, pengujian dan/atau teknologi-teknologi pendukung lainnya
D. Pelatihan
Deskripsikan secara rinci mekanisme, sasaran (misal para operator), dan bentuk
pelatihan yang akan diberikan nantinya.
E. Pemeliharaan
Deskripsikan mekanisme pemeliharaan sistem, termasuk layanan apa saja yang
disediakan terkait pemeliharaan sistem, misalnya ada tim khusus untuk
troubleshooting, dan sebagainya.
F. Rencana Anggaran Biaya
Buat rencana anggaran biaya yang riil dan responsible. Ingat, tahapan ini juga
sangat memengaruhi diterima tidaknya proposal. Jadi, buat rincian perhitungan
yang tepat.
Bisa dituliskan langsung di sini atau dibuat lampiran khusus (misal dalam
format spreadsheet).
Contoh RAB (tidak harus sama persis, sesuaikan dengan proyek yang
ditangani).
1. Tenaga Ahli
Harga Total
No Posisi Jumlah Satuan Waktu Satuan
Satuan Biaya
1 Project 1 Orang 6 Bulan
Manager
2 System 2 Orang 6 Bulan
Analyst dan
Designer
3 Database 1 Orang 6 Bulan
Administrator
4 Programmer
5 Dokumentator
6 dst
Total Biaya

2. Perangkat Keras (Hardware)


Harga Total
No Item Spesifikasi Jumlah Satuan
Satuan Harga
1 IBM Zeon 1 Unit

211 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

2 dst
3
Total Harga

3. Perangkat Lunak (Software)


Harga Total
No Item Spesifikasi Jumlah Satuan
Satuan Harga
1 Windows 1 Unit
Server 2019
2 Oracle 12c
3 dst
4
Total Harga
4. Overhead
Harga Total
No Item Jumlah Satuan
Satuan Harga
1. Transportasi
AnalisisKebutuhan 1 orang

2. Akomodasi
Analisis Kebutuhan 1 orang

3. Overhead kantor
Alat Tulis Kantor (ATK) 1 Paket

4. Pelatihan
Modul pelatihan 10 Exp
User guide 5 Exp

Total Harga

5. Maintenance
Harga Total
No Item Jumlah Satuan Waktu Satuan
Satuan Biaya
1 Hardware 1 Paket 12 Bulan
2 Software 1 Paket 12 Bulan
Total Biaya

6. Rekapitulasi

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


212
Infomasi
Modul 2, Rekayasa Perangkat Lunak

No Jenis Jumlah
1 Tenaga Ahli
2 Perangkat Keras (hardware)
3 Perangkat Lunak (software)
4 Overhead
5 Maintenance
Sub Total
7 PPN (10 %)
8 PPH (1,5%)
Total

G. Rencana Pekerjaan
Deskripsikan dengan menggunakan WBS (Work Breakdown Structure), baik
dalam bentuk inverted tree maupun list format
H. Jadwal Pelaksanaan
Gambarkan dalam bentuk matriks
Contoh:
Bulan/Minggu
No Kegiatan Agustus September
2 3 4 1 2 3 4
1 Pengajuan Proposal
2 Analisis dan Design
3 Implementasi
4 Debungging & Testing
5 Dokumentasi
6 Demo dan Pelatihan

BAB IV
PENUTUP
Berisi harapan agar bisa diterimanya dokumen proposal ini, dan ditegaskan dengan
komitmen untuk mewujudkan keinginan pemilik proyek. Ringkas dan profesional.

TES SUMATIF
Pilihlah salah satu jawaban yang paling tepat

213 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

1. Metode analisis ini mempunyai tiga model, yaitu model objek, model dinamis
dan model fungsional. Model fungsional menangani proses dari model,
hubungan ke diagram alir data. Konsep utama adalah proses, data store, data
flow dan aktor.
A. Metode Boch
B. Metode Rumbaugh
C. Metode Jacobson
D. Metode Coad dan Yourdon
E. Metode Wirfs-Brock
2. Perhatikan gambar di bawah ini.

Gambar di atas adalah gambar:


A. Deployment diagram
B. Collaboration Diagram
C. Component Diagram
D. Use Case Diagram
E. Statement Diagram
3. Gambar di bawah ini merupakan diagram

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


214
Infomasi
Modul 2, Rekayasa Perangkat Lunak

A. Deployment diagram
B. Activity Diagram
C. Componen Diagram
D. Use Case Diagram
E. Statement Diagram
4. Pada metode ini prototipe dibuat dan diuji. Proses iterasi terjadi antara desain logika,
desain fisik, prototipe dan testing
A. Metode Boch
B. Metode Rumbaugh
C. Metode Jacobson
D. Metode Coad dan Yourdon
E. Metode Wirfs-Brock
5. Composite State pada State Machine Diagram mempunyai properties:
A. Jika sub state aktif, composite state harus aktif
B. Jika sub state aktif, semua state harus aktif
C. Jika composite state aktif, salah satu dari sub state harus aktif
D. Jika composite state aktif, semua sub state harus aktif
E. Composite state dan sub state harus aktif
6. Yang termasuk dalam behavior diagram adalah .....
A. Activity diagram
B. Interaction diagram
C. State machine diagram

215 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

D. Class diagram
E. Use case diagram
7. Jika suatu sistem terdapat struktur class secara hirarkis sebagai berikut:
karyawan : nik, nama, alamat, tgl lahir.
karyharian : upahharian, jmlhharikerja.
karytetap : gaji/bulanan.
maka , class karyawan disebut?
A. Superclass
B. Terminologyc
C. Subclassd
D. Composite
E. Primaryclass
8. Seorang pengembang memperkenalkan atau mengujicoba sebuah sistem
informasi baru tetapi tidak meninggalkan sistem yang telah ada (existing).
Pendekatan yang dilakukan oleh pengembang tersebut adalah....
A. Pendekatan paralel
B. Pendekatan cut off
C. Pendekatan big-bang
D. Pendekatan serial
E. Pendekatan bisnis serial
9. Jika seorang pengembang perangkat lunak mendesain sistem software
sehingga dapat diubah dengan mudah untuk mengakomodasi perubahan
lingkungan bisnis organisasi dan komponen lainnya. Hal ini berarti
pengembang tersebut telah memenuhi prinisp berikut ini...
A. Invisibolity
B. Comformity
C. Complexity
D. Flexibility
E. Dependability
10. Proses utama dalam tahap ini adalah mengarahkan dan mengelola pelaksanaan
proyek ke arah penyelesaian, sesuai dokumen perencanaan.

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


216
Infomasi
Modul 2, Rekayasa Perangkat Lunak

A. Monitoring
B. Controlling
C. Execution
D. Initition
E. Closing
11. Peganggaran biaya yang menggabungkan estimasi biaya sumber daya yang
dibutuhkan, paket pekerjaan dan biaya-biaya kegiatan lainnya sehingga
membentuk suatu rencana biaya yang sistematis. Penanganan biaya tersebut
termasuk dalam biaya...
A. Cost budgeting
B. Cost control
C. Cost estimating
D. Cost planning
E. Cost constrution
12. Manakah diantara kegiatan berikut ini yang termasuk dalam tahap execution
pada tahapan manajemen proyek?
A. Melaksanakan proses pembelian dan pengadaan barang dan jasa
B. Mempengaruhi faktor-faktor yang bisa menggagalkan kontrol terhadap
perubahan, jadi hanya perubahan yang disetujui yang dapat
diimplementasikan
C. Menentukan proses yang baik (quality assurance) dan standar mutu yang
disepakati (quality control
D. Merinci unit-unit pekerjaan, menentukan urutan pekerjaan, estimasi
sumber daya, estimasi durasi, dan finalisasi jadwal proyek
E. Memberi masukan kepada manajemen perusahaan terkait hal-hal yang
dirasakan bermanfaat selama proyek dijalankan
13. Salah satu model analisis yang paling baik digunakan untuk melakukan
pemilahan terhadap pengembangan sistem informasi dilihat dari tingkat
kepentingannya (prioritas) bagi perusahaan, sehingga dapatditentukan sistem
mana saja yang harus segera dibangun (jangka pendek), dan sistem manasaja

217 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

yang dapat dikembangkan di kemudian hari (jangka menengah dan jangka


panjang).
A. Porter’s Value Chain
B. Bussiness Process Mapping,
C. BCG Matrix.
D. Strategic Distinction Model
E. Earned Value Model
14. Perhatikan gambar berikut ini,

Relasi antara himpuna A dan B di atas disebut dengan....


A. Relasi majemuk
B. Relasi one to many
C. Relasi one to ome
D. Relasi beratribut
E. Relasi many to many
15. Merupakan kendala yang membatasi kemungkinan kombinasi entitas yang
terlibat dalam relationship instance, disebut…
A. Relationship constrains
B. Cardinality ratio
C. Participation constrains
D. Schema type
E. Atribut type
16. Saat Anda membuat tabel, kolom bernilai NULL dapat dihindari dengan
menggunakan konstrain NOT NULL, kecuali kolom yang dispesifikasikan
sebagai primary key akan otomatis bernilai Not Null. Cara yang Anda lakukan
merupakan ....

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


218
Infomasi
Modul 2, Rekayasa Perangkat Lunak

A. Integritas entitas
B. Integritas domain
C. Integritas referensial
D. Integritas null
E. Integritas record
17. Contoh yang menunjukkan mengenai Participant Constraint adalah
A. Satu MataKuliah mempunyai satu Penanggung Jawab
B. Satu suplier dapat menyuplai Banyak Barang
C. Satu Barang dapat dibeli dalam beberapa transaksi
D. Departemen harus mempunyai setidaknya satu Pegawai
E. Dalam setiap transaksi dapat terdiri dari beberapa barang
18. Apa yang dimaksud dengan conceptual level pada model data …
A. Cara bagaimana user berpikir tentang data.
B. Level yang berada di tengah yang menyediakan mapping dan
menghubungkan external views dan internal model.
C. Cara operating system atau DBMS memandang data
D. Cara data secara aktual disimpan dengan menggunakan struktur data
dan organisasi file.
E. Suatu sistem basis data yang menempatkan basis data beserta segala
ruang lingkupnya kedalam suatu komputer server tertentu.

19. EMPLOYEE(Name, Age, Salary)


COMPANY(Name, Headquarter, President)
Dari skema diatas yang termasuk instance adalah….
B. EMPLOYEE
C. COMPANY Name
D. EMPLOYEE dan COMPANY
E. EMPLOYEE Name
F. Nama, Age, Salary

219 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

20. Semua atribut selain primary key, secara utuh memiliki functional
dependency pada primary key, merupakan ciri dari…
A. 1NF
B. 2NF
C. 3NF
D. BCNF
E. 4NF
21. Gaji karyawan biasa tidak boleh lebih besar dari gaji manajer. Pernyataan
tersebut merupakan contoh dari…
A. Referential integrity
B. Semantic integrity constrain
C. Key constrains
D. Entity integrity
E. Integrity constrains
22. Keseluruhan proses penulisan pada disk master dan slave harus selesai
dilakukan terlebih dahulu sebelum beranjak ke transaksi selanjutnya.
Pernyataan tersebut merupakan proses....
A. Replikasi synchronous
B. Replikasi asynchronous
C. Replikasi master slave
D. Replikasi slave master slave
E. Replikasi homogen
23. Fungsi method System.in dalam java adalah…
A. Mengirimkan keluaran ke layar
B. Menangani pembacaan dari keyboard
C. Menampilkan pesan kesalahan
D. Menangani suatu objek
E. Menampilan class dari suatu objek

24. Perhatikan penggalan source code dibawah ini

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


220
Infomasi
Modul 2, Rekayasa Perangkat Lunak

if ( grade > 70 )
System.out.println(“Passed”);
else
System.out.println(“Failed”)

Jika penggalan program diatas diubah dengan menggunakan operator kondisi


maka hasilnya akan menjadi…
A. System.out.println(?grade>70“Passed”:“Failed”)
B. System.out.println(grade>70?“Passed”:“Failed”)
C. System.out.println(grade>70:“Passed”?“Failed”)
D. System.out.println(grade>70?“Passed”?:“Failed”)
E. System.out.println(?grade>70?“Passed”:“Failed”)
25. Yang bukan cara inisialisasi variabel bertipe class string, kecuali:
A. String me = new String(“Inisialisasi 1”);
B. String me;
me = new String “inisialisasi 1” ;
C. String me;
me = new String(“inisialisasi 1”);
D. String me;
me = “inisialisasi 1”;
E. String me;
me = “inisialisasi 1”;
26. Kesalahan yang disebabkan oleh tidak tersedianya sumber daya, misalnya
kukurangan memory komputer disebut dengan....
A. Syntax error
B. Hardware failure
C. Runtime error
D. Logical Error
E. Aritmatic error
27. Perhatikan kode berikut ini:
class DemoSatu {
public static void main (String[] args){
System.out.println("awal program");
int x = 10;
x = x / 0;

221 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

System.out.println(x);
System.out.println("akhir program");
}
}
Jika kode tersebut dijalankan di konsol, maka output yang akan muncul
adalah....
A. $ javac DemoSatu.java
$ java DemoSatu
awal program
Exception in thread "main" java.lang.
NegativeArraySizeException Exception: / by zero
at DemoSatu.main(DemoSatu.java:7)
B. $ javac DemoSatu.java
$ java DemoSatu
awal program
Exception in thread "main"
java.lang.NullPointerException: / by zero
at DemoSatu.main(DemoSatu.java:7)
C. $ javac DemoSatu.java
$ java DemoSatu
awal program
Exception in thread "main" java.lang.LogicalException: /
by zero
at DemoSatu.main(DemoSatu.java:7)
D. $ javac DemoSatu.java
$ java DemoSatu
awal program
Exception in thread "main" java.lang.SecurityException: /
by zero
at DemoSatu.main(DemoSatu.java:7)
E. $ javac DemoSatu.java
$ java DemoSatu
awal program
Exception in thread "main" java.lang.ArithmeticException:
/ by zero
at DemoSatu.main(DemoSatu.java:7)

28. Manakah kode yang paling tepat untuk mengatasa error pada soal No. 7 di
atas?
A. class DemoSatu {
public static void main (String[] args){
System.out.println("awal program");
int x = 10;
try
x = x / 0;
}
catch (Exception e){
e.printStackTrace();

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


222
Infomasi
Modul 2, Rekayasa Perangkat Lunak

System.out.println("error karena pembagian


nol");
}
System.out.println(x);
System.out.println("akhir program");
}
}
B. class DemoSatu {

public static void main (String[] args){


System.out.println("awal program");
int x = 10;
try {
x = x / 0;
catch (Exception e){
e.printStackTrace();
System.out.println("error karena pembagian
nol");
}
System.out.println(x);
System.out.println("akhir program");
}
}
C. class DemoSatu {
public static void main (String[] args){
System.out.println("awal program");
int x = 10;

try {
x = x / 0;
{
catch (Exception e){
e.printStackTrace();
System.out.println("error karena pembagian
nol");
}

System.out.println(x);

System.out.println("akhir program");
}
}
D. class DemoSatu {
public static void main (String[] args){
System.out.println("awal program");
int x = 10;
try {
x = x / 0;}
}
catch (Exception e){
e.printStackTrace();
System.out.println("error karena pembagian
nol");
}

223 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

System.out.println(x);
System.out.println("akhir program");
}
}
E. class DemoSatu {
public static void main (String[] args){
System.out.println("awal program");{
int x = 10;}
try {
x = x / 0;
}
catch (Exception e){
e.printStackTrace();
System.out.println("error karena pembagian
nol");
}

System.out.println(x);
System.out.println("akhir program");
}
}

29. Dalam perancangan UI, User tidak penting mengetahui algoritma apa yang
digunakan, user misalnya algoritma untuk mengurutkan harga sebuah produk
dalam sebuah e-commerce. Hal ini telah sesuai dengan prisnip
A. Invisible technology
B. Task Compatibility
C. Work Flow Compatibility
D. Familiarity,
E. Direct manipulation
30. Sebuab user interface memungkinkan penguna untuk memiringkan huruf
dengan dengan control keyboard Ctrl+i. Kemampuan user interface tersebut
dikenal dengan prisnip....
A. User compatibility
B. Product compatibility
C. Work Flow Compatibility
D. Flexibility
E. Direct manipulation

KUNCI JAWABN TES FORMATIF KB1 – 4

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


224
Infomasi
Modul 2, Rekayasa Perangkat Lunak

KUNCI JAWABAN KB 1
1. D 6. B
2. E 7. A
3. A 8. E
4. D 9. D
5. B 10. D

KUNCI JAWABAN KB 2
1. C 6. C
2. E 7. A
3. A 8. B
4. B 9. A
5. E 10. D

KUNCI JAWABAN KB 3
1. D 6. B
2. C 7. B
3. B 8. A
4. D 9. C
5. B 10. A
KEGIATAN BELAJAR 4
1. B 6. C
2. D 7. E
3. B 8. C
4. B 9. A
5. E 10. E

KUNCI JAWABAN TES SUMATIF


1. B 11. E 21. B
2. A 12. D 22. A

225 KB 4, PBO Dalam Perancangan Aplikasi/Sistem


Infomasi
Modul 2, Rekayasa Perangkat Lunak

3. E 13. D 23. B
4. A 14. B 24. B
5. C 15. A 25. B
6. D 16. B 26. C
7. A 17. D 27. E
8. A 18. B 28. C
9. D 19. D 29. A
10. C 20. B 30. E

KB 4, PBO Dalam Perancangan Aplikasi/Sistem


226
Infomasi

Anda mungkin juga menyukai