tugas ii rpl - kohesi & kopling
TRANSCRIPT
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
KOHESI & KOPLING
TUGAS KULIAH II
REKAYASA PERANGKAT LUNAK
Oleh :
Nama : Mochamad Riza Rifansyah
NIM : 11.09.09.04
Kelas : 11.6AE.01
KOHESI & KOPLING| 1
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
DAFTAR ISI
Konsep Modul .......................................................................................... 2
A. Kohesi ................................................................................................. 4
A.1. Coincidental Cohesion .............................................................. 4
A.2. Utility Cohesion ......................................................................... 5
A.3. Temporal Cohesion ................................................................... 5
A.4. Procedural Cohesion ................................................................. 6
A.5. Communication Cohesion ......................................................... 6
A.6. Sequential Cohesion ................................................................. 7
A.7. Layer Cohesion ......................................................................... 7
A.8. Functional Cohesion ................................................................. 8
B. Kopling ................................................................................................ 9
B.1. No Direct Coupling .................................................................... 9
B.2. External Coupling ..................................................................... 10
B.3. Inclusion or Import Coupling ..................................................... 11
B.4. Type Use Coupling .................................................................... 12
B.5. Routine Call Coupling ............................................................... 13
B.6. Data Coupling ........................................................................... 13
B.7. Stamp Coupling ........................................................................ 14
B.8. Control Coupling ....................................................................... 15
B.9. Common Coupling .................................................................... 16
B.10. Content Coupling ...................................................................... 17
KONSEP MODUL
KOHESI & KOPLING| 2
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
Konsep modul dalam perancangan sistem adalah akibat dari logika “bagi dan
kurang“ yang logis. Untuk mengukur jumlah modul yang optimal dalam suatu
sistem yang dirancang menggunakan alat-alat tertentu yang digunakan sebagai
petunjuk untuk mengevaluasi dan memperbaiki sifat-sifat rancangan sistem
informasi dan untuk membandingkan sistem keseluruhan dengan alternatif
alternative yang ada.
Dua alat pengukur tersebut adalah kohesi dan kopling yang mana berfungsi
untuk mengukur independen suatu modul dalam sistem yang dirancang. Dengan
mempertimbangkan fungsi vital independen suatu modul dalam rancangan
sistem seorang analyst sistem akan menyadari betul arti penting kohesi dan
kopling untuk memastikan sistem yang dirancangnya memiliki tingkat kopling
yang rendah dan tingkat kohesi yang tinggi.
Ciri Modul yang baik:
A.KOHESI (cohesion)
KOHESI & KOPLING| 3
High cohesion (functional cohesion): modul hanya melakukan satu tugas
dan memerlukan sedikit interaksi dengan modul lain dalam satu program.
Low coupling: modul memiliki kopling antar modul yang lemah atau sebebas mungkin dengan modul yang lain (independen). Kopling tergantung pada kompleksitas antarmuka modul.
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
Kohesi (Cohesion) adalah ukuran keterpaduan, kekuatan, atau pengikatan
dimana derajat hubungan antara elemen-elemen dalam suatu modul jelas
dan terstruktur. Kriteria ini untuk mengukur seberapa independen sebuah
program dari pada prosesnya sendiri, mempunyai satu fungsi tunggal yang
berkaitan dengan masalah. Dengan kata lain, hal ini menunjukan kekuatan
fungsi relatif modul dalam satu sistem. Sehingga sebuah program yang
kohesi akan memiliki data dan logika yang diperlukan untuk melengkapi
aplikasinya tanpa secara langsung terpengaruh oleh program lain. Untuk
kriteria perancangan sistem yang baik adalah dengan ciri modul yang
dirancang memiliki kohesi yang tinggi.
Program yang kohesif dapat dimisalkan dengan bagian mobil yang dapat
ditukar-tukarkan. Jika sebuah mobil memiliki ukuran ban 14 inchi maka semua
jenis dan merek ban asalkan ukurannya 14 inchi dapat dipasangkan pada
mobil Ini, Jadi ban mobil 14 inchi ini, tidak dikhususkan pada satu atau
beberapa jenis mobil tertentu, tetapi merupakan komponen yang kohesif
untuk banyak tipe mobil.
Jenis-Jenis kohesi yaitu :
A.1. Coincidental Cohesion
Jika modul/kelas terdiri dari beberapa fungsi tetapi tidak terdapat
hubungan yang berarti antara elemen-elemen dari modul tersebut. Suatu
kejadian dimana secara kebetulan saja bahwa elemen-elemen berada
dalam tempat yang sama.
- Elemen-elemen tidak mempunyai hubungan
KOHESI & KOPLING| 4
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
Contoh :
A.2. Utility Cohesion
Jika terdiri dari beberapa fungsi yang mempunyai tugas serupa atau
melakukan fungsi-fungsi yang masuk dalam kelas yang sama walaupun
logikanya berbeda.
- ELemen-elemen melakukan kegiatan dengan kategori yang sama
- Parameter masukan menentukan kegiatan yang dilaksanakan
- Tidak semua kegiatan dikerjakan
Contoh :
A.3. Temporal Cohesion
Jika sebuah modul berisi sejumlah tugas yang dihubungkan dengan segala
yang harus dieksekusi di dalam waktu yang bersamaan.
- Elemen-elemen terlibat dalam berbagai kegiatan yang mempunyai
hubungan dalam waktu
- Urutan tidak penting
Contoh :
A.4. Procedural Cohesion
Jika pemrosesan elemen-elemen dari suatu modul dihubungkan dan harus
dieksekusi dalam urutan spesifik.
KOHESI & KOPLING| 5
class Utilityfunction ParseXMLfunction Encryptfunction Verifyfunction Truncate
class BuatTransaksifunction beliBarangfunction jualBarangfunction terimaBarang
class BuatTransaksifunction tulisDatabasefunction beritahuUserLainfunction monitorProses
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
- Hubungan antara elemen yang satu dengan yang lainnya karena
urutan statement (secara prosedur)
- Dapat dipecahkan menjadi Functional
Contoh :
A.5. Communication Cohesion
Jika pemrosesan elemen-elemen dikonsentrasikan pada satu area dari
suatu struktur data.
- Modul melakukan komunikasi terhadap data yang sama
Contoh :
A.6. Sequential Cohesion
Jika keluaran dari suatu elemen merupakan masukan untuk elemen yang
lain secara berurutan. Modul terdiri dari beberapa fungsi dimana elemen
KOHESI & KOPLING| 6
class BuatTransaksi
function bacaItem
function checkInventory
function buatTransaksi
function tulisDatabase
function beritahuUser
function tulisInventory
function cetakDO
function tulisInvoice
function cetakInvoice
class Transaksi
function nomorTransaksi
function jenisTransaksi
function tanggalTransaksi
function pembuatTransaksi
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
dalam modul bertindak sebagai suatu himpunan urutan aksi-aksi
atau fungsi-fungsi sangat berikatan.
- Kegiatan lebih dari satu dan dilakukan secara beruntun
- Hasil dari kegiatan sebelumnya menjadi masukan bagi kegiatan
selanjutnya
- Beroperasi pada sebuah data dari mulai input hingga output
Contoh :
A.7. Layer Cohesion
Berlaku untuk paket, komponen, dan kelas. Terjadi ketika lapisan yang
lebih tinggi dapat mengakses lapisan lebih rendah, tetapi lapisan bawah
tidak mengakses lapisan yang lebih tinggi.
Contoh :
A.8. Functional Cohesion
Bila seluruh elemen dari modul terkait hanya melakukan suatu
fungsi tunggal yang terdefinisi dengan baik, tanpa tergantung pada
implementasi modul-modul yang lain.
KOHESI & KOPLING| 7
class TulisTransaksi
function terimaData
function prosesData
function tulisData
function pembuatTransaksi
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
- Mempunyai satu tugas
- Menghasilkan satu hasil/satu parameter output
- Bisa terdiri dari satu atau lebih parameter input
Contoh :
B.KOPLING
KOHESI & KOPLING| 8
class Transaksi
function tulisData
function bacaData
function prosesData
function hitungTotal
function hitungSubTotal
function hitungItem
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
Kopling dapat diartikan bagaimana sebuah aplikasi atau modul atau kelas
saling berhubungan dan bergantung. kopling itu merupakan suatu ukuran
derajat inter-dependen antara modul-modul sistim. Pemodulan sistem akan
mengurangi kopling dan sebaliknya mempermudah pengertian bagaimana
setiap modul berfungsi. Modul yang tidak tergantung kepada modul lain
dikatakan dengan memiliki kopling yang rendah. Derajat minimum kopling
antara modul-modul sistem akan menghasilkan sistem yang
terancang baik dan berfungsi lebih baik.
Jenis-jenis Coupling yaitu:
B.1. No Direct Coupling
Apabila modul 1 dan modul 2 adalah subordinate terhadap modul-modul
yang berbeda. Sehingga masing-masing tidak berhubungandan dan tidak
ada penggandengan langsung yangterjadi antara keduanya.
Contoh :
KOHESI & KOPLING| 9
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
B.2. External Coupling
Tingkat coupling yang terjadi bila modul-modul terikat pada
lingkungan luar (external) dari perangkat lunak.
- Dua modul atau lebih menggunakan data global yang sama
- Tidak ada parameter yang digunakan dari modul pemanggil ke
subordinate dan sebaliknya
Contoh :
KOHESI & KOPLING| 10
class A{ private int suatuNilai; A(int suatuNilai) { this.suatuNilai = suatuNilai; } public int getSuatuNilai() { return suatuNilai; } public void setSuatuNilai(int suatuNilai) { this.suatuNilai = suatuNilai; }}
class B{ void suatuMethod() { A a = new A(10); System.out.println("a.suatuNilai = " +a.getSuatuNilai()); //Kelas B hanya mengetahui kelas A }}
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
B.3. Inclusion or Import Coupling
Tingkat level kopling yang terjadi ketika salah satu komponen mengimpor
atau menggunakan paket komponen Lain
- Komponen termasuk dalam komponen disertakan atau diimpor.
- Komponen yang mengimport akan mengalami perubahan komponen
jika paket komponen yang diimport dirubah.
- Item dalam komponen yang diimpor mungkin memiliki nama yang
sama dengan komponen lainya.
Contoh :
KOHESI & KOPLING| 11
Calculate_sales_tax IF product is sales exemt THEN
sales_tax = 0ELSE IF product_price < $50 THEN sales_tax = sales_price * 0.25….…ENDIFENDIFCalculate_amount_due …amount_due = total_amount + sales_tax …END
package riza;public class Bilangan { private int desimal; public void setDesimal(int desimal) { if(desimal>=0) { this.desimal = desimal; } else { this.desimal = -desimal; }} public int getDesimal() { return this.desimal; } }
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
B.4. Type Use Coupling
Tingkat level kopling yang terjadi terjadi ketika salah satu komponen
menggunakan jenis data yang didefinisikan dalam komponen lain.
- setiap saat kelas menyatakan instance variable atau variabel lokal
memiliki kelas lain untuk jenisnya.
Contoh :
KOHESI & KOPLING| 12
public String biner() { String hasil=""; int sisa = this.desimal; do { hasil = sisa % 2 == 1 ? "1" + hasil : "0" + hasil ; sisa /= 2; } while (sisa > 0); return hasil; }}
import riza.Bilangan;class Utama { public static void main(String[] args) { Bilangan x = new Bilangan(); x.setDesimal(-44); System.out.println("Bilangan biner dari "+ x.getDesimal() + " adalah "+ x.biner()); }}
class A { private int x = 101; class B { void lakukanSesuatu() { System.out.print("x = " + x); } }}public class mencoba{ public static void main(String[] args) { A a = new A(); A.B b = a.new B(); b.lakukanSesuatu(); }}
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
B.5. Routine Call Coupling
Beberapa jenis kopling yang sering terjadi secara rutin pada pemrograman
berorientasi obyek.
- Enkapsulapsi urutan berulang
Contoh :
B.6. Data Coupling
Dua buah modul dari sistem mempunyai data coupling jika
komunikasi dari modul-modul ini dilakukan lewat suatu data. Data
dapat berupa sebuah item data tunggal atau elemen dari suatu larik
(array).
- Komunikasi diantara modul menggunakan data, meminimalkan jumlah
data
- Parameter data yang disalurkan semakin sedikit semakin baik
KOHESI & KOPLING| 13
package sekolah;
import java.util.collection.*; //import kopling
public class kelas {
private Stack s; //tipe kopling
public void doSomething(){
s.push(x); // routine kopling
}
.....
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
Contoh :
B.7. Stamp Coupling
Dua buah modul dikatakan stamp coupling jika kedua modul ini
berkomunikasi lewat suatu kelompok item data. Kelompok item data
dapat berupa suatu record yang terdiri dari beberapa field atau larik yang
terdiri dari beberapa elemen.
- Dua modul melakukan pass struktur data non global yang sama
- Struktur data: record, array
- Bila modul memeriksa struktur data tetapi hanya menggunakan
sebagian data akan membahayakn system
KOHESI & KOPLING| 14
A. Process_customer_record……calculate_sales_tax(total_price, sales_tax)……
B. Calculate_sales_taxIF total_price > 5000 THEN
sales_tax = total_price * 0.25Else
If total_price > 4000 THENsales_tax = total_price * 0.2
Else sales_tax = total_price * 0.15
ENDIFENDIF
ENDIF
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
Contoh :
B.8. Control Coupling
Control coupling ditandai dengan adanya alur kendali antara modul. Modul
satu mengendalikan aliran data di modul yang lain, kendali dilakukan
melalui flag yang mengontrol logika intern modul yang lain.
- Dua modul melakukan passing parameter menggunakan data kontrol
(flag/switch)
Contoh :
KOHESI & KOPLING| 15
Proses_transaction_record ….proses_male_student (current_record)…ENDProses_male_student (current_record)increment male_student_count (current_record)If student_age > 21 THENincrement_mature_male_count ENDIF….….END
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
B.9. Common Coupling
Modul-modul dikatakan common coupling jika modul-modul tersebut
menggunakan data yang disimpan di area memori yang sama.
- Dua modul atau lebih menggunakan struktur data global yang sama
Contoh :
KOHESI & KOPLING| 16
Process_input_code read input_code choose_appropriate_action (input_code)……ENDChoose_appropriate_action (input_code)CASE OF input_code 1 : read employee record2 : print_page_heading 3 : open employee master file4 : set page_count to zero5 : error_message =‘Employee number not numeric’ENDCASEEND
Read_customer_record read customer recordIF EOF THENset EOF_flag to trueENDIFENDValidate_customer_record IF customer_number is NOT numeric THENerror_message = ‘invalid customer number’ENDIF…….END
MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04
B.10. Content Coupling
Content coupling terjadi jika suatu modul menggunakan data atau
mengendalikan informasi dari modul yang lain tanpa berhubungan
lewat suatu parameter. Content coupling dapat juga terjadi jika
percabangan dilakukan ke tengah-tengah suatu modul yang lain.
- Satu komponen yang mengacu pada isi dari komponen lain
- Komponen memodifikasi data lain secara langsung
- Komponen mengacu pada data lokal dari komponen lain dalam
penggantian/pemindahan numerik
- Komponen memodifikasi kode yang lain, contohnya melompat ke
tengah-tengah rutinitas
Contoh :
KOHESI & KOPLING| 17
public class StudentRecord {
private String name; private int[ ] quizScores;
public String getName() { return name; } public int getQuizScore(int n) { return quizScores[n]; } public int[ ] getAllQuizScores() { return quizScores; }