TEL 2112 Dasar Komputer & Pemograman Pemrograman Modular Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail.com Website: http://abdillah.mahyuddin.web.id Website: http://abdill01.wordpress.com
Tujuan Mahasiswa mampu memecah sebuah program besar menjadi sejumlah subprogram. Untuk mencapai suatu tujuan besar, maka tujuan tsb harus dibagi-bagi menjadi tujuan kecil sampai tujuan kecil itu merupakan tujuan yang dapat dicapai berdasarkan potensi yang dimiliki saat itu (Al Khuwarizmi)
Apa itu Pemrograman Modular? Sebuah program yang besar sebaiknya dipecah menjadi beberapa subprogram dimana setiap subprogram melakukan komputasi yang spesifik. Pemrograman modular adalah teknik pemecahan sebuah program besar menjadi sejumlah subprogram.
Keuntungan Pemrograman Modular Modularisasi program memberikan dua keuntungan: Pertama, untuk aktivitas yang harus dilakukan lebih dari satu kali, modularisasi menghindari penulisan teks program yang sama. Keuntungan kedua adalah kemudahan dalam menulis dan menemukan kesalahan (debug) program.
Teknik Pemrograman Modular Ada 2 teknik pemrograman modular: Prosedur Fungsi Struktur kedua teknik ini pada sasarnya sama dengan struktur program biasa, yakni ada bagian judul (header) yang berisi nama modul, bagian deklarasi dan bagian algoritma yang berisi instruksi yang akan dilaksanakan.
Pendefinisian Subprogram Penamaan subprogram sama dengan peubah, sebaiknya diawali dengan kata kerja karena subprogram berisi suatu aktivitas. Subprogram dideklarasikan sebagai prototype judul sebelum program utama (main) Parameter adalah nama-nama peubah yang dapat disertakan pada bagian judul, tapi tidak harus ada parameter Nama-nama peubah yang dideklarasikan di dalam subprogram hanya dikenal di dalam subprogram tsb, disebut peubah lokal
Pemanggilan Subprogram Instruksi di dalam sebuah subprogram baru dapat dilaksanakan jika subprogram tsb dipanggil. Parameter yang disertakan pada waktu pemanggilan subprogram disebut parameter aktual. Sedangkan parameter yang disertakan di dalam bagian judul disebut parameter formal. Ketika subprogram dipanggil, kendali program berpindah secara otomatis ke subprogram tsb. Setelah semua instruksi di dalam subprogram dilaksanakan, kendali program berpindah secara otomatis kembali ke instruksi sesudah pemanggilan subprogram.
Parameter Aturan yang harus diperhatikan dalam parameter: Jumlah parameter aktual pada pemanggilan subprogram harus sama dengan jumlah parameter formal pada judul subprogram dan deklarasi prototype judul. Tiap parameter aktual harus bertipe sama dengan parameter formal yang bersesuaian. Tiap parameter aktual harus diekspresikan dengan cara yang taat-asas dengan parameter yang bersesuaian.
Contoh Program #include <stdio.h> main() { int A, B, C, D, temp; /* Pertukarkan nilai A dan B */ temp = A; A = B; B = temp; if (C > D) /* Pertukarkan nilai C dan D */ temp = C; C = D; D = temp; }
Contoh Program Modular #include <stdio.h> void Tukar(int *A, int *B); /* prototype */ main() { int A, B, C, D; /* Peubah global */ /* Pertukarkan nilai A dan B */ Tukar(&A,&B); if (C > D) /* Pertukarkan nilai C dan D */ Tukar(&C,&D); }
Contoh Program Modular void Tukar(int *A, int *B) /* Mempertukarkan nilai A dan B */ { int temp; /* Peubah lokal */ temp = A; A = B; B = temp; }
Program Pertukaran int A, B, temp; /* Membaca nilai A dan B */ #include <stdio.h> main() { int A, B, temp; /* Membaca nilai A dan B */ printf(“A = ?”); scanf(“%d”, &A); printf(“B = ?”); scanf(“%d”, &B); /* Menukar nilai A dan B */ temp = A; A = B; B = temp; /* Mencetak nilai A dan B */ printf(“A = %d \n”, A); printf(“B = %d \n”, B); }
Memecah Program Pertukaran Program pertukaran dapat dipecah menjadi tiga buah subprogram: membaca data A dan B melakukan pertukaran nilai A dan B mencetak nilai A dan B setelah pertukaran
Program Pertukaran Modular #include <stdio.h> void Baca(int *A, int *B); void Tukar(int *A, int *B); void Tulis(int *A, int *B); main() { int A, B; Baca(A,B); /* Membaca nilai A dan B */ Tukar(&A,&B); /* Menukar nilai A dan B */ Tulis(A,B); /* Mencetak nilai A dan B */ }
void Baca(int *A, int *B) { printf(“A = ?”); scanf(“%d”, &A); printf(“B = ?”); scanf(“%d”, &B); } void Tukar(int *A, int *B) int temp; temp = *A; *A = *B; *B = temp; void Tulis(int *A, int *B) printf(“A = %d \n”, A); printf(“B = %d \n”, B);