Abdillah S Si M I T PTE 1103
Abdillah, S. Si. , M. I. T PTE 1103 Algoritma & Pemrograman Modular
Agenda pertemuan X 1 2 3 Pemrograman Modular Prosedur Fungsi “If you can't make it simple, you don’t understand at all”-Albert Einstein
1 Agenda 1 Pemrograman Modular
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 Modularisasi 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 program.
Subprogram ü Subprogram dideklarasikan sebagai purwarupa (prototype) sebelum program utama (main). ü Parameter adalah nama-nama variabel yang dapat disertakan pada judul subprogram. ü Nama-nama variable yang dideklarasikan di dalam subprogram hanya dikenal di dalam subprogram tsb.
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 baris instruksi setelah 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.
Teknik Pemrograman Modular Ada dua teknik subprogram: ü Prosedur ü Fungsi Perbedaan keduanya adalah prosedur tidak mengembalikan nilai fungsi mengembalikan nilai.
2 Agenda 2 Prosedur
Definisi Prosedur adalah subprogram yang mengerjakan tugas spesifik dan menghasilkan suatu efek netto yang diketahui dengan membandingkan keadaan awal dan keadaan akhir pada pelaksanaan sebuah prosedur. Oleh karena itu pada setiap prosedur perlu diawali dengan void.
Program Pertukaran Nilai #include <stdio. h> int main() { int A, B, C, D, temp; printf("Masukkan nilai A B C D: "); scanf("%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 %dn", A, B, C, D); return 0; }
#include <stdio. h> void Tukar(int *A, int *B); /* Prototype */ int main() { int A, B, C, D; printf("Masukkan nilai A B C D: "); scanf("%d %d", &A, &B, &C, &D); Tukar(&A, &B); /* Pemanggilan prosedur Tukar*/ if (C > D) Tukar(&C, &D); /* Pemanggilan prosedur Tukar*/ printf("Nilai A B C D setelah pertukaran adalah: %d %d", A, B, C, D); return 0; } void Tukar(int *A, int *B) { int temp; temp = *A; *A = *B; *B = temp; }
Memecah 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
#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); }
#include <stdio. h> void Baca(int *A, int *B); /* Prototype */ void Tukar(int *A, int *B); /* Prototype */ void Tulis(int A, int B); /* Prototype */ int main() { int A, B; Baca(&A, &B); Tukar(&A, &B); Tulis(A, B); return 0; } 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); }
Cara Penulisan Lain #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 */ Tulis(A, B); /* Mencetak nilai A dan B */ }
3 Agenda 3 Fungsi
Definisi Sebuah fungsi adalah subprogram yang mengerjakan tugas atau aktivitas yang spesifik dan mengembalikan sebuah nilai dari tipe tertentu.
Pemanggilan Fungsi dipanggil dari program pemanggil dengan menuliskan nama_fungsi diikuti parameter aktual. Nilai yang dikembalikan fungsi dapat diperlakukan dengan dua cara: 1. Nilai yang dikembalikan oleh fungsi dapat langsung digunakan. 2. Nilai yang dikembalikan oleh fungsi ditampung dulu dalam sebuah peubah yang bertipe sama dengan tipe fungsi.
Langsung Digunakan #include <stdio. h> int Genap(int n) { return (n % 2); } int main() { int x; printf("Ketikkan sebuah bilangan: "); scanf("%d", &x); if (Genap(x)== 0) printf("%d adalah bilangan genap n", x); else printf("%d adalah bilangan ganjil n", x); return 0; }
Ditampung Dulu ü Fungsi Jumlah. Hari adalah suatu fungsi yang memerlukan parameter masukan no_bulan dan tahun mengembalikan jumlah hari yang terdapat dalam bulan dan tahun tsb. ü Nilai yang dikembalikan fungsi Jumlah_Hari ditampung dulu dalam variable jumlah_hari.
Pseudocode Fungsi function Jumlah_Hari(input no_bulan, tahun: int) int { Mengembalikan jumlah hari dalam satu bulan } DEKLARASI tidak ada ALGORITMA: case(no_bulan) 1, 3, 5, 7, 8, 10, 12: return 31 4, 6, 9, 11: return 30 2 : if (tahun mod 4 = 0 and tahun mod 100 ≠ 0) or (tahun mod 400 = 0) then return 29 else return 28
Pseudocode Fungsi Utama PROGRAM Jumlah. Hari {Menentukan jumlah hari dalam satu bulan} DEKLARASI no_bulan, tahun: integer ALGORITMA: read (no_bulan, tahun) jumlah_hari = Jumlah_Hari(no_bulan, tahun) write (jumlah_hari)
Program Fungsi #include <stdio. h> int Jumlah_Hari(int no_bulan, int tahun) { switch (no_bulan) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; break; case 4: case 6: case 9: case 11: return 30; break; } } case 2 : if((tahun%4 == 0 && tahun%100 != 0) || tahun%400 == 0) return 29; else return 28;
Program Fungsi Utama int main() { int no_bulan, tahun, jumlah_hari; printf("Ketikkan no bulan 1 -12: "); scanf("%d", &no_bulan); printf("Ketikkan tahun: "); scanf("%d", &tahun); jumlah_hari = Jumlah_Hari(no_bulan, tahun); printf("Jumlah hari adalah %d", jumlah_hari); return 0; }
Pertemuan Berikutnya • Mengubah Prosedur menjadi Fungsi dan sebaliknya.
Musik Penutup: Rayuan Pulau Kelapa – d’Masiv Terima Kasih
- Slides: 30