download

Matakuliah
Tahun
: T0104 – Metode Perancangan Program
: 2010
MODULARISASI
Pertemuan 6
Modularisasi
Pertemuan 6
Bina Nusantara University
3
Modularisasi
• Modularisasi digunakan bila ada suatu
permasalahan yang kompleks, sehingga
langkah pertama adalah mengidentifikasikan
tugas utama, setelah itu baru di bagi kedalam
tugas yang lebih rinci.
• Proses ini disebut juga dengan Top Down
Design
Modular Programming
• Memecahkan algoritma ke dalam algoritma yang lebih
kecil/modul
• Modul yang dibentuk mempunyai kesatuan tugas / fungsi
maupun kesatuan proses/prosedur
• Setiap modul harus mempunyai single entry dan single
exit secara beruntun dari atas ke bawah atau dari awal
ke akhir modul
• Memiliki main program dan sub program atau modul
Modular Programming
Enam langkah dalam modular:
1.
Definisi masalah: klasifikasikan dalam input, proses dan output
2.
Kelompokkan aktivitas ke dalam modul. Definisikan kegiatan dari
modul-modul yang ada
3.
Buat bagan susun untuk menjelaskan hirarki dan hubungan antar
modul
4.
Buat logika dari main program dengan pseudocode. Terlebih
dahulu inventarisasi apa saja yang dikerjakan dalam main
program
5.
Buat logika untuk tiap tiap modul dengan pseudocode
6.
Desk checking algoritma: mencek kebenaran algoritma dengan
data
Contoh
Susunlah algoritma untuk membaca tiga karakter
kemudian susunlah ketiga nilai karakter tersebut dengan
urutan menaik (ascending) dan tampilkan ketiga karakter
hasil sort tersebut
Jawaban
• Definisi Masalah
Input
Kar_1
Kar_2
Kar_3
Proses
baca Kar_1, Kar_2, Kar_3
sort tiga karakter tersebut
cetak hasil sort
Output
Kar_1
Kar_2
Kar_3
Algoritma Pemecahan
Dapat dibuat penyelesaian dengan modul sbb:
Baca_tiga_karakter
baca kar_1, kar_2, kar_3
DO WHILE NOT (Kar_1 = X AND Kar_2= X AND Kar_3 = X)
sort_tiga_karakter
cetak kar_1,kar_2, kar_3
baca kar_1, kar_2, kar_3
ENDDO
END
Algoritma Pemecahan
Sort_tiga_karakter
If Kar_1 > Kar_2 THEN
temp = Kar_1
Kar_1 = Kar_2
Kar_2 = temp
ENDIF
If Kar_2 > Kar_3 THEN
temp = Kar_2
Kar_2 = Kar_3
Kar_3 = temp
ENDIF
If Kar_1>Kar_2 THEN
temp = Kar_1
Kar_1 = Kar_2
Kar_2 = temp
ENDIF
cetak Kar_1, Kar_2, Kar_3
END
Contoh 2
• Proses dilakukan untuk membuat laporan pemesanan.
Data dibaca dari file order. Record order terdiri dari
nomor_product, nama_product, jumlah_pesanan,
harga_perunit, biaya_angkut_perunit,
biaya_paket_perunit. Bentuk laporan yang diminta
adalah sebagai berikut:
PT XYZ
Hal: 99
No.
Product
xxx
xxx
Laporan Pemesanan Barang
Nama
Jumlah
Jumlah
Product
Pesanan
Harga
x-------x 999
999.999
x-------x
999
999.999
Setiap halaman terdiri dari 45 baris detail.
Jumlah harga = jumlah_pesan x Harga_perunit
Bila Jumlah harga > 10000 diberikan discount
10%. Biaya angkut dan biaya paket termasuk juga
dalam jumlah harga
A. Definisi Masalah
Input
Proses
Output
Record Pesanan
•No_Product
•Nama_Product
•Jumlah_Pesanan
•Harga
•Biaya_angkut
•Biaya_Paket
Cetak Judul
Baca Record
Hitung jumlah harga
Hitung discount
Hitung ongkos angkut
Hitung ongkos paket
Cetak detail
Hitung counter
Judul
Detail
•no_Product
•Nama
•Jumlah
•Jumlah_harga
•Total_bayar
B. Pengelompokkan kegiatan
dalam modul
1. Cetak judul
Dibuat modul untuk mencetak judul
2. Perhitungan
Dibuat modul untuk menghitung
• Jumlah harga
• Discount
• Ongkos muat
• Ongkos paket
• Total bayar
C. Hierarchy Chart
Mencetak
Lap_Pesan
Cetak
Judul
Hitung_Jumlah
_Harga
D. Logika Main Program
•
•
•
•
•
DO WHILE
Memanggil dua modul
Mencetak detail
Menghitung jumlah baris
Membaca data dari file order
Mencetak_Lap_Pesanan
Hal = 0
Cetak_Judul
baris = 0
buka file order
baca file order
DO WHILE NOT EOF
IF baris > 45 THEN
cetak_judul
baris=0
ENDIF
Hitung_jumlah_harga
Cetak no_product, nama_product, jumlah_pesanan, total_bayar
baris = baris + 1
baca file order
ENDDO
tutup file order
END
E. Merancang Pseudocode bagi modul
1.
Modul untuk mencetak judul
Cetak_judul
hal = hal + 1
cetak ‘PT XYZ’
cetak ‘Hal :’, hal
cetak ‘laporan pemesanan barang’
cetak ‘no nama jumlah jumlah’
cetak ‘product product pesanan harga’
END
2. Modul untuk menghitung jumlah harga
Hitung_Jumlah_Harga
Jumlah_harga = jumlah_pesan * harga
IF jumlah_harga > 10000 THEN
diskon = jumlah_harga * 0.1
ELSE
diskon = 0
ENDIF
Jumlah_harga = jumlah_harga – diskon
ongkos_muat = jumlah_pesan * biaya_muat
ongkos_paket = jumlah_pesan * biaya_paket
total_bayar = jumlah_harga + ongkos_muat + ongkos_paket
END
F. Desk Checking
• Data Masukan
Nama Jumlah Harga / Biaya Biaya
Record No. Product Product Pesan Unit muat Paket
1
100 VCD 10 100 10
10
2
200 DVD 20 200 20
20
F. Desk Checking
• Hasil yang diharapkan
PT XYZ
Hal : 1
No
Product
100
200
Nama
Product
VCD
DVD
Jumlah
Pesanan
10
20
Total Bayar
1200
4800
DO WHILE
Statement
OK ?
Inisialisasi
cetak_judul
Inisialisasi
Baca
DO WHILE
Ya
IF
Hitung
Cetak
Tambah
Baca
DO WHILE
Ya
IF
Hitung
Cetak
DO WHILE
tidak
END
Hal
0
1
Baris
no_produc Jumlah_
t
pesanan
harga
baiya_mua biaya_pak Total_bay
t
et
ar
0
100
10
ya
ya
200
20
100
10
10
1200
ya
1
ya
ya
200
20
20
4800
ya