Matakuliah Tahun : T0104 – Metode Perancangan Program : 2010 ALGORITMA UNTUK MASALAH BISNIS Pertemuan 12 Metode Perancangan Program Pert 12 – Algoritma untuk masalah bisnis Sequential File update • Sequential file update adalah proses batch yang sangat umum. • Flowchart dari sequential file update dapat digambarkan berikut: File Transaksi File master lama Program Sequential update File master baru Laporan Audit dan Error Konsep Sistem • File Master – Sebuah file master adalah sebuah file yang berisi data permanent dan semi permanent. Record di dalam file ini adalah sequential, tergantung dari key. • File Transaksi – Sebuah file transaksi adalah file yang berisi semua data dan kegiatan yang ada di file master. • Laporan Audit – Adalah sebuah daftar detail mengenai semua transaksi yang ada di file master. • Laporan Error – Adalah file yang berisi daftar eror yang terjadi selama update file Balance Line Algorithm • Algoritma ini menangani multiple transaksi record untuk satu file master, dan juga jika ada kemungkinan record yang error. • Algoritma ini ditampilkan secara modular dan memakai konsep current record. • Current record adalah record yang sedang diproses Balance line algorithm • Current record akan digunakan jika key record pada kedua file dibandingkan • Yang menjadi current record adalah record dengan key record yang lebih kecil. • Hal lainnya adalah status current record yang digunakan sebagai flag untuk menyatakan apakah current record dapat diproses atau tidak. • Jika status current record adalah aktif, maka current record dapat digunakan untuk update atau menulis ke file master baru. Jika inactive, maka current record tidak dapat digunakan. Balance line algorithm • Proses kedua file akan selesai jika sampai ke end_of_job. Dimana hal ini berarti kedua file sudah sampai ke eof. contoh • Hierarchy chart Sequential_file_ update_program Initialise_ variable_ fields Read_old_ master_ record Print_ audit_ report Read_ transaction_ record Apply_ addition_ transaction Print_ error_ report Read_old _master_ record Apply_ deletion_ transaction Print_ audit_ report Select_ current _record Apply_ transaction_ to_current_ record Apply_ update_ transaction Print_ error_ report Print_ error_ report Print_ audit_ report Write_ current_ record Print_ report_ totals Read_ transaction_ record Print_ error_ report Solution algorithm • Mainline Sequential_update_program Initialise_variable_fields Read_transaction_record Read_old_master_record set current_record_status to ‘inactive’ DOWHILE NOT end_of_job select_current_record DOWHILE transaction_record_key = current_record_key Apply_transaction_to_current_record ENDDO IF current_record_status =‘active’ THEN write_current_record set current_record_status to ‘inactive’ ENDIF ENDDO Print_report_totals END Subordinate modules 1. 2. Initialise_variable_fields set total_transaction_records to zero set total_old_master_records to zero set total_new_master_records to zero set total_error_records to zero set end_of_job to false END Read_transaction_record read transaction record IF NOT EOF THEN increment total_transaction_records ELSE set transaction_record_key to high value IF transaction_record_key = high value THEN set end_of_job = true ENDIF ENDIF END 3. 4. Read_old_master_record read old master record IF NOT EOF THEN increment total_old_master_records ELSE set old_master_record to high value IF transaction_record_key = high value THEN set end_of_job = true ENDIF ENDIF END Select_current_record IF transaction_record_key < old_master_record_key THEN set up current record with transaction record fields ELSE set up current record with old master record fields set current_record_status to ‘active’ read_old_master_record ENDIF END 5. Apply_transaction_to_current_record CASE OF transaction_type addition : apply_addition_transaction deletion : apply_deletion_transaction update : apply_update_transaction other : error_message = ‘invalid transaction type’ Print_error_report ENDCASE read_transaction_record END 6. Write_current_record write current record to new master file incremental total_new_master_records END 7. Print_report-totals print total_transaction_records print total_old_master_records print total_new_master_records print total_error_records END 8. Apply_addition_transaction IF current_record_status = ‘inactive’ THEN set current_record_status to ‘active’ print_audit_report ELSE error_message = ‘Invalid addition, record already exists’ print_error_report ENDIF END 9. Apply_deletion_transaction IF current_record_status = ‘active’ THEN set current_record_status to ‘inactive’ print_audit_report ELSE error_message = ‘Invalid deletion, record not on master file’ print_error_report ENDIF END 10. Apply_update_transaction IF current_record_status = ‘active’ THEN apply required changes to current record Print_audit_report ELSE error_message = ‘Invalid update. Record not on master file’ print_error_report ENDIF END 11. Print_audit_report print transaction details on audit report CASE OF transaction_type addition : print ‘record added’ deletion : print ‘record deleted’ update : print ‘record updated’ ENDCASE 12. Print_error_report print transaction details on error report print error_message increment total_error_records END
© Copyright 2024 Paperzz