Anda di halaman 1dari 76

MODUL 

BAHAN AJAR 

ALGORITMA & 
PEMROGRAMAN 
Oleh : Shiyami M, S.Kom. 
 
 
 
 
 
 

JURUSAN MANAJEMEN INFORMATIKA 
POLITEKNIK POS INDONESIA 
BANDUNG 2011 
 
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 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN ii
 
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. 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  1 
 
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. 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  2 
 
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.  

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  3 
 
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 
 

 
 
 
 
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  4 
 
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. 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  5 
 
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; 
 
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  6 
 
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. 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  7 
 
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 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  8 
 
    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 Æ  Benar  (true)  atau  salah  Operasi logika : not, and, or dan xor 
boolean  (false) 
2  Bilangan  Bulat    Operasi  aritmatika  dan  operasi 
Æ   ‐32768 s.d 32767  perbandingan 
Integer 
3  Bilangan riil Æ    Operasi  aritmatika  dan  operasi 
Real  2.9 x 10‐39  s.d 1.7 x 1038  perbandingan 
4  Karakter Æ   Semua  huruf  alfabet,  angka  Operasi perbandingan 
Char  desimal,  tanda  baca, 
operator  aritmatika,  dan 
karakter khusus 
‐ (a..z , A..Z) 
‐ (0..9) 
‐ (‘.’, ‘:’, ‘!’, ‘?’, dll) 
‐ (‘+’, ‘‐‘, ‘*’, ‘/’) 
‐ (@, #, $, %, &, ^, ~) 
5  String Æ  Deretan karakter yang telah  Operasi  penyambungan  dan  operasi 
String  didefinisikan  pada  ranah  perbandingan 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  9 
 
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  True
X and (Y or Z)  True 
Not (X and Y)  True 
(Y xor Z) and Y  False 
 
• Integer 

Operator aritmatika dan perbandingan yang didefinisikan pada tipe integer adalah : 

Operator  Keterangan 
Operator Aritmatika 
+  Penjumlahan
‐  Pengurangan 
*  Perkalian 
Div  Pembagian
Mod  Sisa hasil bagi
Sqr   Mengkuadratkan  
Operator Perbandingan 
<  Lebih kecil
>  Lebih besar 
≤  Lebih kecil atau sama dengan 
≥  Lebih besar atau sama dengan 
=  Sama dengan 
≠  Tidak sama dengan 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  10 
 
Contoh operasi aritmatika beserta hasilnya 

Operasi  Hasil 
30 + 13  43 
40 – 6  34 
25 * 2  50 
27 div 3  9 
27 mod 3  0 
10 div 3  3 
10 mod 3  1 
Sqr (6)  36 
 
Contoh operasi perbandingan beserta hasilnya 

Operasi  Hasil 
30 < 13  False 
40 > 6  True
9 ≤ 9  True 
5 ≥ 7  False 
17 = 17  True 
(24 div 3) ≠ 8  False
(10 mod 3) = 1  True 
 
• Real 

Operator aritmatika dan perbandingan yang didefinisikan pada tipe real adalah : 

Operator  Keterangan
Operator Aritmatika 
+  Penjumlahan 
‐  Pengurangan 
/  Pembagian 
*  Perkalian 
Sqr  Mengkuadratkan 
Sqrt  Mengakarkan  
Operator Perbandingan 
<  Lebih kecil 
>  Lebih besar 
≤  Lebih kecil atau sama dengan
≥  Lebih besar atau sama dengan 
≠  Tidak sama dengan 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  11 
 
Contoh operasi aritmatika beserta hasilnya 

Operasi  Hasil 
5.5 + 4.5  10 
8.0 – 2.8  5.2 
10.0 / 3.0  3.333... 
7.2 * 2.5  3.6 
Sqr (5)  25 
Sqrt (36)  6 
 
Contoh operasi perbandingan beserta hasilnya 

Operasi  Hasil
3.0 > 3.5  False
8.0 ≥ 5  True 
3.0≠3.5  True  
 
• Char 

Operator perbandingan yang didefinisikan pada tipe char adalah : 

Operator  Keterangan 
<  Lebih kecil 
>  Lebih besar
≤  Lebih kecil atau sama dengan 
≥  Lebih besar atau sama dengan 
≠  Tidak sama dengan 
=  Sama dengan
 
Contoh operasi perbandingan beserta hasilnya 

Operasi  Hasil 
‘a’ = ‘a’  True 
‘T’ = ‘t’  False
‘m’ < ‘z’  True  
‘Q’ > ‘Z’  False 
 
• String 

Operator yang digunakan dalam operasi penyambungan pada tipe string adalah operator 
“ + “ operator disini berarti menyambungkan dua tau lebih karakter. 

Contoh penggunaan operasi penyambungan : 

Operasi  Hasil
‘Manajemen’ + ‘Informatika’    ManajemenInformatika 
‘Manajemen’ + ‘  Informatika’    Manajemen Informatika 
‘xxx’ + ‘  ‘ + ‘yyy’ + ‘zzz’  xxx  yyyzzz 
‘22’ + ‘33’ +’ 11’  2233  11 
   
   

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  12 
 
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 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  13 
 
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  Membaca masukan dari papan kunci, 
  kursor tetap di baris yang sama 
Readln  Membaca masukan dari papan kunci, 
kursor kemudian pindah ke baris 
berikutnya 
Penulisan  Write  Write  Menulis keluaran ke layar, kursor 
  tetap di baris yang sama 
Writeln  Menulis keluaran ke layar, kursor 
kemudian pindah ke baris berikutnya 
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  14 
 
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  
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  15 
 
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 : 
 

 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  16 
 
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) 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  17 
 
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. 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  18 
 
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 : 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  19 
 
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) 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  20 
 
 

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)  
  
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  21 
 
 
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) 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  22 
 
 

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) 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  23 
 
 
 
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 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  24 
 
 

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) 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  25 
 
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 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  26 
 
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 .... ” 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  27 
 
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 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  28 
 
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} 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  29 
 
 
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 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  30 
 
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 
 

 
 
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  31 
 
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 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  32 
 
 
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 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  33 
 
     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  
 

   

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  34 
 
Percobaan 10 : 

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

** 
*** 
**** 
***** 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  35 
 
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. 

 
 
 
 
 
 
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  36 
 
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) 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  37 
 
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 : 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  38 
 
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 
          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 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  39 
 
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. 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  40 
 
¾ 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.   

 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  41 
 
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. 
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  42 
 
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) 
 
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  43 
 
¾ 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’) 
  
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  44 
 
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 
    
 
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  45 
 
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 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  46 
 
¾ 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’) 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  47 
 
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}       

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  48 
 
 

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 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  49 
 
     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 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  50 
 
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} 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  51 
 
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) 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  52 
 
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 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  53 
 
 
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 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  54 
 
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) 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  55 
 
 

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 
    
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  56 
 
 

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. 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  57 
 
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.                                                                                                

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  58 
 
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,. 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  59 
 
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. 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  60 
 
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] 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  61 
 
     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       
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  62 
 
 
 
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      
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  63 
 
 
 
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   
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  64 
 
   
 
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 
      
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  65 
 
 

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 
 
 
 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  66 
 
 
 
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 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  67 
 
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  50
2  65  70  80  85
3  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. 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  68 
 
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 : 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  69 
 
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 : 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  70 
 
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  2
2  2  2 +  2 2  2  =  4 4  4
3  3  3   3 3  3    6 6  6
                A(3x3)                  B(3x3)        C(3x3) 

10.3 Latihan Praktikum 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  71 
 
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 : 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  72 
 
Ketentuan : 
Nilai  Angka Mutu
A  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 
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  73 
 
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 
 

MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN  74 
 

Anda mungkin juga menyukai