• Tidak ada hasil yang ditemukan

ALGORITMA & PEMROGRAMAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "ALGORITMA & PEMROGRAMAN"

Copied!
76
0
0

Teks penuh

(1)

MODUL BAHAN AJAR

 

ALGORITMA & 

PEMROGRAMAN 

Oleh : Shiyami M, S.Kom. 

                 

JURUSAN MANAJEMEN INFORMATIKA 

POLITEKNIK POS INDONESIA 

(2)

DAFTAR ISI

 

 

BAB I PENGENALAN ALGORITMA ... 1  BAB II NOTASI ALGORITMIK, TIPE, NAMA DAN NILAI ... 6  BAB III RUNTUNAN ... 16  BAB IV STRUKTUR PEMILIHAN ... 19  BAB V STRUKTUR PENGULANGAN ... 29  BAB VI STUDI KASUS ... 38  BAB VII TEKNIK PEMROGRAMAN MODULAR MENGGUNAKAN PROCEDURE ... 40  BAB VIII TEKNIK PEMROGRAMAN MODULAR MENGGUNAKAN FUNCTION ... 51  BAB IX ARRAY (LARIK) SATU DIMENSI... 59  BAB X ARRAY (LARIK) DUA DIMENSI ... 68     

(3)

BAB I PENGENALAN ALGORITMA 1.1  Definisi Algoritma  Terdapat beberapa definisi mengenai kata Algoritma :  1. Algoritma adalah urutan langkah‐langkah logis penyelesaian masalah yang disusun secara  sistematis (Rinaldi Munir :2002).  2.  Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah (KBBI   :1988). 

3.  Algoritma  adalah  suatu  himpunan  hingga  dari  instruksi‐instruksi  yang  secara  jelas  memperinci  langkah‐langkah  proses  pelaksanaan,  dalam  pemecahan  suatu  masalah  tertentu,  atau  suatu  kelas  masalah  tertentu,  dengan  dituntut  pula  bahwa  himpunan  instruksi tersebut dapat dilaksanakan secara mekanik (Team Gunadarma :1988). 

Algoritma  adalah  jantung  ilmu  komputer  atau  informatika.  Banyak  cabang  ilmu  komputer  yang  diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan  ilmu  komputer  saja.    alam  kehidupan  sehari‐haripun  banyak  terdapat  proses  yang  dinyatakan  dalam suatu algoritma. Cara‐cara membuat kue atau masakan yang dinyatakan dalam suatu resep  juga  dapat  disebut  sebagai  algoritma.  Pada  setiap  resep  selalu  ada  urutan  langkah‐lankah  membuat  masakan.  Bila  langkah‐langkahnya  tidak  logis,  tidak  dapat  dihasilkan  masakan  yang  diinginkan.  

 

Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses  tersebut  dapat  berupa  manusia,  komputer,  robot  atau  alat‐alat  elektronik  lainnya.  Pemroses  melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan  proses  tersebut.  Melaksanakan  Algoritma  berarti  mengerjakan  langkah‐langkah  di  dalam  Algoritma  tersebut.  Pemroses  mengerjakan  proses  sesuai  dengan  algoritma  yang  diberikan  kepadanya.  Juru  masak  membuat  kue  berdasarkan  resep  yang  diberikan  kepadanya,  pianis  memainkan  lagu  berdasarkan  papan  not  balok.  Karena  itu  suatu  Algoritma  harus  dinyatakan  dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus :    1. Mengerti setiap langkah dalam Algoritma  2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.  Kriteria Algoritma menurut Donald E. Knuth adalah :  1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar.  2. Output: algoritma harus memiliki minimal satu buah output keluaran.  3. Definiteness (pasti): algoritma memiliki instruksi‐instruksi yang jelas dan tidak ambigu.  4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).  5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan  efektif. 

(4)

1.2 Mekanisme Algoritma dan Pemroses 

Komputer  hanyalah  salah  satu  pemroses.  Agar  dapat  dilaksanakan  oleh  komputer,  algoritma  harus  ditulis  dalam  notasi  bahasa  pemrograman  sehingga  dinamakan  program.  Jadi  program  adalah  perwujudan  atau  implementasi  teknis  Algoritma  yang  ditulis  dalam  bahasa  pemrogaman  tertentu  sehingga  dapat  dilaksanakan  oleh  komputer.  Sedangkan  orang  yang membuat program disebut pemrogram/programmer dan kegiatan merancang dan menulis  program disebut pemrograman. Di dalam pemrograman terdapat aktivitas menulis kode program  dinamakan coding. 

Secara garis besar komputer tersusun atas empat komponen utama yaitu :  1. Piranti Masukan dan Keluaran 

Piranti  masukan  dan  keluaran  (I/O  devices)  adalah  alat  yang  memasukkan  data  atau  program  ke  dalam  memori,  dan  alat  yang  digunakan  komputer  untuk  mengkomunikasikan  hasil‐hasil  aktivitasnya.  Contoh  piranti  masukan  antara  lain,  papan  kunci (keyboard), pemindai (scanner), dan cakram (disk). Contoh piranti keluaran adalah,  layar peraga (monitor), pencetak (printer), dan cakram 

2. Unit Pemroses Utama 

Unit  pemroses  utama  (Central  Processing  Unit  –  CPU)  adalah  “otak”  komputer,  yang  berfungsi  mengerjakan  operasi‐operasi  dasar  seperti  operasi  perbandingan,  operasi  perhitungan, operasi membaca, dan operasi menulis. 

3. Memori  

Memori adalah komponen yang berfungsi menyimpan atau mengingat. Yang disimpan di  dalam  memori  adalah  program  (berisi  operasi‐operasi  yang  akan  dikerjakan  oleh  CPU)  dan data atau informasi (sesuatu yang diolah oleh operasi‐operasi).  

 

Mekanisme  kerja  keempat  komponen  di  atas  dapat  dijelaskan  sebagai  berikut.  Mula‐mula  program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan (execute), setiap  instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasi‐operasi  yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari  piranti  masukan,  disimpan  di  dalam  memori  lalu  dikirim  ke  CPU  untuk  operasi  yang  memerlukannya  tadi.  Bila  proses  menghasilkan  keluaran  atau  informasi,  keluaran  disimpan  ke  dalam  memori,  lalu  memori  menuliskan  keluaran  tadi  ke  piranti  keluaran  (misalnya  dengan  menampilkannya di layar monitor). 

Belajar  memprogram  tidak  sama  dengan  belajar  bahasa  pemrograman.  Belajar  memprogram  adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu  notasi  tertentu  yang  mudah  dibaca  dan  dipahami.  Sedangkan  belajar  bahasa  pemrograman 

(5)

Di  dalam  pemrograman  lebih  ditekankan  pada  pemecahan  masalah,  bila  rancangan  masalah  sudah  dibuat  dengan  skema  yang  benar  yaitu  berisi  urutan  langkah‐langkah  pencapaian  solusi  yang  ditulis  dalam  sebuah  notasi  yang  biasa  dinamakan  dengan  notasi  algortimik,  maka  rancangan  siap  dikodekan  ke  dalam  bahasa  pemrograman  agar  program  bisa  di  eksekusi  oleh  komputer. 

Bahasa pemorgraman dikelompokan kedalam dua macam :  1. Bahasa Tingkat Rendah 

Bahasa  jenis  ini  dirancang  agar  setiap  instruksinya  langsung  dikerjakan  oleh  komputer,  tanpa  harus  melalui  penerjemah  (translator).  Contohnya  adalah  bahasa  mesin  dan  bahasa rakitan (assembly). CPU mengambil instruksi dari memori, langsung mengerti dan  langsung  mengerjakan  operasinya.  Bahasa  tingkat  rendah  bersifat  primitif,  sangat  sederhana,  orientasinya  lebih  dekat  ke  mesin,  dan  sulit  dipahami  manusia.  Sedangkan  bahasa  rakitan  dimasukkan  ke  dalam  kelompok  ini  karena  alasan  notasi  yang  dipakai  dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih  perlu penerjemahan ke dalam bahasa mesin.  

2. Bahasa Tingkat Tinggi 

Bahasa  tingkat  tinggi,  yang  membuat  pemrograman  lebih  mudah  dipahami,  lebih  “manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program  dalam  bahasa  tingkat  tinggi  tidak  dapat  langsung  dilaksanakan  oleh  komputer.  Ia  perlu  diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator  atau  compiler)  ke  dalam  bahasa  mesin  sebelum  akhirnya  dieksekusi  oleh  CPU.  Contoh  bahasa tingkat tinggi adalah Pascal, Cobol, Basic, Fortran, C, C++, dan sebagainya. 

 

1.3 Notasi Algoritmik 

Notasi  algoritmik  bukan  bahasa  pemrograman,  sehingga  siapa  pun  dapat  membuat  notasi  algoritmik yang berbeda yang penting mudah dibaca dan dimengerti. Penyajian algoritma secara  garis  besar  bisa  dalam  2  bentuk  penyajian  yaitu  tulisan  dan  gambar.  Algoritma  yang  disajikan  dengan  tulisan  yaitu  dengan  struktur  bahasa  tertentu  (misalnya  bahasa  Indonesia  atau  bahasa  Inggris)  dan  pseudocode.  Pseudocode  adalah  kode  yang  mirip  dengan  kode  pemrograman  yang  sebenarnya  seperti  Pascal,  atau  C,  sehingga  lebih  tepat  digunakan  untuk  menggambarkan  algoritma yang akan dikomunikasikan kepada pemrogram.  

Sedangkan  algoritma  disajikan  dengan  gambar  yaitu  dengan  flowchart.  Flowchart  merupakan  gambar  atau  bagan  yang  memperlihatkan  urutan  dan  hubungan  antar  proses  beserta  pernyataannya.  Gambaran  ini  dinyatakan  dengan  simbol.  Dengan  demikian  setiap  simbol  menggambarkan  proses  tertentu.  Sedangkan  antara  proses  digambarkan  dengan  garis  penghubung.  Dengan  menggunakan  flowchart  akan  memudahkan  kita  untuk  melakukan  pengecekan bagian‐bagian yang terlupakan dalam analisis masalah.  

       

(6)

Contoh :  1. Notasi algoritmik I, menyatakan langkah‐langkah algoritma dengan kalimat deskriptif  PROGRAM Luas Persegi Panjang  Menghitung luas persegi panjang dengan rumus L = p * l    ALGORITMA :  1. Baca nilai p   2. Baca nilai l   3. Hitung luas persegi panjang dengan mengkalikan p dan l  4. Tulis nilai luas persegi panjang  2. Notasi algoritmik II, menggunakan pseudo‐code  PROGRAM Luas Persegi Panjang  Menghitung luas persegi panjang dengan rumus L = p * l    DEKLARASI :  p, l   : integer (panjang dan lebar berupa bilangan bulat positif)  L      : integer  (hasil luas persegi panjang)    ALGORITMA :  Read (p, l)  L ← p * l  Write (L)    3. Notasi algoritmik III, menggunakan flowchart                   

(7)

1.4 Struktur Dasar Algoritma 

Algoritma  berisi  langkah‐langkah  penyelesaian  suatu  masalah.  Langkah‐langkah  tersebut  dapat  berupa  runtunan  aksi  (sequence),  pemilihan  aksi  (selection),  pengulangan  aksi  (iteration)  atau  kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu: 

1. Struktur Runtunan 

Digunakan untuk program yang pernyataannya sequential atau urutan. Runtutan adalah  instruksi‐instruksi  yang  dikerjakan  secara  berurutan.  Berurutan  disini  berarti  sesuai  dengan  urutan  penulisannya,  yakni  sebuah  instruksi  dijalankan  setelah  instruksi  sebelumnya selesai dikerjakan. 

2. Struktur Pemilihan 

Digunakan  untuk  program  yang  menggunakan  pemilihan  atau  penyeleksian  kondisi.  Pemilihan  terjadi  ketika  suatu  instruksi  dikerjakan  apabila  suatu  kondisi  terpenuhi.  Misalnya  instruksi  A  dikerjakan  karena  kondisi  X  terpenuhi  yangjuga  berarti  instruksi  A  tidak dikerjakan bila kondisi X tidak terpenuhi. 

3. Struktur Perulangan 

Digunakan  untuk  program  yang  pernyataannya  akan  dieksekusi  berulang‐ulang.  Pengulangan  terjadi  ketika  ada  suatu  instruksi  yang  dilakukan  terus  menerus  selama  suatu kondisi terpenuhi. 

 

Beberapa hal yang harus diperhatikan dalam membuat algoritma : 

1. Teks algoritma berisi deskripsi langkah‐langkah Penyelesaian masalah. 

2. Tidak  ada  notasi  yang  baku  dalam  penulisan  teks        algoritma  seperti  notasi  bahasa  pemrograman. 

3. Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. 

4. Notasi  algoritmik  bukan  notasi  bahasa  pemrograman,  karena  itu  pseudocode  dalam 

notasi algoritmik tidak dapat dijalankan oleh komputer. 

5. Algoritma  sebenarnya  digunakan  untuk  membantu  kita  dalam    mengkonversikan  suatu  permasalahan ke dalam bahasa pemrograman. 

6. Algoritma  merupakan  hasil  pemikiran  konseptual,  supaya  dapat  dilaksanakan  oleh  komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman.             

(8)

BAB II

NOTASI ALGORITMIK, TIPE, NAMA DAN NILAI

 

Algoritma berisi  deskripsi  langkah‐langkah  penyelesaian masalah. Langkah‐langkah  penyelesaian  tersebut kita tuliskan dalam notasi algoritmik. 

2.1 Pseudo‐code 

Notasi algoritmik yang baik adalah notasi yang mudah dibaca dan mudah ditranslasikan ke dalam  notasi  bahasa  pemrograman.  Pseudo‐code  adalah  cara  untuk  menuliskan  sebuah algoritma  secara high‐level (level tingkat tinggi). Biasanya Pseudo‐code dituliskan dengan kombinasi Bahasa  Inggris  dan  notasi  matematika.  Biasanya  sebuah  Pseudo‐code  tidak  terlalu  detail  dibandingkan  dengan program. 

Notasi  algoritmik  berupa  pseudo‐code  mempunyai  korespondesni  dengan  notasi  bahasa  pemrograman sehingga proses  penerjemahan dari pseudo‐code ke kode program menjadi  lebih  mudah. Tidak ada aturan baku dalam membuat pseudo‐code asal notasinya bisa dipahami.   Contoh :  1. Sebuah pernyataan dalam notasi deskriptif      Tulis nilai x dan y   Maka pseudo‐codenya dalam notasi algoritma menjadi :      Write (x,y)  Jika di translasikan ke dalam bahasa pascal menjadi :      Write (x,y);  Jika ditranslasikan ke dalam bahasa C :      Printf (“%d  %d”, x,y);  Jika ditransalasikan ke dalam bahasa basic :      WRITE x,y  2. Sebuah pernyataan dalam notasi deskriptif       Masukan nilai X ke dalam min  Maka pseudo‐codenya dalam notasi algoritmik menjadi :      Min ← X    (notasi ← artinya assign atau = )  Jika di transalasikan ke dalam bahasa pascal menjadi :      Min := X;  Jika ditransalasikan ke dalam bahasa C :      Min = X;  Jika ditranslasikan ke dalam bahasa basic :      Min = X;           

(9)

2.2 Struktur Teks Algoritma  Teks algoritma selalu terdiri dari tiga bagian yaitu :    1. Bagian Judul  2. Bagian Deklarasi  3. Bagian Algoritma  Secara umum ketiga bagian tersebut ditunjukan dalam notasi algoritmik di bawah ini :  ALGORITMA nama_program 

{Penjelasan  tentang  algoritma,  yang  berisi  uraian  singkat  mengenai  masalah  apa  yangakan  diselesaikan termasuk masukan dan keluarannya}    DEKLARASI  {semua nama yang dipakai, meliputi nama tipe, nama konstanta, nama peubah, nama prosedur  dan nama fungsi ditulis disini}    DESKRIPSI  {berisi langkah‐langkah penyelesaian masalah}    1. Bagian Judul 

Judul  adalah  bagian  teks  algoritma  tempat  mendefinisikan  apakah  teks  tersebut  adalah  program,  prosedur,  fungsi,  modul  atau  sebuah  skema  program.  Setelah  judul  disarankan  untuk menuliskan spesifikasi singkat dari teks algoritma tersebut dengan memberikan tanda {  } sebagai tanda komentar. Bagian judul ini berisi judul teks algoritma secara keseluruhan dan  intisari teks algoritma tersebut.  Contoh :  ALGORITMA HelloWorld  {program untuk mencetak tulisan “Hello World” pada layar}    ALGORITMA Segitiga 

{program  untuk  menghitung  dan  mencetak  hasil  luas  segitiga,  masukan  program  ini  adalah  alas dan tinggi serta keluarannya adalah hasil dari luas segitiga tercetak di layar} 

 

2. Bagian Deklarasi 

Bagian ini digunakan untuk mendefinisikan : 

‐ Nama type, Nama konstanta, Nama variabel, Nama fungsi, Nama prosedur 

Semua  nama  yang  dipakai  dalam  algoritma  harus  dikenali  sebelum  digunakan.  Penulisan  sekumpulan  nama  dalam  deskripsi  sebaiknya  dikelompokan  menurut  jenis  nama  tersebut.  Bagian deklarasi mungkin kosong jika tidak ada penggunaan nama. 

(10)

Nama  tidak  boleh  mengandung  spasi,  tanda  baca  (seperti  titik,  koma  dsb)  dan  operator  (seperti  +,  ‐,  :,  dsb)  yang  dapat  digunakan  hanya  karakter  garis  bawah  (  _  )  untuk  menggantikan spasi.  Contoh :  DEKLARASI  {nama type}     Type point : <X:real, Y:real> {koordinat pada sumbu kartesian}    {nama konstanta, harus menyebutkan type dan nilai}     Constant phi : real = 3.14     Constant benar : boolean = true    {nama peubah (variabel)}      Nmax : integer  {jumlah maksimum elemen tabel}      P : char  {karakter yang dibaca}      Found : boolean  {hasil pencarian, true jika ketemu}    {nama fungsi dan procedure}      Function Apakah_A (input C : char)→ boolean      {mengembalikan nilai true bila C adalah karakter A atau false bila sebaliknya}        Procedure Tulis (input pesan : string)      {menulis isi pesan ke layar dengan masukan sembarang dan keluaran pesan tertulis di layar}   3. Bagian Deskripsi  Deskripsi adalah bagian teks algoritmik yang berisi instruksi atau pemanggilan aksi yang telah  didefinisikan, Inilah bagian inti dari sebuah program.  Contoh :  DESKRIPSI      Write (‘Hello World’)  DESKRIPSI      Read  (a,t)      L ← a * t / 2      Write (‘Maka luas segitiga adalah’,L)     Contoh secara keseluruhan notasi algoritma untuk menghitung luas segitiga  ALGORITMA Segitiga 

{program  untuk  menghitung  dan  mencetak  hasil  luas  segitiga,  masukan  program  ini  adalah  alas dan tinggi serta keluarannya adalah hasil dari luas segitiga tercetak di layar}    DEKLARASI      a,t  : integer   {variabel yg menunjukan alas dan tinggi segitiga }      L : real   {variabel yg menyimpan hasil dari luas segitiga}    DESKRIPSI 

(11)

    Read  (a,t)      L ← a * t / 2      Write (‘Maka luas segitiga adalah’,L)       Contoh Translasi teks algoritma menghitung luas segitiga ke bahasa pascal    PROGRAM Segitiga  {program untuk menghitung dan mencetak hasil luas segitiga, masukan program ini adalah alas dan  tinggi serta keluarannya adalah hasil dari luas segitiga tercetak di layar}  Var       a,t  : integer;   {variabel yg menunjukan alas dan tinggi segitiga }      L : real;   {variabel yg menyimpan hasil dari luas segitiga}    Begin      Write (‘Masukan Nilai Alas :’); readln(a);      Write (‘Masukan Nilai Tinggi :’); readln(t);      L := a * t / 2;      Writeln (‘Maka luas segitiga adalah’,L);  End.     2.3 Tipe, Nama dan Nilai  1. Tipe 

Tipe  data  dikelompokan  menjadi  2  macam  yaitu  tipe  dasar  dan  tipe  bentukan.  Tipe  dasar  adalah tipe yg dapat langsung dipakai, sedangkan tipe bentukan dibentuk dari tipe dasar yg  sudah didefinisikan sebelumnya. 

a. Tipe dasar 

Yang termasuk dalam tipe dasar adalah : bilangan lojik, bilangan bulat, karakter, bilangan riil  dan string 

NO  NAMA TIPE  RANAH NILAI  OPERASI 

1  Bilangan Lojik Æ  boolean 

Benar  (true)  atau  salah  (false)  Operasi logika : not, and, or dan xor  2  Bilangan  Bulat  Æ   Integer    ‐32768 s.d 32767 

Operasi  aritmatika  dan  operasi  perbandingan 

3  Bilangan riil Æ  Real 

 

2.9 x 10‐39  s.d 1.7 x 1038 

Operasi  aritmatika  dan  operasi  perbandingan 

4  Karakter Æ   Char 

Semua  huruf  alfabet,  angka  desimal,  tanda  baca,  operator  aritmatika,  dan  karakter khusus  ‐ (a..z , A..Z)  ‐ (0..9)  ‐ (‘.’, ‘:’, ‘!’, ‘?’, dll)  ‐ (‘+’, ‘‐‘, ‘*’, ‘/’)  Operasi perbandingan 

(12)

karakter     Contoh penggunaan operasi untuk setiap nama tipe  • Boolean  Tabel kebenaran untuk operasi logika not, and, or dan xor Not a  True  False  False  True  

A  b  a and b  a or b  a xor b 

True  True  True  True  False 

True  False False True True 

False  True  False  True  True 

False  False  False  False  False 

  Contoh penggunaan operasi : misal X,Y,Z adalah peubah bertipe boolean, X bernilai true,  Y bernilai false dan Z bernilai true maka :  Operasi Logika  Hasil  (X and Y) or Z  True X and (Y or Z)  True  Not (X and Y)  True  (Y xor Z) and Y  False    • Integer  Operator aritmatika dan perbandingan yang didefinisikan pada tipe integer adalah :  Operator  Keterangan  Operator Aritmatika  +  Penjumlahan ‐  Pengurangan  *  Perkalian  Div  Pembagian Mod  Sisa hasil bagi Sqr   Mengkuadratkan   Operator Perbandingan  <  Lebih kecil >  Lebih besar  ≤  Lebih kecil atau sama dengan  ≥  Lebih besar atau sama dengan  =  Sama dengan  ≠  Tidak sama dengan     

(13)

Contoh operasi aritmatika beserta hasilnya  Operasi  Hasil  30 + 13  43  40 – 6  34  25 * 2  50  27 div 3  9  27 mod 3  0  10 div 3  3  10 mod 3  1  Sqr (6)  36    Contoh operasi perbandingan beserta hasilnya  Operasi  Hasil  30 < 13  False  40 > 6  True 9 ≤ 9  True  5 ≥ 7  False  17 = 17  True  (24 div 3) ≠ 8  False (10 mod 3) = 1  True    • Real  Operator aritmatika dan perbandingan yang didefinisikan pada tipe real adalah :  Operator  Keterangan Operator Aritmatika  +  Penjumlahan  ‐  Pengurangan  /  Pembagian  *  Perkalian  Sqr  Mengkuadratkan  Sqrt  Mengakarkan   Operator Perbandingan  <  Lebih kecil  >  Lebih besar  ≤  Lebih kecil atau sama dengan ≥  Lebih besar atau sama dengan  ≠  Tidak sama dengan         

(14)

Contoh operasi aritmatika beserta hasilnya  Operasi  Hasil  5.5 + 4.5  10  8.0 – 2.8  5.2  10.0 / 3.0  3.333...  7.2 * 2.5  3.6  Sqr (5)  25  Sqrt (36)  6    Contoh operasi perbandingan beserta hasilnya  Operasi  Hasil 3.0 > 3.5  False 8.0 ≥ 5  True  3.0≠3.5  True     • Char  Operator perbandingan yang didefinisikan pada tipe char adalah :  Operator  Keterangan  <  Lebih kecil  >  Lebih besar ≤  Lebih kecil atau sama dengan  ≥  Lebih besar atau sama dengan  ≠  Tidak sama dengan  =  Sama dengan   Contoh operasi perbandingan beserta hasilnya  Operasi  Hasil  ‘a’ = ‘a’  True  ‘T’ = ‘t’  False ‘m’ < ‘z’  True   ‘Q’ > ‘Z’  False    • String  Operator yang digunakan dalam operasi penyambungan pada tipe string adalah operator  “ + “ operator disini berarti menyambungkan dua tau lebih karakter.  Contoh penggunaan operasi penyambungan :  Operasi  Hasil ‘Manajemen’ + ‘Informatika’    ManajemenInformatika  ‘Manajemen’ + ‘  Informatika’    Manajemen Informatika  ‘xxx’ + ‘  ‘ + ‘yyy’ + ‘zzz’  xxx  yyyzzz  ‘22’ + ‘33’ +’ 11’  2233  11         

(15)

Operator perbandingan yang didefinisikan pada tipe string adalah :  Operator  Keterangan  <  Lebih kecil >  Lebih besar  ≤  Lebih kecil atau sama dengan  ≥  Lebih besar atau sama dengan ≠  Tidak sama dengan =  Sama dengan      Contoh operasi perbandingan beserta hasilnya   Operasi  Hasil ‘abcde’ = ‘abc’  False ‘TUTI’ > ‘tuti’  True     b. Tipe bentukan  Tipe bentukan adalah tipe yang didefinisikan sendiri oleh pemrogram.   Contoh :  DEKLARASI     Type Titik : record <x : real, y : real>     Type jam : record         < hh : integer,        Mm : integer,        Dd : integer>     P : titik     J1, J2 : jam    2. Nama 

Dalam  algoritma  nama  dipakai  sebagai  pengidentifikasi  sesuatu  dan  pemrogram  mengacu  sesuatu  itu  melalui  namanya.  Karena  itu,  tiap  nama  haruslah  unik  dan  tidak  boleh  ada  dua  buah nama yang sama. 

Semua  nama  yang  digunakan  di  dalam  algoritma  harus  dideklarasikan  dalam  bagian  DEKLARASI sebelum digunakan. Dalam algoritma objek yang diberi nama dapat berupa :  • Peubah (variable)  • Konstanta   • Tipe bentukan  • Nama fungsi  • Nama prosedur   

(16)

3. Nilai 

Algoritma  pada  dasarnya  memanipulasi  nilai  yang  disimpan  dalam  peubah.  Memanipulasi  misalnya  :  mengisikan  ke  peubah  lain  yang  bertipe  sama,  dipakai  untuk  perhitungan,  atau  dituliskan ke piranti keluaran. 

Pengisian nilai ke dalam peubah dapat dilakukan dengan dua cara :  • Pengisian nilai secara langsung 

Memasukan  sebuah  nilai  ke  dalam  nama  peubah  langsung  di  dalam  teks  algoritma  dengan syarat harus bertipe sama. Notasinya ←  Nilai yang diberikan ke dalam peubah dapat berupa :  ‐ Peubah ← konstanta  ‐ Peubah1 ← peubah2  ‐ Peubah ← ekspresi  • Pembacaan nilai dari piranti masukan  Nilai untuk nama peubah dapat diisi dari piranti masukan, misal dari papan keyboard.  Operasi ini dinamakan pembacaan data. Notasinya read  Contoh  Read (nama1, nama2)  Nilai konstanta, peubah dan hasil ekspresi dapat ditampilkan ke piranti keluaran (monitor).   Notasinya write  Contoh  Write (nama1, nama2)    Tabel transalasi notasi algoritmik, pengisian nilai, pembacaan dan penulisan ke dalam bahasa  pascal 

Pernyataan   Algoritmik Bahasa Pascal Keterangan 

Pengisian   ←  :=   

Pembacaan  Read  Read 

  Readln  Membaca masukan dari papan kunci,  kursor tetap di baris yang sama  Membaca masukan dari papan kunci,  kursor kemudian pindah ke baris  berikutnya 

Penulisan  Write  Write 

  Writeln  Menulis keluaran ke layar, kursor  tetap di baris yang sama  Menulis keluaran ke layar, kursor  kemudian pindah ke baris berikutnya         

(17)

2.4 Latihan     1. Tentukan tipe data yang paling sesuai untuk data di bawah ini :  a. NIM  b. Nama  c. Alamat  d. Jenis Kelamin  e. Jumlah Uang Saku  f. No. Handphone  g. Kode Buku  h. PIN ATM  i. Password  j. Username   

2. Tentukan  hasil  operasi  logika  di  bawah  ini  jika  diketahui  X,Y,Z  adalah  peubah  bertipe  boolean, X bernilai true, Y bernilai false dan Z bernilai true :  a. (X or Y) and Z  b. X or (Y and Z)  c. Not (X or Y)  d. (Y xor Z) or Y    3. Tentukan hasil operasi aritmatika di bawah ini :  a. 25 div 5 mod 2  b. 30 + 5 div 7  c. 90 mod 10 + 1  d. 15 * 5 div 3  e. Sqrt(sqr(5)+sqr(4))  f. Sqr(6) + sqr(3) – (sqrt(64))     4. Tentukan hasil dari operasi penyambungan di bawah ini :  a. ‘Susi’+’Susanti’  b. ‘202’+’  ‘+’2’+’3’+’198’  c. ‘Jurusan’+’  Manajemen’+’  Informatika‐PPI’  d. ‘1’+’2’+’3’ Dan jelaskan apa perbedaannya dengan hasil dari operasi 1+2+3                    

(18)

BAB III RUNTUNAN   3.1 Pendahuluan  Algoritma merupakan runtunan satu atau lebih instruksi, yang berarti bahwa :  1. Tiap Instruksi dikerjakan satu per Satu  2. Tiap instruksi dilaksanakan tepat sekali tidak ada instruksi yang diulang  3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan aksi sebagaimana yang  tertulis di dalam teks algoritmanya  4. akhir dari instruksi terakhir merupakan akhir algoritma    Pengaruh urutan instruksi : 

‐ Urutan  instruksi  dalam  algoritma  adalah  penting.  Urutan  instruksi  menunjukan  urutan  logik  penyelesaian masalah. 

‐ Urutan  instruksi  yang  berbeda  mungkin  tidak  ada  pengaruh  terhadap  solusi  persoalan,  tetapi mungkin juga menghasilkan keluaran yang berbeda, tergantung pada masalahnya.    Percobaan 1 : Algoritma pertukaran dua buah nilai A dan B     Algoritma Runtunan_1  { mempertukarkan nilai A dan B. Nilai A dan B dibaca terlebih dahulu}  Deklarasi :      A, B, C : integer  Deskripsi :      read (A, B)       C ← A       A ← B       B ← c      write (A.B)       Pascal :         

(19)

Percobaan 2 : Algortima menghitung luas segiemapat     Algoritma LuasSegiemapat  {membaca panjang dan lebar segi empat lalau menghitung luasnya dan hasilnya di cetak ke  piranti keluaran}  Deklarasi :       Luas : integer       Panjang : integer       lebar : integer  Deskripsi :      read (panjang,lebar)      Luas ← panjang * lebar      write (luas)    Pascal :        Percobaan 3 :     Menghitung gaji bersih karyawan dengan ketentuan :  • Gaji bersih = gaji kotor – pph   • Gaji kotor = gaji pokok + tunjangan  • Pph = 5% * gaji kotor  Masukan program adalah nama karywan, gaji pokok dan tunjangan  Keluaran program adalah nama karyawan, gaji kotor, pph dan gaji bersih     Algoritma GajiBersih  {menghitung gaji bersih karyawan}  Deklarasi :      GajiBersih, GajiKotor, GajiPokok, Tunjangan, pph : real      Nama : string  Deskripsi :     Read (nama,GajiPokok,Tunjangan)     GajiKotor ← GajiPokok + tunjangan     Pph ← 5%*GajiKotor     GajiBersih ← GajiKotor ‐ pph     write (nama,GajiKotor,pph,GajiBersih)   

(20)

Pascal :        3.2 Latihan Praktikum  1. Buatlah Algoritma dan Program untuk mencetak   ‐  tulisan “Halo ini adalah program pertama anda, silahkan isi nama, NIM dan Alamat anda  : ”  ‐  lalu setelah menekan enter muncul perintah isian untuk mengisi Nama, NIM dan Alamat  ‐  lalu setelah selesai mengisi perintah isian, menuliskan pesan “Terima Kasih atas  kunjungannya, <nama anda tampil disini>“   2. Dibaca tiga buah bilangan bulat X,Y,Z tulislah algoritma dan program untuk  mempertukarkan (X,Y,Z) menjadi (Y,Z,X)  3. Buatlah Algoritma dan Program untuk menghitung luas dan keliling lingkaran  

4. Buatlah  Algoritma  dan  Program  untuk  menghitung  jarak  tempuh  mobil  (dalam  km),  algoritma  tersebut  membaca  masukan  berupa  v  (kecepatan)  dan  t  (waktu)  dan  menghitung jarak dengan rumus s=vt, lalu mencetak jarak tersebut. 

5. Buatlah algortima dan program untuk mengukur berat badan ideal. Dengan rumus tinggi  badan  dikurangi  100  lalu  dikurangi  lagi  dengan  10%    dari  hasil  pengurangan  pertama.  Masukan berupa tinggi badan dan keluaran nilai berat badan idealnya. 

       

(21)

BAB IV

STRUKTUR PEMILIHAN

4.1 Pendahuluan  

Yang  dimaksud  dengan  Pemrograman  dengan  Struktur  Pemilihan  adalah  sebuah  cara  pemrograman  dengan  instruksi‐instruksi  tertentu  yang  dapat  digunakan  untuk  mengambil  keputusan berdasarkan suatu kondisi, contoh : 

“Jika  hari  hujan,  maka  bawalah  payung”  di  sini  keputusan  membawa  payung  diambil  berdasarkan kondisi hari hujan.  “Jika lapar, maka makan nasi” keputusan untuk makan nasi diambil berdasarkan kondisi jika  lapar.  Struktur pemilihan ini terbagi atas 3 jenis yaitu :  1. Struktur pemilihan dengan satu kondisi  2. Struktur pemilihan dengan dua kondisi / lebih  3. Struktur pemilihan dengan instruksi case    4.2 Struktur Pemilihan dengan satu kondisi  a. Instruksi IF – THEN (menganalisis satu kasus)  Instruksi IF digunakan untuk memeriksa sebuah kondisi dan mengeksekusi satu aksi, jika  dan hanya jika kondisi terpenuhi. Bentuk Notasi algoritmik untuk instruksi ini adalah :  IF <kondisi> THEN    Aksi  (endif)    Aksi sesudah kata THEN dapat berupa satu atau lebih aksi hanya akan dilaksanakan bila  <kondisi>  bernilai  benar,  bila  <kondisi>  bernilai  salah  tidak  ada  yang  dilaksanakan.  Kata  (endif) ditambahkan untuk mempertegas awal dan akhir struktur IF‐THEN 

b. Instruksi IF‐THEN dengan syarat tunggal 

Instruksi  IF‐THEN  dengan  syarat  tunggal  merupakan  instruksi  untuk  memeriksa  sebuah  kondisi saja. contoh : 

(22)

Percobaan 1 : Jika Nilai lebih dari 6, maka statusnya lulus  Algortima StatusNilai  {menentukan status nilai mahasiswa jika lebih dari 6 maka lulus}  Deklarasi     Nilai : integer     Nama : string     Status : string  Deskripsi  Read (nama,nilai)  IF nilai > 6 THEN      Status ← lulus   (endif)  Write (nama,status)      c. Instruksi IF‐THEN dengan syarat majemuk 

Merupakan  sebuah  instruksi  untuk  memeriksa  lebih  dari  satu  buah  kondisi,  kondisi‐ kondisi  tersebut  dihubungkan  dengan  operator‐operator  logika  seperti  AND  atau  OR.  Contoh : 

Percobaan  2  :  Mahasiswa  akan  lulus  apabila  ia  mendapatkan  nilai  >  6  dan  ia  sudah  mengerjakan lebih dari 5 tugas.  Algortima StatusMhs  Deklarasi     Nilai, tugas : integer     Nama : string     Status : string  Deskripsi  Read (nama,nilai)  IF nilai > 6 AND tugas > 5 THEN       Status ← lulus  (endif)    Write (nama,status)   

(23)

  4.3 Struktur Pemilihan dengan Dua Kondisi atau lebih 

a. Instruksi IF – THEN – ELSE (menganalisis dua kasus atau lebih) 

Instruksi IF‐THEN‐ELSE (jika‐maka‐kalau tidak) digunakan untuk memeriksa satu atau lebih  kondisi  dan  mengeksekusi  satu  aksi,  jika  kondisi  terpenuhi.  Bentuk  Notasi  algoritmik  untuk dua kasus adalah :  IF <kondisi> THEN      Aksi_1  ELSE        Aksi_2  (endif)   

Aksi_1  akan  dilaksanakan  jika  <kondisi>  bernilai  benar,  tetapi  jika  kondisi  bernilai  salah,  aksi_2 yang akan dilaksanakan, ELSE menyatakan ingkaran dari kondisi. Contoh :  Percobaan 3 : Jika a bernilai lebih dari 0 maka bilangan positif, jika tidak maka bilangan  negatif.  Algoritma BilanganPositifNegatif  {menentukan apakah bilangan a adalah bilangan positif atau bilangan negatif}  DEKLARASI      A : integer  DESKRIPSI  Read (a)  IF a > 0 THEN      Write (’bilangan positif’)  ELSE      Write (’bilangan negatif’)  (endif)       

(24)

  b. Notasi Algoritmik untuk kondisi tiga kasus atau lebih  IF <kondisi_1> THEN    Aksi_1  ELSE            IF <kondisi_2> THEN          Aksi_2          ELSE        IF <kondisi_3> THEN      Aksi_3         (endif)          (endif)  (endif)    Aksi_1 akan dilaksanakan jika <kondisi_1> bernilai benar, tetapi jika kondisi bernilai salah,  akan memeriksa ke <kondisi_2> dan aksi_2 yang akan dilaksanakan dst. ELSE menyatakan  ingkaran dari kondisi. Contoh : 

Percobaan  4  :  Jika  bilangan  >  o  maka  bilangan  positif,  jika  bilangan  <  0  maka  bilangan  negatif, jika bilangan = 0 maka nol  Algoritma Bilangan  {menentukan jenis bilangan jika >0 maka positif, <0 bilangan negatif dan =0 bilangan nol}  DEKLARASI      Bil : integer  DESKRIPSI  Read (bilangan)  IF bil > 0 THEN      Write (’bilangan positif’)  ELSE          IF bil < 0 THEN    Write (’bilangan negatif’)         ELSE    IF bil = 0 THEN        Write (’nol’)    (endif)         (endif)  (endif) 

(25)

  4.4 Instruksi CASE  Untuk masalah dengan dua kasus atau lebih, struktur CASE dapat menyederhanakan  penulisan IF‐THEN‐ELSE.  Struktur CASE adalah sebagai berikut :  CASE <nama>       <kondisi1> : aksi1      <kondisi2> : aksi2      <kondisiN> : aksiN      [otherwise aksiX]  (endcase)    Untuk <kondisi1>, <kondisi2> dan <kondisiN> bila bernilai salah atau benar, tiap kondisi akan  diperiksa  nilai  kebenarannya  mulai  dari  kondisi  pertama  sampai  ditemukan  kondisi  yang  bernilai  benar,  jika  tidak  ada  satupun  <kondisi>  yang  benar  maka  aksi  sesudah  otherwise  dikerjakan.   Percobaan 5 : mencetak nilai kondisi ,                Jika A = 1 maka tulis satu,       Jika A = 2 maka tulis dua,    Jika A = 3 maka tulis tiga    Algoritma cetakAngka  {mencetak nilai kondisi A,  jika A=1 maka tulis satu, A=2 tulis dua, A=3 tulis tiga}   DEKLARASI      A : integer  DESKRIPSI  Read (A)  CASE (A)      A = 1 : write (’satu’)      A = 2 : write (’dua’)      A = 3 : write (’tiga’)  (endcase) 

(26)

    Percobaan 6 :  Sebuah program mempunyai menu sebagai berikut :  MENU  1. Baca Data  2. Cetak Data  3. Ubah Data  4. Hapus Data  5. Keluar Program 

Buatlah  algoritma  dan  program  yang  mencetak  menu  tersebut  dan  membaca  nomor  pilihan  menu.  Untuk  nomor  menu  yang  dipilih,  tuliskan  pesan  seperti  contoh  berikut  :  Anda  memilih 

menu nomor <nomor menu yang dipilih>    Algoritma Menu  {mencetak menu dan membaca nomor pilihan menu}  DEKLARASI      Nomor_menu : integer  DESKRIPSI  {cetak menu}  Write (’ MENU ’)  Write (’1. Baca Data’)  Write (’2. Cetak Data’)  Write (’3. Ubah Data’)  Write (‘4. Hapus Data’)  Write (‘5. Keluar Program’)  Write (‘Masukan pilihan anda (1/2/3/4/5) ? ‘)  Read (nomor_menu)  Case (nomor_menu)    Nomor_menu=1 : write (‘Anda memilih menu nomor 1’)    Nomor_menu=2 : write (‘Anda memilih menu nomor 2’)    Nomor_menu=3 : write (‘Anda memilih menu nomor 3’)    Nomor_menu=4 : write (‘Anda memilih menu nomor 4’)    Nomor_menu=5 : write (‘Anda memilih menu nomor 5’)  endcase     

(27)

  Percobaan 7 : Buatlah algoritma dan program  untuk menentukan luas persegi panjang, keliling  empat persegi panjang dan panjang diagonal. Lengkapi program dengan pilihan menu :  1. Luas   2. Keliling  3. Panjang Diagonal  4. Keluar Program  Pada setiap pilihan menu, dibaca panjang dan lebar persegi panjang.  Algoritma PersegiPanjang  {menentukan luas, keliling dan panjang diagonal persegi panjang dengan dilengkapi pilihan  menu}  DEKLARASI    nomor_menu   : integer    panjang   : real    lebar     : real    luas    : real    keliling       : real    diagonal   : real  DESKRIPSI  {cetak menu}  REPEAT    Write (’ MENU  PERSEGI PANJANG’)    Write (’1. Hitung Luas’)    Write (’2. Hitung Keliling’)    Write (’3. Hitung Diagonal’)    Write (‘4. Keluar Program)    Write (‘Masukan pilihan anda (1/2/3/4) ? ‘)  Read (nomor_menu)  Case (nomor_menu)  Nomor_menu = 1 : read (panjang,lebar)            luas ← panjang * lebar              write (luas) 

(28)

Nomor_menu = 3 : read (panjang,lebar)           diagonal ← sqrt (panjang * panjang + lebar * lebar)               write (luas)  Nomor_menu = 4 : write (‘keluar program….sampai jumpa’)  Endcase  UNTIL nomor_menu = 4                 

(29)

4.5 Latihan Praktikum 

1. Minimarket  serbamurah  memberikan  diskon  belanja  sebesar  10%  untuk  nilai  pembelanjaan  Rp.100.000  dan  kupon  undian  untuk  pembelanjaan  setiap  kelipatan  Rp50.000.  buatlah  algoritma  dan  program  untuk  menentukan  harga  belanja  setelah  dikurangi diskon dan menentukan jumlah kupon yang diterima pelanggan. Data masukan  adalah nilai total belanja pelanggan dan keluarannya adalah sbb :  MINIMARKET SERBAMURAH  JL. SARIJADI RAYA NO.10 TELP.022234567  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  TOTAL BELANJA : Rp.xxxxxx  DISKON    : Rp.xxxxx  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  TOTAL BAYAR  : Rp.xxxxxx  JUMLAH KUPON : XX  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  2. Buatlah algoritma dan program untuk menentukan bilangan genap atau ganjil. Masukan  adalah nilai bilangan dan keluaran adalah mencetak pesan “ini adalah bilangan ...”  3. Buatlah  algoritma  dan  program  untuk  menentukan  apakah  berat  badan  seseorang  itu 

termasuk  kedalam  berat  ideal,  obesitas  atau  gemuk  dengan  menggunakan  perhitungan  IMT ketentuannya sbb :  IMT = B / T  B : berat badan  T : tinggi badan dikuadratkan  Kondisi  Hasil IMT >= 18,5 dan IMT < 23  Berat Normal / Ideal  IMT >= 23 dan IMT < 25  Gemuk  IMT >= 25 dan IMT < 27   Obesitas Ringan IMT >= 27 dan IMT < 30  Obesitas Sedang  IMT >= 30   Obesitas Berat 

Masukan  adalah nama, berat badan  dan tinggi badan. Keluaran adalah mencetak pesan  “berat badan <nama> termasuk ke dalam .... ” 

   

(30)

4.  Buatlah  algoritma dan program  untuk menghitung  gaji bersih karyawan PT.ABC dengan  ketentuan sbb :  Golongan  Gaji Pokok  A  350000  B  450000  C  550000 D  650000        Perhitungannya adalah sbb :  • Gaji bersih = gaji kotor – pph   • Gaji kotor = gaji pokok + tunjangan  • Pph = 5% * gaji kotor  • Tunjangan = 10% * gaji pokok 

Masukan  adalah  nama  karyawan  dan  golongan,  keluaran  adalah  mencetak  slip  gaji  dengan format sbb :         SLIP GAJI PEGAWAI PT.ABC  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  NAMA     : XXXXXXXX  GOLONGAN  : X  GAJI POKOK  : Rp.xxxxxxx  TUNJANGAN  : Rp.xxxxxxx  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  GAJI KOTOR   : Rp.xxxxxxx  PPH     : Rp.xxxxxxx    ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  GAJI BERSIH   : Rp.xxxxxxx               

(31)

BAB V

STRUKTUR PENGULANGAN

  5.1 Pendahuluan  

Salah  satu  kelebihan  komputer  dibandingkan  manusia  adalah  kemampuannya  untuk  melaksanakan  suatu  perintah  berulangkali  tanpa  mengenal  bosen  atau  lelah.  Dalam  algoritma  pengulangan  (loop)  dapat  dilakukan  sejumlah  kali  atau  sampai  kondisi  berhenti  pengulangan  tercapai. 

Struktur pengulangan terdiri atas 2 bagian yaitu : 

1. kondisi  pengulangan,  yaitu  ekspresi  boolean  yang  harus  dipenuhi  untuk  melaksanakan  pengulangan.   2. badan (body) pengulangan, yaitu satu atau lebih aksi yang akan diulang     struktur pengulangan biasanya disertai dengan bagian :  1. inisialisasi, aksi yang dilakukan sebelum pengulangan dilakukan pertama kali  2. terminasi, aksi yang dilakukan setelah pengulangan selesai dialksanakan   

di  dalam  algoritma  terdapat  beberapa  macam  struktur  pengulangan  yang  berbeda,  beberapa  struktur  dapat  dipakai  untuk  masalah  yang  sama,  namun  ada  notasi  pengulangan  yang  hanya  cocok dipakai untuk masalah tertentu, struktur pengulangan tersebut adalah :   5.2 Struktur WHILE‐DO  Bentuk umum struktur WHILE‐DO adalah  while <kondisi> do    Aksi  endwhile   

aksi  (atau  runtunan  aksi)  akan  dilaksanakan  berulangkali  sepanjang  <kondisi>  boolean  masih  tetap  bernilai  true,  jika  <kondisi>  bernilai  false,  badan  pengulangan  tidak  akan  dilaksanakan.  Pengulangan selesai.  Percobaan 1 : Tuliskan algoritma untuk mencetak banyak HALO sebanyak 10 kali .  Algoritma cetak_banyak_halo  Deklarasi       K : integer {pencacah pengulangan}  Deskripsi    K ← 1  {inisialisasi}  While k ≤ 10 do         Write (‘HALO’)  K ←K+1  Endwhile  {kondisi berhenti : k > 10} 

(32)

  Percobaan 2 : Tuliskan Algoritma untuk mencetak urutan angka 1 s/d 10   Algoritma cetak_angka  Deklarasi       Angka : integer  Deskripsi   Angka ← 1 {inisialisasi}  While angka ≤ 10 do        Write (angka)  angka ← angka +1  Endwhile      5.3 Struktur REPEAT‐UNTIL  Bentuk umum struktur REPEAT‐UNTIL adalah :  Repeat    Aksi  Until <kondisi>   

Struktur  REPEAT‐UNTIL  memiliki  makna  yang  sama  dengan  WHILE‐DO  namun  ada  perbedaan  mendasar  diantara  keduanya.  Pada  struktur  REPEAT‐UNTIL  aksi  (atau  sekumpulan  aksi)  dilaksanakan  minimal  satu  kali,  karena  kondisi  pengulangan  diperiksa  pada  akhir  struktur,  sedangkan  pada  struktur  WHILE‐DO  kondisi  pengulangan  diperiksa  pada  awal  struktur  sehingga  memungkinkan pengulangan tidak pernah dilaksanakan bila kondisi pengulangan bernilai false   

   

(33)

Percobaan 3 : Algoritma cetak banyak halo menggunakan repeat‐until  Algoritma cetak_banyak_halo  Deklarasi        K : integer {pencacah pengulangan}  Deskripsi   K ← 1  {inisialisasi}  Repeat         Write (‘HALO’)  K ←K+1  Until k > 10  {kondisi berhenti : k > 10}        Percobaan 4 : Tuliskan Algoritma untuk mencetak urutan angka 1 s/d 10  menggunakan repeat‐ until  Algoritma cetak_angka  Deklarasi        Angka : integer  Deskripsi   Angka ← 1  Repeat         Write (angka)  angka ← angka +1  until angka > 10           

(34)

5.4 Struktur FOR  Struktur FOR digunakan untuk menghasilkan pengulangan sejumlah kali tanpa penggunaan  kondisi apapu, struktur ini menyebabkan aksi diulangi sejumlah kali (tertentu)  Bentuk umum struktur FOR ada 2 macam : menaik (ascending) dan menurun (descending)  FOR menaik :  For peubah ← nilai_awal to nilai_akhir do    Aksi  Endfor  Keterangan :  - peubah : haruslah bertipe sederhana  - nilai_awal : haruslebih kecil atau sama dengan nilai_akhir 

- pada  awalnya,  peubah  diinisialisasi  dengan  nilai_awal.  Nilai  peubah  secara  otomatis  bertambah  satu  setiap  kali  aksi  pengulangan  dimasuki,  sampai  akhirnya  nilai  peubah  sama  dengan nilai_akhir    Percobaan 5 : mencetak banyak halo menggunakan FOR   Algoritma cetak_banyak_halo  Deklarasi       K : integer {pencacah pengulangan}  Deskripsi   For  K ← 1  to 10 do       Write (‘HALO’)  Endfor   {kondisi berhenti : k > 10}      Percobaan 6 :  Tuliskan Algoritma untuk mencetak urutan angka 1 s/d 10 menggunakan for  Algoritma cetak_angka  Deklarasi       Angka : integer  Deskripsi       For angka ← 1 to 10 do          Write (angka)       Endfor   

(35)

  FOR menurun :  For peubah ← nilai_akhir downto nilai_awal do    Aksi  Endfor  Keterangan :  - peubah : haruslah bertipe sederhana  - nilai_akhir : harus lebih besar atau sama dengan nilai_awal 

- pada  awalnya,  peubah  diinisialisasi  dengan  nilai_akhir.  Nilai  peubah  secara  otomatis  berkurang  satu  setiap  kali  aksi  pengulangan  dimasuki,  sampai  akhirnya  nilai  peubah  sama  dengan nilai_awal    Percobaan 7 :  algoritma peluncuran roket dengan hitungan mundur, mulai dari 100, 99, 98, …. 0  Algoritma peluncuran_roket  Deklarasi        K : integer  Deskripsi  For k ← 100 downto 0 do        Write (k)  Endfor  Write (‘GO!’) {roket meluncur}      Percobaan 8 : algoritma menghitung rata‐rata deret bilangan bulat positif ke‐n  Algoritma ratarata  Deklarasi       N, I , Bil : integer       Jml : integer       Rata : integer 

(36)

     Jml ← jml + i  Endfor  Rata = jml / n  Write (rata)      5.5 Nested Loop  Adalah sebuah perulangan yang berada di dalam perulangan yang lainnya. Perulangan yang lebih  dalam  akan  diulang  terlebih  dahulu  sampai  habis,  kemudian  perulangan  yang  lebih  luar  akan  diproses  selanjutnya. Perulangan  seperti  ini  bisa terdiri  dari  beberapa perulangan  yang jenisnya  sama ataupun berbeda.  Percobaan 9 : Algoritma penggunaan nested loop  Algoritma Nestedloop  Deklarasi      a,b : integer  Deskripsi   For a ← 1 to 5 do        For b ← to 3 do         Write(‘Kutunggu kedatanganmu’)         Write (‘aku rinduuuu’)        Endfor  Endfor    

(37)

Percobaan 10 :    Percobaan 11 : membuat segitiga bintang seperti  gb. Dibawah ini :  *  **  ***  ****  *****                                         

(38)

5.6  Latihan Praktikum  1.    Buatlah algoritma dan program  untuk menentukan luas persegi panjang, luas segitiga, dan  luas lingkaran. Lengkapi program dengan pilihan menu :  1. Luas persegi panjang  2. Luas segitiga  3. Luas lingkaran  4. Keluar Program 

Pada  setiap  pilihan  menu,  dibaca  masing‐masing  rumus  untuk  menghitung  luas.  Dan  buat  pilihan menu tersebut dapat dipilih secara berulang‐ulang kali dan berhenti berulang sampai  memilih menu no.4 (keluar program) menggunakan struktur REPEAT‐UNTIL  

2. Buatlah  algoritma  dan  program  untuk  menghitung  jumlah  dan  rata‐rata  bilangan  ganjil  ke‐n  yaitu (1 + 3 + 5 + 7 + ... + n)  

3. Buatlah  algoritma dan  program untuk menghitung  jumlah  dan  rata‐rata bilangan genap ke‐n  yaitu (2 + 4 + 6 + 8 + ... + n)   4. Identifikasi program dibawah ini bagaimana hasil keluarannya buat simulasinya.                     

(39)

5. Identifikasi program di bawah ini bagaimana hasil keluarannya dan buat simulasinya    6. Buatlah algoritma dan program untuk membuat segitiga bintang seperti di bawah ini   *  **  ***  ****  *****  ****  ***  **  *  7. Buatlah algoritma dan program untuk membuat segitiga bintang seperti di bawah ini   *  **  ***  ****  *****  Coba Lagi [y/n] ?  (jika y maka gambar bintang akan muncul lagi)                 

(40)

BAB VI STUDI KASUS

 

Buatlah  algoritma  dan  program  ATM  untuk  mengelola  data  tabungan  nasabah,  dengan  format  keluaran dan ketentuan sbb : 

{ TAMPILAN AWAL PROGRAM }  ‐‐‐SELAMAT DATANG DI BANK KAMI‐‐‐  ‐‐‐SILAHKAN MASUKAN PIN ATM ANDA :        

(Diasumsikan PIN = 12345, Jika PIN Salah Muncul Pesan Kesalahan “PIN ANDA SALAH ULANGI Y/N  ?”  jika  pilih  Y  maka  akan  muncul  menu  transaksi,  Jika  PIN  benar  maka  akan  muncul  menu  transaksi)   MENU TRANSAKSI :  1. SETOR  2. TARIK TUNAI  3. CEK SALDO  4. CETAK RESI  (MENCETAK SISA SALDO TERAKHIR)  5. KELUAR  PILIH TRANSAKSI (1/2/3/4/5)  Ketentuan untuk setiap transaksi :  1. Jumlah Setoran tidak dibatasi bebas  2. Tarik tunai dibatasi,  

‐ jika  sisa  saldo  <=  10000  maka  dana  yang  ada  dalam  rekening  tidak  dapat  di  tarik  muncul  pesan    “Mohon  Maaf  Anda  Tidak  Dapat  Melakukan  Penarikan,  sisa  saldo 

anda hari ini Rp.xxxx”   ‐ jika sisa saldo > 10000 tapi pada saat akan tarik tunai ternyata jumlah penarikannya  dapat mengurangi saldo sampai <= 10000 maka dana yang ada dalam rekening juga  tidak dapat di tarik, dan muncul pesan “Mohon  Maaf Anda Tidak Dapat Melakukan  Penarikan Anda harus Menyisakan Dana dalam Rekening Anda minimal Rp.10000”   ‐ jika jumlah penarikan melebihi sisa saldo, maka maka dana yang ada dalam rekening  tidak  dapat  di  tarik  muncul  pesan  “Mohon  Maaf  Anda  Tidak  Dapat  Melakukan 

Penarikan, Sisa saldo anda hari ini Rp.xxxxx”  

3. Cek saldo, dapat menampilkan saldo terakhir transaksi dengan menampilkan pesan   “Sisa Saldo Anda Hari ini Rp.xxxxx” 

4. Cetak resi,  mencetak  sisa  saldo terakhir  dan  besaran  tarik tunai  terakhir  dengan  format  resi sbb : 

(41)

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐            PT. BANK KAMI  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  TARIK TUNAI Rp.xxxxxx  SISA SALDO REKENING ANDA Rp. xxxxx    TERIMA KASIH ATAS KUNJUNGAN ANDA  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 

5. Pemilihan  menu  transaksi  dapat  dilakukan  berulang‐ulang  kali  dan  berhenti  pada  saat  user memilih menu no. 4 dan 5 

6. User dapat melakukan transaksi setor dan tarik tunai berulang‐ulang kali selama kondisi  pada aturan no.2  

7. Jumlah  saldo  dapat  dicek  berulang‐ulang  kali  dan  dapat  menampilkan  data  yang  sesungguhnya.    Peraturan pengerjaan :  1. Study kasus dikerjakan secara berkelompok maksimal 4 orang dan minimal 2 orang  2. Pengerjaan dilakukan di kelas pada jam teori (untuk pembuatan algoritma) dan pada jam  praktek (untuk pembuatan program) pada pertemuan ke‐6 / ke‐7  3. Hasil algoritma dan program dikumpulkan pada jam terakhir                           

(42)

BAB VII

TEKNIK PEMROGRAMAN MODULAR MENGGUNAKAN PROCEDURE

7.1 Pendahuluan  

Teknik  Pemrograman  Modular  adalah  teknik  pemrograman  dengan  memecah  program  menjadi  beberapa sub‐program yang lebih kecil dan bersifat independen. 

Modularisasi program memberikan dua keuntungan yaitu : 

1. Untuk  aktivitas  yang  harus  dilakukan  lebih  dari  satu  kali,  modularisasi  menghindari  penulisan  teks  program  yang  sama  secara  berulangkali.  Di  sini  modul  program  cukup  ditulis  sekali  saja,  lalu modul tersebut dapat diakses  (diistilahkan  dengan dipanggil  atau 

called) dari bagian lain di dalam program 

2. Dapat  mengurangi  panjang  program,  memudahkan  menulis  dan  menemukan  kesalahan  (debug)  program.  Kemudahan  menulis  akan  sangat  berguna  pada  masalah  besar  yang  dikerjakan oleh satu tim pemrogram yang beranggotakan beberapa orang, masalah yang  akan diprogram dipecah menjadi beberapa masalah yang lebih kecil. Setiap masalah yang  lebih  kecil  tersebut  ditulis  kedalam  modul  individual  yang  spesifik  dan  dikerjakan  oleh  orang  yang  berbeda.  Seluruh  modul  diintegrasikan  menjadi  satu  buah  program  yang  lengkap. 

Program yang modular menjadi lebih mudah untuk dibaca dan dimengerti tidak seperti program  yang  tidak  modular  yang  sulit  dipahami,  khususnya  kalau  program  tersebut  panjang  dan  terdiri  dari  puluhan,  ratusan  atau  ribuan  baris  instruksi.  Pemecahan  program  menjadi  modul‐modul  individual umumnya dianggap sebagai praktek pemrograman yang baik.  Terdapat dua jenis teknik pemrograman modular, yaitu :  1. Prosedur (Procedure)  2. Fungsi (Function)  Struktur setiap modul tersebut pada hakikatnya sama dengan struktur Program biasa, yaitu :  1. Bagian judul (Header) yang berisi nama modul.  2. Bagian Deklarasi untuk mendefinisikan type data yang akan digunakan.  Bagian badan (Body) program yang berisi instruksi yang akan dilaksanakan.  7.2 Procedure Tanpa Parameter  Definisi Prosedur 

Prosedur  adalah  modul  program  yang  mengerjakan  tugas/aktivitas  yang  spesifik  dan   menghasilkan suatu efek netto, suatu efek netto diketahui dengan membandingkan keadaan awal  dan keadaan akhir pada pelaksanaan sebuah prosedur. Oleh karena itu pada setiap prosedur kita  harus mendefinisikan keadaan awal sebelum rangkaian instruksi di dalam prosedur dilaksanakan  dan keadaan akhir yang diharapkan setelah rangkaian instruksi dilaksanakan. 

(43)

¾ Mendefinisikan dan Memanggil Prosedur Tanpa Parameter 

Notasi  Algoritmik  yang  digunakan  untuk  mendefinisikan  struktur  prosedur  (tanpa  parameter)  adalah :    Procedure NAMA_PROSEDUR  { berisi penjelasan tentang apa yang dilakukan oleh prosedur ini }  { K.Awal : keadaan sebelum prosedur dilaksanakan }  { K.Akhir : keadaan setelah prosedur dilaksanakan }    DEKLARASI       { semua nama yang dipakai dalam prosedur dan ahanya berlaku local di dalam prosedur         didefinisikan disini }    DESKRIPSI  { badan prosedur, berisi kumpulan instruksi }      Percobaan 1 :      Procedure HIT_LUAS_SEGITIGA  { menghitung luas segitiga dengan rumus L = ½ a x t }  { K. Awal : sembarang }  { K. Akhir : L berisi luas segitiga. Nilai L dicetak ke piranti keluaran }    DEKLARASI     a  : real     t  : real     L  : real    DESKRIPSI     read (a)     read (t)     L ← a * t / 2     Write (L)     

Prosedur  bukan  program  yang  berdiri  sendiri,  jadi  ia  tidak  dapat  dieksekusi  secara  langsung.  Instruksi‐instruksi  dalam  prosedur  dapat  dilaksanakan  bila  prosedur  tersebut  diakses.  Prosedur  diakses  dengan  cara  memanggil  namanya  dari  program  pemanggil  (program  utama  atau  modul  program lain) 

Di dalam program pemanggil, kita harus mendeklarasikan prosedur pada bagian DEKLARASI yang  hanya  berisi  bagian  header  prosedur  nya  saja,  tujuannya  supaya  program  pemanggil  mengenal  nama prosedur tersebut.   

(44)

Pemanggilan prosedur    Program Utama untuk memanggil prosedur HIT_LUAS_SEGITIGA        Program LUAS_SEGITIGA    { Program utama untuk menghitung luas segitiga }      DEKLARASI      Procedure HIT_LUAS_SEGITIGA        DESKRIPSI       Write (‘Menghitung luas sebuah segitiga’)       HIT_LUAS_SEGITIGA       Write (‘selesai’)         Nama‐nama  (tetapan,  peubah,  tipe,  dll)  yang  dideklarasikan  dalam  bagian  DEKLARASI  prosedur  hanya  dikenal dalam  badan  prosedur  yang bersangkutan.  Nama‐nama dalam  bagian DEKLARASI  prosedur  tersebut  dikatakan  Nama  Lokal  sedangkan  nama‐nama  yang  dideklarasikan  dalam  program utama disebut Nama Global, nama global dapat digunakan di bagian manapun di dalam  program baik dalam program utama maupun dalam prosedur. 

     

(45)

7.3 Procedure Dengan Parameter 

Penggunaan parameter menawarkan mekanisme pertukaran informasi antara prosedur dan titik  dimana  ia  dipanggil.  Tiap  item  data  ditransfer  antara  parameter  actual  dan  parameter  formal  yang bersesuaian. Parameter actual adalah parameter yang disertakan pada waktu pemanggilan,  sedangkan parameter formal parameter yang dideklarasikan di dalam bagian header prosedur itu  sendiri.  Ketika  prosedur  dipanggil,  parameter  actual  menggantikan  parameter  formal.  Tiap‐tiap  parameter actual berpasangan dengan parameter formal yang bersesuaian. 

Notasi  Algoritmik  yang  digunakan  untuk  mendefinisikan  struktur  prosedur  (menggunakan  parameter) adalah :    Procedure NAMA_PROSEDUR (daftar parameter formal)  { berisi penjelasan tentang apa yang dilakukan oleh prosedur ini }  { K.Awal : keadaan sebelum prosedur dilaksanakan }  { K.Akhir : keadaan setelah prosedur dilaksanakan }    DEKLARASI       { semua nama yang dipakai dalam prosedur dan ahanya berlaku local di dalam prosedur         didefinisikan disini }    DESKRIPSI  { badan prosedur, berisi kumpulan instruksi }     

Prosedur  dengan  parameter  diakses  dengan  cara  memanggil  namanya  dari  program  pemanggil  (program utama atau modul program lain) disertai parameter aktualnya. 

Aturan penting antara parameter actual dan parameter formal adalah : 

1. Jumlah  parameter  actual  pada  pemanggilan  prosedur  harus  sama  dengan  jumlah  parameter formal pada deklarasi prosedurnya 

2. Tiap  parameter  actual  harus  bertipe  sama  dengan  tipe  parameter  formal  yang  bersesuaian 

3. Tiap  parameter  actual  harus  diekspresikan  dengan  parameter  formal  yang  bersesuaian, bergantung pada jenis parameter formal.  Jenis‐jenis parameter formal yag disertakan dalam prosedur :  1. Parameter masukan (input parameter)  2. Parameter keluaran (output parameter)  3. Parameter masukan/keluaran (input/output parameter)       

(46)

¾ Parameter Masukan 

Pada  parameter  masukan,  nilai  parameter  actual  diisikan  ke  dalam  parameter  formal  yang  bersesuaian.  Percobaan 2 :      Procedure HIT_LUAS_SEGITIGA (input a,t : real) { parameter formal }  { menghitung luas segitiga dengan rumus L = ½ a x t }  { K. Awal : sembarang }  { K. Akhir : L berisi luas segitiga. Nilai L dicetak ke piranti keluaran }    DEKLARASI     L  : real { nama local }    DESKRIPSI     L ← a * t / 2     Write (L)      Program Utama :        Program LUAS_SEGITIGA    { Program utama untuk menghitung luas segitiga }      DEKLARASI      alas : real    { nama global }      tinggi : real { nama global }        Procedure HIT_LUAS_SEGITIGA (input a,t : real)        DESKRIPSI       read (alas)       read (tinggi)       HIT_LUAS_SEGITIGA (alas,tinggi) { parameter aktual }       Write (‘selesai’)                  

(47)

Transalasi dalam Bahasa Pascal  

   

¾ Parameter Keluaran 

Pada  parameter  keluaran,  parameter  actual  di  dalam  program  pemanggil  menggantikan  nama  parameter formal yang bersesuaian dalam prosedur.  Percobaan 3 :      Procedure HIT_LUAS_SEGITIGA (input a,t : real, output L : real) { parameter formal }  { menghitung luas segitiga dengan rumus L = ½ a x t }  { K. Awal : sembarang }  { K. Akhir : L berisi luas segitiga. Nilai L dicetak ke piranti keluaran }    DEKLARASI     { tidak ada }    DESKRIPSI     L ← a * t / 2            

(48)

Program Utama :        Program LUAS_SEGITIGA    { Program utama untuk menghitung luas segitiga }      DEKLARASI      alas : real    { nama global }      tinggi : real { nama global }      luas : real    { nama global }        Procedure HIT_LUAS_SEGITIGA (input a,t : real, output L : real)        DESKRIPSI       read (alas)       read (tinggi)       HIT_LUAS_SEGITIGA (alas,tinggi,luas) { parameter aktual }       write (luas)       write (‘selesai’)       Translasi dalam Bahasa Pascal         

(49)

¾ Parameter Masukan dan Keluaran 

Parameter masukan digunakan pada situasi dimana informasi dikirim hanya dari titik pemanggilan  prosedur ke prosedur itu sendiri. Sedangkan parameter keluaran hanya mengirim informasi dari  prosedur  ke  titik  pemanggilan  prosedur.  Parameter  masukan/keluaran  adalah  pengiriman  informasi dari dua arah, baik masukan dari dan keluaran ke blok program pemanggil.  Percobaan 4 :  Procedure Tukar (input/output A, B : integer) {mempertukarkan nilai A dan B}    DEKLARASI      Temp : integer {peubah bantu}    DESKRIPSI      Temp ← A      A ← B      B ← temp      Program Utama  Program TukarNilai  {program utama mempertukarakan nilai A dan B}    DEKLARASI     X, Y : integer       Procedure Tukar(input/output A, B : integer)    DESKRIPSI      read (x,y);      If x < y then          TUKAR           Write (x,y);      else           Write (‘Tidak ada pertukaran’)             

(50)

Pascal    Percobaan 5 : Perbandingan parameter masukan dan parameter masukan/keluaran  Procedure dengan parameter masukan  Procedure TambahDua (input X,Y : integer)  {procedure dengan parameter masukan}  Deklarasi      {tidak ada}  Deskripsi      X ← X + 2      Y ← y + 2      Write (x,y) {nilai X dan Y pada saat pemanggilan prosedur}    Program Utama  Program TambahBilanganDua  Deklarasi       A,B : integer       Procedure TambahDua (input X,Y : integer)  Deskripsi       A←10       B←15       Write(A,B)  {nilai A dan B sebelum pemanggilan prosedur}       TambahDua(A,B)       Write(A,B)  {nilai A dan B setelah pemanggilan prosedur}       

(51)

    Hasil program    Procedure dengan parameter masukan/keluaran  Procedure TambahDua (input/output X,Y : integer)  {procedure dengan parameter masukan/keluaran}  Deklarasi      {tidak ada}  Deskripsi      X ← X + 2      Y ← y + 2      Write (x,y) {nilai X dan Y pada saat pemanggilan prosedur}    Program Utama  Program TambahBilanganDua  Deklarasi       A,B : integer       Procedure TambahDua (input/output  X,Y : integer) 

(52)

     Write(A,B)  {nilai A dan B sebelum pemanggilan prosedur}      TambahDua(A,B)       Write(A,B)  {nilai A dan B setelah pemanggilan prosedur}            Hasil Program    7.4 Latihan Praktikum  Buatlah program pada latihan praktikum Bab IV Struktur Pemilihan ke dalam bentuk procedure             

(53)

BAB VIII

TEKNIK PEMROGRAMAN MODULAR MENGGUNAKAN FUNCTION

8.1 Pendahuluan  

Fungsi  adalah  modul  yang  memberikan/mengembalikan  sebuah  nilai  yang  bertipe  sederhana  (integer,  real,  Boolean,  dan  string).  Definisi  fungsi  dalam  Program  sama  seperti  dalam  matematika, seperti contoh berikut :  1. F(x) = 2x2 +4x‐6  2. H(x,y) = 3x – y + xy  Fungsi F dan H diatas adalah nama fungsi, sedangkan x dan y adalah  parameter fungsi. Nilai yang  diberikan oleh fungsi tersebut tergantung pada masukan parameternya, missal :  Untuk contoh 1 diberikan nilai parameter x = 2 dan  Contoh 2 diberikan nilai parameter x = 1 dan y = 2  1. F (2) = 2 . 22  + 4 . 2 – 6 = 10  2. H (1,2) = 3 . 1 – 2 + 1 . 2 = 3  Nilai 10 dan 3 adalah nilai yang diberkan oleh masing‐masing fungsi F dan fungsi H. 

Sama  seperti  pada  prosedur  fungsi  diakses  dengan  memanggil  nama  fungsinya  dan  dapat  mengandung  parameter  formal  dan  jenis  parameter  formal  dalam  fungsi  adalah  parameter  masukan.  8.2 Mendefinisikan Fungsi  Notasi Algoritmik untuk mendefinisikan fungsi adalah :    Function NAMA_FUNGSI (input parameter formal) → tipe hasil {tipe nilai yang diberikan fungsi}  {spesifikasi fungsi, menjelaskan apa yang dilakukan dan yang dihasilkan oleh fungsi}    DEKLARASI  { semua nama yang dipakai fungsi }    DESKRIPSI  { badan fungsi, berisi instruksi‐instruksi untuk menghasilkan nilai fungsi }    Return hasil {pengembalian nilai yang dihasilkan fungsi}       

Referensi

Dokumen terkait

– penyusunaan aspek proses logika dari suatu pemecahan masalah tanpa melihat karakteristik bahasa pemrograman yang akan digunakan.. – urutan notasi logika yang merupakan

Bahasa algoritmik (pseudo-code) adalah sebuah bahasa penengah antara manusia dan komputer. Pseudo-code dibuat untuk memudahkan algoritma dengan logika manusia diubah

a) Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. b) Tidak

pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik. • Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal

Meskipun sudah dikatakan, bahwa sewaktu kita menyusun algoritma kita tidak perlu tahu bahasa pemrograman apa yang akan digunakan kelak, namun, untuk penulisan algoritma yang

Dengan memanfaatkan E-Learning berbasis website maka pengetahuan, pemahaman, serta kemampuan logika terhadap algoritma dan bahasa pemrograman tidak mudah terlupakan oleh

Harus mempunyai tanda akhir (stopping role). Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman. Tidak tergantung pada suatu bahasa pemrograman. Notasi-notasinya

a) Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. b) Tidak