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
© Copyright 2026 Paperzz