Tugas II RPL - Kohesi & Kopling

November 16, 2017 | Author: Mochamad Riza Rifansyah | Category: N/A
Share Embed Donate


Short Description

Download Tugas II RPL - Kohesi & Kopling...

Description

KOHESI & KOPLING

TUGAS KULIAH II

REKAYASA PERANGKAT LUNAK

Oleh : Nama

: Mochamad Riza Rifansyah

NIM

: 11.09.09.04

Kelas

: 11.6AE.01

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 1

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

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 2

KONSEP MODUL 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: 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 & KOPLING| 3

A. KOHESI (cohesion)

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

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 4

kejadian dimana secara kebetulan saja bahwa elemen-elemen berada dalam tempat yang sama. -

Elemen-elemen tidak mempunyai hubungan

Contoh : class Utility function ParseXML function Encrypt function Verify function Truncate

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 : class BuatTransaksi function beliBarang function jualBarang function terimaBarang

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 : class BuatTransaksi function tulisDatabase function beritahuUserLain function monitorProses

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 5

A.4. Procedural Cohesion Jika pemrosesan elemen-elemen dari suatu modul dihubungkan dan harus dieksekusi dalam urutan spesifik. -

Hubungan antara elemen yang satu dengan yang lainnya karena urutan statement (secara prosedur)

-

Dapat dipecahkan menjadi Functional

Contoh : class BuatTransaksi function bacaItem function checkInventory function buatTransaksi function tulisDatabase function beritahuUser function tulisInventory function cetakDO function tulisInvoice function cetakInvoice

A.5. Communication Cohesion Jika pemrosesan elemen-elemen dikonsentrasikan pada satu area dari suatu struktur data. -

Modul melakukan komunikasi terhadap data yang sama

Contoh : class Transaksi function nomorTransaksi function jenisTransaksi function tanggalTransaksi function pembuatTransaksi

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 6

A.6. Sequential Cohesion Jika keluaran dari suatu elemen merupakan masukan untuk elemen yang lain secara berurutan. Modul terdiri dari beberapa fungsi dimana elemen 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 : class TulisTransaksi function terimaData function prosesData function tulisData function pembuatTransaksi

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 :

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 7

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

Mempunyai satu tugas

-

Menghasilkan satu hasil/satu parameter output

-

Bisa terdiri dari satu atau lebih parameter input

Contoh : class Transaksi function tulisData function bacaData function prosesData function hitungTotal function hitungSubTotal function hitungItem

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 8

B. KOPLING

Kopling dapat diartikan bagaimana sebuah aplikasi atau modul atau kelas saling berhubungan dan bergantung. kopling itu merupakan suatu ukuran derajat interdependen 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.

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 9

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

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

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 10

Contoh : Calculate_sales_tax IF product is sales exemt THEN sales_tax = 0 ELSE IF product_price < $50 THEN sales_tax = sales_price * 0.25 …. … ENDIF ENDIF Calculate_amount_due … amount_due = total_amount + sales_tax … END

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

KOHESI & KOPLING| 11

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

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

KOHESI & KOPLING| 12

B.5. Routine Call Coupling Beberapa jenis kopling yang sering terjadi secara rutin pada pemrograman berorientasi obyek. - Enkapsulapsi urutan berulang

Contoh : package sekolah; import java.util.collection.*;

//import kopling

public class kelas { private Stack s;

//tipe kopling

public void doSomething(){

s.push(x);

// routine kopling

} .....

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

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 13

Contoh : A. Process_customer_record … … calculate_sales_tax(total_price, sales_tax) … … B. Calculate_sales_tax IF total_price > 5000 THEN sales_tax = total_price * 0.25 Else If total_price > 4000 THEN sales_tax = total_price * 0.2 Else sales_tax = total_price * 0.15 ENDIF ENDIF ENDIF

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

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 14

Contoh : Proses_transaction_record …. proses_male_student (current_record) … END Proses_male_student (current_record) increment male_student_count (current_record) If student_age > 21 THEN increment_mature_male_count ENDIF …. …. END

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 :

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 15

Process_input_code read input_code choose_appropriate_action (input_code) … … END Choose_appropriate_action (input_code) CASE OF input_code 1 : read employee record 2 : print_page_heading 3 : open employee master file 4 : set page_count to zero 5 : error_message =‘Employee number not numeric’ ENDCASE END

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 : Read_customer_record read customer record IF EOF THEN set EOF_flag to true ENDIF END Validate_customer_record IF customer_number is NOT numeric THEN error_message = ‘invalid customer number’ ENDIF … …. END

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 16

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 tengahtengah rutinitas

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

MOCHAMAD RIZA RIFANSYSAH / 11.09.09.04

KOHESI & KOPLING| 17

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF