download

Metode Perancangan
Program
Pert 8 – Kohesi dan Kopling
Kohesi:
Keeratan hubungan elemen-elemen di dalam suatu
modul
Macam-macam Kohesi
 Coincidnetal
 Logical
 Temporal
 Procedural
 Communicational
 Sequential
 Functional
Jelek/lemah
baik/kuat
Kohesi Functional:
 Mempunyai satu tugas
 Menghasilkan satu hasil/satu parameter output
 Bisa satu atau lebih parameter input
Contoh :
Menghitung_pajak_penjualan
IF harga > 5000 THEN
pajak = harga * 0.25
ELSE
IF harga > 4000 THEN
pajak = harga * 0.2
ELSE
IF harga > 3000 THEN
pajak = harga * 0.15
ELSE
IF harga > 2000 THEN
pajak = harga * 0.1
ELSE
pajak = 0
ENDIF
ENDIF
ENDIF
ENDIF
END
Kohesi Sequential:
 Mempunyai pekerjaan yang beruntun
 Kegiatan yang dilakukan lebih dari satu
 Hasil dari kegiatan sebelumnya menjadi
masukan bagi kegiatan selanjutnya
 Dapat dipecah menjadi Functional
Contoh :
Menghitung_penjualan
IF JB > 300 THEN
POT = JB * HB * 0.15
ELSE
IF JB > 200 THEN
POT = JB * HB * 0.1
ELSE
IF JB > 100 THEN
POT = JB * HB * 0.05
ELSE
POT = 0
ENDIF
ENDIF
ENDIF
P = JB * HB – POT
TP = TP + P
END
Kohesi Komunikasional:
 Kegiatan lebih dari satu
 Menggunakan data yang sama
 Dapat dijadikan Functional
Contoh:
Proses_perhitungan
C=A+B
D=A–1
E=A*B
F =A/ B
G = A mod B
END
Kohesi Procedural:

Satu kegiatan dengan kegiatan lain tidak berhubungan

Hubungan antara elemen yang satu dengan yang lainnya karena urutan
statement

Dapat dipecahkan menjadi Functional
Contoh:
Read_student_record_and_total_student_Ages
set number_record to zero
set total_age to zero
read student_record
DO WHILE more records exist
add age to total_age
add 1 to number_records
read student_record
ENDDO
print number_record, total_age
END
Kohesi Temporal:
 Elemen-elemen terlibat dalam berbagai kegiatan yang
mempunyai hubungan dalam waktu
 Urutan tidak penting
Contoh:
Initialisation
buka file transaksi
total_transaksi = 0
total_pen = 0
baris = 30
no = 0
hal = 0
END
Kohesi Logical:

ELemen-elemen melakukan kegiatan dengan kategori yang sama

Parameter masukan menentukan kegiatan yang dilaksanakan

Tidak semua kegiatan dikerjakan
Contoh:
Read_all_files(file_code)
CASE if file_code
1 : read customer_transaction record
IF not EOF THEN
increment cust_trans_count
2 : read customer_master record
IF not EOF THEN
increment cust_master_count
3 : read product_master record
IF not EOF THEN
increment product_master_count
ENDIF
ENDCASE
END
Kohesi Koinsidental
 Elemen-elemen tidak mempunyai hubungan
Contoh:
File Processing
Open employee updates file
read employee record
print_page heading
open employee master file
set page_count to one
set error_flag to false
End
Kopling :
Keeratan hubungan antar modul. Tingkat
saling ketergantungan di antara dua modul.
Faktor yang mempengaruhi kopling:
1.
Jumlah data yang disalurkan
2.
Jumlah kontrol data yang disalurkan
3.
Jumlah elemen data global yang digunakan
bersama-sama oleh beberapa modul
Jenis-jenis Kopling:
 Data
 Stamp
 Kontrol
 External
 Common
baik/lemah
jelek/kuat
Keterangan:
 Makin baik kopling, makin rendah ketergantungan
suatu modul terhadap modul lain
 Modul dengan kopling yang baik adalah modul
independence
Kopling Data:
 Komunikasi diantara modul menggunakan
data. Diinginkan jumlah data minimal
 Parameter data yang disalurkan semakin
sedikit semakin baik
Modul A
Elementary
data item
Modul B
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
Kopling Stamp:



Dua modul melakukan pass struktur data non global
yang sama
Struktur data: record, array
Timbul bahaya bila modul memeriksa struktur data
tetapi hanya menggunakan sebagian
Modul A
Data
structure
Modul B
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
Kopling Kontrol:
 Dua modul melakukan passing parameter
menggunakan data kontrol (flag/switch)
Modul A
Parameter
Kontrol
Modul B
Contoh:
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
Kopling External:


Dua modul atau lebih menggunakan data global yang
sama
Tidak ada parameter yang digunakan dari modul
pemanggil ke subordinate dan sebaliknya
Global Data Elementer Variabel
Modul A
Modul B
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
Kopling Common
 Dua modul atau lebih menggunakan struktur
data global yang sama
Struktur data global
Modul A
Modul B
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