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  kuliah 

  Penyajian  . 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  sebelumnya 

  Penyajian  . 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 pertemuan   

  M

 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

 Aktual 

  Begin    )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 :