tugas ii rpl - kohesi & kopling

21
MOCHAMAD RIZA RIFANSYSAH / KOHESI & KOPLING TUGAS KULIAH II REKAYASA PERANGKAT LUNAK Oleh : Nama : Mochamad Riza Rifansyah NIM : 11.09.09.04 KOHESI & KOPLING| 1

Upload: mochamad-riza-rifansyah

Post on 24-Jul-2015

1.845 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: Tugas II RPL - Kohesi & Kopling

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

Page 2: Tugas II RPL - Kohesi & Kopling

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

Page 3: Tugas II RPL - Kohesi & Kopling

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.

Page 4: Tugas II RPL - Kohesi & Kopling

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

Page 5: Tugas II RPL - Kohesi & Kopling

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

Page 6: Tugas II RPL - Kohesi & Kopling

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

Page 7: Tugas II RPL - Kohesi & Kopling

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

Page 8: Tugas II RPL - Kohesi & Kopling

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

Page 9: Tugas II RPL - Kohesi & Kopling

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

Page 10: Tugas II RPL - Kohesi & Kopling

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

Page 11: Tugas II RPL - Kohesi & Kopling

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

Page 12: Tugas II RPL - Kohesi & Kopling

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

Page 13: Tugas II RPL - Kohesi & Kopling

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

}

.....

Page 14: Tugas II RPL - Kohesi & 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

Page 15: Tugas II RPL - Kohesi & Kopling

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

Page 16: Tugas II RPL - Kohesi & Kopling

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

Page 17: Tugas II RPL - Kohesi & Kopling

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