download

Metode Perancangan
Program
Pert 6 – Modularisasi
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
No.
Product
xxx
xxx
Laporan Pemesanan Barang
Nama
Jumlah
Product
Pesanan
x-------x
999
x-------x
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
Hal: 99
Jumlah
Harga
999.999
999.999
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 /
Record No. Product Product Pesan Unit
1
100
VCD
10
100
2
200
DVD
20
200
Biaya
muat
10
20
Biaya
Paket
10
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