download

Matakuliah
Tahun
: T0104 – Metode Perancangan Program
: 2010
KOHESI DAN KOPLING
Pertemuan 8
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 bersamasama 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