Hubungan Antar Kelas & SIKLUS HIDUP PERANGKAT
LUNAK BERORIENTASI OBJECT
Hubungan Antar Kelas
Diagram kelas
- Diagram kelas merupakan sebuah diagram yang
digunakan untuk memodelkan kelaskelas yang digunakan di dalam sistem
beserta hubungan antar kelas dalam sistem tersebut.
- Beberapa elemen penting dalam diagram kelas
adalah kelas dan relasi antar kelas.Kelas digambarkan dengan simbol kotak
seperti gambar berikut :
- Baris pertama dari simbol diagram kelas
menandakan nama dari kelas yang bersangkutan. Baris di bawahnya menyatakan
atribut-atribut dari kelas tersebut apa saja, dan baris setelahnya
menyatakan method-method yang terdapat pada kelas tersebut.
- Adapun simbol untuk access modifer adalah
sebagai berikut:
-
Untuk public diberi simbol + sebelum nama atribut/method
-
Untuk private diberi simbol - sebelum nama atribut/method
-
Untuk protected diberi simbol # sebelum nama atribut/method
- Sedangkan untuk menggambarkan hubungan antar kelas digunakan simbol garis antara dua kelas yang berelasi. Simbol garis tersebut antara lain:
- Kelas B merupakan elemen part-of dari kelas A (kelas A berelasi agregasi dengan kelas B) digambarkan sebagai berikut:
- Kelas A dengan kelas B berelasi
komposisi, digambarkan sebagai berikut:
- Kelas A merupakan turunan dari kelas
B, digambarkan sebagai berikut:
Asosiasi
- Asosiasi merupakan hubungan antara dua
kelas yang merupakan hubungan struktural yang menggambarkan himpunan link
antar obyek. Contoh dari hubungan asosiasi ini adalah:
Pada diagram kelas di atas
terlihat hubungan bahwa kelas dosen mengajar beberapa mahasiswa. Bentuk
implementasi dari diagram kelas tersebut di Java adalah sebagai berikut:
//mahasiswa.java
public class mahasiswa {
private String nim;
private String nama;
public void setnama (String nama) {
this.nama = nama;
}
public void setnim (String nim) {
this.nim = nim;
}
public String getnim () {
return this.nim;
}
public String getnama () {
return this.nama;
}
}
//dosen.java
public class dosen {
private String Kddosen;
private String[] nimMHS;
private int JmlMahasiswa = 0;
public void setKddosen (String Kddosen)
{
this.Kddosen = Kddosen;
}
public void setNimMahasiswa (String
nimMhs) {
if (JmlMahasiswa<5) {
nimMHS[JmlMahasiswa] = nimMhs;
JmlMahasiswa++;
}
}
public int getJmlMahasiswa () {
return this.JmlMahasiswa;
}
public String getKddosen () {
return this.Kddosen;
}
public String getmahasiswa (int i) {
return (nimMHS[i]);
}
}
Pada implementasi terlihat bahwa tidak
ada relasi yang kuat antara kelas dosen dan kelas mahasiswa, hanya ada atribut
dari kelas dosen yang serupa dengan atribut dari kelas mahasiswa yang
menandakan bahwa kedua kelas itu berasosiasi, yaitu atribut nimMahasiswa pada
kelas dosen dan atribut nim pada kelas mahasiswa.
agregasi
Agregasi merupakan hubungan antara
dua kelas di mana kelas yang satu merupakan bagian dari kelas yang lain namun
kedua kelas ini dapat berdiri sendiri-sendiri. Agregasi sering juga disebut
relasi “part of” atau relasi “whole-part”. Contoh hubungan agregasi ini adalah:
- Pada diagram kelas tersebut, terlihat
hubungan antara kelas Jurusan dengan kelas Mahasiswa. Kelas mahasiswa
merupakan bagian dari kelas jurusan, akan tetapi kelas jurusan dan kelas
mahasiswa dapat diciptakan sendiri-sendiri.
- Implementasi dari diagram kelas tersebut
dalam Java adalah sebagai berikut:
//mahasiswa.java
public class mahasiswa {
private String NIM, Nama;
public mahasiswa(String no, String nm) {
this.NIM = no;
this.Nama = nm;
}
public String GetNIM() {
return (NIM);
}
public String GetNama() {
return (Nama);
}
}
//jurusan.java
public class Jurusan {
private String KodeJurusan, NamaJurusan;
private Mahasiswa[] Daftar = new
Mahasiswa[10];
public Jurusan(String kode, String nama)
{
this.KodeJurusan = kode;
this.NamaJurusan = nama;
}
private static int JmlMhs = 0;
public void AddMahasiswa(Mahasiswa m) {
this.Daftar[JmlMhs] = m;
this.JmlMhs++;
}
public void DisplayMahasiswa() {
int i;
Sistem.out.println("Kode Jurusan
:"
+this.KodeJurusan);
Sistem.out.println("Nama Jurusan :”
+this.NamaJurusan);
Sistem.out.println("Daftar
Mahasiswa:");
for (i=0;i<JmlMhs;i++)
Sistem.out.println(Daftar[i].GetNIM()+"
"+Daftar[i].GetNama());
}
}
- Pada implementasi terlihat bahwa kelas
jurusan memiliki atribut yang memiliki tipe kelas mahasiswa, sehingga
kelas mahasiswa merupakan bagian dari kelas jurusan.
komposisi
- Komposisi merupakan bentuk khusus dari
agregasi di mana kelas yang menjadi part (bagian) baru dapat diciptakan
setelah kelas yang menjadi whole (seluruhnya) dibuat dan ketika kelas yang
menjadi whole dimusnahkan, maka kelas yang menjadi part ikut musnah. Contoh
hubungan komposisi adalah sebagai berikut:
- Dari diagram kelas di atas terlihat bahwa
kelas CPU, Monitor, dan Printer semuanya merupakan bagian dari kelas
Komputer dan ketika kelas Komputer musnah maka kelas CPU, Monitor, dan
Printer akan ikut musnah.
- Implementasi dari diagram kelas tersebut
dalam Java adalah sebagai berikut:
//CPU.java
public class CPU {
private String Merk;
private int Kecepatan;
public CPU(String m, int k) {
this.Merk = m;
this.Kecepatan = k;
}
public void DisplaySpecCPU() {
Sistem.out.println(this.Merk + ",
" +
this.Kecepatan);
}
}
//Monitor.java
public class Monitor {
private String Merk;
public Monitor(String m) {
this.Merk = m;
}
public void DisplaySpecMonitor() {
Sistem.out.println(this.Merk);
}
}
//Printer.java
public class Printer {
private String Merk, Type;
public Printer(String m, String t) {
this.Merk = m;
this.Type = t;
}
public void DisplaySpecPrinter() {
Sistem.out.println(this.Merk + ",
" +
this.Type);
}
}
//Komputer.java
public class Komputer {
private String Kode;
private long Harga;
private CPU Proc;
private Monitor Mon;
private Printer Prn ;
public Komputer(String k, long h) {
this.Kode = k;
this.Harga = h;
Proc = new CPU("Pentium IV",
500);
Mon = new Monitor("Sony Multiscan
15sf");
Prn = new Printer("Canon
BJC-210SP“,"Color");
}
public void DisplaySpec() {
Sistem.out.println("Kode :
“+this.Kode);
Sistem.out.print("Processor:
");
Proc.DisplaySpecCPU();
Sistem.out.print("Monitor :
");
Mon.DisplaySpecMonitor();
Sistem.out.print("Printer :
");
Prn.DisplaySpecPrinter();
Sistem.out.println("Harga :
Rp."+
this.Harga);
}}
- Pada implementasi di atas, terlihat bahwa
kelas CPU, Monitor, dan Printer merupakan atribut dari kelas Komputer dan
baru diciptakan pada saat instansiasi obyek dari kelas Komputer.
SIKLUS HIDUP PERANGKAT LUNAK
BERORIENTASI OBJECT
SOFTWARE LIFE CYCLE
OBJECT ORIENTED
• Software seperti manusia
• Software memiliki siklus hidup
• Software didalam suatu sistem
mula-mula perlu dikonseptualisasi terlebih dahulu.
• Software akan menjadi mati pada
akhirnya
• Periode diantaranya disebut siklus
hidup software
MODEL SIKLUS HIDUP SOFTWARE
• Model Build-and-Fix Banyak produk
dikembangkan dengan model ini, Model ini tanpa spesifikasi atau desain, hanya
membangun produk atau merombaknya sebanyak mungkin untuk memenuhi kepuasan
pelanggan
• Model Waterfall
Termasuk model yang mudah dipahami dan di
implementasikan, sangat luas digunakan dan dikenal secara teori, model ini juga
memperkuat kebiasaan yang baik.disamping keuntungan tersebut, model ini juga
mempunyai kekurangan antara lain : kesulitan dalam akomodasi perubahan, tidak
realistis untuk mengharapkan requirement yang akurat pada awal proyek.
• Model Rapid-Prototyping
Teknik Rapid prototyping merupakan model
pengembangan yang tidak memperhatikan struktur internal, dan penggunaan model
Rapid prototyping adalah menentukan kebutuhan nyata klien dan membangun model
secara cepat untuk mempersingkat proses pengembangan software
• Model Incremental
Produk software dirancang, diintegrasikan, dan diuji sebagai suatu rangkaian komponen yang dibangun secara meningkat dimana suatu komponen terdiri dari potongan kode dari berbagai modul yang saling berinteraksi, namun kadang-kadang perlu untuk melakukan spesifikasi ulang, desain ulang, kode ulang atau paling buruk membuang apa yang sudah selesai dan memulai lagi.
• Model Spiral
Ide untuk mengurangi resiko melalui
penggunaan prototype maupun cara-cara lain merupakan konsep yang mendasari penggunaan
model spiral, suatu model spiral yang disederhanakan merupakan model waterfall
dimana tiap tahapnya didahului oleh analisis resiko. sebelum melakukan tiap
tahap perlu adanya upaya untuk mengontrol resiko, jika tidak memungkinkan untuk
mengontrol semua resiko secara signifikan, proyek bisa segera dihentikan.
• Model Concurrent Development
Model dimana semua aktivitas software
development dapat mulai secara bersamaan, masingmasing aktivitas dapat
dijabarkan menjadi beberapa keadaan (state), walaupun aktivitas dapat dimulai
secara bersamaan tetapi state untuk masing-masing aktivitas dapat saja berbeda
karena state aktivitas yang satu dapat menjadi pemicu (trigger) perpindahan
state aktivitas yang lain.
• Model Formal Methods
Kumpulan aktivitas yang mengarah ke
pembentukan spesifikasi matematis dari software komputer, dan memerlukan
pengembangan notasi matematis namun pengembangan metode ini banyak memerlukan
waktu dan biaya dan para pengembang software harus memiliki pengetahuan yang
cukup untuk menerapkan model ini, model ini juga sulit digunakan untuk
berkomunikasi dengan pelanggan yang tidak memahami notasi matematis.
0 Response to "Hubungan Antar Kelas & SIKLUS HIDUP PERANGKAT LUNAK BERORIENTASI OBJECT "
Posting Komentar