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
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
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
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.
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
Pilih ‘I accept the terms in the license agreement, Install JUnit’, Klik NEXT
1) Jalankan 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
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.
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
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
// 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);
}
}
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
4) Setelah pembuatan project ‘contoh2’ ini berhasil, maka secara otomatis akan
muncul package dengan nama ‘contoh2’.
// method jumlah()
public void
jumlah()
{
this.hasil = this.bilangan1 + this.bilangan2;
}
// method
tampilHasil() public
void tampilHasil()
{
System.out.println("Hasil operasi bilangan : " +
this.hasil);
}
}
Keterangan:
- Bilangan1, bilangan2 dan hasil merupakan atribut atau properties dari class
operasibilangan, sedangkan jumlah() dan tampilHasil() adalah methodnya.
- Perhatikan, di depan atribut atau method ada ‘public’ atau ‘private’. Jika
diberikan ‘public’ maka atribut atau method tersebut bisa diakses dari class
manapun (jika terdapat lebih dari satu class). Namun jika ‘private’, maka
atribut atau method hanya bisa diakses di dalam class itu saja. Selain ‘public’
dan ‘private’ sebuah atribut atau method bisa juga diset dengan sifat
‘protected’ yang artinya hanya bisa diakses dalam class itu saja ata class lain
yang masih dalam satu package yang sama. Keterangan ‘public’, ‘private’
dan ‘protected’ dalam OOP disebut modifier yang digunakan untuk
menentukan aksesibilitas method atau atribut.
- Perintah ‘this.’ digunakan untuk mengakses atribut atau method yang ada
dalam class tersebut.
9) Kemudian, di class ‘Contoh2’ nya (di file ‘Contoh2.java’), tulis kode program
sebagai berikut
public class Contoh2 {
public static void main(String[] args) {
operasiBilangan op1 = new operasiBilangan();
op1.bilangan1 = 10;
op1.bilangan
2 = 20;
op1.jumlah()
;
op1.tampilHa
sil();
}
}
Keterangan:
Perintah:
operasiBilangan op1 = new operasiBilangan();
digunakan untuk instantisasi, yaitu proses membuat obyek baru dengan nama
‘op1’. Obyek ini termasuk dalam class ‘operasiBilangan’.
Perintah:
op1.bilangan1 = 10;
adalah mengeset atribut ‘bilangan1’ pada obyek ‘op1’ dengan suatu nilai.
Demikian juga dengan perintah
op1.bilangan2 = 20;
Perintah
op1.jumlah();
op1.tampilHasil();
Contoh 4
Berikut ini contoh yang merupakan pengembangan dari project ‘contoh2’
public class Contoh2 {
public static void main(String[] args) {
// instantisasi obyek ‘op1’
operasiBilangan op1 = new operasiBilangan();
op1.bilangan1 = 10;
op1.bilangan2 = 20;
op1.jumlah();
op1.tampilHasil();
// instantisasi obyek ‘op2’
operasiBilangan op2 = new operasiBilangan();
op2.bilangan1 = 30;
op2.bilangan2 = 25;
op2.jumlah();
op2.tampilHasil();
}
}
Dalam contoh di atas, dibuat 2 obyek dari class yang sama yaitu ‘op1’ dan
‘op2’. Adapun hasil output dari program ini adalah,
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
Setelah package ‘paketku’ dibuat, buat class dengan nama ‘classku’. Caranya
adalah dengan mengklik kanan pada package ‘paketku’, pilih NEW – JAVA
CLASS.
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,
Contoh 6:
Sebagai contoh, berikut ini adalah sebuah pembuatan program Java untuk
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.
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;
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:
dan outputnya:
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);
}
}
persyaratan/kondisional.
Struktur Kontrol IF
Tata cara penulisan statement IF:
if (syarat)
{
statement; statement;
.
.
}
statement;
statement;
}
.
.
else
{
statement;
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;
.
.
}
Statement FOR
Aturan penulisan (syntax) nya adalah:
for(ekspresiawal; syarat; ekspresiakhir)
{
statemen
t;
statemen
t;
.
.
}
Statement WHILE
Aturan penulisannya:
while(syarat)
{
statemen
t;
statemen
t;
.
.
}
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:
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
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;
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
koma (%10.1f). Perintah ini sebagai alternatif cara untuk memformat tampilan
output selain yang pernah di bahas di bab sebelumnya.
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);
}
}
untuk proses instansiasi sekaligus menset atribut bil1 dan bil2 nya, sehingga
secara umum perintah untuk menjumlahkan dua bilangannya adalah sebagai
berikut:
operasi op1 = new
operasi(10, 20);
op1.jumlahkan();
op1.tampilhasil();
Larik (Array)
Seperti halnya bahasa pemrogaman yang lain, di dalam Java juga ada penggunaan
Array. Di dalam java nomor indeks suatu array dimulai dari 0.
Sebagai contoh, perhatikan perintah berikut ini untuk membuat array dengan nama
arrayku bertipe data integer dengan jumlah elemennya 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 {
}
}
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.
Perhatikan contoh di atas, bahwa obyek ‘ob2’ dari instansiasi class ‘keretaApi’
bisa diset atribut- atributnya seperti halnya ‘ob1’, demikian juga method-
methodnya. Khusus atribut ‘jmlGerbong’ dan method ‘tampilJmlGerbong()’
hanya dimiliki oleh class ‘keretaApi’ saja.
Keterangan:
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;
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();
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.
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();
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:
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?
atau
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.
try
{
...
}
catch (exception1 var1)
{
...
}
catch (exception2 var2)
{
...
}
.
.
catch (exceptionn varn)
{
...
}
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.
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
Contoh berikut ini menunjukkan kejadian error yang merupakan cara lama, yaitu
loading loading file from the disk.
Keterangan:
Implementasi 2
try {
Fungsi bacaFile
BukaFile
BacaBarisFileSampaiHabis
TutupFile
} catch (KesalahanBukaFile) {
// 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
Contoh,
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.
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()
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
3. Setalah itu buka browser dan ketikan localhost/phpmyadmin/ klik database yang
ingin diakses client.
6. Kemudi klik GO yang berada di pojok kanan bawah, jika sudah di GO maka
akan otomatis user yang ditambahkan masuk ke data user.
Pada bagian Allow from isi dengan alamat IP client yang telah di setting di PC
Client.
10. Setelah itu Save.
11. Terakhir pada bagian script kode koneksinya dibuat seperti berikut gambar
berikut
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.
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
inputnya.
Berikut adalah hal-hal penting untuk mendesain output:
• Output komputer harus mudah diterima oleh pengguna sistem yang akan
menerima output.
output akan digunakan, maka perlu menekankan beberapa hal yang terkait
dengan masalah desain:
- Berapa buah halaman atau lembar dari output yang akan dihasilkan untuk
salinan tunggal dari printed output?
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
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.
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:
• Tidak mampu membedakan antara tindakan pilihan (”Apa yang harus saya
lakukan selanjutnya?”)
• Ketidakkonsistenan desain.
Untuk mengatasi masalah tersebut maka desainer mempertimbangkan hal
berikut ini:
• 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.
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?
• 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).
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
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).
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
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
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
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
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
$ 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 {
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 {
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.
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
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)
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
2 dst
3
Total Harga
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
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
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.
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
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.
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
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.
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
if ( grade > 70 )
System.out.println(“Passed”);
else
System.out.println(“Failed”)
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();
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 {
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 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
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