Algoritma dan Struktur Data II
ALGORITMA dan dan STRUKTUR DATA II Struktur Data Pertemuan 1
Waktu : menit Tujuan Pembelajaran : Mahasiswa mampu menjelaskan konsep algoritma dan
struktur data Substansi Materi : Konsep Algoritma dan Struktur Data Tabulasi Kegiatan Perkuliahan
Tahap Kegiatan
No Kegiatan Pengajar Media & Alat Waktu
Kegiatan Mahasiswa
Pendahuluan . Membuka Pertemuan Menyimak Papan Tulis Menit
. Menjelaskan peta kompetensi dan Bertanya tujuan pembelajaran . Memberikan rancangan pembelajaran . Memberikan daftar referensi kuliahPenyajian . Definisi Algoritma Menyimak Papan Tulis Menit
Materi . Definisi Struktur Data Bertanya . Konsep Algoritma dan Struktur Menjawab Data Pertanyaan . Contoh penerapan Algoritma dan Struktur Data
Penutup . Menyimpulkan materi pertemuan Menyimak Papan tulis Menit
. Memberikan tugas kecil . Menutup pertemuan
M
A T E R I K U L I A H
Definisi Algoritma
Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama seorang ahli matematika dari Uzbekistan Abu Abdullah Muhammad )bnu Musa Al‐Khuwarizmi ‐
. Al‐Khuwarizmi dibaca orang barat menjadi Algorism. Al‐Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal‐Muqabala yang artinya Buku pemugaran dan V3/2009 1
‐2010
ALGORITMA dan dan STRUKTUR DATA II Struktur Data
pengurangan The book of restoration and reduction . Dari judul buku itu kita juga memperoleh akar kata Aljabar Algebra . Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata Algorithm berangsur‐angsur dipakai sebagai metode perhitungan komputasi secara umum, sehingga kehilangan makna kata aslinya. Dalam Bahasa )ndonesia, kata Algorithm diserap menjadi Algoritma. Kita bisa mendefinisikan algoritma sebagai berikut:
Algoritma adalah logika, metode dan tahapan urutan sistematis yang digunakan untuk memecahkan suatu permasalahan. Dan kamus besar bahasa )ndonesia Balai Pustaka secara formal mendefinisikan algoritma sebagai berikut:
Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.
Hubungan Algoritma dan Struktur Data
Program adalah kumpulan instruksi komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ini ditulis dengan menggunakan bahasa pemrograman. Jadi bisa kita sebut bahwa program adalah suatu implementasi bahasa pemrograman. Beberapa pakar memberi formula bahwa: program = struktur data + algoritma
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, semikian juga sebaliknya. Menilai Sebuah Algoritma ketika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untuk memecahkan masalah kemungkinan bisa lebih dari satu. Dan kita memilih mana yang terbaik diantara teknik‐teknik itu. (al ini sama juga dengan algoritma, yang V3/2009 2
‐2010
ALGORITMA dan dan STRUKTUR DATA II Struktur Data
memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan. Lalu bagaimana mengukur mana algoritma yang terbaik ? Beberapa persyaratan untuk menjadi algoritma yang baik adalah:
- Tingkat kepercayaannya tinggi realibility . (asil yang diperoleh dari proses harus berakurasi tinggi dan benar.
- Pemrosesan yang efisien low cost . Proses harus diselesaikan secepat mungkin dan jumlah kalkulasi yang sependek mungkin.
- Bersifat general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
- Bisa dikembangkan expandable . (aruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
- Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma anda.
Sulit dimengertinya suatu program akan membuat sulit pengelolaan.
- Portabilitas yang tinggi portability . Bisa dengan mudah diimplementasikan di berbagai platform komputer.
Contoh Algoritma dan Implementasinya
Sebagai contoh sederhana, mari kita berlatih melihat permasalahan, mencoba menyusun algoritma, dan menerapkan dalam bahasa Pascal. Permasalahan : Bagaimana mengkonversi nilai yang diraih mahasiswa peserta kuliah Algoritma dan Struktur Data )) menjadi (uruf Mutu A / B / C / D / E ? Untuk memecahkan masalah tersebut maka dapat disusun algoritma sebagai berikut :
. Buat satu variable misalnya Nilai . Bandingkan nilai dengan rentang huruf mutu dengan menggunakan selection . Tampilkan huruf mutu
V3/2009 3
‐2010
ALGORITMA dan dan STRUKTUR DATA II Struktur Data
Lalu jika diimplementasikan dengan menggunakan program Pascal, maka dibawah ini adalah listing programnya :
{ Program Huruf Mutu }
Uses crt; Var n : integer; Begin Clrscr; Write ‘Nilai Anda : ‘ ; Repeat GoToXY , ; ClrEol; Read n ; Until n>= and n<= ; Case n of . . : write ‘ Anda mendapat (uruf Mutu A ‘ ; . . : write ‘ Anda mendapat (uruf Mutu B ‘ ; . . : write ‘ Anda mendapat (uruf Mutu C ‘ ; Else write ‘ Anda mendapat (uruf Mutu D ‘ ; End; ReadKey; End.
Output :
Nilai Anda : Anda mendapat (uruf Mutu A
Algoritma Tidak Tergantung Bahasa Pemrograman Dan Mesin Komputer
Notasi Algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Analoginya sama dengan resep membuat kue. Sebuah resep dapat ditulis dalam bahasa apapun. Bahasa Jepang, )nggris, Perancis, )ndonesia, dan lain sebagainya. Apapun bahasanya, kue yang dihasilkan tetap sama asalkan semua aturan pada resep diikuti. V3/2009 4
‐2010
ALGORITMA dan dan STRUKTUR DATA II Struktur Data
Mengapa demikian? Karena setiap juru masak sebagai pemroses dapat melakukan operasi dasar yang sama, seperti mengocok telur, menimbang berat gula, dan lain sebagainya. Demikian juga halnya dengan komputer. Meskipun setiap komputer berbeda teknologinya, tetapi secara umum semua komputer dapat melakukan operasi‐operasi dasar dalam pemrograman seperti operasi pembacaan data, operasi perbandingan, operasi aritmatika, dan sebagainya. Perkembangan teknologi komputer tidak mengubah operasi‐ operasi dasar itu, yang berubah hanyalah kecepatan, biaya, atau tingkat ketelitian. Pada sisi lain setiap program dalam bahasa tingkat tinggi selalu diterjemahkan kedalam bahasa mesin sebelum akhirnya dikerjakan oleh CPU. Setiap instruksi dalam bahasa mesin menyajikan operasi dasar yang sesuai, dan menghasilkan efek yang sama pada setiap komputer.
V3/2009 5 ‐2010
ALGORITMA M dan STRUKTUR DATA II O D U L Pertemuan 2
Waktu : menit Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Modul. Substansi Materi : Modul Tabulasi Kegiatan Perkuliahan
Tahap Kegiatan Media & No Kegiatan Pengajar
Waktu Kegiatan Mahasiswa Alat
Pendahuluan . Membuka pertemuan Menyimak Papan Tulis Menit
. Mengulang materi pertemuan Bertanya sebelumnyaPenyajian . Definisi procedure Menyimak Papan Tulis 8 Menit
Materi . Kegunaan procedure Bertanya . Definisi fungsi Menjawab . Kegunaan fungsi Pertanyaan . Contoh program yang menggunakan procedure dan fungsi . Contoh soal procedure dan fungsi
Penutup . Menyimpulkan materi pertemuan Menyimak Papan tulis Menit
. Memberikan tugas kecil . Menutup pertemuanM
A T E R I K U L I A H
PROCEDURE
Procedure berguna untuk mengumpulkan statement‐statement yang dapat dijalankan menjadi satu dalam suatu blok dan untuk menjalankannya kembali hanya dengan menuliskan nama procedure yang menampungnya. Selain itu procedure juga banyak dipakai untuk menampung baris‐baris perintah yang sering dipakai dalam sebuah program. Untuk mendeklarasikan procedure dapat dilakukan dengan dua cara, yaitu :
- (eader procedure tanpa parameter
- (eader procedure dengan parameter
V3/2009 ‐2010 1
ALGORITMA M dan STRUKTUR DATA II O D U L Header procedure tanpa parameter
Bentuk umum :
Procedure
<NamaProcedure>; Contoh :
Procedure
BuatKotak;
Procedure
)nput;
Procedure
Output; Penulisan header procedure tanpa parameter diawali dengan kata baku Procedure dan diikuti dengan nama procedure serta diakhiri dengan tanda titik koma ; . Berikut digambarkan struktur blok program beserta procedure tanpa parameter. Program <NamaProgram> Procedure <NamaProcedure>
Gambar . Struktur blok program beserta procedure tanpa parameter
Contoh program pemanfaatan procedure tanpa parameter
Program (itung; Var p, q, x, y : byte; Procedure TambahKali; Begin P := x + y;
V3/2009 ‐2010 2
ALGORITMA M dan STRUKTUR DATA II O D U L
Q := x * y; Writeln ‘ X + Y = ‘, p ; Writeln ‘ X * Y = ‘, q ; End; Begin Write ‘ X = ‘ ; ReadLn x ; Write ‘ Y = ‘ ; ReadLn y ; TambahKali; {Untuk menjalankan procedure TambahKali} End. Dari listing program diatas dapat dilihat bahwa Procedure TambahKali hanya berisi baris‐ baris program yang dapat dijalankan, dan pada procedure itu sendiri tidak ada hasil yang ditampungnya.
Header procedure dengan parameter
Bentuk umum :
Procedure
<NamaProcedure> <daftar parameter> ; Contoh :
Procedure
(itung a, b : byte ; c : real ;
Procedure
Lingkaran x, y, jari : integer ; Penulisan header procedure dengan parameter hamper sama dengan procedure tanpa parameter yaitu diawali dengan kata baku Procedure lalu nama procedure dan diikuti dengan parameter‐parameter yang berada di dalam kurung yang masing‐masing
V3/2009 ‐2010 3
ALGORITMA M dan STRUKTUR DATA II O D U L
dipisahkan dengan koma beserta dengan tipe datanya serta diakhiri dengan tanda titik koma ; . Berikut digambarkan struktur blok program beserta procedure tanpa parameter. Program <NamaProgram> Procedure <NamaProcedure>(<daftar parameter>);
Gambar . Struktur blok program beserta procedure dengan parameter
Contoh program pemanfaatan procedure dengan parameter
Program (itung; Var p, q, x, y : byte; Procedure TambahKali a, b : byte ; Begin P := x + y; Q := x * y; Writeln ‘ X + Y = ‘, p ; Writeln ‘ X * Y = ‘, q ; End; Begin {Program Utama} Write ‘ X = ‘ ; ReadLn x ; Write ‘ Y = ‘ ; ReadLn y ; TambahKali x,y ; {Untuk menjalankan procedure TambahKali} End.
V3/2009 ‐2010 4
ALGORITMA M dan STRUKTUR DATA II O D U L FUNCTION
Function tidak hanya dapat dipakai untuk mengelompokan baris‐baris perintah seperti halnya procedure, tetapi function itu sendiri dapat menampung nilai yang disimpan pada nama function. (al tersebut merupakan perbedaan utama antara fungsi dan prosedur. Seperti procedure, penulisan header function pun dapat dilakukan dengan dua cara sesuai dengan kebutuhan , yaitu :
- (eader function tanpa parameter
- (eader function dengan parameter
Header Function Tanpa Parameter
Bentuk umum :
Function
<NamaFunction> : TipeData; Contoh :
Function
(itung : integer;
Function
Nama : string;
Function
Check : Boolean; (eader function selalu diawali dengan kata baku Function dan diikuti dengan nama function serta tipe datanya yang dipisahkan dengan tanda titik dua : . Berikut digambarkan struktur blok program serta function tanpa parameter. Program <NamaProgram> Function <NamaFunction>:TipeData;
Gambar . Blok program serta function tanpa parameter
V3/2009 ‐2010 5
ALGORITMA M dan STRUKTUR DATA II O D U L Contoh program pemanfaatan function tanpa parameter
Program (itung; Var x, y : byte; Function Tambah:byte; Begin Tambah := x + y; End; Function Kali:byte; Begin Kali := x * y; End; Begin Write ‘ X = ‘ ; ReadLn x ; Write ‘ Y = ‘ ; ReadLn y ; WriteLn ‘ X + Y = ‘, Tambah ; WriteLn ‘ X * Y = ‘, Kali ; End. Function tambah dan kali pada contoh diatas dapat menampung hasil dari perkalian antara x dan y sehingga variable p dan q hanya dipakai sebagai penampung sementara, sedangkan pada procedure tidak dapat demikian. )nilah salah satu perbedaan function dengan procedure seperti yang telah dijelaskan sebelumnya
Header Function dengan Parameter
Bentuk umum :
Function
<NamaFunction> <DaftarParameter> : TipeData;
V3/2009 ‐2010 6
ALGORITMA M dan STRUKTUR DATA II O D U L
Contoh :
Function
(itung a, b : byte : integer;
Function
CheckPosisi x, y : integer : Boolean; Penulisan function dengan parameter tidak jauh berbeda dengan function tanpa parameter, hanya saja perlu ditambahkan parameter‐parameter yang ditulis di dalam . Berikut digambarkan struktur blok program beserta function dengan parameter. Program <NamaProgram> Function <NamaFunction>(<Daftar Parameter>):TipeData;
Gambar . Struktur blok program beserta function dengan parameter
Contoh program pemanfaatan function dengan parameter
Program (itung; Var x, y : byte; Function Tambah x, y : byte : byte; Begin Tambah := x + y; End; Function Kali x, y : byte :byte; Begin Kali := x * y; End; Begin
V3/2009 ‐2010 7
ALGORITMA dan STRUKTUR DATA II M O D U L
- Jika membuat suatu procedure maka harus mendeklarasikan dengan reserved word
- Function harus dideklarasikan dengan tipenya, sedangkan procedure tidak. (al ini menunjukkan bahwa pada function itu sendiri dapat menampung nilai, sedangkan procedure tidak. >Memecah sebuah program besar menjadi beberapa bagian modul sehingga memudahkan pembagian tugas jika program tersebut dibuat oleh lebih dari orang. Selain itu juga mempermudah pengecekan kesalahan / error.
- Jika terdapat perintah‐perintah yang sama yang akan dipakai dalam suatu program, maka sebaiknya perintah‐perintah tersebut dipisahkan dalam suatu modul program dengan menggunakan procedure, sehingga jika ingin memakainya hanya tinggal memanggil nama procedure tersebut.
- Mempermudah proses dokumentasi.
V3/2009 ‐2010 8
Write ‘ X = ‘ ; ReadLn x ; Write ‘ Y = ‘ ; ReadLn y ; WriteLn ‘ X + Y = ‘, Tambah x,y ; WriteLn ‘ X * Y = ‘, Kali x,y ; End.
Perbedaan antara Function dan Procedure, sebagai berikut :
Procedure , sedangkan jika ingin membuat suatu function maka harus mendeklarasikan dengan reserved word Function .
Persamaan antara Function dan Procedure, terletak pada fungsinya, yaitu :
ALGORITMA M dan STRUKTUR DATA II O D U L Pertemuan 3
Waktu : menit Tujuan Pembelajaran : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Modul. Substansi Materi : Modul Tabulasi Kegiatan Perkuliahan
Tahap Kegiatan Media & No Kegiatan Pengajar
Waktu Kegiatan Mahasiswa Alat
Pendahuluan . Membuka pertemuan Menyimak Papan Tulis Menit . Mengulang materi pertemuan Bertanya sebelumnya Penyajian . Variabel dan Konstanta Lokal Menyimak Papan Tulis Menit
Materi . Parameter formal dan aktual Bertanya . Transfer Parameter Menjawab . Nested Procedure Pertanyaan . Rekursif . Contoh program . Contoh soal Modul
Penutup . Menyimpulkan materi pertemuan Menyimak Papan tulis Menit . Memberikan tugas kecil . Menutup pertemuan
M
A T E R I K U L I A H
VARIABEL DAN KONSTANTA LOKAL
Pada kedua contoh pada materi sebelumnya, variable p, q, x dan y semuanya bersifat global sehingga dapat dikenal baik pada program utama dan pada procedure TambahKali sedangkan pada dua listing program terakhir, variable x dan y juga bersifat global namun variable p dan q tidak diperlukan dali karena digantikan oleh function itu sendiri yang dapat menampung nilai. Ada baiknya membatasi suatu variable atau konstanta hanya pada batas local saja karena beberapa factor seperti kemudahan dalam mengecek jika terjadi kesalahan, memudahkan
V3/2009 ‐2010 1
ALGORITMA M dan STRUKTUR DATA II O D U L
pengontrolan, dapat memakai variable dengan nama yang sama tetapi dengan fungsi atau procedure yang berbeda. Jika mendeklarasikan variable atau konstanta local di dalam suatu procedure atau function, maka variable atau konstanta tersebut hanya dapat digunakan pada procedure atau function yang bersangkutan dan tidak dapat digunakan pada procedure atau function lainnya ataupun pada program utama.
Contoh 1 : x,y adalah
Program (itung;
variable global
Var x, y : byte;
p, q adalah
Procedure TambahKali;
variable lokal
Var p, q : byte; Begin
P := x + y; Q := x * y; Writeln X + Y = , p ; Writeln X * Y = , q ; End; Begin Write X = ; ReadLn x ; Write Y = ; ReadLn y ; TambahKali; {Untuk menjalankan procedure TambahKali} End.
V3/2009 ‐2010 2
ALGORITMA M dan STRUKTUR DATA II O D U L Contoh 2 :
Program (itung; Var x, y : byte;
P adalah
Function Tambah:byte;
variable lokal
Var p : byte; Begin P := x + y;
Tambah := p; End;
q adalah
Function Kali:byte;
variable global
Var q : byte; Begin q := x * y;
Kali := q; End; Begin Write X = ; ReadLn x ; Write Y = ; ReadLn y ; WriteLn X + Y = , Tambah ; WriteLn X * Y = , Kali ; End. Pada kedua contoh diatas, variable x dan y bersifat variable global sehingga dapat dikenal baik pada program utama maupun pada procedur TambahKali atau function Tambah dan Kali. Sedangkan variable p dan q bersifat variable local, sehingga hanya dapat dikenal pada
V3/2009 ‐2010 3
ALGORITMA M dan STRUKTUR DATA II O D U L
procedure TambahKali saja dan function Tambah serta Kali. Apabila variable local tersebut dipaksakan berada pada program utama, maka jika decompile akan diberikan pesan error unknown identifier yang menandakan bahwa variable P dan Q tersebut tidak dikenal pada program utama.
Parameter Formal dan Aktual
Jika sebuah modul, baik procedure ataupun function memiliki parameter yang berada di dalam kurung , maka parameter tersebut disebut dengan parameter formal, sedangkan parameter yang terdapat pada baris perintah pemanggil modul tersebut disebut sebagai parameter actual. Untuk lebih jelasnya lihat penjelasan dibawah ini :
a,b,c adalah Parameter Formal
Program (itungLuas; Procedure (itung a, b : byte; c : integer ; Begin ……………. End; {Program Utama} Var hasil : byte;
3,7,hasil adalah Parameter Aktual
Begin (itung , , hasil ; ………………. End.
V3/2009 ‐2010 4
ALGORITMA M dan STRUKTUR DATA II O D U L
Pada contoh diatas procedure (itung memiliki parameter a, b dan c yang disebut sebagai parameter formal. Procedure hitung tersebut dipanggil pada program utama dengan parameter , dan hasil. Parameter , dan hasil dikenal sebagai parameter actual. Kemudian parameter actual , dan hasil tersebut masing‐masing ditransfer kepada parameter formal a, b dan c sesuai dengan urutannya. Sehingga pada procedure hitung a bernilai , b bernilai , dan c berisi variable penampung hasil. Transfer parameter akan dijelaskan lebih lanjut pada bagian berikutnya. Program Gambar; Function CheckPosisi x, y : byte ; Data : string : Boolean; Begin ……………………….
Parameter Formal
End; {Program Utama}
Parameter
AktualBegin )f CheckPosisi , , * then Write Posisi Telah Benar ; ………………………… End. Pengertian parameter formal dan actual pada function tidak berbeda dengan yang dijelaskan sebelumnya pada procedure. Function CheckPosisi mempunyai parameter X, Y dan Data. Ketiga parameter tersebut dikenal sebagai parameter formal. Function CheckPosisi dipanggil dalam program utama dengan parameter , , dan * . Parameter , , dan * tersebut dikenal sebagai parameter actual. Pada saat function CheckPosisi dijalankan, parameter X akan berisi nilai , Y berisi nilai , dan Data berisi karakter *. Setelah function selesai dijalankan, hasil akhir dari proses function CheckPosisi akan
V3/2009 ‐2010 5
ALGORITMA M dan STRUKTUR DATA II O D U L
disimpan pada function itu sendiri, yaitu pada CheckPosisi yang bertipe Boolean. Karena CheckPosisi bertipe Boolean, maka sudah dapat dipastikan bahwa nilai yang ditampungnya adalah True atau False . Lalu nilai true atau false itu akan dikirimkan kembali pada baris program pemanggilnya, yaitu : )f CheckPosisi , , * then Write Posisi Anda Benar ; Jika CheckPosisi bernilai true maka pada layar akan dicetak Posisi Anda Benar .
Transfer Parameter
Pada saat memanggil suatu modul procedure /function dengan parameter sebenarnya telah terjadi pengiriman parameter dari parameter actual yang terdapat memangil procedure /function ke parameter formal yang terdapat pada procedure atau function tersebut pengiriman parameter tersebut dapat dilakukan dengan dua cara , yaitu:
- Transfer parameter by value secara nilai
- Transfer parameter by location /reference secara acuan
Transfer Parameter by Value
Nilai yang tersimpan dalam parameter dikirim ke modul procedure/ function untuk diolah tetapi tidak minta hasil olahan tersebut untuk dikembalikan dalam mode ini terjadi aliran arah yaitu dari pemangil procedure ke procedure itu.
Contoh 1:
Program (itung; Var x, y : byte; Procedure TambahKali p, q : byte ; Begin P := x + y;
V3/2009 ‐2010 6
ALGORITMA M dan STRUKTUR DATA II O D U L
Q := x * y; Writeln X + Y = , p ; Writeln X * Y = , q ; End; Begin Write X = ; ReadLn x ; Write Y = ; ReadLn y ; TambahKali x,y ; {Untuk menjalankan procedure TambahKali} End.
Contoh 2 :
Program (itung; Var x, y : byte; Function Tambah p, q : byte : byte;
Begin Tambah := x + y ; End; Function Kali p, q :byte : byte; Begin Kali := x * y; End; Begin Write X = ; ReadLn x ; Write Y = ; ReadLn y ;
V3/2009 ‐2010 7
ALGORITMA M dan STRUKTUR DATA II O D U L
WriteLn X + Y = , Tambah x, y ; WriteLn X * Y = , Kali x, y ; End.
Transfer parameter by location
Transfer parameter by location sering dikenal juga dengan transfer parameter by reference secara acuan dalam kasus ini yang ditransfer hanya lokasinya saja dapat berisi data atau kosong untuk di olah , dan meminta hasil olahan tersebut untuk dikembalikan dan disimpan pada lokasi yang telah ditransfer tersebut dalam mode ini dapat terjadi aliran arah dari pemanggil procedure ke procedure itu dan sebaliknya .
Contoh 1:
Program (itung; Var x, y : byte; Procedure TambahKali var p, q : byte ; Begin P := x + y; Q := x * y; End; Begin Write X = ; ReadLn x ; Write Y = ; ReadLn y ; TambahKali x,y ; WriteLn X + Y = , x ; End.
V3/2009 ‐2010 8
AL LGORITMA dan UR M M d STRUKTU DATA II O D U L
Contoh 2 2 : By y Location By
Value
Program m (itung; Var x, y, z , z : byte e; Procedure T P ambahKali p, q : byte; v var z , z : byte ;
B Begin Z := x + y; Z := x * y; E nd; Begin W Write X = ; ReadLn x ; W Write Y = ; ReadLn y ; TambahKali T x, y, Z , Z ; W WriteLn X + Y = , Z ; WriteLn X * W * Y = , Z ; End.
Nested p procedure ( ( Procedure eTersarang g)
Nested p procedure a adalah proce edure yang terdapat di dalam proc cedure yang g lainya . Bentuk U Umum : Progra am <NamaProgram m> Procedure e <NamaProcedure e>
Pro ocedure<Na maProcedur re>;
V3/200 09 ‐2010 9
ALGORITMA M dan STRUKTUR DATA II O D U L
Gambar . Nested Procedure
Procedure /function rekursif
Procedure/function rekursif adalah procedure /function yang dapat memanggil dirinya sendiri procedure/function rekursif ini dipakai karena memiliki kelebihan yaitu penulisan baris program dapat menjadi lebih singkat , tetapi juga memiliki kekurangan yaitu membutuhkan banyak memori karena setiap kali program bagian dipanggil oleh dirinya sendiri dibutuhkan sejumlah ruang memori tambahan.
Contoh :