Anda di halaman 1dari 76

MODUL BAHAN AJAR

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











JURUSAN MANAJEMEN INFORMATIKA
POLITEKNIK POS INDONESIA
BANDUNG 2011

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




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.

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





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









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.







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;





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.
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
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 10
38
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
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 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 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 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 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 Hasil
3.0 >3.5 False
8.0 5 True
3.03.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 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



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




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










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 :




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)



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.




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 :

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)

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)



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


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








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


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







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}

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



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







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

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


MODUL BAHAN AJAR | ALGORITMA DAN PEMROGRAMAN 35

Percobaan 10 :

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























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.










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)









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 :

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














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


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.




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)





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)








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






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




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)








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
A10
B15
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 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
A10
B15
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






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) =2x
2
+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 . 2
2
+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) pe hasil {pe 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 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(daar 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) =2x
2
+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) =2x
2
+4x-6}

DESKRIPSI
Write (Masukan Nilai X)
Read (a)

Return fungsiF(a)





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






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



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)


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


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.


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.




















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

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

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 i1 to 10 do
Read(nilai[i])
Endfor

For i1 to 10 do
Jml jml + nilai[i]
Endfor

R jml/10

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

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 i1 to n do
Read (mhs[i].nim)
Read (mhs[i].nama)
Read (mhs[i].ipk)
End for
{cetak data mahasiswa}
For i1 to n do
write (mhs[i].nim)
write (mhs[i].nama)
write (mhs[i].ipk)
End for


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




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















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 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 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 :
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 :
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 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 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
Dsthingga 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 73

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

Anda mungkin juga menyukai