E. Rizal, S.Kom.,M.Kom
Semester Gasal 2016/2017
Telp : 021 8656789
HP : 08128513048
E-mail : rrizal65@yahoo.com
erizal@uhamka.ac.id
Blog : rizal65.blog.uhamka.ac.id
Website : www.uhamka.ac.id
KOMPONEN PENILAIAN
KEAKTIFAN : 10 %
TUGAS : 20%
UTS : 30 %
UAS : 40%
Rencana Pertemuan
Rencana Pertemuan (tatap muka) : 16 x
Termasuk UTS dan UAS
Input/output
Proses
Decision (percabangan)
- Baca bilangan a, b,
dan c input (a, b, c)
- Jumlahkan ketiga Jml = a+b+c
bilangan tersebut
Rerata = Jml/3
- Bagi jumlah tersebut
Output (Rerata)
dengan 3
- Tulis hasilnya
Latihan
Buatlah sebuah Algoritma program
dengan menggunakan notasi Pseudo
Code untuk menghitung luas
segitiga!
Nilai Terbesar Dari 2 Buah
Bilangan
deskriptif Pseudo code
Baca bilangan
pertama, dan bilangan
kedua
Input bil1, bil2
Bandingkan nilai
if bil1 > bil2, then
pertama dengan nilai
besar bil1
kedua.
Besar bil2
sehingga di dapat
nilai terbesar di antara Output(Besar)
kedua bilangan
tersebut.
Nilai Terbesar Dari 3 Buah
Bilangan
deskriptif Pseudo code
Baca bilangan pertama ,
bilangan kedua dan
bilangan ketiga Input bil1, bil2, bil3
Bandingkan nilai pertama Besar bil1
dengan nilai kedua.
If bil2 > Besar, then
Kemudian yang lebih besar
di antara nilai tersebut di
besar bil2
bandingkan dengan nilai If bil3 > besar, then
berikutnya (nilai ke tiga) besar bil3
sehingga di dapat nilai Output (besar)
terbesar di antara ketiga
variabel tersebut.
TIGA BAGIAN UTAMA PENULISAN
ALGORITMA :
Judul (Header)
Kamus
Algoritma
Contoh :
JUDUL ( Header)
Program Jumlah_Bilangan { judul algoritma }
KAMUS
Kamus :
c,d ,e: integer
ALGORITMA
Algoritma :
Input (c,d)
If c < d then
ec+d
Else
e c-d
Output( e )
TIPE DATA, OPERATOR DAN EKSPRESI
Contoh ;
deklarasi :
X : byte
Y : integer
Maka :
Peubah X tidak dapat dioperasikan
untuk nilai-nilai di atas 255
Peubah Y tidak dapat dioperasikan untuk
nilai-nilai di atas 32767
Contoh program
Program salahtipe;
Uses
wincrt;
Var
a,b,x : shortInt;
Begin
a:=10;
b:=20;
X:=a*b; {x akan bernilai -56, bukan 200}
Writeln(Nilai x=, x);
End.
BILANGAN BULAT - next
KONSTANTA :
Harus ditulis tanpa mengandung titik desimal :
Contoh : 78, -14, 7654, 0, 5, 9999, dsb
OPERASI :
1. Operasi aritmetika :
+ (tambah)
- (kurang)
* (kali)
Div (hasil bagi bilangan bulat)
Mod (sisa hasil bagi)
Contoh :
3 + 10 hasil : 13
10 DIV 3 hasil : 3
10 MOD 3 hasil : 1
BILANGAN BULAT - next
2. Operasi Perbandingan :
Menghasilkan nilai boolean (true dan false)
3<8 True
17 = 17 True
Contoh:
6.4 + 5.7 hasil : 12.1
8.0 2.8 hasil: 5.2
10/2.5 hasil: 4.0 (operasi bilangan
campuran)
7.2 * 0.5 hasil : 3.6
BILANGAN RIIL - next
2. Operasi Perbandingan :
menghasilkan nilai boolean (true dan false)
< Lebih kecil
Lebih kecil atau sama dengan
> Lebih besar
Lebih besar atau sama dengan
Tidak sama dengan
Tipe bilangan riil tidak mengenal operator
kesamaan (=), karena bilangan riil tidak bisa
disajikan secara tepat oleh komputer,
Misal : 1/3 tidak sama dengan 0.33333, sebab 1/3
= 0.33333(dg angka 3 yg tidak pernah
berhenti).
KARAKTER
Semua huruf-huruf abjad, semua tanda
baca, karakter khusus, karakter kosong
(null) .
NAMA TIPE :
Char
RANAH NILAI :
Adalah semua huruf di dalam alfabet (a..z,
A..Z, angka desimal (0..9), tanda
baca(.,:,!,dll), operator
aritmetika(+,-,dll), karakter
khusus($,#,@,dll)
KONSTANTA :
Karakter harus diapit oleh tanda petik tunggal.
Contoh : h, y, ., , 9, $
KARAKTER - next
OPERASI :
Hanya Operasi Perbandingan :
Contoh :
a = a hasil: true
T = t hasil: false
BUATLAH program komputer dengan
bahasa pascal dengan ketentuan
sbb:
Lakukan perbandingan :
a > b
4#4
Simpanlah hasil masing perbandingan di
atas ke dalam variabel.
Tampilkanlah hasil perbadingan dari
proses perbandingan di atas!
STRING
Adalah untaian karakter dengan panjang
tertentu.
NAMA TIPE :
String
RANAH NILAI :
Deretan karakter yg telah didefinisikan pada
ranah karakter.
KONSTANTA :
Semua konstanta string harus diapit oleh tanda
petik tunggal.
Contoh: BANDUNG, ganesha, Jl. Pahlawan no.
76, , k768532, dll.
STRING - next
OPERASI :
1. Operasi Penyambungan
(Concatenation):
Operator : + (penyambungan, bukan
tambah)
Contoh :
Teknik + Informatika hasil : Teknik
Informatika
aaa + bbb hasil: aaa bbb
1 + 2 hasil: 12
2. Operasi Perbandingan :
STRING - next
2. Operasi Perbandingan
menghasilkan nilai boolean (true dan
false)
< Lebih kecil
Lebih kecil atau sama dengan
> Lebih besar
Lebih besar atau sama dengan
= Sama dengan
Tidak sama dengan
Contoh:
abcd = abc hasil: false
aku < AKU hasil: true
Latihan
Buatlah notasi Algoritma lengkap dengan
menggunakan pseudocode untuk :
Menyambungkan nilai string SAYA dengan nilai
string RAJIN
Ketentuan : antara SAYA dan RAJIN dipisahkan dengan
2 spasi
Menjumlahkan nilai 34.5 + 20
Buatlah variable untuk menampung nilai di atas,
dan tentuknn tipe data untuk masing variable
tsb!
Tampilkanlah hasil masing-masing proses di atas!
Latihan - next
Buatlah notasi Algoritma lengkap dengan
menggunakan pseudocode untuk
menghitung luas segitiga dengan ketentuan
sbb:
Berikanlah nilai bilangan bulat kepada alas dan
tinggi sebagai inputan.
INPUTKAN BILANGAN 1 :
INPUTKAN BILANGAN 2 :
1. Peubah (variable) :
Tempat menyimpan nilai yg isinya dapat diubah
Contoh: X, nilai_ujian, jumlah : real
k : integer
2. Konstanta (constant)
Tempat penyimpanan di dalam memori yg
nilainya tetap selama pelaksanaan program
dan. Notasi yg digunakan adalah const
Contoh ;
const
phi = 3.14, Nmaks = 100, sandi =
xyz, dll
Yg diberi nama dalam Algoritma -next:
3. Tipe Bentukan :
Type
titik : record <x:real, y : real>
Type
Jam : record
< hh : integer {0..23}
mm : integer {0..59}
ss : integer {0..59} >
P : titik
J1, J2 : Jam
Titik dan Jam adalah nama tipe, sedangkan P adalah variabel yg bertipe Titik, J1 dan J2 adalah
variabel yg bertipe Jam
Yg diberi nama dalam Algoritma -next:
4. Nama Fungsi :
Function Maksimum (input A,B : integer)
integer
{ mengembalikan nilai terbesar antara A dan B}
5. Nama prosedur :
Procedure Tukar(input/output A, B : integer)
{ mempertukarkan nilai A dan B}
2. Pembacaan :
Nilai peubah dapat diisi secara eksternal dafri piranti masukan,
misalnya dari keyboard, dari file, mouse, dsb.
Akan membaca sesuai apa yg kita masukkan (inputkan).
Contoh :
Read (M)
: komputer membaca nilai M yg diinputkan dari luar (mis:
keyboard), jika nilai yg diketik adalah 78, maka lokasi
memori yg bernama M sekarang berisi 78
EKSPRESI
Transformasi nilai menjadi keluaran
dilakukan melalui sutu perhitungan
(komputasi)
Cara perhitungan itu dinyatakan
dalam suatu ekspresi
Ekspresi terdiri atas :OPERAND dan
OPERATOR
Tiga macam ekspresi :
1. Ekspresi Aritmetik (operator aritmetik):
Contoh : a*b, a*b/c, a div b * c, a+b*c
: d a*b (tipe data d harus sama dengan hasil
hitungan ekspresi a*b)
Konstruksi Algoritma :
Runtunan (sequence process)
Pemilihan (selection process)
Pengulangan (repetition process)
Runtunan (sequence
process)
Terdiri dari satu atau lebih pernyataan
Tiap pernyataan dikerjakan secara berurutan sesuai dg urutan
penulisannya
(sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai
dilaksanakan)
Bentuk umum :
proses 1
proses 2
proses 3
Contoh: mempertukarkan dua nilai dari dua buah variabel (peubah) A dan
B.
Algoritma :
1. isikan nilai A ke dalam C
2. isikan nilai B ke dalam A
3. isikan nilai C ke dalam B
Hasil akhir : varibel A berisi nilai dari varibale B, dan variabel B berisi nilai
LATIHAN
Buatlah Algoritma lengkap untuk
menukarkan 2 buah bilangan bulat, dengan
ketentuan sbb:
Input nilai lansung terhadap 2 buah variabel :
A = 150
B = 200
Lakukakanlah pertukaran nilai Variabel A dan B
Tampilkanlah Hasil pertukaran tsb!
Gunakanlah jenis Sekuential Proses untk
pertukaran dua buah variabel tsb!
Pemilihan (selection
process)
Sebuah aksi dikerjakan jika kondisi tertentu
dipenuhi (True) dan apabila suatu kondisi tidak
terpenuhi (false) maka program akan melakukan
aksi lain (jika ada) atau langsung keluar dari blok
pemilihan.
Contoh:
jika lampu traffic light berwarna merah,
maka berhenti
Dalam Algoritma dan pemrograman Struktur
pemilihan dapat didefinisikan dengan dua cara
yaitu menggunakan statemen IF atau CASE.
Struktur IF
Statemen IF akan diikuti oleh
ekspresi (sebagai kondsi yang
diperiksa) dan selalu berpasangan
dengan kata kunci THEN.
Notasi Algoritma :
Program Genap
{mencetak pesan bilangan genap jika sebuah bilangan bulat yang
dibaca dari piranti masukan merupakan bilangan genap}
Kamus
x : integer
Algoritma
Read (x)
If x mod 2 = 0 then
write(genap)
endif
Algoritma Pemilihan dua aksi (IF-THEN-ELSE)
Contoh:
Mencetak genap jika data masukan adalah bilangan genap atau mencetak
ganjil jika data masukan adalah bilangan ganjil.
Notasi Algoritma :
Program Genap
{mencetak pesan bilangan genap jika sebuah bilangan bulat yang
dibaca dari piranti masukan merupakan bilangan genap dan
mencetak bilangan ganjil jika sebuah bilangan bulat yang dibaca
merupakan bilangan ganjil}
Kamus
x : integer
Algoritma
Read (x)
If x mod 2 = 0 then
write(genap)
Else
write(ganjil)
endif
Latihan IF
Buat program notasi algoritma
lengkap dengan pseuodocode untuk
menseleksi kondisi di bawah ini
Jika nilai >= 75 maka dinyatakan lulus
kalau tidak maka dinyatakan gagal
Gunakanlah konstruksi IF untuk
membuat seleksi proses di atas!
Pemilihan (selection process)-Nested-IF
Struktur pemilihan bersarang (nested-if) :
terdapat strktur IF didalam IF lainnya
Aksi yang dilakukan lebih dari 2 buah
Bentuk umum :
if kondisi1 then
aksi1
else if kondisi2 then
aksi2
else
aksi-alternatif
Contoh :
if x > y then
if x > z then
tulis x sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
else
if y > z then
tulis y sebagai bilangan terbesar
else
tulis z sebagai bilangan terbesar
Tiga aksi atau lebih (Nested-IF)
Tiga kasus :
Empat kasus :
Notasi algoritma :
Notasi algoritma :
If kondisi1 then
aksi1 If kondisi1 then
Else aksi1
if kondisi2 then Else
aksi2 if kondisi2 then
else aksi2
if kondisi3 then else
aksi3 if kondisi3 then
endif aksi3
endif else
endif if kondisi4 then
aksi4
endif
endif
endif
endif
Algoritma Pemilihan tiga aksi atau lebih (Nested-IF )
Contoh:
Menentukan bilangan positif, negatif atau nol dari sebuah bilangan bulat yang diinput dari
piranti masukan.
Notasi Algoritma :
Program JenisBilanganBulat
{menentukanapakah sebuah bilangan bulat merupakan bilangan positif, negatif,
atau nol }
Kamus
x : integer
Algoritma
Read (x)
If x > 0 then
write(positif)
Else
if x < 0 then
write(negatif)
else
if x = 0 then
write(nol)
endif
endif
endif
Tugas
Buat Notasi Algoritma lengkap
dengan pseudocode untuk
menyeleksi 4 kasus dengan
menggunakan struktur seleksi proses
NESTED-IF
Transformasikanlah Algoritma di atas
ke dalam bahasa Pascal
kelebihan struktur/jenis proses pemilihan
kemampuannya yg memungkinkan
pemroses mengikuti jalur aksi yg
berbeda berdasarkan kondisi yg ada
Memungkinkan menulis algoritma
untuk permasalah praktis yg
demikian kompleks.
Struktur CASE
Konstruksi CASE dapat
menyederhanakan IF THEN ELSE
yang bertingkat (lebih dari 2 kasus)
Konstruksi CASE
CASE ekspresi if ekspresi = nilai1 then
Nilai1 : aksi1 aksi1
Nilai2 : aksi2 else
Nilai3 : aksi3 if ekspresi = nilai2 then
... aksi2
... else
Nilain : aksin if ekspresi = nilai3 then
Otherwise : aksix aksi3
endCASE else {otherwise}
aksi x
endif
endif
endif
----------------------------------------------------------------------------
Ekspresi menghasilkan suatu nilai (konstanta), range
dari konstanta yang bukan bertipe real.
Contoh CASE
-------------------------------------------------------------------------
------
Read(nomor_hari)
CASE nomor_hari
1: write(Minggu)
2: write(Senin)
3: write(Selasa)
4: write(Rabu)
5: write(Kamis)
6: write(Jumat)
7: write(Sabtu;)
Otherwise: write(bukan hari yang benar)
endCASE
NOTASI ALGORITMA
PROGRAM NamaHari
{ mencetak nama hari berdasarkan nomor hari (1..7) }
KAMUS
Nomor_hari : integer
ALGORITMA
Read(nomor_hari)
CASE nomor_hari
1: write(Minggu)
2: write(Senin)
3: write(Selasa)
4: write(Rabu)
5: write(Kamis)
6: write(Jumat)
7: write(Sabtu)
Otherwise: write(bukan hari yang benar)
endCASE
Tidak semua bahasa
pemrograman menyediakan
struktur CASE
If-Then-Else Case
Read(angka)
If angka = 1 then
write(satu)
Read(angka)
Else Case angka
if angka = 2 then
write(dua) 1: write(satu)
elses
if angka = 3 then 2: write(dua)
write(tiga)
elses
3: write(tiga)
if angka = 4 then
write(empat)
4: write(empat)
else otherwise
write(angka yg dimasukan salah)
endif :write(angka yg
endif dimasukan salah)
endif
endif endcase
Read(angka)
If angka = 1 then
write(satu)
Else
if angka = 2 then
write(dua)
else
if angka = 3 then
write(tiga)
else
if angka = 4 then
write(empat)
else
write(angka yg dimasukan salah)
endif
endif
endif
endif
Latihan CASE
Buat algoritma untuk konversikan
Huruf ke Status dari Nilai Mahasiswa,
dengan menggunakan Struktur
CASE.
Seperti :
A = Sangat Baik
B = Baik
C = Cukup
D = Kurang
E = Sangat Kurang
Uji kasus
Lihat hal 126 (hand book)
Jenis Proses : PENGULANGAN
(Repetition Process)
Bentuk umum:
For pencacahnilai_awal to nilai_akhir
do
Aksi
Endfor
Contoh pengulangan FOR Positif untuk
Satu Aksi
PROGRAM cetak_satuaksi
KAMUS
i: integer {pencacah pengulangan}
ALGORITMA
For i1 to 5 do {ulang sebanyak 5 kali}
endfor
Contoh Notasi Algoritma pengulangan FOR
Positif untuk membuat tabel
PROGRAM cetak_tabel
KAMUS
a,b,c: integer
Bagi : real;
ALGORITMA
Write(-----------------------------------)
write(a a*a a*a*a 1/a)
Write(-----------------------------------)
for a1 to 10 do
b a*a
c a*a*a
bagi 1/a
Write(a,b,c,bagi)
Endfor
Write(-----------------------------------)
FOR menurun (descending) / FOR
negatif
Bentuk umum:
ALGORITMA :
For i10 downto 1 do {ulang sebanyak 10 kali
secara menurun}
Write(i) {Aksi yang diulang}
endfor
Pengulangan FOR tersarang
(nested-FOR)
Perulangan FOR berada pada
perulangan FOR yang lainnya
Perulangan yang lebih dalam akan
diproses terlebih dahulu sampai
habis, kemudian perulangan yang
lebih luar baru akan bertambah,
masuk lagi ke perulangan dalam
sampai habis, dst. Dan berakhir pada
akhir pengulangan luar.
Contoh :Pengulangan FOR tersarang
(nested-FOR)
PROGRAM nested_for
KAMUS
I,j: integer {pencacah pengulangan}
ALGORITMA
For i1 to 3 do
For j1 to 2 do
write(i,j)
endfor
Endfor
Contoh Tampilan
tampilan For a 1 to 5 do
1 for b 1 to a do
12 write(b, )
123
endfor
1234
12345 writeln
Endfor
I1
Repeat
write (hello pascal)
II+1
Until I > 10
Struktur pengulangan: while-do
Bentuk umum :
While kondisi do
Aksi
Repeat-until vs while-do
Kondisi pengulangan kondisi pengulangan
Di evaluasi di akhir di evaluasi di awal
Baca
ALGORITMA:
read(A)
read(B)
Tukar
DEKLARASI
temp : integer {peubah bantu}
ALGORITMA
temp A
AB
B temp
Tulis
ALGORITMA
output(A)
output(B)
ALGORITMA
Baca
Tukar
Tulis
KEUNTUNGAN Pemrogram Modular
Contoh :
Procedure HitungLuasSegitiga
{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}
{K.awal : sembarang}
{K.akhir : luas segitiga tercetak}
DEKLARASI
Alas, tinggi, luas : real
ALGORITMA
Read(alas, tinggi)
Luas (alas * tingg) / 2
Write(luas)
Pemanggilan Prosedur
ALGORITMA :
FOR I 1 TO 3 DO
LUAS_LINGKARAN
ENDFOR
Nama Global dan Nama
Lokal
Nama Lokal :
Nama-nama (Konstanta, peubah(variabel), tipe,
dll) yang dideklarasikan di dalam prosedur
(termasuk parameter, jika ada). (hanya
dikenal/digunakan dalam lingkup (scope)
prosedur tersebut
Nama Global :
Nama-nama (Konstanta, peubah(variabel), tipe,
dll) yang dideklarasikan di dalam program
utama. (dapat dikenal/digunakan dibagian
manapun dalam program (progam utama
maupun prosedur).
PROGRAM Segitiga
{menghitung luas N buah segitiga}
DEKLARASI
I, N : integer
alas, tinggi : real
Procedure HitungLuasSegitiga
{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}
{K.awal : sembarang}
{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
HitungLuasSegitiga
endfor
_______________________________________________________________Nama Peubah
(variabel) I, N, alas, tinggi variabel GLOBAL
Nama Peubah (variabel) luas variabel LOKAl
Menggunakan variabel Global atau variabel
Lokal
Parameter - next
Ketika prosedur dipanggil, parameter
aktual berkoresponden satu-satu
dengan parameter formal (parameter
yg dideklarasikan pada bagian
header prosedur)
Aturan korespondensi satu
satu
Jumlah parameter aktual harus sama
dengan jumlah parameter formal.
Tiap parameter aktual harus bertipe
sama dengan tipe parameter formal
yg sesuai.
Tiap parameter aktual harus
diekspresikan dalam cara yg taat
azas dg parameter formal yg
bersesuaian, bergantung pada jenis
parameter formal.
Jenis parameter formal yg
disertakan di dalam prosedur :
Parameter Masukan (input
parameter) :
Parameter yg nilainya berlaku sebagai masukan
untuk prosedur.
Parameter Keluaran (Output
parameter):
Parameter menampung keluaran yg dihasilkan
oleh prosedur.
Parameter masukan/keluaran
(input/output parameter) :
Parameter yg berfungsi sebagai masukan
sekaligus keluaran bagi prosedur tsb.
Parameter masukan
Nilai parameter aktual diisikan ke
dalam parameter formal yg sesuai.
Perubahan nilai parameter di dalam
badan prosedur tidak mengubah nilai
parameter aktual.
Nama parameter aktual boleh
berbeda dg nama parameter formal
yg sesuai
Contoh : paramater
masukan
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
ALGORITMA
Luas (alas * tinggi) / 2
Write(luas)
Program utama yg 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 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
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
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 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
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
Parameter aktual boleh berupa
ekspresi atau konstanta
Contoh :
HitungLuasSegitiga(a*0.2, t*0.1)
HitungLuasSegitiga(12, 6)
Latihan :
Buatlah algoritma lengkap untuk
menghitung proses di dalam sub program
dengan menggunakan PROCEDURE,
dimana rumus proses tersebut adalah X =
A x 10, dimana nilai A yang ada pada
procedure tersebut di dapat dari nilai yang
diberikan oleh program utama sebagai
parameter input.
Buatlah parameter aktual dan parameter
formal dari Algoritma di atas!
Parameter keluaran
Parameter keluaran dideklarasikan di
dalam header prosedur, sebagaimana
parameter masukan
Parameter keluaran dideklarasikan dengan
keyword OUTPUT.
Ketika prosedur yg mengandung
parameter keluaran dipanggil, maka nama
parameter aktual menggantikan
(substitute) nama parameter formal yg
bersesuaian.
Contoh : parameter keluaran-next
PROGRAM Segitiga
{menghitung luas N buah segitiga}
DEKLARASI
I, N : integer
a, t, L : real
Procedure HitungLuasSegitiga(input alas, tinggi : real,
output luas:real)
{menghitung luas segitiga dengan rumus : L = (alas x tinggi)/2}
{K.awal : alas dan tinggi sudah terdefinisi nilainya }
{K.akhir : luas segitiga tercetak}
ALGORITMA
Luas (alas * tinggi) / 2
ALGORITMA
read(N) { tentukan banyaknya segitiga }
for I 1 to N do
read(a, t)
HitungLuasSegitiga(a, t, L)
Write(L)
endfor
Parameter
masukan/keluaran
Prosedur harus dapat mengakomodasi
baik masukan dari dan keluaran ke blok
program pemanggil
Maka gunakan parameter masukan/
keluaran
Bila parameter aktual diubah nilainya di
dalam badan prosedur, maka sesudah
pemanggilan prosedur nilai parameter
aktual di titik pemanggilan juga berubah
Parameter masukan/keluaran
dideklarasikan di dalam header prosedur
dengan keyword INPUT/OUTPUT
Parameter aktual harus berupa peubah,
tidak boleh berupa ekspresi atau
konstanta
Contoh : parameter masukan/keluaran
PROGRAM Cetak0Sampai10
{ mencetak nilai dari 0 sampai 10 }
DEKLARASI
x : integer
procedure Inc(input/output x : integer)
{menaikan nilai x sebesar 1}
{K.Awal : x sudah terdefinisi nilainya}
{K.Akhir : nilai x bertambah 1}
DEKLARASI
ALGORITMA
xx+1
ALGORITMA
X0
repeat
writeln(x)
inc(x)
until x > 10
Parameter masukan - parameter masukan/keluaran
PROGRAM xyz
PROGRAM xyz DEKLARASI
DEKLARASI a, b : integer
a, b : integer Procedure tambah(input/output
x,y:integer)
Procedure tambah(input Deklarasi
x,y:integer) Algoritma
Deklarasi xx+4
Algoritma Y y +4
write(nilai x dan y di akhir prosedur
xx+4 tambah:)
Y y +4 Write( x=, x)
write(nilai x dan y di akhir Write( y=, y)
ALGORITMA
prosedur tambah:)
a 15
Write( x=, x) B 10
Write( y=, y) Write(nilai a dan b sebelum panggil
ALGORITMA prosedur tambah:)
a 15 Write( a=, a)
Write( b=, b)
B 10
Tambah(a,b)
Write(nilai a dan b sebelum Write(nilai a dan b sesudah panggil
panggil prosedur tambah:) prosedur tambah:)
Write( a=, a) Write( a=, a)
Write( b=, b)
Write( b=, b)
Tambah(a,b)
Write(nilai a dan b sesudah
Program dg prosedur atau
tanpa prosedur
Dianjurkan menulis program yg
modular
Program yg dipecah menjadi
beberapa prosedur menunjukkan
teknik pemrograman yg baik dan
terstruktur
Prosedur dg parameter atau
tanpa parameter
Dianjurkan menulis prosedur dg
parameter
Parameter dapat mengurangi
kebutuhan penggunaan peubah
(variabel) global
Parameter masukan atau
parameter keluaran
Bila prosedur menghasilkan keluaran yg
digunakan oleh program pemanggil,
gunakan parameter keluaran untuk
menampung keluaran tsb.
Bila prosedur tidak menghasilkan
keluaran, atau kalaupun menghasilkan
keluaran tapi keluaran tsb hanya
digunakan di dalam prosedur itu saja,
maka gunakan parameter masukan.
Bila prosedur menerima masukan
sekaligus keluaran pada parameter yg
sama, gunakan parameter
masukan/keluaran.