Materi 9 Komunikasi Antar Modul Kohesi dan Kopling

  • Slides: 39
Download presentation
Materi 9 Komunikasi Antar Modul, Kohesi dan Kopling Disusun Oleh : Yulyani Arifin, S.

Materi 9 Komunikasi Antar Modul, Kohesi dan Kopling Disusun Oleh : Yulyani Arifin, S. Kom, MMSI

Agenda • Komunikasi Antar Modul • Modul Kohesi • Modul Kopling

Agenda • Komunikasi Antar Modul • Modul Kohesi • Modul Kopling

Kemampuan Akhir yang Diharapkan • Mahasiswa mampu memahami komunikasi antar modul. • Mahasiswa mampu

Kemampuan Akhir yang Diharapkan • Mahasiswa mampu memahami komunikasi antar modul. • Mahasiswa mampu menyelesaikan masalah dengan penggunaan parameter antar modul • Mahasiswa mampu mengukur kekuatan internal modul dengan kohesi • Mahasiswa mampu mengukur pertukaran informasi antar modul tingkat

MATERI BELAJAR Komunikasi Antar Modul • Perlu mempertimbangkan arus informasi antar modul • Arus

MATERI BELAJAR Komunikasi Antar Modul • Perlu mempertimbangkan arus informasi antar modul • Arus informasi ( intermodule communication) dapat dipenuhi dengan cakupan variabel ( lokal, global data, passing parameter)

MATERI BELAJAR Komunikasi Antar Modul • Cakupan variabel : • bagian dalam sebuah program

MATERI BELAJAR Komunikasi Antar Modul • Cakupan variabel : • bagian dalam sebuah program tempat variabel didefinisikan dapat direferensikan. 1. Global data - digunakan : semua modul dlm 1 program - Jangkauan : semua program - Lifetime : selama eksekusi program

MATERI BELAJAR Komunikasi Antar Modul 2. Data lokal - digunakan : di sub modul

MATERI BELAJAR Komunikasi Antar Modul 2. Data lokal - digunakan : di sub modul - Jangkauan : sub modul tertentu -Lifetime : selama eksekusi sub modul -Mengurangi side effect ( pengunaan data global dalam sebuah modul)

MATERI BELAJAR Komunikasi Antar Modul 3. Passing Parameter - Parameter : data item yang

MATERI BELAJAR Komunikasi Antar Modul 3. Passing Parameter - Parameter : data item yang ditransfer dari modul yang dipanggil ke modul yang memanggil. - Syarat : - Calling Module menyediakan nama untuk parameter yang dikirim

MATERI BELAJAR Komunikasi Antar Modul - Sub Module harus dapat menerima parameter dan mengembalikannya

MATERI BELAJAR Komunikasi Antar Modul - Sub Module harus dapat menerima parameter dan mengembalikannya jika dibutuhkan. - Contoh : Calling Module : Print_page_heading (pagecount, linecount) Sub. Module : Print_page_heading ( pagenumber, linenumber)

MATERI BELAJAR Komunikasi Antar Modul Parameter Formal dan Aktual Parameter Formal : Parameter yang

MATERI BELAJAR Komunikasi Antar Modul Parameter Formal dan Aktual Parameter Formal : Parameter yang ada ketika submodul yang ditentukan. Parameter Aktual : Variabel atau ekspresi yang dikirimkan pada sebuah sub modul yang dipanggil.

MATERI BELAJAR Komunikasi Antar Modul Contoh parameter aktual: Mainline Calculate_amount_owing (gas. Figure, amountbilled) End

MATERI BELAJAR Komunikasi Antar Modul Contoh parameter aktual: Mainline Calculate_amount_owing (gas. Figure, amountbilled) End Contoh Parameter Formal : Submodul Calculate_amount_owing (gas. Usage, amount. Owing) …. . End

MATERI BELAJAR Komunikasi Antar Modul Parameter Value dan Reference - Parameter Value : Nilai

MATERI BELAJAR Komunikasi Antar Modul Parameter Value dan Reference - Parameter Value : Nilai yang dikirimkan dari satu modul ke modul yang memanggil. - Parameter Reference : Alamat memori dari sebuah parameter yang dikirim ke modul yang memanggil.

MATERI BELAJAR Komunikasi Antar Modul Hierarchy Chart dan Parameter yang dikirimkan antar modul dapat

MATERI BELAJAR Komunikasi Antar Modul Hierarchy Chart dan Parameter yang dikirimkan antar modul dapat digambarkan dalam Hierarchy Chart Data parameters Status parameter

MATERI BELAJAR Latihan Program dengan Parameter Design a solution algorithm that will prompt a

MATERI BELAJAR Latihan Program dengan Parameter Design a solution algorithm that will prompt a terminal operator for three characters, accept those characters as input, sort them into ascending sequence and output them to the screen. The algorithm is to continue to read characters untuk ‘XXX’ is entered

MATERI BELAJAR Latihan Program dengan Parameter Diagram Definisi Input • Char_1 • Char_2 •

MATERI BELAJAR Latihan Program dengan Parameter Diagram Definisi Input • Char_1 • Char_2 • Char_3 Proses • • Prompt for characters Accept three characters Sort Three Characters Output • Char_1 • Char_2 • Char_3

MATERI BELAJAR Latihan Program dengan Parameter Hierarchy Chart

MATERI BELAJAR Latihan Program dengan Parameter Hierarchy Chart

MATERI BELAJAR Latihan Program dengan Parameter Algoritma Solusi : Process_three_characters Read_three_characters(char 1, char 2,

MATERI BELAJAR Latihan Program dengan Parameter Algoritma Solusi : Process_three_characters Read_three_characters(char 1, char 2, char 3) DOWHILE NOT (char 1=‘X’ AND char 2=‘X’ AND char 3=‘X’) Sort_three_charcters(char 1, char 2, char 3) Print_three_characters(char 1, char 2, char 3) Read_three_characters(char 1, char 2, char 3) END Read_three_characters(char 1, char 2, char 3) prompt the operator for char_1, char_2, char_3 get char_1, char_2, char_3 END Print_three_characters(char 1, char 2, char 3) output to the screen char, char 2, char 3 END

MATERI BELAJAR Latihan Program dengan Parameter Algoritma Solusi : Sort_three_characters(char 1, char 2, char

MATERI BELAJAR Latihan Program dengan Parameter Algoritma Solusi : Sort_three_characters(char 1, char 2, char 3) IF char 1>char 2 THEN Swap_two_characters(char 1, char 2) ENDIF IF char 2>char 3 THEN Swap_two_characters(char 2, char 3) ENDIF IF char 1>char 2 THEN Swap_two_characters(char 1, char 2) ENDIF END Swap_two_characters(firstchar, secondchar) temp = firstchar = secondchar = temp END

MATERI BELAJAR Modul Kohesi - Modul : melakukan satu fungsi, terdiri dari 1 entry,

MATERI BELAJAR Modul Kohesi - Modul : melakukan satu fungsi, terdiri dari 1 entry, 1 exit dan nama modul yang mencerminkan fungsinya. - Kohesi : tolak ukur kekuatan internal dalam modul. - Semakin dekat element dalam modul maka semakin tinggi tingkat kohesi. - Modul dengan kohesi tinggi adalah modul yang baik.

MATERI BELAJAR Modul Kohesi

MATERI BELAJAR Modul Kohesi

MATERI BELAJAR Functional Cohesion - Functional Cohesion terjadi ketika semua element berkontribusi mengerjakan suatu

MATERI BELAJAR Functional Cohesion - Functional Cohesion terjadi ketika semua element berkontribusi mengerjakan suatu tugas khusus. Calculate_sales_tax IF product is sales tax exempt THEN sales__tax = 0 ELSE IF product_price < $ 50. 00 THEN sales_tax = product_price * 0. 25 ELSE IF product_price < $100. 00 THEN sales_tax = product_price * 0. 35 ELSE sales_tax = product_price * 0. 5 ENDIF END

MATERI BELAJAR Sequential Cohesion - Sequential Cohesion terjadi ketika sebuah modul terdiri dari elemen

MATERI BELAJAR Sequential Cohesion - Sequential Cohesion terjadi ketika sebuah modul terdiri dari elemen – elemen yang tergantung pada proses elemen sebelumnya Process_purchases set total_purchases to zero prompt and get number_of_purchases DO loop_index = 1 to number_of_purchases prompt and get pruchase add purchase to total_purchases ENDDO sales_tax = total_purchases*sales_tax_percent amount_due = total_purchases + sales_tax END

MATERI BELAJAR Communicational Cohesion - Communicational Cohesion terjadi ketika sebuah modul dikelompokan bersama karena

MATERI BELAJAR Communicational Cohesion - Communicational Cohesion terjadi ketika sebuah modul dikelompokan bersama karena menggunakan data yang sama. validate_product_record IF transaction_type NOT=‘ 0’’ THEN error_flag = true error_message = ‘invalid transaction type’ print_error_report ENDIF IF customer_number is NOT= numeric THEN error_flag = true error_message = ‘invalid customer number’ print_error_report ENDIF IF product_no = blanks OR produc_no has leading blanks THEN error_flag = true error_message = ‘invalid product no’ print_error_report ENDIF END

MATERI BELAJAR Procedural Cohesion - Procedural Cohesion terjadi ketika element dalam sebuah modul saling

MATERI BELAJAR Procedural Cohesion - Procedural Cohesion terjadi ketika element dalam sebuah modul saling terkait karena dijalankan berdasarkan prosedur. Contoh : Mainline Read_student_record_and_total_student_ages set number_of_records to zero set total_age to zero read student record DOWHILE more records exist add age to total_age add 1 to number_of_records ENDDO print number_of_records, total_age END

MATERI BELAJAR Temporal Cohesion - Temporal Cohesion terjadi ketika elemen – elemen dalam sebuah

MATERI BELAJAR Temporal Cohesion - Temporal Cohesion terjadi ketika elemen – elemen dalam sebuah modul dikelompokan bersama karena terkait dengan waktu. Initialisation Open transaction file Issue Prompt ‘enter today’s date – DDMMYY’ Read todays_date Set transaction_count to zero Read transaction record IF not EOF increment transaction_count ENDIF Open report file Print_page_headings Set report_total to zero END

MATERI BELAJAR Logical Cohesion - Logical Cohesion terjadi ketika elemen – elemen dalam sebuah

MATERI BELAJAR Logical Cohesion - Logical Cohesion terjadi ketika elemen – elemen dalam sebuah modul dikelompokan bersama berdasarkan pada aktivity tertentu. Read_all_files(file_code) CASE of file_code 1 : Read customer transaction record IF not EOF increment customer_transaction_count ENDIF 2 : Read customer master record IF NOT EOF increment customer_master_count ENDIF 3 : Read product master record IF NOT EOF increment product_master_count ENDIF ENDCASE END

MATERI BELAJAR Coincidental Cohesion - Coincidental Cohesion terjadi ketika elemen – elemen dalam sebuah

MATERI BELAJAR Coincidental Cohesion - Coincidental Cohesion terjadi ketika elemen – elemen dalam sebuah modul dikelompokan bersama hanya karena dalam satu modul. Tidak ada hubungan yang berarti 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

MATERI BELAJAR Modul Coupling - Coupling adalah ukuran sejauh mana pertukaran informasi antara modul.

MATERI BELAJAR Modul Coupling - Coupling adalah ukuran sejauh mana pertukaran informasi antara modul. - Semakin kuat coupling artinya semakin besar ketergantungan pada modul lain. - Semakin lemah coupling artinya semakin mudah mandiri dan mudah dikembangkan.

MATERI BELAJAR Modul Coupling

MATERI BELAJAR Modul Coupling

MATERI BELAJAR Data Coupling - Data Coupling terjadi ketika sebuah modul mengirimkan variabel non

MATERI BELAJAR Data Coupling - Data Coupling terjadi ketika sebuah modul mengirimkan variabel non global ke modul lain. Module A Elementary data item Module B

MATERI BELAJAR Data Coupling Contoh: A. Process_customer_record … … calculate_sales_tax(total_price, sales_tax) … … B.

MATERI BELAJAR Data Coupling 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 END

MATERI BELAJAR Stamp Coupling - Stamp Coupling terjadi ketika sebuah modul mengirimkan struktur data

MATERI BELAJAR Stamp Coupling - Stamp Coupling terjadi ketika sebuah modul mengirimkan struktur data non global ke modul lain. Module A Data Structure Module B

MATERI BELAJAR Stamp Coupling Contoh: Process_transaction_record …. process_male_student (current_record) … END Proses_male_student (current_record) increment

MATERI BELAJAR Stamp Coupling Contoh: Process_transaction_record …. process_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

MATERI BELAJAR Control Coupling - Control Coupling terjadi ketika sebuah modul mengirimkan variabel kontrol

MATERI BELAJAR Control Coupling - Control Coupling terjadi ketika sebuah modul mengirimkan variabel kontrol untuk mengontrol logika modul lain Module A Flag Module B

MATERI BELAJAR Control Coupling Contoh: Process_input_code read input_code choose_appropriate_action (input_code) … … END Choose_appropriate_action

MATERI BELAJAR Control Coupling 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

MATERI BELAJAR External Coupling - External Coupling terjadi ketika dua atau lebih modul mengakses

MATERI BELAJAR External Coupling - External Coupling terjadi ketika dua atau lebih modul mengakses variabel global yang sama. Global Data variabel Module A Module B

MATERI BELAJAR External Coupling Contoh: Calculate_sales_tax IF product is sales exempt THEN sales_tax =

MATERI BELAJAR External Coupling Contoh: Calculate_sales_tax IF product is sales exempt THEN sales_tax = 0 ELSE IF product_price < $50 THEN sales_tax = sales_price * 0. 25 …. … ENDIF Calculate_amount_due … amount_due = total_amount + sales_tax … END

MATERI BELAJAR Common Coupling - Common Coupling terjadi ketika dua atau lebih modul mengakses

MATERI BELAJAR Common Coupling - Common Coupling terjadi ketika dua atau lebih modul mengakses struktur data global yang sama. Global Data Structure Module A Module B

MATERI BELAJAR Common Coupling Contoh: Read_customer_record read customer record IF EOF THEN set EOF_flag

MATERI BELAJAR Common Coupling 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’ print_error_report ENDIF … …. END

MATERI BELAJAR Q & A

MATERI BELAJAR Q & A