TEL 2112 Dasar Komputer & Pemograman Pemrograman Modular Dosen: Abdillah, S.Si, MIT Email: abdill01@gmail.com Website: http://abdill01.wordpress.com
Tujuan Mahasiswa mampu memecah sebuah program besar menjadi sejumlah subprogram.
Filosofi 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)
Definisi Pemrograman modular adalah teknik pemecahan sebuah program besar menjadi sejumlah subprogram. Sebuah program yang besar sebaiknya dipecah menjadi beberapa subprogram dimana setiap subprogram melakukan komputasi yang spesifik.
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.
Contoh #include <stdio.h> void main() { int A, B, C, D, temp; printf("Masukkan nilai A B C D: "); scanf("%d %d %d %d",&A, &B, &C, &D); temp = A; A = B; B = temp; if (C > D) temp = C; C = D; D = temp; } printf("Nilai A B C D setelah pertukaran adalah: %d %d %d %d\n", A, B, C, D);
Contoh Program Modular #include <stdio.h> void Tukar(int *A, int *B); void main() { int A, B, C, D; printf("Masukkan nilai A B C D: "); scanf("%d %d %d %d",&A, &B, &C, &D); Tukar(&A,&B); if (C > D) Tukar(&C,&D); printf("Nilai A B C D setelah pertukaran adalah: %d %d %d %d", A, B, C, D); } void Tukar(int *A, int *B) int temp; temp = *A; *A = *B; *B = temp;
Teknik Pemrograman Modular Ada 2 teknik pemrograman modular: Prosedur Fungsi Struktur kedua teknik ini pada dasarnya 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.
Program Pertukaran #include <stdio.h> void 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); void main() { int A, B; Baca(&A,&B); Tukar(&A,&B); Tulis(A,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);
Program Pertukaran Modular #include <stdio.h> 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);
void main() { int A, B; Baca(&A,&B); /* Membaca nilai A dan B */ Tukar(A,B); /* Menukar nilai A dan B */ printf("Setelah proses tukar A = %d \n", A); printf("Setelah proses tukar B = %d \n", B); Tulis(A,B); /* Mencetak nilai A dan B */ }