A. Modularitas
Memisahkan proses-proses ke dalam bentuk modul-modul yang terstruktur.
Manfaat :
1. Memudahkan penggunaan
2. Memudahkan memodifikasi
3. Mengendalikan kompleksitas program dan meningkatkan modifiabilitas
4. Penyembunyian informasi baik variabel maupun metoda
B. Karakteristik Modul yang Baik
1. Logical Coherant
Modul hanya mengandung satu fungsi saja.
2. Independent
Modul dapat dites sendiri-sendiri tanpa harus menunggu modul lain selesai
3. Ukuran Modul
Satu modul maksimal 50-70 baris
C. Modul Program dan Parameter
D. Pemrograman Top-Down dan Bottom-Up
1. Top-Down
Mendefinisikan modul utama terlebih dahulu, kemudian menyusun submodul berikutnya. Ciri-ciri :
- Modul mengimplementasikan proses tunggal, logis, dapat berdiri sendiri dan mudah dipahami
- Modul harus independen, tidak bergantung pada implementasi di modul lainnya
- Modul akan relatif pendek
2. Bottom-Up
Mendefinisikan modul dari tingkat yang paling rendah, diuji, dan diintegrasikan ke tingkat selanjutnya dan diuji kembali. Hal ini biasanya dilakukan ketika masalah sangat kompleks sehingga perlu mendefinisikan proses demi proses.
E. Atribut Dasar
1. Masukan (apa yang diterima “Pemanggil) dan keluaran (apa yang dikembalikan ke “Pemanggil”)
2. Fungsi, apa yang dilakukan terhadap masukan untuk menghasilkan keluaran.
3. Mekanik, bagaimana modul melakukan fungsinya.
4. Data Internal
F. Ciri-ciri Pemrograman Modular
1. Modul yang dibentuk mempunyai kesatuan atau tugas fungsi maupun kesatuan proses.
2. Setiap modul harus memiliki single entry dan single exit secara beruntun dari atas ke bawah atau dari awal ke akhir modul.
3. Memiliki main program dan subprogram atau modul
4. Lebih sering menggunakan structure chart.
G. Sifat dan Persyaratan Pembuatan Modul
1. Sifat
- Memiliki nama sebagai referensi
- Dapat digunakan oleh modul lain dengan “call”
- Seluruhnya berada pada satu tempat dalam listing atau memori
2. Persyaratan
- Bentuknya grafis
- Pendekatan secara top-down
- Komprehensip
- Dapat memperkirakan perilaku sistem
- Merupakan keluaran dari analisa tersusun
- Merupakan sebuah masukan implementasi
- Merupakan dokumen sistem
- Sebagai alat bantu pemeliharaan atau modifikasi sistem
H. Langkah-langkah Pemrograman Modular
1. Definisi masalah
2. Kelompok aktifitas ke dalam modul
3. Buat bagan susun untuk menjelaskan hirarki dan hubungan antar modul
4. Inventarisasi apa saja yang dikerjakan dalam main program
5. Buat logika dari main program dengan pseudocode
6. Buat logika untuk tiap-tiap modul dengan pseudocode
7. Cek kebenaran algoritma dengan data
I. Komunikasi Antar Modul
1. Parameter
a. Parameter Data
b. Parameter Kontrol
2. Kopling
Kopling adalah ukuran ketergantungan antara bagian program atau prosedur dengan satu atau lebih data, keeratan hubungan antar modul, tingkat ketergantungan diantara dua modul atau lebih.
a. Kopling Data
Komunikasi di antara modul menggunakan data. Sebaiknya jumlah data minimal karena semakin sedikit parameter data, semakin baik.
b. Kopling Stamp
Dua modul melakukan pass struktur data nomor global yang sama (struktur data record, array)
c. Kopling Control
Dua modul melakukan pass menggunakan data control.
d. Kopling Eksternal
Dua modul atau lebih menggunakan data global yang sama.
e. Kopling Common
Dua modul menggunakan struktur data global yang sama
3. Kohesi
Kohesi adalah ukuran besarnya suatu instruksi dalam modul program untuk melakukan tugas bersama.
a. Kohesi Functional
- Mempunyai satu tugas
- Menghasilkan satu hasil
- Bisa satu atau lebih parameter input
b. Kohesi Sequential
- Mempunyai tugas beruntun
- Kegiatan yang dilakukan lebih dari satu
- Hasil dari kegiatan sebelumnya menjadi masukan bagi kegiatan selanjutnya
- Dapat dipecah menjadi functional
c. Kohesi Communicational
- Kegiatan lebih dari satu
- Menggunakan data yang sama
- Dapat dijadikan functional
d. Kohesi Procedural
- Satu kegiatan dengan kegiatan lain tidak berhubungan
- Hubungan antara elemen yang satu dengan lainnya karena urutan statement
- Dapat dipecah menjadi functional
e. Kohesi Temporal
- Elemen-elemen terlibat dalam berbagai kegiatan yang mempunyai hubungan dalam waktu
- Urutan tidak penting
f. Kohesi Logical
- Elemen-elemen melakukan kegiatan dengan kategori yang sama
- Parameter masukan menentukan kegiatan yang dilaksanakannya
- Tidak semua kegiatan dikerjakan
g. Kohesi Coincidental
- Elemen-elemen yang tidak mempunyai hubungan
J. Kriteria Perancangan Lain
a. Ukuran Modul
Banyaknya instruksi yang berada dalam suatu modul
b. Factoring
- Menurunkan/merinci modul menjadi beberapa modul yang lebih kecil
- Membagi kegiatan/fungsi suatu modul ke dalam beberapa modul yang menjadi subordinate dari modul tersebut
- Mengurangi atau mempelajari ukuran modul
- Memperoleh program yang bersifat modular
- Menghasilkan modul yang independen
- Menyederhanakan implementasi
c. Fan-in
Merupakan banyaknya subordinate langsung dari suatu modul-modul.
d. Fan-Out
Banyaknya boss dari suatu subordinate
e. Restrictivity/Generality
Restrictivity : Modul-modul yang terlalu khusus
Generality : Modul-modul yang terlalu Umum
f. Inisialisasi dan terminalisasi
Modul ini dibuat untuk memproses data yang digabungkan menurut waktu. Baik pada awal program atau kondisi tertentu di dalam program
g. Laporan Error
Modul ini dibuat umum untuk menampilkan semua error yang terjadi dalam program