pb3mat_pertemuan 7 algoritma pemrograman

halimagung3 0 views 17 slides Sep 27, 2025
Slide 1
Slide 1 of 17
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17

About This Presentation

materi


Slide Content

Pengantar Pemrograman
Modular

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

STRUKTUR POHON
PROGRAM A
SUBPROGRAM A1 SUBPROGRAM A2 SUBPROGRAM A3
SUBPROGRAM A21 SUBPROGRAM A22

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)

ILUSTRASI

DEKLARASI
A, B : integer
Baca(A,B:Integer)
ALGORITMA:
read(A)
read(B)
Tukar(A, B:integer)
DEKLARASI
temp : integer {peubah bantu}
Dipecah subprogram
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)

•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
Pendefinisian 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.
Pemanggilan Subprogram

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.
Parameter

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”
KEUNTUNGAN Pemrogram 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 dalam bahasa pemrograman
Pascal :
–Prosedur merupakan modul(subprogram) yg melakukan aktifitas
tertentu tanpa adanya pengembalian nilai
–Fungsi terdapat pengembalian nilai
PENERAPAN PEMROGRAMAN MODULAR

•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
PROSEDUR

•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.
FUNGSI

PROGRAM Segitiga
{menghitung luas N buah segitiga}
DEKLARASI
I, N : integer
alas, tinggi : real
Procedure HitungLuasSegitiga(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}
Program utama yang memanggil nama prosedur:
harus mendeklarasikan nama prosedur dan memanggilnya dg
parameter aktual yg sesuai
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
HitungLuasSegitiga(alas,tinggi)
endfor

PROGRAM Segitiga
{menghitung luas N buah segitiga}
DEKLARASI
I, N : integer
a, t : real
Procedure HitungLuasSegitiga(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
nama parameter aktual tidak harus sama dengan nama
parameter formal : yg dipentingkan adalah nilainya
ALGORITMA
Luas  (alas * tinggi) / 2
Write(luas)
ALGORITMA
read(N) { tentukan banyaknya
segitiga }
for I  1 to N do
read(a, t)
HitungLuasSegitiga(a,t)
endfor

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 +1detik  14:27:(31+1)=14:27:32
15:36:59 +1detik  5:36:(59+1)=15:(36+1):00=15:37:00
10:59:59 +1deti  10:59+(59+1)= 10:(59+1):00
=(10+1):00:00=11:00:00
23:59:59 +1detik  00:00:00
Analisa kasus :menentukan jam berikutnya setelah
ditambah satu detik

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  J.mm + 1
Notasi Algoritma: menentukan jam berikutnya
else
J.ss  0
if J.mm + 1 < 60 then
J.mm  J.mm + 1
else
J.mm  0
If J.hh + 1 < 24 then
J.hh  J.hh + 1
else
j.hh  0
endif
endif
endif
Write(J.hh, J.mm, J.ss) {jam yang
baru}

Program JamHidup
{membuat jam “hidup” yg selalu bertambah 1 detik terus menerus sampai jam 00: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 JamBerikutnya(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}
JamBerikutnya(J)
Until (J.hh = 0) and (J.mm =0) and (J.ss = 0)
write(J.hh, J.mm, J.ss) {cetak jam 00:00:00}
Notasi Algoritma : mencetak perjalan waktu terus menerus
dengan prosedur paramater masukan/keluaran
Tags