Pengantar Pemrograman Modular PEMROGRAMAN MODULAR adalah suatu teknik

  • Slides: 17
Download presentation
Pengantar Pemrograman Modular

Pengantar Pemrograman Modular

PEMROGRAMAN MODULAR • adalah suatu teknik pemrograman di mana program yang biasanya cukup besar

PEMROGRAMAN MODULAR • adalah suatu teknik pemrograman di mana program yang biasanya cukup besar dibagi menjadi beberapa bagian program yang lebih kecil. • Dalam beberapa bahasa pemrograman disebut : sub-rutin, modul, prosedur, atau fungsi.

STRUKTUR POHON PROGRAM A SUBPROGRAM A 1 SUBPROGRAM A 21 SUBPROGRAM A 3 SUBPROGRAM

STRUKTUR POHON PROGRAM A SUBPROGRAM A 1 SUBPROGRAM A 21 SUBPROGRAM A 3 SUBPROGRAM A 22

ILUSTRASI DEKLARASI A, B, Temp : integer ALGORITMA { baca nilai A dan B}

ILUSTRASI DEKLARASI A, B, Temp : integer ALGORITMA { baca nilai A dan B} read(A) read(B) {proses pertukaran} temp A A B B temp { tulis nilai A dan B setelah pertukaran } output(A) output(B)

Dipecah subprogram DEKLARASI A, B : integer Baca(A, B: Integer) ALGORITMA: read(A) read(B) Tukar(A,

Dipecah subprogram DEKLARASI A, B : integer Baca(A, B: Integer) ALGORITMA: read(A) read(B) Tukar(A, B: integer) DEKLARASI temp : integer {peubah bantu} ALGORITMA temp A A B B temp Tulis(A, B : integer) ALGORITMA output(A) output(B) ALGORITMA Baca(A, B) Tukar(A, B) Tulis(A, B)

Pendefinisian Subprogram • Penamaan subprogram sama dengan peubah, sebaiknya diawali dengan kata kerja karena

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.

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

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.

KEUNTUNGAN Pemrogram Modular 1. Program lebih pendek 2. Mudah menulis (banyak programer) 3. Mudah

KEUNTUNGAN Pemrogram Modular 1. Program lebih pendek 2. Mudah menulis (banyak programer) 3. Mudah dibaca dan dimengerti (bandingkan dg nonmodular dg banyak instruksi) 4. Mudah didokumentasi 5. Mengurangi kesalahan dan mudah mencari kesalahan(debug) program 6. Kesalahan yang terjadi bersifat “lokal”

PENERAPAN PEMROGRAMAN MODULAR • Dua bentuk pemrogram modular : PROSEDUR dan FUNGSI • Struktur

PENERAPAN PEMROGRAMAN MODULAR • Dua bentuk pemrogram modular : PROSEDUR dan FUNGSI • Struktur setiap subprogram tersebut pada hakekatnya sama , yaitu : – Nama modul (subprogram) – Bagian deklarasi – Algoritma (intruksi yg akan dilaksanakan) • Perbedaan penggunaannya pemrograman Pascal : dalam bahasa – Prosedur merupakan modul(subprogram) yg melakukan aktifitas tertentu tanpa adanya pengembalian nilai – Fungsi terdapat pengembalian nilai

PROSEDUR • Dalam bahasa pemrograman • Prosedur adalah modul program yang mengerjakan tugas/aktifitas yg

PROSEDUR • Dalam bahasa pemrograman • Prosedur adalah modul program yang mengerjakan tugas/aktifitas yg spesifik dan menghasilkan suatu efek netto (membandingkan keadaan awal dan keadaan akhir dari suatu aktifitas prosedur) • Setiap prosedur perlu mendefinisikan keadaan awal sebelum rangkaian instruksi di dalam prosedur dilaksanakan, dan keadaan akhir yg diharapkan setelah instruksi di dalam prosedur dilaksanakan

FUNGSI • Sub Program yg mempunyai tujuan/tugas spesifik • Fungsi dan prosedur adalah merupakan

FUNGSI • Sub Program yg mempunyai tujuan/tugas spesifik • Fungsi dan prosedur adalah merupakan sub program yang ekivalen • Dalam beberapa masalah penggunaan salah satunya adalah hal yg lebih tepat.

Program utama yang memanggil nama prosedur: harus mendeklarasikan nama prosedur dan memanggilnya dg parameter

Program utama yang memanggil nama prosedur: harus mendeklarasikan nama prosedur dan memanggilnya dg parameter aktual yg sesuai PROGRAM Segitiga {menghitung luas N buah segitiga} DEKLARASI I, N : integer alas, tinggi : real Procedure Hitung. Luas. Segitiga(input alas, tinggi : real) {menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2} {K. awal : alas dan tinggi sudah terdefinisi nilainya } {K. akhir : luas segitiga tercetak} DEKLARASI luas : real ALGORITMA Luas (alas * tinggi) / 2 Write(luas) ALGORITMA read(N) { tentukan banyaknya segitiga } for I 1 to N do read(alas, tinggi Hitung. Luas. Segitiga(alas, tinggi) endfor

nama parameter aktual tidak harus sama dengan nama parameter formal : yg dipentingkan adalah

nama parameter aktual tidak harus sama dengan nama parameter formal : yg dipentingkan adalah nilainya PROGRAM Segitiga {menghitung luas N buah segitiga} DEKLARASI I, N : integer a, t : real Procedure Hitung. Luas. Segitiga(input alas, tinggi : real) {menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2} {K. awal : alas dan tinggi sudah terdefinisi nilainya } {K. akhir : luas segitiga tercetak} DEKLARASI luas : real ALGORITMA Luas (alas * tinggi) / 2 Write(luas) ALGORITMA read(N) { tentukan banyaknya segitiga } for I 1 to N do read(a, t) Hitung. Luas. Segitiga(a, t) endfor

Analisa kasus : menentukan jam berikutnya setelah ditambah satu detik 1. Tambah detik dengan

Analisa kasus : menentukan jam berikutnya setelah ditambah satu detik 1. Tambah detik dengan 1, jika jumlah detik <60, tetapi jika jumlah detik = 60 maka set detik kembali menjadi nol(0) dan tambahkan 1 ke menit. 2. pertambahan menit dengan 1, jika jumlah menit <60, tetapi jika jumlah menit = 60, maka set menit kembali menjadi 0(nol) dan tambahkan 1 ke jam. 3. Pertambahan jam dengan 1, jika jumlah jam <24, tetapi jika jumlah jam = 24, maka set jam kmbali menjadi 0(nol). Contoh : 14: 27: 31 +1 detik 14: 27: (31+1)=14: 27: 32 15: 36: 59 +1 detik 5: 36: (59+1)=15: (36+1): 00=15: 37: 00 10: 59 +1 deti 10: 59+(59+1)= 10: (59+1): 00 =(10+1): 00=11: 00 23: 59 +1 detik 00: 00

Notasi Algoritma: menentukan jam berikutnya Program jamberikutnya Deklarasi Type jam : record <hh: integer

Notasi Algoritma: menentukan jam berikutnya Program jamberikutnya Deklarasi Type jam : record <hh: integer {0. . 23} mm: integer {0. . 59} ss : integer {0. . 59} J : jam ALGORITMA Read(j. hh, j. mm, j. ss) {baca jam} if J. ss +1 < 60 then J. ss j. ssm +1 else J. ss 0 if J. mm + 1 < 60 then J. mm + 1 else J. mm 0 If J. hh + 1 < 24 then J. hh + 1 else j. hh 0 endif Write(J. hh, J. mm, J. ss) {jam yang baru}

Notasi Algoritma : mencetak perjalan waktu terus menerus dengan prosedur paramater masukan/keluaran Program Jam.

Notasi Algoritma : mencetak perjalan waktu terus menerus dengan prosedur paramater masukan/keluaran Program Jam. Hidup {membuat jam “hidup” yg selalu bertambah 1 detik terus menerus sampai jam 00: 00. Masukan jam dibaca dari piranti masukan (keyboard). Setiap pertambahan 1 detik, jam yg baru ditampilkan sebagai keluaran} Deklarasi Type jam : record <hh: integer {0. . 23} mm: integer {0. . 59} ss : integer {0. . 59} J : jam Procedure Jam. Berikutnya(input/output J : Jam) {Menaikkan jam J dengan satu detik } ALGORITMA Read(J. hh, J. mm, J. ss) {baca jam awal} Repeat write(J. hh, J. mm, J. ss) {cetak jam sekarang} Jam. Berikutnya(J) Until (J. hh = 0) and (J. mm =0) and (J. ss = 0) write(J. hh, J. mm, J. ss) {cetak jam 00: 00}