Modul PBO
Modul PBO
Modul-1
e. Lalu pada variable PATH pilih edit karena kita akan menambahkan classpath yang baru, maka
akan muncul jendela berikut
f. Tambahkan alamat terletaknya folder bin dalam hasil instalasi java.pada kolom Variable
Value. Setelah itu tekan OK.
3. Setelah di setting classpath restart komputer anda agar terjadi perubahan yang diinginkan
4. untuk mengecek apakah JDK yang anda install sudah terpasang dengan baik adalah dengan
menggunakan command prompt ketikan C:\> java, atau C:\> javac, jika melihat tulisan sebagai
berikut itu berarti JDK anda sudah terinstall dengan baik
5. sedangkan jika kita menggunakan IDE ( Integrated Development Environment) kita tinggal
menginstall nya setelah JDK terinstall, ada beberapa IDE yang bisa di pakai antara lain JBuilder
buatan Borland, Eclipse, NetBeans, dll
contoh tampilan IDE NetBeans
Modul-2
Ada tiga karakteristik utama dari sebuah pemrograman yang berorientasi Object, yaitu :
Abtraction
Encapsulation
Inheritance
Polymorphism
Sebelum kita masuk ke karakteristik OOP kita akan bahas sedikit beberapa konsep dasar dalam OOP
Class
Class adalah blueprint atau prototype dari objek-objek. kita misalkan sebagai berikut :
Class adalah blueprint / rancang bangun yang nantinya akan dibuat sebuah / beberapa object.
Class mengizinkan anda dalam mendeklarasikan tipe data baru
A Class is “ a mechanisme used to provide a description of one more similar objects that have
been abstracted from a real world things or concepts”.
Contoh lain dari analogi sebuah class dengan object adalah sebagai berikut :
Misalkan Ujang dari Class Mahasiswa
Dalam Java kita tidak dapat mendefinisikan objek secara langsung, melainkan kita bekerja
dengan kelas dari sebuah objek.
Access Specifier
Access Spesifier Untuk Variable :
Jenis variable Lingkup pengaksesan Daur hidup
Variabel instant Tunduk terhadap kondisi berikut : Saat instance diciptakan
1. private – hanya metode hingga tidak ada lagi
dalam class yang dapatm referensi terhadap
mengakses instance.
2. public – sembarang class
dapat mengakses.
3. friendly – kelas atau
sembarang class dalam paket
4. protected – sembarang
subclass dari class dapat
mengakses
Variabel class Tunduk terhadap lingkup yang sama Saat kelas dimuat hingga
dengan variable instance tidak ada lagi referensi
terhadap class tersebut.
Variabel lokal Kode didalam blok yang sama Saat kode blok masih
aktif.
Tidak secara Metode dapat diakses oleh metode Metode yang anda
eksplicit didalam class atau metode dalam inginkan dapat diakses
disebutkan class lain yang berada pada paket oleh kelas yang berkaitan
(friendly) yang sama.
Protected Metode dapat diakses oleh metode Metode yang ingin diakses
dalam subclass dari class tersebut oleh subclass dari class
tersebut.
Abstraction
Abstraction : cara kita melihat suatu sistem dalam bentuk yang lebih sederhana, yaitu sebagai
kumpulan subsistem (object) yang saling berinteraksi.
Object
Objek, adalah entiti yang memiliki keadaan, Behaviour dan identitas yang tugasnya dirumuskan
dalam suatu lingkup masalah dengan naik. Inilah instance yang sebenarnya dari sebuah class. Ini
juga dikenal sebagai instance.
Object adalah representasi nyata dari sebuah class.
Object is “a real world thing or concept that can be defined by descriptive attributes and behavior “
Kita dapat menyatakan sesuatu yang ada di sekitar kita sebagai suatu objek, dari yang nyata, seperti
Komputer, pohon, hewan, bangunan, dll. Hingga yang abstrak, seperti hutang, penjualan barang,
dll.
Dalam Java kita tidak dapat mendefinisikan objek secara langsung, melainkan kita bekerja dengan
kelas dari sebuah objek. kita dapat meng-instance sebuah class menjadi object dengan kata kunci
new.
Contoh :
public class hitungPersegi
{
public static void main(String[] args) {
// membuat objek
Persegi p = new persegi() ;
}
}
Perhatikan perbedaan antara class dan obyek yang dicontohkan dalam dunia nyata
{
private int nim;
private String nama;
prvate String alamat;
private String email;
mhs1.setNama("Joni");
mhs1.setNim("00123456");
mhs1.setEmail("[email protected]");
mhs1.setAlamat("Cirebon");
mhs2.setNim("00123457");
mhs2.setAlamat("Kutaraja");
mhs2.setEmail("[email protected]");
mhs2.setNim("ayu");
//Menampilkan Data
System.out.println("Nama : "+mhs1.getNama());
System.out.println("NIM : "+mhs1.getNim());
System.out.println("Email : "+mhs1.getEmail());
System.out.println("Alamat: "+mhs1.getAlamat());
}
}
kotak.setLebar(10);
kotak.setPanjang(15);
Modul-3
public Mahasiswa()
{
jumlah++;
}
public Mahasiswa(String nim)
{
this.nim = nim;
jumlah++;
}
public String getAlamat()
{
return alamat;
}
mhs1.setNama("Joni");
mhs1.setNim("00123456");
mhs1.setEmail("[email protected]");
mhs1.setAlamat("Cirebon");
mhs2.setNim("00123457");
mhs2.setAlamat("Kutaraja");
mhs2.setEmail("[email protected]");
mhs2.setNim("ayu");
//Menampilkan Data
System.out.println("Nama : "+mhs3.getNama());
System.out.println("NIM : "+mhs3.getNim());
System.out.println("Email : "+mhs3.getEmail());
System.out.println("Alamat: "+mhs3.getAlamat());
Modul-4
Inheritance is “The Concepts of creating classes that are specialization of the other class”.
A Super Class is “An class that is higher in the inheritance structure than another class”.
A Sub Class is “An class that is the descendant of another class”.
Example :
Class Mahasiswa is A Sub Class of the class person
Class Person is A Super Class from class Mahasiswa
Latihan 1 :
abstract class Bentuk
{
protected int panjang;
protected int lebar;
public String getBentuk()
{
return "Dasar";
}
@Override
public String getBentuk()
{
@Override
public int hitungLuas()
{
return panjang * lebar;
}
}
class segitiga extends Bentuk
{
@Override
public String getBentuk()
{
return "Segitiga";
}
@Override
public int hitungLuas()
{
return (panjang * lebar )/2;
}
}
Latihan 2 :
public class Hewan
{
private String tipe;
public Hewan(String tipe)
{
this.tipe = tipe;
}
public String toString()
{
return "Ini adalah "+tipe;
}
public void bersuara()
{
}
}
super("Kucing");
this.nama = nama;
this.jenis = jenis;
}
@Override
public void bersuara()
{
System.out.println("Meong...Meong...");
}
@Override
public String toString()
{
return super.toString()+"\nIni adalah "+jenis+" bernama "+nama;
}
}
Modul-5
Judul : UML
Teori : Dalam suatu proses pengembangan software, analisa dan rancangan telah merupakan
terminologi yang sangat tua. Pada saat masalah ditelusuri dan spesifikasi dinegoisasikan, dapat
dikatakan kita berada pada tahap rancangan. Merancang adalah menemukan suatu cara untuk
menyelesaikan masalah, salah satu tool / model untuk merancang pengembangan software yang
berbasis object oriented adalah UML.
Konsep Objek
Obyek dalam „software analysis & design‟ adalah sesuatu berupa konsep (concept), benda (thing), dan
sesuatu yang membedakannya dengan lingkungannya. Secara sederhana obyek adalah mobil, manusia,
alarm dan lainlainnya. Tapi obyek dapat pula merupakan sesuatu yang abstrak yang hidup didalam
sistem seperti tabel, database, event, system messages. Obyek dikenali dari keadaannya dan juga
operasinya. Sebagai contoh sebuah mobil dikenali dari warnanya, bentuknya, sedangkan manusia dari
suaranya. Ciriciri ini yang akan membedakan obyek tersebut dari obyek lainnya. Alasan mengapa saat
ini pendekatan dalam pengembangan software dengan object oriented, pertama adalah scalability
dimana obyek lebih mudah dipakai untuk menggambarkan sistem yang besar dan komplek. Kedua
dynamic modeling, adalah dapat dipakai untuk permodelan sistem dinamis dan realtime.
Keuntungan permodelan berorientasi objek yaitu :
1. Titik berat pengembangan perangkat lunak ada di tahap analisis tetapi mudah di bagian
implementasi karena model-model yang dihasilkan mudah diadaptasi ke dalam program.
2. Mengorganisasikan system berdasarkan objek dan bukan fungsi menghasilkan model yang lebih
stabil dari perubahan yang terjadi kemudian dan pada tahap implementasi menghasilkan
program yang lebih modular.
3. Merupakan proses pengembangan yang berkesinambungan. Model-model yang dihasilkan pada
tahap analisis digunakan pada tahap perancangan dan implementasi. Tahap perancangan dan
implementasi mengkonsentrasikan pada memperbaiki model dan tidak mentransformasi model-
model tersebut ke dalam diagram lain yang berbeda notasi. Oleh karena itu, model-model yang
dihasilkan cukup konsisten, error, dan diskontinuitas dapat model dapat diminimasi.
Teknik Dasar OOA/D (Object-Oriented Analysis/Design)
Dalam dunia pemodelan, metodologi implementasi obyek walaupun terikat kaidah-kaidah standar,
namun teknik pemilihan obyek tidak terlepas pada subyektifitas software analyst & designer. Beberapa
obyek akan diabaikan dan beberapa obyek menjadi perhatian untuk diimplementasikan di dalam
sistem. Hal ini sah-sah saja karena kenyataan bahwa suatu permasalahan sudah tentu memiliki lebih
dari satu solusi. Ada 3 (tiga) teknik/konsep dasar dalam OOA/D, yaitu pemodulan (encapsulation),
penurunan (inheritance) dan polymorphism.
a. Pemodulan (Encapsulation)
Pada dunia nyata, seorang ibu rumah tangga menanak nasi dengan menggunakan rice cooker,
ibu tersebut menggunakannya hanya dengan menekan tombol. Tanpa harus tahu bagaimana
proses itu sebenarnya terjadi. Disini terdapat penyembunyian informasi milik rice cooker,
sehingga tidak perlu diketahui seorang ibu. Dengan demikian menanak nasi oleh si ibu menjadi
sesuatu yang menjadi dasar bagi konsep information hiding.
b. Penurunan (Inheritance)
Obyek-obyek memiliki banyak persamaan, namun ada sedikit perbedan. Contoh dengan
beberapa buah mobil yang mempunyai kegunaan yang berbeda-beda. Ada mobil bak terbuka
seperti truk, bak tertutup seperti sedan dan minibus. Walaupun demikian obyek-obyek ini
memiliki kesamaan yaitu teridentifikasi sebagai obyek mobil, obyek ini dapat dikatakan sebagai
obyek induk (parent). Sedangkan minibus dikatakan sebagai obyek anak (child), hal ini juga
berarti semua operasi yang berlaku pada mobil berlaku juga pada minibus.
c. Polymorphism
Pada obyek mobil, walaupun minibus dan truk merupakan jenis obyek mobil yang sama, namun
memiliki juga perbedaan. Misalnya suara truk lebih keras dari pada minibus, hal ini juga
berlaku pada obyek anak (child) melakukan metoda yang sama dengan algoritma berbeda dari
obyek induknya. Hal ini yang disebut polymorphism, teknik atau konsep dasar lainnya adalah
ruang lingkup / pembatasan. Artinya setiap obyek mempunyai ruang lingkup kelas, atribut, dan
metoda yang dibatasi.
Perbandingan Antara Object Oriented dengan Struktural
Object Oriented Struktural
1. Systems decomposed into collections of 1. Systems decomposed into functions;
data objects;
2. function + data in one place 2. functions and data modelled separately
3. System components more independent => 3. System components are more dependent
more resilient to requirements and on each other => requirements and
maintenance changes maintenance changes more difficult
Association
Adalah hubungan antara benda struktural yang terhubung diantara objek Kesatuan obyek yang
terhubung merupakan hubungan khusus, yang menggambarkan sebuah hubungan struktural
diantara seluruh atau sebagian.
Generalization
Generalization adalah hubungan yang menggambarkan hubungan antara class induk dan class
anak/antara super class dan sub class
Sebuah use case menggambarkan suatu urutan interaksi antara satu atau lebih aktor dan sistem. Dalam
fase requirements, model use case mengambarkan sistem sebagai sebuah kotak hitam dan interaksi
antara aktor dan sistem dalam suatu bentuk naratif, yang terdiri dari input user dan respon-respon
sistem. Setiap use case menggambarkan perilaku sejumlah aspek sistem, tanpa mengurangi struktur
internalnya. Selama pembuatan model use case secara pararel juga harus ditetapkan obyek-obyek yang
terlibat dalam setiap use case.
Sebuah Use Case menggambarkan suatu urutan interaksi antara satu atau lebih aktor dan
sistem.
Menekankan pada “apa” yang diperbuat sistem, bukan “bagaimana”.
Model elements : Use Case dan Actor.
Use Case menggambarkan kebutuhan sistem dari sudut pandang di luar sistem.
Use Cases hanya menetapkan apa yang seharusnya dikerjakan oleh sistem, yaitu kebutuhan
fungsional sistem.
Use Cases adalah interaksi atau dialog antara sistem dan actor, termasuk pertukaran pesan
dan tindakan yang dilakukan oleh sistem.
Actor
Actor menggambarkan segala pengguna software aplikasi (user). Actor memberikan suatu gambaran
jelas tentang apa yang harus dikerjakan software aplikasi. Sebagai contoh sebuah actor dapat
memberikan input kedalam dan menerima informasi dari software aplikasi, perlu dicatat bahwa sebuah
actor berinteraksi dengan use case, tetapi tidak memiliki kontrol atas use case. Sebuah actor mungkin
seorang manusia, satu device, hardware atau sistem informasi lainnya.
Langkah pertama untuk analisa kebutuhan adalah mencari sesuatu yang berinteraksi dengan sistem
Anda.
Dalam Use Cases, sesuatu diluar sistem yang berinteraksi dengan sistem disebut actor.
Actor class digunakan untuk memodelkan dan menyatakan peran untuk “pemakai” dari sistem,
termasuk manusia dan sistem lain.
Sistem Boundaries
Sistem boundaries adalah batasan sistem terhadap lingkungan luar, pada use case, sistem boundaries
digunakan untuk memisahkan antara sistem dengan actor karena hanya actor lah yang berada di luar
sistem
Pada use case sistem boundaries digambarkan dengan kotak
System
Use Case
Sebuah use case dimulai dengan masukan/input dari seorang aktor. Use case merupakan suatu
urutan lengkap kejadian-kejadian yang diajukan oleh seorang aktor, dan spesifikasi interaksi antara
aktor dengan sistem. Use case yang sederhana hanya melibatkan satu interaksi/hubungan dengan
sebuah aktor, dan use case yang lebih kompleks melibatkan beberapa interaksi dengan aktor. Use cases
yang lebih kompleks juga melibatkan lebih dari satu aktor.
Use case menjelaskan urutan kegiatan yang dilakukan actor dan sistem untuk mencapai suatu
tujuan tertentu. Walaupun menjelaskan kegiatan, namun use case hanya menjelaskan apa yang
dilakukan oleh actor dan sistem bukan bagaimana actor dan sistem melakukan kegiatan tersebut.
Untuk menggambarkannya dalam use case model biasanya digunakan association relationship
yang memiliki stereotype include, extend atau generalization relationship. Hubungan include
menggambarkan bahwa suatu use case seluruhnya meliputi fungsionalitas dari use case lainnya.
Hubungan extend antar use case berarti bahwa satu use case merupakan tambahan fungsionalitas dari
use case yang lain jika kondisi atau syarat tertentu terpenuhi.
Use Case digambarkan sebagai berikut :
UseCase
b. Extends
Extend relationship pada Use Case adalah suatu hubungan sebab akibat. Jika fungsi induk
mempunyai extend relationship maka dapat diartikan bahwa fungsi Use Case induk tersebut
dapat dilakukan jika fungsi extend dilakukan terlebih dahulu. Bentuk penulisan extend
relationship adalah “<<extend>>”.
Perluasan dari Use Case lain jika kondisi atau syarat terpenuhi
Kurangi penggunaan association Extend ini, terlalu banyak penggunaan association ini
membuat diagram sulit dipahami
Tanda panah terbuka harus terarah ke parent/base Use Case
Gambarkan association extend secara vertikal (picture extending Use Case below than
base/parent Use case)
Tidak boleh actor dihubungkan pada Use Case <<extend>>
3. Generalization antar use case
Dibuat ketika ada sebuah keadaan yang lain/perlakuan khusus
Inheriting Use Case di bawah parent/base Use Case
Activity Diagram
Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang,
bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka
berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada
beberapa eksekusi.
Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan
sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena
itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar
subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level
atas secara umum.
Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses
yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk
melakukan aktivitas.
Simbol simbol pada activity diagram hampir mirip dengan flowchart, berikut daftar simbol
Simbol Keterangan
Control Flow
State1
State (proses)
Transisition
*
*
*
*
*
Decision
Final State
Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem (termasuk
pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence
diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait).
Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah
yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa
yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan
output apa yang dihasilkan.
Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message digambarkan sebagai garis
berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan
menjadi operasi/metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses,
biasanya diawali dengan diterimanya sebuah message.
Simbol Keterangan
Object Timeline
Object1
Aktivasi
Message
Modul-6
Diagram di atas menunjukkan 3 komponen yang terdapat dalam pola MVC dan interaksi yang terjadi.
Model
Pola MVC memiliki layer yang disebut dengan Model yang merepresentasikan data yang digunakan
oleh aplikasi sebagaimana proses bisnis yang diasosiasikan terhadapnya. Dengan memilahnya sebagai
bagian terpisah, seperti penampungan data, persistence, serta proses manipulasi, terpisah dari bagian
lain aplikasi.
Terdapat beberapa kelebihan dalam pendekatan ini. Pertama, membuat detail dari data dan operasinya
dapat ditempatkan pada area yang ditentukan (Model) dibanding tersebar dalam keseluruhan lingkup
aplikasi. Hal ini memberikan keuntungan dalam proses maintenance aplikasi.
Kedua, dengan pemisahan total antara data dengan implementasi interface, komponen model dapat
digunakan kembali oleh aplikasi lain yang memiliki kegunaan yang hampir sama.
View
Layer ini mengandung keseluruhan detail dari implementasi user interface. Disini, komponen grafis
menyediakan representasi proses internal aplikasi dan menuntun alur interaksi user terhadap aplikasi.
Tidak ada layer lain yang berinteraksi dengan user, hanya View.
Penggunaan layer View memiliki beberapa kelebihan : Pertama, memudahkan pengabungan divisi
desain dalam development team. Divisi desain dapat berkonsentrasi pada style, look & feel, dan
sebagainya, dalam aplikasi tanpa harus memperhatikan lebih pada detail yang lain.
Dan juga, memiliki layer View yang terpisah memungkinkan ketersediaan multiple interface dalam
aplikasi. Jika inti dari aplikasi terletak pada bagian lain (dalam Model), multiple interfaces dapat
dibuat (Swing, Web, Console), secara keseluruhan memiliki tampilan yang berbeda namun
mengeksekusi komponen Model sesuai fungsionalitas yang diharapkan.
Controller
Terakhir, arsitektur MVC memiliki layer Controller. Layer ini menyediakan detail alur program dan
transisi layer, dan juga bertanggung jawab akan penampungan events yang dibuat oleh user dari View
dan melakukan update terhadap komponen Model menggunakan data yang dimasukkan oleh user.
Kelebihan dalam penggunaan layer Controller secara terpisah : Pertama, dengan menggunakan
komponen terpisah untuk menampung detail dari transisi layer, komponen view dapat didesain tanpa
harus memperhatikan bagian lain secara berlebih. Hal ini memudahkan team pengembang multiple
interface bekerja secara terpisah dari yang lain secara simultan. Interaksi antar komponen View
terabstraksi dalam Controller.
Kedua, dengan menggunakan layer terpisah yang melakukan update terhadap komponen Model, detail
tersebut dihapus dari layer presentasi. Layer presentasi kembali pada fungsi utamanya untuk
menampilkan data kepada user. Detail tentang bagaimana data dari user mengubah ketetapan aplikasi
disembunyikan oleh Controller. Hal ini memisahkan dengan jelas antara presentation logic dengan
business logic.
Tidak dapat disimpulkan bahwa pola MVC hadir dengan kelebihan – kelebihan tanpa ada efek
samping. Pembagian aplikasi dalam 3 bagian terpisah meningkatkan kompleksivitas. Pada aplikasi
kecil yang tidak membutuhkan loose coupling pada Model, hal ini dapat menjadi blok penghalang
dalam penggunaan pola ini. Bagaimanapun, yang terbaik adalah untuk meyakini bahwa sebuah aplikasi
umumnya dimulai dari aplikasi sederhana, dan berkembang menjadi sistem yang kompleks., sehingga
factor loose coupling harus selalu diutamakan dan diperhatikan.
Dalam java ada beberapa component swing yang menggunakan konsep mvc, diantaranya adalah
JTable, pada beberapa kasus penggunaan JTable ini terasa sulit karena kita harus belajar menggunakan
konsep MVC, tetapi jika sudah memahami konsep ini justru penggunaan JTable ini terasa lebih mudah.
import java.util.Vector;
import javax.swing.table.AbstractTableModel;
public tabelModelMahasiswa(Vector v)
{
int jmlBaris = v.size();
data = new String[jmlBaris][];
for(int i = 0; i < jmlBaris; i++)
{
Mahasiswa mhs = (Mahasiswa)v.elementAt(i);
data[i] = new String[3];
data[i][0] = mhs.getNim();
data[i][1] = mhs.getNama();
data[i][2] = mhs.getProdi();
}
}
public mahasiswaDb()
{
koneksi konek = new koneksi();
con = konek.getCon();
stmt = konek.getStmt();
}
{
if (stmt != null) stmt.close();
if (con != null) con.close();
}
catch (SQLException sqle)
{
sqle.getMessage();
}
}
return v;
}
}
3. Buat View Component
public class tampilMahasiswa
{
private tabelModelMahasiswa model;
private Container contentPane;
public void run()
{
JFrame frame = new JFrame();
contentPane = frame.getContentPane();
contentPane.add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setSize(300, 400);
frame.setLocation(150, 50);
frame.setVisible(true);
}
public static void main(String[] args)
{
tampilMahasiswa tampil = new tampilMahasiswa();
tampil.run();
}
}