Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah Urutan logis berarti urutan langkahlangkah harus benar, dan langkah-langkah itu sendiri juga harus benar
Berasal dari ahli matematikia Arab : Abu Jafar Muhammad Ibnu Musa AlKhuwarizmi
Algoritmna merupakan kerangka dasar dari konsep suatu program untuk menyelesaikan masalah . Algoritma tidak terikat dari suatu bahasa pemrograman manapun atau dengan kata lain bahasa yang digunakan adalah bebas dengan bahasa apapun, baik memakai bahasa Indonesia, bahasa Inggris atau bahasa lainnya.
Setiap orang punya pola pikir yang berbeda, karena itu akan menghasilkan algoritma yang berbeda Algoritma dikatakan benar apabila dapat memecahkan masalah Perlu dipertimbangkan masalah efisiensi dalam penyusunan algoritma Pemilihan rute jalan, misalnya :
Beberapa rute mungkin akan menghasilkan tujuan yang sama Ada rute yang lebih efisien dibanding rute lainnya Sebaiknya yang diambil adalah rute terpendek
Penulisan Algoritma :
Algoritma dapat dinotasikan dalam beberapa cara, yaitu: Dengan untaian kalimat deskriptif (natural)
Tapi sering membingungkan (ambiguous)
Dengan flowchart
Bagus secara visual akan tetapi repot kalau algoritmanya panjang
FLOWCHART
Flowchart lebih baik dibandingkan pseudocode Merupakan gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program yang menyatakan arah alur program tersebut Disajikan dalam bentuk grafik/gambar Dapat membantu programmer maupun orang lain dalam memahami alur program (apa saja input, proses dan output dari program) Representasi visual, karena itu lebih mudah dipahami Jumlah simbol yang digunakan sedikit, karena itu lebih sederhana dan lebih mudah dipelajari
Flow Chart
flow chart (diagram alir)
(menggambarkan urutan langkah-langkah kegiatan /program mulai dari awal sampai akhir dengan menggunakan simbol atau gambar tertentu.)
Kegunaan : mendesain dan mempresentasikan program
Lambang Flowchart
Terminator (mulai/selesai) Input/output Proses Decision (percabangan) Data Flow (Aliran data) Preparation (pemberian nilai awal suatu variabel) Call (memanggil prosedur/fungsi)
Mulai
NA = 25%tg+25%uts+50%uas
NA>60
Gagal
Lulus
Selesai
PEmrograman : aktifitas yg dilakukan dengan membat intruksi untuk menyelesaikan permasalahan yg dimenegeti oleh komputer Program : coding, hasil pemrograman Bahasa Pemrograman : Bahasa program yang digunakan untuk membuat urutan instruksi yg dimengerti oleh komputer. Pemrograman (programer) : orang yg membuat program komputer.
beberapa langkah umum dalam pembuatan suatu program yaitu Mendefinisikan masalah
mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program
Mencari solusinya
Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi.
Menentukan algoritma Menulis program Menguji program Mendokumentasikan program Merawat program
Contoh :
JUDUL ( Header) Program Luas_Kubus { judul algoritma } KAMUS Kamus : X,Y : integer Cari : boolean ALGORITMA Algoritma : Input (c,d) If c < d then ea+b Else e a-b Output( e )
Pseudo code Program Nilai_maksimal Kamus hasil,x,y : integer Algoritma input(x,y) if x > y then hasil x else hasil y output(hasil)
TIPE DATA :
Untuk menyatakan tipe data dari sebuah variabel (peubah) pada Deklarasi.
OPERATOR :
Menspesifikasikan operasi apa yang dapat dilakukan terhadap peubah (variabel) dan konstanta.
EKSPRESI :
Mengkombinasikan peubah-peubah dan dan konstanta untuk menghasilkan hasil baru.
TIPE DATA
1. TIPE DATA DASAR :
Tipe yang dapat langsung dipakai.
BILANGAN LOJIK
NAMA TIPE :
Boolean
RANAH NILAI :
Dua buah nilai : Benar (true) dan Salah (false) bilangan logik :benar 1, salah 0
KONSTANTA :
True dan False
OPERASI :
Operasi Logika atau operasi boolean Operasi logika menghasilkan nilai : true atau false Operator logika : AND, OR dan XOR
False False
False True
False false
True
True
False
false
True
False
True
False
Maka :
operasi logika hasil -----------------------------------------( x and y) or z true A and ( y or z) true Not (x and z) false (y xor z) and y false
BILANGAN BULAT
Bilangan yang tidak mengandung pecahan desimal, misal : 34, 8, 0, -17, 45678901, dsb NAMA TIPE : Integer RANAH NILAI :
tipe Rentang nilai Byte 0 .. 255 Shortint -128 .. 127 Word 0 .. 65535 Integer -32768 .. 32767 Longint -2147483648 .. 2147483647
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.
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
< > =
Lebih kecil Lebih kecil atau sama dengan Lebih besar Lebih besar atau sama dengan Sama dengan Tidak sama dengan
74 > 101
17 = 17 (24 div 3) 8
False
True false
BILANGAN RIIL
Bilangan yang mengandung pecahan desimal : 3.65, 0.003, 29.0, .24, dll NAMA TIPE :
Real
RANAH NILAI : tipe Real Single Double extended Rentang nilai 2.9 x 10 -39 .. 1.7 x 1038 1.5 x 10-45 .. 3.4 x 1038 5.0 x 10-324 .. 1.7 x 10308 3.4 x 10-4932 .. 1.1 x 104932 Format 6 byte 4 byte 8 byte 10 byte
10/2.5
< >
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 :
< > =
Lebih kecil Lebih kecil atau sama dengan Lebih besar Lebih besar atau sama dengan Sama dengan Tidak sama dengan
Contoh : a = a hasil: true T = t hasil: false y y hasil: false m < z hasil: true q > z hasil : false
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
Syarat penamaan (variabel, konstanta, nama type bentukan, nama field, nama fungsi,nama prosedur)
Harus unik (tidak boleh dua buah nama yang sama) Harus dimulai dengan huruf alfabet (tidak boleh dimulai dg angka, spasi, atau karakter khusus lainnya) Huruf besar dan huruf kecil tidak dibedakan Karakter penyusun nama hanya boleh huruf alfabet, angka, dan _ (underscore) Tidak boleh mengandung operator aritmetika, relasional, tanda banca, dan karakter khusus lainnya Karakter tidak boleh dipisah dengan spasi Panjang nama tidak dibatasi
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
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
2.
3.
Struktur IF
Statemen IF akan diikuti oleh ekspresi (sebagai kondsi yang diperiksa) dan selalu berpasangan dengan kata kunci THEN.
Bentuk umum dari selection process : IF if kondisi then aksi
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
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
If kondisi1 then aksi1 Else if kondisi2 then aksi2 else if kondisi3 then aksi3 else if kondisi4 then aksi4 endif endif endif endif
Tugas
Buat Notasi Algoritma untuk statemen pemilihan 4 kasus. Transformasikanlah Algoritma di atas ke dalam bahasa Pascal
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
Nilai1 : aksi1 Nilai2 : aksi2 Nilai3 : aksi3 ... ... Nilain : aksin Otherwise : aksix
if ekspresi = nilai1 then aksi1 else if ekspresi = nilai2 then aksi2 else if ekspresi = nilai3 then aksi3
endCASE
else {otherwise}
aksi x endif endif endif
---------------------------------------------------------------------------Ekspresi menghasilkan suatu nilai (konstanta), range dari konstanta yang bukan bertipe real.
Contoh CASE
Algoritma untuk membaca nomor hari (integer) , lalu menuliskan nama hari sesuai dengan angka harinya.
------------------------------------------------------------------------------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
Case Read(angka) Case angka 1: write(satu) 2: write(dua) 3: write(tiga) 4: write(empat) otherwise :write(angka yg dimasukan salah) endcase
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)
Struktur Pengulangan
<inisialisasi> Awal pengulangan
Badan pengulangan
Akhir pengulangan <terminasi> Inisialisasi dan terminasi tidak selalu harus ada, namun pada beberapa kasus inisialisasi umumnya diperlukan
Pengulangan - FOR
Diperlukan sebuah peubah (variable) pencacah (counter) untuk menghitung sudah berapa kali pengulangan dilakukan Bentuk umum pengulangan FOR ada dua macam :
FOR menaik (ascending) / FOR positif FOR menurun (descending) / FOR negatif
FOR menaik (ascending) / FOR positif Bentuk umum: For pencacahnilai_awal to nilai_akhir do
Aksi
Endfor
Write(i)
endfor
ALGORITMA For i1 to 3 do
For j1 to 2 do write(i,j) endfor
Endfor
(pengulangan aksi dilakukan hingga kondisi berhenti terpenuhi) - Pengulangan akan dijalankan terus kalau kondisi masih bernilai FALSE - Pengulangan berhenti, jika kondisi bernilai TRUE
while-do vs repeat-until
Repeat-until vs Kondisi pengulangan Di evaluasi di akhir while-do kondisi pengulangan di evaluasi di awal
Pernyataan REPEAT memiliki makna yang sama dg WHILE Dalam beberapa masalah kedua pernyataan tsb komplemen satu sama lain.
Contoh :
ALGORITMA : I1 Repeat write (hello pascal) II+1 Until I > 10
perbandingan
WHILE (benar) ALGORITMA : S0 Read(x) While x 0 do s s + 1/x read(x) Endwhile Write (s) Repeat ( salah) ALGORITMA : S0 Repeat read(x) s s + 1/x Until x = 0 Write (s)
perbandingan
Repeat ( benar)
ALGORITMA : Repeat write( MENU ) write(1. Baca Data) write(2. cetak data) write(3. keluar) write(masukan pilihan anda(1/2/3) ? ) read(nomormenu) case nomormenu 1 : write (anda memilih menu nomor 1) 2 : write(anda memilih meniu nomo 2) 3 : write(keluar program endcase Until nomormenu = 3
While (salah)
ALGORITMA : While nomormenu 3 do write( MENU ) write(1. Baca Data) write(2. cetak data) write(3. keluar) write(masukan pilihan anda(1/2/3) ? ) read(nomormenu) case nomormenu 1 : write (anda memilih menu nomor 1) 2 : write(anda memilih meniu nomo 2) 3 : write(keluar program endcase endwhile
Latihan
Buatlah sebuah algoritma lengkap, untuk menghitung jumlah deret bilangan bulat dari 3 sampai dengan 10. dengan menggunakan konstruksi pengulangan REPEAT-UNTIL ! Transformasika algoritma di atas ke program komputer dg bahasa pascal Lakukan modifikasi algoritma dan program komputer di atas untuk menghitung nilai rata-rata, dan tampiikanlah nilai rata-rata tsb.
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.
STRUKTUR POHON
PROGRAM A
SUBPROGRAM A1
SUBPROGRAM A2
SUBPROGRAM A3
SUBPROGRAM A21
SUBPROGRAM A22
ILUSTRASI
DEKLARASI A, B, Temp : integer ALGORITMA
{ baca nilai A dan B}
read(A) read(B)
{proses pertukaran}
temp A AB 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, B:integer) DEKLARASI temp : integer {peubah bantu} ALGORITMA temp A AB B temp Tulis(A,B : integer) ALGORITMA output(A) output(B) ALGORITMA Baca(A,B) Tukar(A,B) Tulis(A,B)
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
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
STRUKTUR PROSEDUR
JUDUL (header) nama prosedur dan deklarasi parameter(kalau ada) DEKLARASI mengumumkan namanama dan tipe data ALGORITMA badan prosedur (instruksi)
Nama Prosedur
Nama yang unik Sebaiknya diawali dengan kata kerja karena prosedur berisi suatu aktifitas
Misalnya: HitungLuas, Tukar, CariMaks, Tulis, dll.
Parameter
Adalah nama-nama peubah (variabel) yang dikdeklarasikan pada bagian header (judul) prosedur dan titik dimana dia dipanggil. Penggunaan parameter menawarkan mekanisme pertukaran informasi (antara yg memanggil (program/algoritma utama) dg prosedur itu sendiri)
Parameter formal :
Parameter yg dideklarasikan di dalam bagian header prosedur itu sendiri.
Ketika prosedur dipanggil, parameter aktual menggantikan parameter formal. Tiap-tiap parameter aktual berpasangan dengan parameter formal yg bersesuain (berkorespondasi satu satu)
DEKLARASI
{semua nama yg dipakai di dalam prosedur dan hanya berlaku lokal di dalam prosedur ini}
ALGORITMA
{badan prosedur, berisi urutan instruksi}
DEKLARASI
Alas, tinggi, luas : real
ALGORITMA
Read(alas, tinggi) Luas (alas * tingg) / 2 Write(luas)
Pemanggilan Prosedur
Prosedur bukan program yg beridiri sendiri Prosedur tidak dapat dieksekusi secara langsung. Instruksi-instruksi di dalam prosedur dapat dilaksanakan bila prosedur itu diakses. Prosedur diakses dg cara memanggil namanya dari program pemanggil (misalnya dari program utama atau modul program lainnya) Jika prosedur tanpa parameter, maka pemanggilannya cukup dg nama prosedurnya saja, contoh : HitungLuasSegitiga
Notasi Algoritma :
PROGRAM Segitiga
{menghitung luas segitiga}
DEKLARASI
Alas, tinggi, luas : real
ALGORITMA
Read(alas, tinggi) Luas (alas * tinggi) / 2 Write(luas)
ALGORITMA HitungLuasSegitiga
KUIS
BUATLAH NOTASI ALGORITMA UNTUK MELAKUKAN PEMANGGILAN PROSEDUR LUASSEGITIGA SEBANYAK 3 X
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
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 Bila suatu peubah (variabel) digunakan di seluruh bagian program (baik program utama maupun prosedur), maka deklarasikanlah peubah tsb secara Global. Bila suatu peubah (variabel) hanya digunakan di dalam prosedur, maka deklarasikanlah peubah tsb secara Lokal. Gunakan peubah global sedikit mungkin Penggunaan variabel lokal membuat program lebih elegan Penggunaan variabel lokal dapat meminimumkan usaha pencarian kesalahan yg disebabkan oleh nama-nama tsb.
Parameter
Prosedur yg baik adalah prosedur yg independen dari program utama/ program yg memanggilnya. Prosedur yg baik tidak menggunakan peubah-peubah global di dalam prosedur. Jika program utama perlu mengomunikasikan nilai peubah Global ke dalam prosedur, maka gunakanlah PARAMETER.
Parameter - next
Penggunaan parameter adalah mekanisme pertukaran informasi antara prosedur dengan yang memaggilnya (program utama maupun subprogram lainnya). Prosedur dengan parameternya (Parameter Formal) dapat diakses dg cara memanggil namanya dari program yg memanggilnya yg disertai dg parameter dari program yg memanggil tsb (Parameter Aktual). Contoh: NamaProsedur(parameter aktual)
Parameter - next
Ketika prosedur dipanggil, parameter aktual berkoresponden satu-satu dengan parameter formal (parameter yg dideklarasikan pada bagian header prosedur)
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
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
luas : real
ALGORITMA
Luas (alas * tinggi) / 2 Write(luas)
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.
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
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
Parameter masukan
parameter masukan/keluaran
PROGRAM xyz DEKLARASI a, b : integer Procedure tambah(input/output x,y:integer) Deklarasi Algoritma xx+4 Y y +4 write(nilai x dan y di akhir prosedur tambah:) Write( x=, x) Write( y=, y) ALGORITMA a 15 B 10 Write(nilai a dan b sebelum panggil prosedur tambah:) Write( a=, a) Write( b=, b) Tambah(a,b) Write(nilai a dan b sesudah panggil prosedur tambah:) Write( a=, a) Write( b=, b)
PROGRAM xyz DEKLARASI a, b : integer Procedure tambah(input x,y:integer) Deklarasi Algoritma xx+4 Y y +4 write(nilai x dan y di akhir prosedur tambah:) Write( x=, x) Write( y=, y) ALGORITMA a 15 B 10 Write(nilai a dan b sebelum panggil prosedur tambah:) Write( a=, a) Write( b=, b) Tambah(a,b) Write(nilai a dan b sesudah panggil prosedur tambah:) Write( a=, a) Write( b=, b)