algoritma & pemrograman (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5....

76
MODUL BAHAN AJAR ALGORITMA & PEMROGRAMAN Oleh : Shiyami M, S.Kom. JURUSAN MANAJEMEN INFORMATIKA POLITEKNIK POS INDONESIA BANDUNG 2011

Upload: lyquynh

Post on 08-May-2018

412 views

Category:

Documents


12 download

TRANSCRIPT

Page 1: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR 

ALGORITMA & PEMROGRAMAN 

Oleh : Shiyami M, S.Kom.       

 

 

 

JURUSAN MANAJEMEN INFORMATIKA 

POLITEKNIK POS INDONESIA 

BANDUNG 2011  

Page 2: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN ii

 

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 

 

 

Page 3: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  1 

 

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. 

 

Page 4: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  2 

 

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 berarti belajar memakai suatu bahasa berupa aturan‐aturan tata bahasanya. 

Page 5: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  3 

 

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.  

 

 

 

 

 

Page 6: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  4 

 

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  

        

Page 7: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  5 

 

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. 

 

 

 

 

 

 

 

Page 8: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  6 

 

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;      

Page 9: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  7 

 

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. 

Page 10: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  8 

 

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 

Page 11: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  9 

 

    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 

5  String   String 

Deretan karakter yang telah didefinisikan  pada  ranah 

Operasi  penyambungan  dan  operasi perbandingan 

Page 12: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  10 

 

karakter 

 Contoh penggunaan operasi untuk setiap nama tipe 

• Boolean 

Tabel kebenaran untuk operasi logika not, and, or dan xor 

a  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  TrueX 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  PembagianMod  Sisa hasil bagiSqr   Mengkuadratkan  Operator Perbandingan <  Lebih kecil>  Lebih besar ≤  Lebih kecil atau sama dengan ≥  Lebih besar atau sama dengan =  Sama dengan ≠  Tidak sama dengan 

  

 

Page 13: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  11 

 

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  True9 ≤ 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  KeteranganOperator 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 

  

 

 

 

 

Page 14: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  12 

 

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  Hasil3.0 > 3.5  False8.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 

      

Page 15: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  13 

 

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 

 

 

 

Page 16: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  14 

 

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 

    

Page 17: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  15 

 

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  

  

  

 

 

 

 

 

 

Page 18: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  16 

 

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 :  

   

Page 19: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  17 

 

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)    

Page 20: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  18 

 

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. 

 

 

 

 

Page 21: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  19 

 

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 : 

 

Page 22: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  20 

 

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)  

Page 23: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  21 

 

 

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)  

   

 

Page 24: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  22 

 

 

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) 

Page 25: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  23 

 

 

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) 

Page 26: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  24 

 

  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   

Page 27: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  25 

 

 

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) 

Nomor_menu = 2 : read (panjang,lebar)                   keliling ← 2 * panjang + 2 * lebar                     write (keliling) 

Page 28: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  26 

 

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  

 

 

 

 

 

 

 

Page 29: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  27 

 

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 .... ” 

 

 

Page 30: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  28 

 

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 

 

 

 

 

 

 

 

Page 31: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  29 

 

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}  

Page 32: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  30 

 

 

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 

 

 

 

Page 33: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  31 

 

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  

 

     

Page 34: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  32 

 

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  

Page 35: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  33 

 

 

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 Deskripsi Read (n) For  i ←1 to n do 

Page 36: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  34 

 

     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  

 

   

Page 37: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  35 

 

Percobaan 10 : 

 

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

                      

Page 38: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  36 

 

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. 

 

 

 

 

 

 

 

 

 

 

Page 39: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  37 

 

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) 

 

 

 

 

 

 

 

 

 

Page 40: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  38 

 

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 : 

 

Page 41: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  39 

 

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐           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 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 42: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  40 

 

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. 

Page 43: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  41 

 

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.   

  

Page 44: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  42 

 

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. 

 

 

 

 

Page 45: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  43 

 

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) 

     

Page 46: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  44 

 

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’)   

 

 

 

 

 

 

 

Page 47: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  45 

 

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     

     

Page 48: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  46 

 

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 

 

 

 

 

Page 49: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  47 

 

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’)   

 

 

 

 

 

 

Page 50: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  48 

 

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}       

Page 51: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  49 

 

 

 

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) Deskripsi      A←10      B←15 

Page 52: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  50 

 

     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 

 

 

 

 

 

 

Page 53: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  51 

 

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}   

 

 

Page 54: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  52 

 

Pemanggilan Fungsi 

Fungsi diakses dengan  cara memanggil nama dari program pemanggil  / program utama diikuti dengan parameter actual, karena fungsi menghasilkan nilai, maka nilai tersebut dapat ditampung dalam suatu peubah yang bertipe sama dengan tipe fungsi. 

Peubah ← NAMA_FUNGSI(daftar parameter aktual) 

Untuk contoh 1 dan 2 diatas apabila disimpan dalam suatu peubah maka dapat dituliskan seperti berikut: 

Z = F (a) 

K = H(a,b) 

Percobaan 1 : 

Function fungsiF (input x : real)→real {mengembalikan nilai F(x) = 2x2 +4x‐6}  DEKLARASI {tidak ada}  DESKRIPSI Return 2*x*x + 4*x – 6  Pemanggilan Fungsi 

Program HitungFungsiF {Program utama yang memanggil fungsiF}  DEKLARASI {Fungsi dan nama global yang akan digunakan di deklarasikan disini}   a : real  

Function fungsiF (input x : real) →real {mengembalikan nilai F(x) = 2x2 +4x‐6} 

 DESKRIPSI   Write (Masukan Nilai X)   Read (a)    Return fungsiF(a)   

 

 

 

Page 55: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  53 

 

Translasi dalam bahasa pascal 

 

Percobaan 2 : 

Dibuat  suatu  fungsi  dengan  nama MAX  yang  dapat menentukan  nilai  terbesar  di  antara  dua variable 

 Function Max(input x, y : integer)→integer {fungsi untuk menentukan nilai terbesar}  DEKLARASI {tidak ada}  DESKRIPSI 

If x < y then     Max := y Else     Max := x  

 

 

 

 

 

Page 56: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  54 

 

 Program NilaiMax {Program utama untuk memanggil fungsi Max}  DEKLARASI    a : integer    b : integer    P : integer    Z : integer     Function Max(input x,y : integer)→integer  DESKRIPSI    Write (Masukan sembarang Nilai X)    Write (Masukan sembarang Nilai Y)     P := Max(a,b)    Z := Max(a+b,a*b)     Return Max(a,b)   Translasi dalam bahasa Pascal 

 

 

 

Page 57: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  55 

 

Percobaan 3 : 

Fungsi untuk mengkonversi nama bulan 

Function NamaBulan (input bln : integer) → string Deklarasi {tidak ada} Deskripsi    Case bln         1 : return ‘Januari’        2 : return ‘Februari’        3 : return ‘Maret’        4 : return ‘April’        5 : return ‘Mei’        6 : return ‘Juni’        7 : return ‘Juli’        8 : return ‘Agustus’        9 : return ‘September’        10 : return ‘Oktober’        11 : return ‘Nopember’        12 : return ‘Desember’    End case      Program Utama 

Program KonversiBulan {program untuk menampilkan hasil konversi angka menjadi nama bulan} Deklarasi      Bulan : integer          Function NamaBulan (input bln : integer) → string  Deskripsi      Read (bulan)      Write(NamaBulan(bulan)   

Page 58: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  56 

 

 

Percobaan 4 : 

Function F(x : real) → real; Deklarasi    {tidak ada} Deskripsi    Return 3*x*x+4*x‐6;   Program Utama 

Program TabelFungsi {program menampilkan nilai x dan hasil fungsi F(x)=3*x*x+4*x‐6 sebanyak 5 data dengan nilai x dibaca dari piranti masukan dengan perubahan u/ setiap x = 2} Deklarasi     X : real;          Function F(x : real) →real      Deskripsi    Read (x);    Write (‘‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‘)    Write (‘     X              F(x)         ‘ )    Write (‘‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ’)    For i:=1 to 5 do         Write (x,’    ‘,f(x))    End for      

Page 59: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  57 

 

 

Perbedaan Fungsi dan Prosedur : 

1. Pada Fungsi, nilai yang dikirimkan balik terdapat pada nama fungsinya sedangkan dalam prosedur nilai yang dikirimkan ada pada parameter.  Misal : Diberikan suatu fungsi dengan nama Hitung  Hitung := A + B  Pada contoh diatas, nama fungsi adalah Hitung dan nilai yang dikembalikan berada pada nama fungsi tersebut, sehingga nama fungsi ini harus digunakan untuk menampung hasil yang akan dikirimkan.  

2. Karena nilai balik berada pada nama fungsi, maka fungsi dapat langsung digunakan untuk dicetak hasilnya, sebagai berikut :  Writeln (‘ X + Y =’, Hitung(X,Y))  Atau nilai fungsi dapat juga disimpan dalam suatu peubah sebagai berikut :  Hasil := Hitung(X,Y) Writeln (‘ X + Y =’, Hasil)  Sedangkan pada prosedur, nama prosedur  tidak dapat digunakan  langsung, yang dapat digunakan adalah parameter yang mengandung nilai balik atau parameter keluaran.   

Page 60: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  58 

 

8.3 Latihan Praktikum               1. Buatlah fungsi untuk menghitung nilai faktorial dan pangkat 

2. Dibaca dua buah bilangan bulat X dan Y  buatlah fungsi untuk mencari nilai terbesar, nilai 

terkecil dan selisih dari nilai terbesar dan terkecil tersebut. 

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

4. Buatlah fungsi 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.                                                                                                

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 61: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  59 

 

BAB IX

ARRAY (LARIK) SATU DIMENSI

9.1 Pendahuluan  

Sebuah peubah atau tetapan hanya menyimpan sebuah nilai dari tipe tertentu.  Ia tidak dapat  menyimpan  beberapa  buah  nilai  yang  bertipe  sejenis.  Seringkali  kita  perlu mengolah  sekumpulan  data  yang  bertipe  sama,  misalnya  hasil  ujian  100  orang mahasiswa, table harga barang, daftar kode wilayah, dsb. 

 Dalam  kegiatan  pemrograman,  sekumpulan  data  yang  bertipe  sama  perlu  disimpan sementara dalam memori  computer untuk  sewaktu‐waktu dimanipulasi, bila  kumpulan data itu disimpan secara beruntun di dalam memori, maka tiap elemen data dapat diacu dengan  menggunakan  indeks,  indeks  menyatakan  posisi  data  dalam  kumpulannya. Struktur penyimpanan data seperti ini dinamakan larik/array.  9.2 Definisi Larik / Array 

Array adalah tipe data terstruktur yang terdiri dari sejumlah komponen‐komponen yang mempunyai tipe sama.   Banyaknya komponen dalam  larik ditunjukkan oleh suatu  index, dimana  tiap komponen di array dapat diakses dengan menunjukkan nilai  indexnya atau subskript. Array dapat bertipe data  sederhana  seperti byte,word,  integer,  real, bolean, char, string dan tipe data scalar atau subrange. Tipe  larik mengartikan  isi dari  larik atau komponen‐ komponenya mempunyai nilai dengan tipe data tersebut. Ineks larik haruslah bertipe data yang menyatakan keterurutan, mislanya integer atau karakter. 

  

Contoh:                             A 

1   2   3   4   5   

 Larik  yang  bernama  A  diatas  dengan  lima  buah  elemen  dapat  dibayangkan  sebagai sekumpulan  kotak  yang  terurut,  tiap  kotak  pada  larik  tersebut  diberi  indeks  integer 1,2,3,..5 tiap elemen larik ditulis dengan notasi : 

 A[1], A[2], A[3], A[4], A[5] 

 Angka dalam kurung siku menyatakan indeks larik.  

 Setiap  elemen  larik menyimpan  sebuah nilai,  karena  semua elemen  larik bertipe  sama maka nilai yang disimpan oleh setiap elemen harus bertipe sama,. 

 

Page 62: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  60 

 

Contoh :  

                            A 1  70 2  85 3  60 4  55 5  95 

 Contoh diatas memperlihatkan  larik yang bernama A yang setiap elemennya berisi nilai mahasiswa sebanyak 5 orang. Nilai mahasiswa pertama disimpan dalam A[1], yang kedua disimpan dalam A[2] dst. Sampai mahasiswa ke‐5 .  9.3 Mendefinisikan Larik 

Larik adalah struktur data yang static, artinya jumkah elemen larik harus sudah diketahui sebelum  program  dieksekusi.  Jumlah  elemen  alrik  tidak  dapat  diubah,  ditambah  atau dikurangi  selama  pelaksanaan  program.  Mendefinisikan  larik  dalam  bagian  Deklarasi berarti : 

1. Mendefinisikan banyaknya elemen larik dan 2. Mendefinisikan tipe elemen larik 

 Contoh mendefinisikan larik dalam Deklarasi :  

a. Sebagai peubah  DEKLARASI         L : array [1..50] of integer         Nama_mhs : array [‘a’..’j’] of string         Nilai_ujian : array [0..74] of rea  ‐ L   adalah nama peubah  larik yang mempunyai 50 buah elemen yang bIndeks 

larik bertipe integer dan dimulai dari 1 ‐ Nama_mhs  adalah  peubah  larik  yang  mempunyai  75  buah  elemen  yang 

bertipe string. Indeks larik bertipe char dan dimulai dari ‘a’ ‐ Nilai_ujian adalah peubah larik yang mempunyai 75 buah elemen yang bertipe 

real. Indeks larik bertipe integer dan dimulai dari 0  

b. Sebagai tipe baru  DEKLARASI         Type TabInt : array[1..100] of integer         P : TabInt  TabInt  didefinisikan  sebagai  sebuah  tipe  baru  untuk  larik  yang  bertipe  integer sebanyak  100  buah  elemen.  Sebuah  larik  integer  yang  bernama  P  dapat didefinisikan sebagai TabInt. 

Page 63: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  61 

 

c. Mendeklarasikan ukuran larik sebagai sebuah konstanta  DEKLARASI     Const Nmaks = 100     Type LarikInt : array[1..Nmaks] of integer     A : LarikInt  

d. Larik bertipe terstruktur DEKLARASI     Const Nmak = 100     Type Mhs : record <NIM : integer,                                      Nama : string,                                      IPK : real>     Type TabMhs : array[1..Nmaks] of mhs     Mahasiswa : TabMhs  

Cara Mengacu Elemen Larik  Elemen  larik  diacu melalui  indeksnya.  Nilai  indeks  harus  terdefinisi,  dengan mengacu pada larik yang sudah didefinisikan. Contoh :  L [4]         {mengacu pada elemen ke empat pada larik L} L [4] ←10       {mengisi elemen ke empat dari larik L dengan nilai 10}  Nama_mhs [‘b’]     {mengacu pada elemen kedua dari larik nama_mhs} Nama_mhs [‘b’] ←’shiyami’  {mengisi elemen kedua dari larik nama_mhs dengan sebuah string}   Pemrosesan Larik  Elemen  larik  tersusun  secara  beruntun.  Karena  itu  elemen  diproses  secara beruntunmelalui  indeks  yang  terurut.  Pemrosesan  beruntun  pada  larik  adalah pemrosesan  mulai  dari  elemen  pertama  yaitu  elemen  indeks  terkecil  berturut‐turut sampai elemen terakhir dicapai yaitu elemen dengan indeks terbesar.  Percobaan 1 :  Algoritma pemrosesan_larik { memproses setiap elemen larik secara beruntun }  DEKLARASI      A : array[1..10] of integer      I  : integer  DESKRIPSI      For I ← 1 to 10 do             Proses A[i] 

Page 64: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  62 

 

     endfor Proses  adalah  aksi  yang  dilakukan  terhadap  elemen  larik.  Proses  dapat  berupa  aksi pengisian nilai, pembacaan, penulisan atau manipulasi lainnya.  Transalasi dalam bahasa pascal  

  Percobaan 2 :  Menampilkan Data gaji pegawai  Algoritma daftar_gaji {program menampilkan daftar gaji pegawai} DEKLARASI       Nama : array[1..5] of string       Gaji : array[1..5] of real       I : integer DESKRIPSI       For I ←  1 to 5 do              Read(nama[i])              Read(gaji[i])       Endfor        For ← 1 to 5 do              write(nama[i],’ ’, gaji[i])      Endfor        

Page 65: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  63 

 

  Percobaan 3: Menghitung nilai rata‐rata mahasiswa  Algoritma rata_rata_nilai {program menghitung nilai rata‐rata mahasiswa}  DEKLARASI       nilai : array [1..10] of real       I : integer       R : real       Jml : real  DESKRIPSI       For i←1 to 10 do              Read(nilai[i])       Endfor        For i←1 to 10 do              Jml ←jml + nilai[i]       Endfor              R ← jml/10       

Page 66: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  64 

 

  Percobaan 4 :   Algoritma CariMaks Deklarasi      Const Nmak = 100      Type Larik : array[1..Nmak]of integer      L : Larik      N : integer      Imaks : integer  Deskripsi      Read (n)      For i ←1 to n do         Read (L[i])      End for       Imaks ←1      For i ←2 to n do         If L[i] > L[imaks] then             Imaks ←i         End if       Endfor    

Page 67: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  65 

 

    Percobaan 5 :  Algoritma BacaDataMahasiswa Deklarasi      Const nmaks = 100      Type mahasiwa : record <nim : integer,                                      Nama : string,                                      Ipk : real>      Type TabMhs : array [1..nmaks] of mahasiswa      Mhs : TabMhs      I : integer      N : integer Deskripsi       Read (n);      {baca data mahasiswa}      For i←1 to n do         Read (mhs[i].nim)         Read (mhs[i].nama)         Read (mhs[i].ipk)      End for      {cetak data mahasiswa}      For i←1 to n do         write (mhs[i].nim)         write (mhs[i].nama)         write (mhs[i].ipk)      End for        

Page 68: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  66 

 

 

9.4 Latihan Praktikum 1. Buatlah program untuk menampilkan hasil penjualan barang dengan jumlah setiap elemen array 

adalah 5 data dengan ketentuan dan hasil keluaran sbb :  Ketentuan :   diskon     : 0.05 * harga penjualan jml pembayaran : harga penjualan – diskon  keluaran yang diharapkan : #Input data penjualan#  Nama barang ke ‐1 : xxxxxxx Harga penjualan barang ke ‐1 : xxxxxxx ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐  Nama barang ke – 2 : xxxxxxx Harga penjualan barang ke ‐2 : xxxxxxx ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Dst..hingga data ke‐5     

Page 69: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  67 

 

  DAFTAR PENJUALAN BARANG‐BARANG KOMPUTER 

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ NO       NAMA BARANG    HARGA PENJUALAN   DISKON   JML PEMBAYARAN ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ X  XXXXXX      XXXXXXXX    XXXXX            XXXXXXX X   XXXXXX      XXXXXXXX    XXXXX            XXXXXXX X  XXXXXX      XXXXXXXX    XXXXX             XXXXXXX X  XXXXXX      XXXXXXXX    XXXXX            XXXXXXX X  XXXXXX      XXXXXXXX    XXXXX            XXXXXXX ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ JUMLAH TOTAL      XXXXXXXX    XXXXX            XXXXXXX  

 

2. Buatlah program untuk menghitung nilai Q jika Q = √ √ √ 

3. Buatlah program percobaan 1 s.d 5 kedalam bentuk procedure 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 70: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  68 

 

BAB X

ARRAY (LARIK) DUA DIMENSI

10.1 Pendahuluan  

Larik / Array dapat berdimensi lebih dari satu yang disebut dengan multidimensional array. Array dua dimensi dapat mewakilkan suatu bentuk table atau matrik, yaitu indeks pertama menunjukan baris dan indeks kedua menunjukan kolom dari table atau matriks. 

Contoh :              

  1  2  3  4 1  25  30  40  502  65  70  80  853  90  95  55  45

 

Pada contoh diatas diberikan Array A dua dimensi dengan 3 baris dan 4 kolom, tiap elemen array diatas ditulis dengan notasi : 

A[1,1], A[1,2], A[1,3],…dst 

Angka dalam kurung siku menyatakan indeks larik yang berarti indeks kolom dan baris yang diacu dan menyimpan sebuah nilai.   

10.2 Mendefinisikan Array Dua Dimensi 

 DEKLARASI 1. Tabel : Array [1..3] of Array [1..2] of integer  2. Tabel : Array [1..3,1..2] of integer 3. Type  

                 Matrik = Array [1..3,1..2] of integer Tabel : Matrik 

4. Type                  Baris = Array [1..3]            Kolom = Array [1..2]           Matrik = Array[Baris,Kolom] of integer        

Pemrosesan Array Dua Dimensi 

Elemen array  tersusun secara beruntun sesuai dengan baris dan kolom, karena  itu pemrosesan elemen pada array adalah pemrosesan mulai dari elemen baris dan kolom pertama berturut‐turut hingga elemen baris dan kolom terakhir. 

 

Page 71: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  69 

 

Percobaan 1 : 

 Algoritma pemrosesanArray2Dimensi { memproses setiap elemen array 2 dimensi secara beruntun }  DEKLARASI      A : array[1..3,1..4] of integer      I,j  : integer  DESKRIPSI      For I ← 1 to 3 do             For J ← 1 to 4 do                              Proses A[I,j]             endfor      endfor    Translasi dalam Bahasa pascal 

 

 

 

 

 

Percobaan 2 : 

Page 72: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  70 

 

Diberikan  data  penjualan  salesman  dalam  4  bulan  diminta  untuk  memperhitungkan jumlah penjualan untuk setiap salesman 

Ilustrasi : 

Nama(1)                  Total(1)                    Nama(3)                  Total(3) 

                     Pjl(3x4) 

 

 

 

 

 

Percobaan 3 : 

Page 73: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  71 

 

Diberikan  2  buah  matriks  A  dan  B  yang  berisi  sejumlah  data,  diminta  untuk memperhitungkan jumlah matriks  A dan B yang disimpan dalam matriks C 

Ilustrasi : 

1  1  1   1 1  1    2 2  22  2  2 +  2 2  2  =  4 4  43  3  3   3 3  3    6 6  6

                A(3x3)                  B(3x3)        C(3x3) 

 

 

 

 

10.3 Latihan Praktikum  

Page 74: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  72 

 

1. Buatlan  program  untuk menampilkan  daftar  pembelian  barang menggunakan  array  1  dimensi dan array 2 dimensi dengan ketentuan dan hasil keluaran sbb : 

 Ketentuan : Total pembelian : (harga barang_1 * jumlah barang_1) + (harga barang_2 * jumlah barang_2) + ...hingga data ke‐5 

   Ilustrasi : 

           Brg (3x5)       Nama(3)    Total(3)      

                   Harga (5)                    

            Keluaran yang diharapkan : 

  #input harga#   Harga barang ke‐1 : xxxx   Harga barang ke‐2 : xxxx 

Dst…hingga data ke‐5  #input data pembelian# Pembelian ke‐1 Nama : xxxxxx Banyaknya pembelian barang ke‐1 : xxxxx Banyaknya pembelian barang ke‐2 : xxxxx Dst … hingga data ke‐5 

   Pembelian ke‐2 Nama : xxxxxx Banyaknya pembelian barang ke‐1 : xxxxx Banyaknya pembelian barang ke‐2 : xxxxx Dst … hingga data ke‐5 

   Dst … hingga pembelian ke‐5 

             DAFTAR PEMBELIAN BARANG 

‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Nama   Barang 1   Barang 2   Barang 3   Barang 4   Barang 5   Total  ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ xxxxxxxx     xx       xx       xx       xx       xx    xxxxx xxxxxxxx     xx       xx       xx       xx       xx    xxxxx xxxxxxxx     xx       xx       xx       xx       xx    xxxxx xxxxxxxx     xx       xx       xx       xx       xx    xxxxx xxxxxxxx     xx       xx       xx       xx       xx    xxxxx ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Harga     xx       xx       xx       xx       xx 

  

2. Buatlah  program  untuk  menampilkan  daftar  nilai  matakuliah  mahasiswa  dengan  hasil keluaran sbb : 

Page 75: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  73 

 

Ketentuan : 

Nilai  Angka MutuA  4 B  3 C  2 D  1 E  0  NA = (angkaMutu_1 * sks_1) + (angkaMutu_2 * sks_2) + (angkaMutu_n * sks_n) IPK = NA / (sks_1 + sks_2 + ... + sks_n) Ilustrasi : 

           nilai (3x5)         Nama(3)                    NA(3)    IPK(3)                                                   

                   sks (5)                    

  Keluaran yang diharapkan : 

#input SKS setiap matakuliah# SKS Matkul ke‐1 : xx SKS Matkul ke‐2 : xx Dst. . Hingga data ke‐5  #input data nilai mhs# Mahasiswa ke‐1 Nama : xxxxxx Nilai Matakuliah ke‐1 : xxxxx Nilai Matakuliah ke‐2 : xxxxx Dst … hingga data ke‐5    Mahasiswa ke‐2 Nama : xxxxxx Nilai Matakuliah ke‐1 : xxxxx Nilai Matakuliah ke‐2 : xxxxx Dst … hingga data ke‐5    Dst … hingga mahasiswa ke‐5            DAFTAR NILAI MAHASISWA ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Nama           Nilai 1  Nilai 2  Nilai 3  Nilai 4  Nilai 5  NA  IPK ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 

Page 76: ALGORITMA & PEMROGRAMAN (ada batas): algoritma harus memiliki titik berhenti (stopping role). 5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  74 

 

Sutarji        A    B     C    A    A  57  3.35 xxxxxxxx       xx     xx      xx     xx     xx  xx  xx xxxxxxxx       xx     xx      xx     xx     xx  xx  xx xxxxxxxx       xx     xx      xx     xx     xx  xx  xx xxxxxxxx       xx     xx      xx     xx     xx  xx  xx ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ SKS Matakuliah     3    3     4    3    2  2