Anda di halaman 1dari 57

M O D U L

DASAR PEMROGRAMAN

Oleh :
Devi Febrianty
Heni Sulastri

TEKNIK INFORMATIKA

FAKULTAS TEKNIK UNIVERSITAS SILIWANGI

Jl. Siliwangi No. 24 Tasikmalaya Kotak Pos 164 Tlp. (0265) 323537
E-Mail : informatika@ft.unsil.ac.id ; URL : http://www.unsil.ac.id

Dasar Pemrograman

DAFTAR ISI
DAFTAR ISI
MODUL I KONSEP DASAR PEMROGRAMAN
1.1 Pengertian Program dan Pemrograman
1.2 Bahasa Pemrograman
1.3 Belajar Memprogam dan Belajar Bahasa Pemrograman
1.4 Langkah-Langkah Program Komputer
MODUL 2
2.1
2.2
2.3

KONSEP DASAR ALGORITMA


Pengertian Algoritma
Algoritma untuk Memecahkan Permasalahan Sehari-hari
Struktur Dasar Algoritma

MODUL 3

ATURAN PENULISAN NOTASI ALGORITMA

MODUL 4
4.1
4.2
4.3
4.4

TIPE DATA, NAMA, NILAI


Tipe
Nama
Nilai
Operator dan Ekspresi

MODUL 5

AKSI SEKUENSIAL

MODUL 6

PEMILIHAN

MODUL 7

PENGULANGAN

MODUL 8
8.1.
8.2.

RECORD
Deklarasi Record
Latihan

MODUL 9
9.1.
9.2.
9.3.

ARRAY
Deklarasi Array
Operasi Terhadap Array
Pemrosesan Array

MODUL 10
10.1.
10.2.
10.3.

PROSEDUR
Struktur Prosedur
Pemanggilan Prosedur
Variabel Global dan Variabel Lokal

MODUL 11 FUNGSI
10.1. Procedure Vs Function
10.2. Latihan
Daftar Pustaka

Dasar Pemrograman

1. KONSEP DASAR PEMROGRAMAN


1.2 Pengertian Program dan Pemrograman
Komputer merupakan alat bantu penyelesaian masalah di berbagai bidang:
Pendidikan, Perbankan, Industri, Penerbangan, Kedokteran, Permainan, dll
Tetapi, permasalahan tidak dapat disodorkan begitu saja ke depan komputer,
karena sebenarnya mesin komputer hanyalah benda mati yang tidak bisa apa-apa.
Manusia harus merumuskan langkah-langkah pemecahan masalah dalam runtunan
instruksi yang dapat dilaksanakan oleh komputer yang disebut program.
Program merupakan runtunan atau himpunan instruksi(perintah) tertulis yang
ditanamkan ke dalam komputer untuk menyelesaikan masalah.
Pemrograman merupakan pengerjaan penulisan instruksi oleh programmer untuk
menyelesaikan suatu masalah.

Program

Masalah

Kompilasi

Komputer

Solusi /
Hasil

Tahapan Penyelesaian Masalah oleh Komputer

1.3 Bahasa Pemrograman


Program harus dibuat dalam bahasa yang dimengerti oleh komputer yang disebut
bahasa pemrograman supaya instruksi yang ditulis oleh programmer dapat dilaksanakan
oleh komputer .

1. Bahasa Mesin (Mnemonic Code)


Bahasa mesin adalah bahasa yang berisi kode-kode mesin yang hanya dapat
diinterpretasikan langsung oleh mesin komputer. Bahasa ini merupakan bahasa level
terendah dan berupa kode numerik 0 dan 1.
Keuntungan : Eksekusi cepat
Kerugian
: Sangat sulit dipelajari manusia

2. Bahasa Assembly
Bahasa assembly adalah bahasa simbol dari bahasa mesin. Setiap kode bahasa
mesin memiliki simbol sendiri dalam bahasa assembly. Misalnya ADD untuk
penjumlahan, MUL untuk perkalian, SUB untuk pengurangan, dan lain-lain.
Kelebihan
Kekurangan

: Eksekusi cepat, masih bisa dipelajari daripada bahasa mesin, file kecil
: Tetap sulit dipelajari, program sangat panjang

3. Bahasa Tingkat Tinggi (High Level Language)


Bahasa tingkat tinggi adalah bahasa pemrograman yang lebih tinggi daripada
bahasa assembly. Bahasa ini lebih dekat dengan bahasa manusia dan lebih dipahami
manusia.

Dasar Pemrograman

Contoh: Pascal, Basic, Cobol, C, C++, Java, dll.


Keuntungan :
-

Mudah dipelajari

Mendekati permasalahan yang akan dipecahkan

Kode program pendek

Kerugian

: Eksekusi lambat karena ada proses pengubahan perintah dalam bahasa


ini ke dalam bahasa mesin oleh Translator(Penterjemah)

Bahasa generasi ini disebut juga bahasa generasi ke-3 (3rd Generation Programming
Language).

4.

Bahasa yang berorientasi pada masalah spesifik


Bahasa ini adalah bahasa yang digunakan langsung untuk memecahkan suatu
masalah tertentu. Misalnya SQL untuk database. Bahasa ini juga masuk ke bahasa
tingkat tinggi. Bahasa ini disebut juga bahasa generasi ke-4 (4th Generation
Programmming Language).
Translator(Penterjemah)
Translator berfungsi untuk menterjemahkan program yang ditulis dalam bahasa
pemrograman tingkat tinggi ke dalam bahasa mesin. Translator dapat dibedakan
menjadi :

Interpreter

: menterjemahkan dan mengeksekusi baris per baris instruksi.


Contoh bahasa Basic.

Compiler

: mengeksekusi program setelah seluruh instruksi diterjemahkan.


Contoh bahasa Pascal, C, Ada ,C++, dll.

1.4 Belajar memprogram dan Belajar bahasa pemrograman

Belajar memprogram adalah belajar tentang strategi, metodologi, dan sistematika


pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang
mudah dibaca dan dipahami.
Sifat
:
Titik Berat 56 :

Pemahaman persoalan, analisis, sintesis


Designing Program

Belajar bahasa pemrograman adalah belajar memakai suatu bahasa, aturan tata
bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya untuk
membuat program yang ditulis dalam bahasa itu saja.
Sifat
Titik Berat

: Keterampilan
: Coding Program

Produk yang dihasilkan oleh seorang pemrogram adalah program dengan


rancangan yang baik (metodologis, sistematis), yang dapat dieksekusi oleh mesin,
berfungsi dengan benar, sanggup melayani segala kemungkinan masukan, dan
didukung dengan adanya dokumentasi.

Dasar Pemrograman

Pengajaran pemrograman titik beratnya adalah membentuk seorang perancang


designer program, sedangkan pengajaran bahasa pemrograman titik beratnya adalah
membentuk seorang coder(juru kode). Pada prakteknya, suatu rancangan harus dapat
dikode untuk dieksekusi dengan mesin. Oleh karena itu, belajar pemrograman dan
belajar bahasa pemrograman saling komplementer, tidak mungkin dipisahkan satu sama
lain
Tetapi, karena banyak bahasa pemrograman yang dapat digunakan dan
pemilihannya akan sangat tergantung kepada masalah yang dipecahkan, maka belajar
memprogram menjadi lebih penting daripada belajar bahasa pemrograman. Keduanya
diperlukan tetapi dalam tingkat yang berbeda.

1.5 Langkah-langkah pemrograman Komputer :


1. Mendefinisikan masalah : menentukan masalahnya seperti apa, apa saja yang harus
dipecahkan dengan komputer, apa masukannya, dan bagaimana keluarannya
2. Menentukan solusi : mencari jalan bagaimana masalah tersebut diselesaikan. Jika
masalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah menjadi
modul-modul kecil agar lebih mudah diselesaikan.
3. Memilih algoritma : pilihlah algoritma yang benar-benar sesuai dan efisien untuk
permasalahan tersebut
4. Menulis Program : menuliskan program dalam salah satu bahasa pemrograman
Pilihlah bahasa yang sesuai dengan permasalahan, mudah dipelajari, mudah
digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki tingkat kompatibilitas
tinggi dengan perangkat keras dan platform lainnya.
5. Menguji program : Menentukan apakah program berhasil dikompilasi dengan baik
? apakah program dapat menghasilkan keluaran yang diinginkan?
Langkah keempat dan kelima bisa dilakukan berulang-ulang sampai program
diyakini benar-benar sesuai dengan yang diharapkan
6. Menulis dokumentasi : Menulis dokumentasi sangat penting agar pada suatu saat
jika kita akan melakukan perubahan atau membaca source code yang sudah kita
tulis dapat kita ingat-ingat lagi dan kita akan mudah membacanya. Caranya adalah
dengan menuliskan komentar-komentar kecil tentang apa maksud kode tersebut,
untuk apa, variabel apa saja yang digunakan, untuk apa, dan parameter-parameter
yang ada pada suatu prosedur dan fungsi.
7. Merawat program : Program yang sudah jadi perlu dirawat untuk

mencegah

munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin juga pengguna
membutuhkan fasilitas baru yang dulu tidak ada.
Contoh Permasalahan : Menghitung dan menampilkan Luas Persegi Panjang
Tahapan penyelesaian :
1. Mendefinisikan Masalah

Masukan / Input

: panjang, lebar

Keluaran / Output

: Luas

Dasar Pemrograman

2. Menentukan Solusi + Memilih Algoritma


Contoh urutan solusi :

Baca input panjang

Baca input lebar

Hitung Luas = panjang x lebar

Tampilkan Luas

3. Menulis Program
Contoh penulisan program dalam Bahasa Pascal dan Hasilnya
Program
Program Luas_Persegi_Panjang;
Var
panjang, lebar, Luas : integer;
Begin
Write(Panjang
:
);
Readln(panjang);
Write(Lebar
:
);
Readln(lebar);
Luas := panjang * lebar;
Write(Luas persegi Panjang = ,
Luas);
Readln;
End.

Contoh Tampilan di layar


Panjang : 20
Lebar
: 6
Luas persegi Panjang = 120

Dasar Pemrograman

2. KONSEP DASAR ALGORITMA


2.1 Pengertian Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis dan tidak tergantung pada bahasa pemrograman tertentu.
Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam
Algoritma harus logis (masuk akal dan mengikuti suatu urutan tertentu, tidak boleh
melompat-lompat) serta harus dapat ditentukan bernilai salah atau benar.
Perbedaan Algoritma dan Program
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.
Permasalahan

Algoritma

Translasi

Program dalam bahasa


tingkat tinggi
Kompilasi /
Interpretasi

Program dalam Bahasa


Mesin

Eksekusi
oleh CPU
(Komputer)

Hasil yang
diinginkan

Tahapan Pelaksanaan algoritma oleh komputer

Dalam bidang komputer, algoritma sangat diperlukan dalam menyelesaikan


berbagai masalah pemrograman, terutama dalam komputasi numeris. Tanpa algoritma
yang dirancang baik maka proses pemrograman akan menjadi salah, rusak, atau lambat
dan tidak efisien.
2.2

Algoritma untuk memecahkan permasalahan sehari-hari

Contoh 1 : Jika seorang ingin memasak atau membuat kue, baik itu melihat resep
ataupun tidak pasti akan melakukan suatu langkah-langkah tertentu sehingga
masakannya atau kuenya jadi dan rasanya enak.

Dasar Pemrograman

Contoh 2 : Algoritma TUKAR ISI BEJANA


Diberikan dua buah bejana A dan B, bejana A berisi larutan berwarna merah, bejana B
berisi larutan berwarna biru. Pertukarkan isi kedua bejana itu sedemikian sehingga
bejana A berisi larutan berwarna biru dan bejana B berisi larutan berwarna merah.
Deskripsi Algoritma 1:
Aksi 1 : Tuangkan larutan dari bejana A ke dalam bejana B
Aksi 2 : Tuangkan larutan dari bejana B ke dalam bejana A.

Algoritma TUKAR ISI BEJANA di atas tidak menghasilkan pertukaran yang


benar. Langkah di atas tidak logis, hasil pertukaran yang terjadi adalah
percampuran kedua larutan tersebut.

Untuk mempertukarkan isi duah bejana, diperlukan sebuah bejana tambahan


sebagai tempat penampungan sementara, misalnya bejana C. Maka algoritma untuk
menghasilkan pertukaran yang benar adalah sebagai berikut :

Deskripsi Algoritma 2:
Aksi 1 : Tuangkan larutan dari bejana A ke dalam bejana C.
Aksi 2 : Tuangkan larutan dari bejana B ke dalam bejana A.
Aksi 3 : Tuangkan larutan dari bejana C ke dalam bejana B.
Contoh 3 : Ibu Tati mengupas kentang untuk makan malam
Sub masalah : 1. Apakah kentangnya harus dibeli dulu atau sudah di dapur?
2. Apakah pisau sudah siap?
3. Berapa jumlah kentang yang dikupas?
Maka kita harus membatasi dengan jelas keadaan awal dan keadaan akhirnya.
Keadaan awal dan keadaan akhir algoritma dapat dijadikan acuan bagi pemrogram
dalam merancang sebuah algoritma
Initial State(T0)

: Kentang sudah ada di kantong plastik, yang ditaruh di lemari di


dapur dimana Ibu Tati akan mengupasnya, pisau ada di rak.

Final State(T1)

: 100 Kentang dalam keadaan terkupas siap untuk dimasak dan


kantong kentangnya harus dikembalikan ke lemari lagi jika masih
ada kentangnya

Deskripsi Algoritma 1
Aksi 1 : Ibu Tati mengambil kantong kentang dari lemari
Aksi 2 : Ibu Tati mengambil pisau dari rak
Aksi 3 : Ibu Tati mengupas kentang
Aksi 4 : Ibu Tati mengembalikan kantong kentang ke dalam lemari

Deskripsi Algoritma di atas masih belum memenuhi Final State dimana kentang
yang sudah dikupas ada 100 buah dan kantong kentang harus dikembalikan ke
lemari jika masih ada kentangnya. Pada algoritma tersebut kentang yang dikupas

Dasar Pemrograman

hanya 1 dan Aksi 4 akan tetap dilaksanakan walaupun kantong kentang sudah
kosong

Supaya kentang yang sudah terkupas ada 100 maka perlu dilakukan proses
PENGULANGAN pengupasan kentang sebanyak 100 kali. Dan supaya Ibu Tati
hanya mengembalikan kantong kentang ke lemari hanya jika masih ada isinya,
maka perlu ada PEMILIHAN berdasarkan kondisi isi kantong kentang. Maka
algoritma untuk mencapai Final State yang benar adalah sebagai berikut :

Deskripsi Algoritma 2
Aksi 1 : Ibu Tati mengambil kantong kentang dari lemari dan
Aksi 2 : Ibu Tati mengambil pisau dari rak
Aksi 3 : Selama kentang terkupas < 100 maka

Aksi 4

Kupas 1 kentang

: Lihat isi kantong

Kantong Kosong

buang

Kantong Tidak kosong

Kembalikan kantong ke lemari

Ciri penting algoritma:

Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.

Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).

Algoritma memiliki nol atau lebih masukan (input).

Algoritma memiliki nol atau lebih keluaran (output).

Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan
dalam waktu yang efisien).

2.3

Struktur Dasar Algoritma

Langkah-langkah penyelesaian masalah bisa berupa :


a.
Runtunan (sequence))
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan
berurutan sesuai aturan penulisannya. Urutan instruksi menentukan keadaan akhir
algoritma, jika urutannya diubah maka hasil akhirnya mungkin akan berubah. Urutan
instruksi menunjukkan cara berfikir penyusun algoritma dalam menyelesaikan masalah
Runtunan Instruksi :
Instruksi 1
Instruksi 2
Instruksi 3
Contoh : Algoritma Tukar isi Bejana
Runtunan instruksi :
1. Tuangkan larutan dari bejana A ke dalam bejana C
2. Tuangkan larutan dari bejana B ke dalam bejana A
3. Tuangkan larutan dari bejana C ke dalam bejana B
Hasil akhir :
Bejana A berisi larutan dari bejana B, bejana B berisi larutan dari bejana A

Dasar Pemrograman

Jika runtunan instruksi diubah maka hasilnya berubah


b.

Pemilihan (selection)
Adakalanya sebuah instruksi dikerjakan jika sebuah kondisi tertentu terpenuhi

Struktur umum :
If
kondisi

atau

If

then
Aksi

kondisi
Aksi 1

then

Else
Aksi 2

Contoh :
If Amir memperoleh juara kelas then
Ayah akan membelikannya hadiah
If Jalan Dago macet then
Ambil alternative Jalan Dipati Ukur
If Kantong Kentang kosong then
Buang
Else
Kembalikan kantong kentang ke lemari
Endif
c. Pengulangan (repetition)
Komputer tidak pernah bosen dan lelah jika diminta untuk mengerjakan instruksi
secara berulang-ulang.
Contoh :

Menulis kalimat Saya harus lebih giat belajar sebanyak 1000 kali
Ulangi :
- Tulis kalimat Saya harus lebih giat belajar
Sampai jumlah_kalimat = 1000

Mengupas 100 buah kentang


Selama kentang terkupas < 100 maka
-

Kupas 1 kentang

Dasar Pemrograman

3. ATURAN PENULISAN NOTASI ALGORITMA


Penulisan algoritma tidak tergantung dari spesifikasi bahasa pemrograman dan
komputer yang mengeksekusinya melainkan bersifat umum tetapi notasi-notasi
algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Notasi algoritma dapat berupa :

Uraian kalimat deskriptif (narasi)


Instruksi pada algoritma dapat dituliskan dalam bahasa sehari-hari (B.Indonesia,
B.Inggris, dsb). Tidak aturan yang baku untuk menuliskan algoritma dalam
bentuk notasi ini, tetapi penulisan algoritma menggunakan notasi ini dapat
menimbulkan ambiguitas.

Bagan alir (flow chart).


Instruksi-instruksi pada Algoritma digambarkan secara grafis(menghasilkan
sebuah bagan) menggunakan simbol-simbol tertentu dengan aturan sebagai
berikut :
Simbol

Keterangan
Tanda Start(Mulai) atau
Tanda End (Selesai)
Proses

Operasi Input atau Output

Percabangan / Pengambilan Keputusan

Aliran Data
Pembuatan flowchart akan sulit dilakukan untuk program yang sangat kompleks

Pseudo-code
Penulisan teks algoritma dengan Pseudo-code menggunakan notasi-notasi tertentu
yang mendekati bahasa pemrograman sehingga lebih mudah ditranslasikan ke
dalam bahasa pemrograman.
Aturan Penulisan Teks Algoritma :
Judul Algoritma
{Bagian
yang
terdiri
atas
nama
algoritma
dan
penjelasan
(spesifikasi) tentang algoritma tersebut.Nama sebaiknya singkat
dan menggambarkan apa yang dilakukan oleh algoritma tersebut.}

Dasar Pemrograman

Kamus (Deklarasi Algoritma)


{ Bagian untuk mendefinisikan semua nama yang digunakan di dalam
program. Nama tersebut dapat berupa nama konstanta, variabel,
tipe, prosedur dan fungsi.
}
Deskripsi Algoritma
{ Bagian ini berisi uraian langkah-langkah penyelesaian masalah
yang ditulis dengan menggunakan notasi yang akan dijelaskan
selanjutnya
}

Contoh 1 : Algoritma Luas_Lingkaran


Menghitung dan menampilkan Luas Lingkaran dengan masukan jari-jari lingkaran
Contoh Penulisan Algoritma :

Uraian kalimat deskriptif (narasi)


DESKRIPSI :
o Baca jari-jari lingkaran (R)
o Phi 3.14
o Luas Phi x R x R
o Tulis Luas

Flowchart
Mulai

Baca R

Phi 3.14

Luas Phi * R * R

Tulis
Luas

Selesai

Pseudo-code
Algoritma Luas_Lingkaran
{Menerima masukan jari-jari lingkaran(R), menghitung
Luasnya dengan rumus 3.14 * R * R, kemudian menuliskan
hasilnya}
Kamus
const Phi : real = 3.14
R, Luas : real
Deskripsi
read(R)
Luas Phi * R * R
write(Luas)

Dasar Pemrograman

Contoh 2 : Algoritma Kelulusan_Mhs


Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau sama dengan
60 maka mahasiswa tersebut dinyatakan lulus jika nilai lebih kecil dari 60 maka
dinyatakan tidak lulus.

Uraian kalimat deskriptif (narasi)


DESKRIPSI :
o
baca nama dan nilai mahasiswa.

o
o

jika nilai >= 60 maka keterangan = lulus


tetapi jika nilai < 60 maka keterangan = tidak lulus.

tulis nama dan keterangan

Flow chart
Mulai

Baca
nama, nilai

Nilai >= 60

Tidak

Keterangan Tidak Lulus

Ya
Keterangan Lulus

Tulis
nama,keterangan

Selesai

Pseudo-code
Algoritma Kelulusan_Mhs
{Menerima masukan nama dan nilai mahasiswa, jika nilai tersebut
lebih besar atau sama dengan 60 maka mahasiswa tersebut
dinyatakan lulus jika tidak maka dinyatakan tidak lulus}
Kamus
Nama : string
Nilai : integer
Keterangan : string
Deskripsi
read (nama, nilai)
if nilai >= 60 then
keterangan lulus
else
keterangan tidak lulus
endif
write(nama, keterangan)

Dasar Pemrograman

Contoh 3 : Algoritma Cetak_Frase


Diberikan sebuah angka, kemudian tuliskan frase Dasar Pemrograman sebanyak
angka tersebut

Uraian kalimat deskriptif (narasi)


DESKRIPSI :
o
baca angka
o
selama jumlah_frase_tercetak < angka
o

- tulis Dasar Pemrograman


tulis nama dan keterangan

Flow chart
Mulai

Baca
angka

i0

i < angka

Tidak

Ya
Tulis
Dasar Pemrograman

i i +1

Selesai

Pseudo-code
Algoritma Cetak_Frase
{Menerima masukan sebuah angka, kemudian tuliskan frase Dasar
Pemrograman sebanyak angka tersebut }
Kamus
angka : integer
i : integer
Deskripsi
read (angka)
i 0
while i < angka do
write(Dasar Pemrograman)
i i + 1
endwhile

Dasar Pemrograman

4. TIPE DATA, NAMA, NILAI


4.1 TIPE
Pada umumnya, program komputer bekerja dengan memanipulasi objek (data) di
dalam memori. Objek (data) yang akan diprogram bermacam-macam jenis atau tipe,
misalnya nilai numerik (angka), karakter (huruf), kumpulan karakter, dll.
Suatu tipe menyatakan jenis data yang akan dimanipulasi dalam program,
gunanya untuk mendefinisikan objek yang akan diprogram. Suatu tipe diacu dari
namanya. Nilai-nilai yang dicakup oleh tipe tersebut dinyatakan dalam domain nilai.
Tipe data dikelompokkan menjadi tipe dasar dan tipe bentukan
4.1.1

Tipe dasar
Tipe yang dapat langsung dipakai (angka-angka atau karakter) karena sudah

didefinisikan sebelumnya oleh pemroses bahasa


1. Bilangan Bulat
Bilangan yang tidak mengandung pecahan desimal.
Nama Tipe

Integer

Domain Nilai :
Secara teoritis tak terbatas dari - s.d +. Pada algoritma dapat dibatasi
tergantung kebutuhan untuk objek, misalnya untuk jam [0..23]. Dalam
implementasinya pada bahasa pemrograman, tipe integer punya rentang nilai terbatas
untuk menghemat memory.
Contoh nilai

: 300, 0, -1000, 113010038, -24

Contoh objek

: Nim, Jam, Menit, Detik

2. Bilangan Riil
Bilangan yang mengandung pecahan desimal
Nama Tipe

Real

Domain Nilai :
Secara teoritis tak terbatas dari - s.d +. Ditulis dengan titik desimal

3.

Contoh nilai

: 2.8 , -0.39, 4.24 , 57.567, -102.00

Contoh objek

: Nilai ujian

Bilangan Logika
Nama Tipe

Boolean

Domain Nilai

Benar(True--1) atau Salah(False--0)

Konstanta

True dan False

4. Karakter
Karakter tunggal yang diapit oleh tanda petik satu.
Nama Tipe
-

char

Domain Nilai :
Huruf alfabet (a..z dan A..Z)

Dasar Pemrograman

Tanda baca (!, ? , , , .)

Angka 0 , 1 ,..., 9

Karakter khas seperti # , & , % , @ , * , dll

Contoh nilai

: l , p , + , 6, A

Contoh objek

: Jenis Kelamin, Indeks nilai

4.1.2

Tipe bentukan
Tipe yang dibentuk (dan diberi nama) dari tipe dasar atau dari tipe lain yang
sudah dikenal, bahkan dapatt didefinisikan sendiri oleh pemrogram.
Macam tipe bentukan :
1. String(kumpulan karakter)
Deretan karakter dengan panjang tertentu.

Nama Tipe

Domain Nilai

:
Satu atau lebih karakter yang diapit oleh tanda petik
tunggal

Contoh nilai

String

Apa kabar,Teknik Informatika,A234, Ramayana,

123

Contoh objek

Nama, Alamat

2. Tipe bentukan dari tipe data dasar atau tipe bentukan lain : Kata Kunci type
Deklarasi kamus data

: type

nama_tipe_bentukan : tipe_data

Contoh : membuat sebuah tipe data baru bernama BilBulat yang memiliki domain nilai
yang sama dengan tipe integer
type BilBulat : integer;
3. Record
Record tersusun dari satu atau lebih field. Tiap field menyimpan data dengan tipe
tertentu
field 1 field 2 field 3 field n
Deklarasi kamus data :
type Nama_Record : record < nama_field1: tipe_field1,
nama_field2: tipe_field2,
....
nama_fieldn: tipe_fieldn>
Contoh :
a. Titik dalam koordinat kartesian dinyatakan sebagai (x,y) dengan x adalah nilai absis
dan y adalah nilai ordinat. Kita dapat menyatakan titik sebagai record dengan (x,y)
sebagai field
x

type Titik : record < x : real, y : real >


type Titik : record< x , y : real >

atau

Dasar Pemrograman

b. Definisi tipe terstruktur yang mewakili tanggal dalam kalender Masehi. dd sebagai
tanggal, mm sebagai bulan, yy sebagai tahun
dd mm yy
type Tanggal : record <dd : integer,
mm : integer,
yy : integer

{1..31}
{1..12}
{>0} >

c. NilMhs adalah tipe terstruktur yang menyatakan nilai ujian seorang mahasiswa
untuk mata kuliah yang diambil(MK)
Nim NamaMhs KodeMK Nilai
type NilMhs : record <
NamaMhs : string,
KodeMK : string,
Nilai : char >

Nim : integer,

d. Tipe terstruktur untuk jadwal kereta api yang terdiri dari nomor kereta(NoKA), kota
asal(KotaAsal), kota tujuan(KotaTujuan), jam berangkat(JamBerangkat), jam
tiba(JamTiba)
NoKA KotaAsal KotaTujuan JamBerangkat JamTiba
type JadwalKA : record <NoKA : string,
KotaAsal : string,
KotaTujuan : string,
JamBerangkat : Jam,
JamTiba : Jam >

4.2 NAMA
Nama digunakan mengidentifikasi objek dan mengacu objek tersebut..
Dalam sebuah teks algoritmik, objek yang diberi nama bisa berupa :
- Modul program, Algoritma
- variabel
- konstanta
- type
- fungsi
- prosedur
Karena adanya bermacam-macam nama tersebut, maka dalam suatu teks
algoritma dikenal nama program, nama variabel, nama konstanta, nama fungsi, nama
prosedur, nama type.
Setiap bahasa pemrograman memiliki aturan masing-masing untuk
mendefinisikan nama(panjang maks nama, perbedaan huruf besar dan kecil) tetapi
dalam algoritma batasan pendefinisian nama tidak seketat pada bahasa pemrograman.
Syarat-syarat penggunaan sebuah nama pada algoritma:

Dasar Pemrograman

- Pemilihan nama harus interpretatif(disesuaikan dengan objek yang diidentifikasi)


-

dan tidak menimbulkan kerancuan


Nama harus unik dalam sebuah algoritma/program
Nama tidak boleh dipisahkan oleh spasi
Tidak case sensitive (huruf besar dan kecil tidak dibedakan)
Tidak boleh mengandung simbol khusus
Nama harus dideklarasikan pada bagian tertentu supaya dapat dipakai.

1. Nama Algoritma
Digunakan untuk mengidentifikasi sebuah program atau algoritma, dideklarasikan
pada bagian Judul algoritma
Contoh : Algoritma Luas_Lingkaran,

Algoritma Kelulusan_Mhs

2. Nama Peubah(variabel)
Tempat penyimpan data/informasi/nilai yang isinya dapat diubah selama eksekusi
program berlangsung. Setiap variabel mempunyai tiga atribut, yaitu nama, tipe, dan
nilai. Nama variabel dan tipe datanya dideklarasikan pada bagian Kamus. Sedangkan
nilai yang disimpan dalam variabel didefinisikan pada bagian deskripsi algoritma.
Bentuk umum deklarasi variabel adalah :
nama_variabel : tipe data
Contoh :
Kamus
nama : string
{variabel nama bertipe string}
nim: integer
{variabel nim bertipe integer/bilangan bulat}
jns_kelamin : char
{variabel jns_kelamin bertipe karakter}
rata, nilai_uts, nilai_uas, nilai_tugas : real; {variabel dengan nama rata, nilai_uts,
nilai_uas, nilai_tugas bertipe sama yaitu real}
3. Nama Tetapan(konstanta)
Tempat penyimpan data/informasi/nilai yang isinya tidak dapat diubah selama
pelaksanaan program. Nama, tipe, dan nilai Konstanta dideklarasikan pada bagian
Kamus. Untuk mendefinisikan konstanta harus memakai kata kunci const dan
konstanta harus langsung diisi dengan sebuah nilai tertentu.
Bentuk umum deklarasi konstanta adalah :
const nama_konstanta : tipe = nilai
Contoh :
Kamus
const phi : real = 3.14
const Nmaks : integer = 200
const password : string = abcd

4. Nama Tipe bentukan


Nama tipe bentukan disini berarti nama tipe bentukan yang dibuat/didefinisikan
oleh perancang program. Nama tipe bentukan dideklarasikan pada bagian Kamus

Dasar Pemrograman

Nama tipe bentukan tidak dapat langsung digunakan di dalam bagian deskripsi
algoritma, tetapi sebelumnya harus mendeklaraikan variabel yang bertipe bentukan
tersebut
Contoh :
Kamus
type Karakter : char
type Titik : record <
type Jam : record <hh
mm
ss

x
:
:
:

: real; y
integer,
integer,
integer

: real >
{0..23}
{0..59}
{0..59} >

Indeks : karakter
T : Titik
J : Jam

Dari contoh di atas telah didefinisikan tipe data baru bernama karakter dan dua
buah tipe record yang bernama Titik dan Jam. Nama karakter, Titik, dan Jam tidak bisa
langsung digunakan pada bagian Deskripsi algoritma tetapi harus mendeklarasikan
variabel baru. Pada contoh di atas dideklarasikan variabel Indeks yang bertipe karakter,
variabel T bertipe Titik dan variabel J yang bertipe Jam. Indeks, T, dan J inilah yang
bisa digunakan pada bagian deklarasi program.
5. Nama Fungsi
Bagian Judul Fungsi(nama fungsi, parameter) dideklarasikan pada bagian Kamus
Contoh :
Kamus
Function Penjumlahan(a , b : integer) integer
{mengembalikan hasil penjumlahan antara dua bilangan}

6. Prosedur
Bagian Judul Prosedur(nama prosedur , parameter) dideklarasikan pada bagian
Kamus
Contoh :
Kamus
Procedure TUKAR(input/output A , B : integer)
{mempertukarkan nilai A dan B}

Contoh-Contoh Pendefinisian/Deklarasi Nama Di Dalam Bagian Kamus :


Kamus
{nama konstanta}
const phi = 3.14
const Nmaks = 200
const password = abcd
{nama tipe}
type karakter : char
type Titik : record < x
type Jam : record <hh :
mm
ss

: real; y : real >


integer, {0..23}
: integer, {0..59}
: integer
{0..59} >

Dasar Pemrograman

type NilMhs : record <Nim : integer,


NamaMhs : string,
KodeMK : string,
Nilai : char >
{nama variabel}
luasL : real
nama : string
indeks : karakter
ketemu : boolean
J : Jam
T : Titik
Nilai : NilMhs
{nama fungsi}
Function Penjumlahan(a , b : integer) integer
{mengembalikan hasil penjumlahan antara dua bilangan}
function CARI <input x : integer> Boolean
{mencari nilai x,bila ketemu maka true,bila tidak maka false}
{nama prosedur}
procedure HITUNG_TITIK_TENGAH(input P1 :Titik, input P1 :Titik,
output Pt :Titik)
{menghitung nilai titik tengah dari sebuah garis dengan ujungujung Px dan Py}

4.3 NILAI
Nilai/Harga adalah besaran dari tipe data yang sudah dikenal. Nilai dapat berupa
konstanta yang dipakai langsung, isi yang disimpan oleh variabel atau konstanta, hasil
perhitungan suatu ekspresi, atau hasil yang dikirim suatu fungsi.
Algoritma pada dasarnya adalah proses memanipulasi nilai. Nilai dapat
dimanipulasi dengan cara : mengisi nilai ke dalam variabel, menuliskan nilai ke piranti
keluaran, diacu dari suatu nama untuk perhitungan/ekspresi
1. Pengisian Nilai
Suatu nama konstanta secara otomatis akan mempunyai harga tetap yang
terdefinisi(sudah ditentukan) pada saat nama konstanta dideklarasikan dalam
kamus sehingga nama konstanta dapat langsung digunakan dalam program. Tetapi
tidak demikian halnya dengan nama variabel. Suatu nama variabel dapat digunakan
dalam ekspresi program jika harganya telah terdefinisi. Ada dua cara untuk mengisi
nama variabel dengan harga/nilai :

Assignment :

Assignment adalah instruksi untuk menyimpan harga pada suatu nama variabel.
Dengan pemberian harga ini, harga lama yang disimpan tidak lagi berlaku, yang
berlaku adalah harga paling akhir yang diberikan.
Nilai/Harga yang dimasukkan ke dalam nama variabel bisa berupa nilai tetap,
nilai dari variabel lain, atau ekspresi :

Dasar Pemrograman

Deskripsi Algoritma
nama_var1 nama_var2 {harga dari nama variabel2 disalin ke nama variabel1}
nama_var konstanta
{harga dari nama konstanta disalin ke nama variabel}
nama_var ekspresi
{hasil perhitungan ekspresi diisikan ke nama variabel}
nama_var nama_fungsi {nilai yang dikembalikan fungsi diisikan ke nama variabel}

dengan syarat :
- Bagian kiri dan bagian kanan tanda assignment () bertipe sama
- nama_var1 dan nama_var (bagian kiri tanda ) harus merupakan nama
variabel, tidak boleh nama konstanta, type, fungsi, atau prosedur
- nama yang tertulis di bagian kanan tanda assigment ()boleh berupa nama
variabel, nama fungsi, nama konstanta
- semua nama yang dipakai dalam assignment tidak bleh berupa nama type atau
prosedur

Contoh :
Kamus
k, suhu1, suhu2, Total : integer
ketemu : boolean
J : Jam
Jarak : real
NamaKota : string
Deskripsi Algoritma
k 10
ketemu false
Jarak 34.8
NamaKota Tasikmalaya
Suhu1 40
Suhu2 30
Total Suhu1 + Suhu2
Suhu1 Suhu2
Total k*20+14

Pembacaan Nilai dari Piranti Masukan


Selain dengan assignment, suatu nilai dapat diisikan ke suatu nama variabel
melalui pembacaan nilai tersebut dari piranti masukan(keyboard, mouse, scanner,
dsb). Disebut dibaca karena arah dari pengisian harga yaitu seakan-akan
komputer membaca nilai yang diberikan pengguna.
Bentuk Umum :
Deskripsi Algoritma
read(nama_variabel)
read(list nama_variabel)

Contoh :
Kamus
Nim : integer
Nama : string
Indeks : char
Nilai : real
Deskripsi Algoritma
read(Nim)
read(Nama)
read(Nilai, Indeks)

{membaca sebuah nilai}


{membaca lebih dari satu nilai}

Dasar Pemrograman

2. Penulisan nilai ke piranti keluaran


Suatu nilai/harga yang disimpan dalam memori komputer harus dapat
dikomunikasikan ke dunia luar untuk diinterpretasikan oleh pemakai program. Dalam
hal ini, nilai harus dapat dituliskan ke suatu piranti keluaran, misalnya layar, printer.
Bentuk Umum :
Deskripsi Algoritma
write(nama_variabel) {menuliskan isi nama_variabel ke piranti keluaran}
write(konstanta)
{menuliskan konstanta / isi nama_konstanta ke piranti keluaran}
write(ekspresi)
{menuliskan harga hasil perhitungan ekspresi ke piranti keluaran }
write(list-nama)
{menuliskan semua harga sesuai urutan penulisannya }

dengan syarat :
-

list-nama adalah satu atau lebih nama : boleh nama variabel, nama konstanta, atau
hasil pemanggilan fungsi

nama-nama dalam list-nama tidak boleh berupa nama type atau nama prosedur

nama yang dituliskan sudah terdefinisi harganya. Jika nama_variabel sudah


didefinisikan dengan assignment atau instruksi read

Contoh :
Kamus
const pass : string = abce
A, B : integer
Nilai : real
Deskripsi Algoritma
Nilai 92.7
read(A , B)
write(pass, Nilai)
write(Teknik Informatika)
write(100)
write(A + B)
write((A + B)/2*10)

4.4 OPERATOR DAN EKSPRESI


Operator adalah lambang-lambang yang biasa dilibatkan dalam program untuk
melakukan suatu operasi atau manipulasi. Misalnya untuk perkalian, penjumlahan,
perbandingan, dll. Sedangkan ekspresi adalah suatu rumus perhitungan yang terdiri
dari operan dan operator. Operan harus mempunyai harga, karena itu dapat berupa
konstanta, nama variabel(yang dipakai dalam perhitungan adalah harga yang
dikandung nama variabel), hasil pengiriman suatu fungsi, atau merupakan suatu
ekspresi
Contoh Ekspresi :
ab+c2
Pada ekspresi ini, a, b, dan c merupakan nama variabel yang berperan sebagai
operand sedangkan simbol , + dan merupakan operator. Dalam hal ini variabel a
diisi dengan hasil penjumlahan b dan c dikurangi 2.

Dasar Pemrograman

Jenis jenis operator :


1. Operator Perbandingan
Operator perbandingan digunakan untuk membandingkan dua operand. Operand
yang dibandingkan bisa bertipe bilangan bulat, karakter, real, boolean, atau string.
Ekspresi yang menggunakan operator perbandingan akan menghasilkan nilai
boolean(true atau false).
Operator

Operasi

Contoh Ekpresi

Hasil

Sama dengan

a := 6 = 9

a = false

Tidak sama dengan

a := 7 5

a = true

<

Lebih kecil dari

a := 4 < 6

a = true

>

Lebih besar dari

a := 10 > 1

a = true

Lebih kecil atau sama dengan

a := 8 4

a = false

Lebih besar atau sama dengan

a := 3 1

a = true

2. Operator aritmatika
Operator aritmatika hanya dapat dikenakan pada operand bertipe bilangan bulat
atau bilangan real. Ekspresi yang menggunakan operator ini pun hanya akan
menghasilkan nilai bilangan bulat atau real
Operator

Operasi

Hasil

Contoh Ekpresi

Hasil

Jumlah

Integer/Real x 8 + 13
x 4.3 + 2

x = 21
x = 6.3

Kurang

Integer/Real x 15 2
x 2.1 1.1

x = 13
x = 1.0

Kali

Integer/Real x 5 * 6
x 2.0 * 1.1

x = 30
x = 2.2

Bagi

Real

x 6/4

x = 1.5

Div

Pembagian bilangan bulat

integer

z 7 div 2

z=3

Mod

Sisa pembagian bilangan bulat integer

z 7 mod 2

z=1

Pangkat

z 2^3

z=8

integer/real

3. Operator logika
Operator ini dikenakan pada operand bertipe boolean dan ekspresinya akan
menghasilkan nilai boolean(true atau false)
Operator

Arti

Hasil

Not

Negasi

boolean

And

Dan

boolean

Or

Atau

boolean

Xor

exclusive OR

boolean

Hasil operator not, and, or, dan xor untuk berbagai kombinasi kondisi
A

not A

not B

A and B

A or B

A xor B

true

true

false

false

true

true

false

true

false

false

true

false

true

true

false

true

true

false

false

true

true

false

false

true

true

false

false

false

Dasar Pemrograman

Contoh penggunaan operator pada ekspresi :


Kamus
Gaji_Total, Gaji_Pokok, Potongan : real
HBagi,HSisa : integer
k, l, m, n: boolean;
Deskripsi
k := true;
l := false;
read(Gaji_Pokok,Potongan)
Gaji_Total Gaji_Pokok Potongan
HBagi (5 * 7) div 3
HSisa (5 * 7) mod 3
m := (k or l) and l;
n := ((6 >= 8) and (9 <> 1)) or (3 < 7);
write(HBagi, HSisa, Gaji_Total, m , n);

Dasar Pemrograman

5. AKSI SEKUENSIAL
Aksi sekuensial (runtunan) adalah sederetan instruksi atau aksi yang akan
dilaksanakan (dieksekusi) oleh komputer berdasarkan urutan penulisannya. Jadi, jika
dituliskan sebuah aksi sekuensial yang terdiri dari deretan instruksi/aksi ke 1, 2, 3, 4,..n
maka setiap instruksi/aksi akan dilaksanakan secara sekuensial mulai dari yang ke-1,
kemudian ke-2, ke-3, ...s/d ke-n. Program paling sederhana tentunya hanya
mengandung salah satu instruksi saja.
Urutan instruksi dalam algoritma sangat penting, ada aksi sekuensial yang jika
diubah urutan instruksi/aksinya akan mempengaruhi hasil eksekusi program.
Contoh aksi sekuensial yang berpengaruh jika diubah urutannya :
Algorima Runtunan_1
Kamus
p , q : integer
Deskripsi
p 15
p 2* p
q p
write(q)
{nilai q yang dicetak = 30}
Algorima Runtunan_2
Kamus
p, q : integer
Deskripsi
p 15
q p
p 2* p
write(q)
{nilai q yang dicetak = 15}

Beberapa contoh aksi sekuensial :


Contoh 1 : HELLO
Permasalahan : Tuliskan algoritma untuk menulis HELLO ke piranti keluaran
Input
: Output

: HELLO

Proses

: menulis HELLO

Algoritma Cetak_HELLO
{Menulis HELLO ke piranti keluaran}
Kamus
Deskripsi
write(HELLO)

Contoh 2 : HELLO X
Permasalahan : Tuliskan algoritma untuk membaca sebuah nama, dan menulis
HELLO yang diikuti dengan nama yang diketikkan ke piranti keluaran

Dasar Pemrograman

Input
Output

: nama
: HELLO <nama>

Proses

: menulis HELLO diikuti nama yang dibaca

Algoritma Cetak_HELLOX
{Menulis HELLO berikut nama yang dibaca dari piranti masukan ke
piranti keluaran}
Kamus
nama : string
Deskripsi
read(nama)
write(HELLO ,nama)

Contoh 3 : SEGITIGA
Permasalahan : Tuliskan algoritma untuk menghitung Luas Segitiga dengan membaca
harga alas (cm) dan tinggi (cm) kemudian menuliskan hasilnya ke piranti keluaran
Input
Output

: alas(alas segitiga, cm), real dan tinggi(tinggi segitiga, cm) , real


: Luas(Luas segitiga), real

Proses

: menghitung dan menuliskan Luas Segitiga =

alas x tinggi
2

Algoritma Hitung_Luas_Segitiga
{Membaca alas dan tinggi, menghitung Luas=alasxtinggi/2 dan
menuliskan hasilnya }
Kamus
alas : real
(panjang alas segitiga, satuan cm)
tinggi : real
Luas : real
Deskripsi
read(alas)
read(tinggi)
Luas alas * tinggi / 2
write(Luas)

Contoh 4 : GAJI
Permasalahan : Dibaca nama karyawan dan gaji pokok bulanannya. Buat algoritma
untuk menghitung dan menampilkan gaji bersih karyawan tersebut dengan ketentuan :
-

Gaji bersih = gaji pokok + tunjangan pajak

Tunjangan untuk setiap pegawai sama dan tetap setiap bulannya yaitu 1.000.000
Pajak 10% dari (gaji pokok+tunjangan)

Input
Output

: Nama dan Gaji Pokok


: Gaji Bersih

Proses

: menghitung dan menampilkan Gaji Bersih = gaji pokok + tunjangan


pajak, Tunjangan = 1000000 , Pajak =

10
x (Gaji Pokok + Tunjangan)
100

Algoritma_Gaji_Karyawan
{Menghitung Gaji bersih karyawan dengan membaca nama karyawan dan
gaji pokoknya. Gaji bersih = gaji pokok+tunjanganpajak}
Kamus

Dasar Pemrograman

const Tunjangan : real = 1000000


nama_kar : string
gaji_pokok, pajak, gaji_bersih : real
Deskripsi
read(nama_kar, gaji_pokok)
pajak 0.1 * (gaji_pokok + tunjangan)
gaji_bersih gaji_pokok + tunjangan pajak
write(nama_kar, gaji_bersih)

Contoh 5 : TUKAR
Permasalahan : Buatlah algoritma yang membaca dua buah bilangan integer yang
ditampung dalam variabel, menukarkan harga variabel tersebut dan menuliskan hasil
pertukarannya
Input
: dua bilangan integer A dan B
Output

: dua bilangan integer A dan B yang telah ditukar harganya

Proses

: menukarkan harga variabel antara A dan B menggunakan sebuah variabel


penampung sementara

Algoritma_TUKAR
{mempertukarkan nilai antara A dan B}
Kamus
A, B, temp : integer
Deskripsi
read(A, B)
temp A
A B
B temp
write(A, B)

Dasar Pemrograman

6. PEMILIHAN
Analisis kasus adalah salah satu elemen primitif pembangun algoritma. Analisis kasus
diperlukan dalam sebuah program ketika terdapat suatu instruksi yang hanya dikerjakan jika
memenuhi persyaratan atau kondisi tertentu. Contoh : pada algoritma Ibu Tati mengupas
kentang
Penulisan Algoritma Yang Mengandung Analisa Kasus/Pemilihan
1. Flowchart
Permasalahan : Diberikan nama dan nilai mahasiswa, jika nilai tersebut lebih besar atau
sama dengan 60 maka mahasiswa tersebut dinyatakan lulus jika nilai lebih kecil dari 60
maka dinyatakan tidak lulus.

Uraian kalimat deskriptif (narasi)


DESKRIPSI :
o
o
o
o

baca nama dan nilai mahasiswa.


jika nilai >= 60 maka keterangan = lulus
tetapi jika nilai < 60 maka keterangan = tidak lulus.
tulis nama dan keterangan

Flow chart
Mulai

Baca
nama, nilai

Nilai >= 60

Tidak

Keterangan Tidak Lulus

Ya
Keterangan Lulus

Tulis
nama,keterangan

Selesai

2. Pseudocode
Penulisan algoritma yang mengandung analisis kasus menggunakan pseudocode terdiri dari
dua struktur umum : IF-THEN dan DEPEND-ON
Mendefinisikan analisis kasus adalah mendefinisikan :
- kondisi boolean, berupa suatu ekspresi yang menghasilkan nilai true atau false
-

aksi yang akan dilaksanakan jika kondisi yang dipasangkan dengan aksi yang bersangkutan

dipenuhi.
Ungkapan Kondisi dapat dihasilkan dengan operator perbandingan dan operator logika.
contoh kondisi : x > 100, kar = * , (a 0) or (b = 0) , ketemu = true, not ketemu

Dasar Pemrograman

IF-THEN
a. Satu Kasus
if <kondisi> then
aksi
endif
Contoh contoh :
a. if x > 100 then
x x + 1
endif
b. if (a 0) or (b = 0) then
b a * b
write(b)
endif
c. if (ketemu) then
if a 10 then
read(b)
endif
endif
Contoh Kasus 1 :
Algoritma HURUF_VOKAL
{mencetak pesan huruf vokal bila sebuah karakter yang
dibaca merupakan huruf vokal. Asumsi huruf kecil}
Kamus
huruf : char
Deskripsi
read(huruf)
if (huruf=a) or (huruf=i) or (huruf=u) or
(huruf=o) then
(huruf=e) or
write(Huruf Vokal)
endif
Contoh Kasus 2 :
Algoritma Bilangan_Genap
{mencetak pesan bilangan genap kemudian kalikan bilangan
tersebut dengan angka 2 jika bilangan bulat yang
dimasukkan dari piranti masukan merupakan bilangan genap}
Kamus
bil : integer
Deskripsi
read(bil)
if bil mod 2 = 0 then
write(bilangan genap)
write(bil*2)
endif
b. Dua Kasus
if <kondisi> then
aksi1
else
aksi2
endif

Dasar Pemrograman

Contoh contoh :
a. if a > 0 then
write(bilangan positif)
else
write(bilangan negatif)
endif
b. if (k > 4) and (k div 2 = 4) then
read(n)
z n * k
else
read(m)
z n / k
endif
Contoh Kasus 1 :
Algoritma Kelulusan_Mhs
{Menerima masukan nama dan nilai mahasiswa, jika nilai
tersebut lebih besar atau sama dengan 60 maka mahasiswa
tersebut dinyatakan lulus jika tidak maka dinyatakan tidak
lulus}
Kamus
Nama : string
Nilai : integer
Keterangan : string
Deskripsi
read (nama, nilai)
if nilai >= 60 then
keterangan lulus
else
keterangan tidak lulus
endif
write(nama, keterangan)
Contoh Kasus 2 :
Algoritma Bilangan_Genap_dan_Ganjil
{Mencetak bilangan genap jika bilangan bulat yang dibaca
merupakan bilangan genap dan bilangan ganjil jika bukan
bilangan genap}
Kamus
Bil : integer
Deskripsi
read(bil)
if (bil mod 2 = 0) then
write(Bilangan Genap)
else
write(Bilangan Ganjil)
endif

Dasar Pemrograman

c. Banyak Kasus
if <kondisi1> then
aksi1
else
if <kondisi2> then
aksi2
else
if <kondisi3> then
aksi3
endif
endif
endif
Contoh Kasus 1 :
Membaca dua buah nilai integer, jika nilai pertama lebih besar atau sama dengan nilai kedua
kerjakan nilai pertama/nilai kedua, jika nilai kedua lebih besar dari nilai pertama kerjakan
nilai kedua/nilai pertama, tetapi jika nilai kedua = 0 maka tampilkan pesan error
Algoritma WUJUD_AIR
{Menentukan hasil pembagian}
Kamus
n1, n2 : integer
hasil : real
Deskripsi
read(n1,n2)
if n2=0 then
write(Error)
else
if n1n2 then
hasil n1/n2
else
hasil n2/n1
endif
write(hasil)
endif
DEPEND-ON
Untuk menyederhanakan pola IF-THEN-ELSE jika terdapat banyak kasus. Strukturnya :
depend on (nama)
<kondisi1> : aksi1
<kondisi2> : aksi2
<kondisi3> : aksi3
.....
<kondisiN> : aksiN
[otherwise aksiX]
Tiap langkah diperiksa kebenarannya. Jika kondisi ke-k benar maka aksi ke-k dilaksanakan.
Kondisi berikutnya tidak dipertimbangkan lagi. Jika tidak ada satupun aksi yang benar maka
aksi sesudah otherwise yang dikerjakan.
Contoh Kasus 1:
Dibaca nomor dari 1-7 untuk menunjukkan hari. Tuliskan nama hari sesuai nomor harinya

Dasar Pemrograman

Algoritma NAMA_HARI
{Mencetak nama bulan }
Kamus
Nomor_hari : integer
Deskripsi
read(nomor_hari)
depend on (nomor_ hari)
nomor_hari=1 : write(Januari)
nomor_hari =2 : write(Februari)
nomor_hari =3 : write(Maret)
nomor_hari =4 : write(April)
nomor_hari =5 : write(Mei)
nomor_hari =6 : write(Juni)
nomor_hari =7 : write(Juli)
otherwise write(Bukan nomor hari yang benar)

Dasar Pemrograman

7. PENGULANGAN
Komputer memiliki kemampuan untuk mengerjakan suatu instruksi (aksi) secara berulangulang dengan performansi yang sama. Kemampuan tersebut menjadi salah satu keunggulan
komputer dibandingkan manusia karena manusia biasanya tidak menyukai tugas-tugas monoton
yang dikerjakan secara berulang-ulang (karena lelah atau bosan).
Notasi pengulangan adalah salah satu notasi dasar dalam penulisan algoritma selain
pemilihan. Terdapat beberapa macam struktur pengulangan pada algoritma dan beberapa
diantaranya yang paling banyajk digunakan antara lain struktur FOR, WHILE-DO, dan
REPEAT-UNTIL.. Masing-masing struktur digunakan pada jenis permasalahan yang berbeda
meskipun untuk beberapa kasus sebuah struktur pengulangan dapat diganti dengan struktur
pengulangan yang lain.
3. Struktur FOR
Struktur ini digunakan bila sudah diketahui berapa kali akan mengulang satu atau beberapa
aksi dalam badan pengulangan.
Bentuk Umum :
for variabel nilai_awal to nilai_akhir do
aksi1
aksi2
...
aksin
endfor
Catatan :

variabel adalah nama variabel kontrol bertipe karakter atau integer yang berfungsi
sebagai pencacah pengulangan

aksi1, aksi2, ..., aksin merupakan satu atau lebih instruksi yang dikerjakan secara
berulang-ulang

nilai_awal dan nilai_akhir bisa berupa konstanta atau ekspresi

nilai_awal harus lebih kecil atau sama dengan nilai_akhir

tipe data variabel harus sama dengan tipe data nilai_awal dan nilai_akhir

Pengulangan akan dilakukan sebanyak nilai_akhir - nilai_awal + 1

Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari 1 sampai 10


Algoritma Show_Numeric
{ menampilkan bilangan integer dari 1 sampai 10}
Kamus
i : integer
Deskripsi
for i 1 to 10 do
write(i)
endfor
For juga dapat digunakan pada pengulangan yang mencacah dari bilangan lebih besar ke
bilangan yang lebih kecil

Dasar Pemrograman

Bentuk Umum :
for variabel nilai_awal downto nilai_akhir do
aksi1
aksi2
...
aksin
endfor
Catatan :

variabel adalah nama variabel kontrol bertipe karakter atau integer yang berfungsi
sebagai pencacah pengulangan

aksi1, aksi2, ..., aksin merupakan satu atau lebih instruksi yang dikerjakan secara
berulang-ulang

nilai_awal dan nilai_akhir bisa berupa konstanta atau ekspresi

nilai_awal harus lebih besar atau sama dengan nilai_akhir

tipe data variabel harus sama dengan tipe data nilai_awal dan nilai_akhir

Pengulangan akan dilakukan sebanyak nilai_awal - nilai_akhir + 1

Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari N sampai 1 dimana N
diinputkan dari user
Algoritma Show_Numeric2
{ menampilkan bilangan integer dari N sampai 1}
Kamus
i, N : integer
Deskripsi
read(N)
for i N downto 1 do
write(i)
endfor
4. Struktur WHILE-DO (Pengulangan berdasarkan kondisi ulang)
Struktur pengulangan ini biasanya digunakan pada kasus yang belum pasti berapa kali
aksi/instruksinya akan diulang. Struktur While mirip struktur IF yang melakukan pemeriksaan
ekspresi boolean sebelum satu atau lebih aksi dikerjakan.
Bentuk Umum :
while (kondisi) do
aksi1
aksi2
...
aksin
endwhile
Catatan :

Kondisi adalah kondisi pengulangan berupa ekspresi boolean yang dapat menghasilkan
nilai True atau False

Aksi pada badan pengulangan dilaksanakan selema (kondisi) menghasilkan nilai True

Pengulangan berhenti jika (kondisi) menghasilkan nilai False


Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari 1 sampai 10

Dasar Pemrograman

Algoritma Show_Numeric3
{ menampilkan bilangan integer dari 1 sampai 10}
Kamus
i : integer
Deskripsi
i 1
while i 10 do
write(i)
i i + 1
endwhile
Badan pengulangan (aksi) pada struktur While-Do mungkin tidak akan pernah dilakukan
karena sebelum aksi pertama dieksekusi, dilakukan test terhadap kondisi pengulangan.
Pengulangan ini berpotensi untuk menimbulkan aksi kosong (tidak pernah melakukan apaapa) jika pada test pertama kondisi menghasilkan nilai False
Contoh :
Kamus
f : boolean
Deskripsi
f true
while (not f)

do

f not f
enwhile
5. Struktur REPEAT-UNTIL (Pengulangan berdasarkan kondisi berhenti)
Struktur ini hampir sama dengan struktur Whike dan biasanya digunakan bila jumlah
pengulangan belum dapat ditentukan saat program ditulis
Bentuk Umum :
Repeat
aksi1
aksi2
...
aksin
Until (kondisi berhenti)

Catatan :
Kondisi berhenti berupa ekspresi boolean yang dapat menghasilkan nilai True atau False
Aksi pada badan pengulangan akan dikerjakan sampai kondisi berhenti bernilai True
Badan pengulangan (aksi) pada struktur ini minimal dikerjakan satu kali karena pada
waktu eksekusi pengulangan yang pertama tidak dilakukan test terhadap kondisi
berhenti. Test terhadap kondisi berhenti dilakukan setelah aksi dikerjakan

Dasar Pemrograman

Contoh : Membuat sebuah algoritma untuk menampilkan bilangan dari 1 sampai 10


Algoritma Show_Numeric4
{ menampilkan bilangan integer dari 1 sampai 10}
Kamus
i : integer
Deskripsi
i 1
repeat
write(i)
i i + 1
until i > 10
Perbedaan struktur Repeat-Until dan While-Do terletak pada pengecekan kondisi.
Jika pada struktur While, kondisi dicek pada awal badan pengulangan, sedangkan pada struktur
Repeat kondisi dicek pada akhir badan pengulangan.
Perbedaan yang lain, bila struktur While mengulang pernyataan selama kondisi masih
terpenuhui (kondisi = True), struktur Repeat mengulang pernyataan selama kondisi belum
terpenuhi (kondisi = False)
STUDI KASUS

1. Membuat algoritma untuk menampilkan semua bilangan faktor dari n dimana n


diinputkan oleh user
Algoritma Faktor
Kamus
n, i : integer
Deskripsi
read(n)
for i 1 to n do
if (n mod i = 0) then
write(i)
endif
endfor

2. Buat algoritma untuk membaca dan menghitung nilai mahasiswa kemudian


menghitung nilai rata-rata dari nilai mahasiswa tersebut. Proses pembacaan dan
perhitungan dilakukan sampai user tidak ingin menginputkan lagi
Algoritma Rerata_Nilai_Mahasiswa
Kamus
n : integer
jawab : char
nilai, jumlah, rata : real
Deskripsi
jumlah 0
n 0
repeat
read(nilai)
jumlah jumlah + nilai
n n + 1
write(Apakah anda ingin input data lagi (y/t) ? )
read(jawab)
until (jawab = T) or (jawab = t)
rata jumlah / n
write(rata)

Dasar Pemrograman

8. RECORD
Untuk merepresentasikan sebuah objek, sering tipe data dasar seperti integer, real,
boolean, char, tidak dapat memenuhinya. Oleh karena itu, dibentuklah tipe bentukan
yang merupakan gabungan dari beberapa tipe data dasar atau dari tipe bentukan
lainnya. Salah satu tipe bentukan tersebut adalah record.
Record adalah salah satu tipe data terstruktur(structured data type) bentukan yang
setiap recordnya terdiri dari beberapa elemen yang disebut field. Setiap field
menggambarkan informasi tertentu dan tipe data pada masing-masing field dapat
berbeda-beda namun sudah dikenal baik itu tipe dasar atau tipe bentukan lainnya.
field 1 field 2 field 3 field n
Ilustrasi sebuah record
Sebagai contoh, di dalam matematika untuk menggambarkan sebuah titik pada
diagram kartesian digunakan dua bilangan integer atau real yaitu untuk menunjukkan
koordinat titik yang ditunjuk pada sumbu x dan sumbu y. Untuk merepresentasikan
tanggal juga digunakan tipe bentukan yang terdiri dari hari, bulan, dan tahun yang
masing-masing bertipe integer. Data pegawai juga terdiri dari beberapa elemen seperti
nama, tanggal lahir, dan alamat. Untuk menjawab semua kebutuhan pada beberapa
contoh tersebut, dibuatlah tipe bentukan yang disebut record.
8.1 DEKLARASI RECORD
Seperti halnya tipe data lain, tipe data record juga harus dideklarasikan terlebih
dahulu di bagian kamus jika kita ingin menggunakan sebuah variabel yang bertipe
record pada bagian deskripsi algoritmanya. Deklarasi record pada algoritma adalah
sebagai berikut :
type nama_record : record < nama_field1 : tipe_field1,
nama_field2 : tipe_field2
.....
nama_fieldn : tipe_fieldn
>

Contoh 1 : Type Titik {menyatakan absis dan ordinat pada diagram kartesian}
Titik dalam koordinat kartesian dinyatakan sebagai (x,y) dengan x adalah nilai absis
dan y adalah nilai ordinat. Kita dapat menyatakan titik sebagai record dengan (x,y)
sebagai field
x

type Titik : record < x : real,


y : real
>

{absis}
{ordinat}

Jika dideklarasikan sebuah variabel T sebagai berikut :


T : Titik {artinya : mendeklarasikan variabel T bertipe Titik}

Dasar Pemrograman

Maka cara mengacu atau mengakses nilai elemen yang tersimpan pada T yang telah
terdefinisi adalah :
T.x dan T.y
Contoh :
Kamus
type Titik : record < x : real,
y : real
>
T : Titik
Deskripsi
T.x 4.5
T.y -2.0
read(T.x , T.y)
write(T.x , T.y)

Contoh 2 : Type Tanggal{menyatakan tanggal, bulan, dan tahun dalam kalender


Masehi}
Tipe tanggal merepresentasikan tanggal pada kalender Masehi dalam notasi ddmmyy
dimana dd sebagai tanggal bernilai [1..31], mm sebagai bulan bernilai [1..12], dan yy
sebagai tahun bernilai [>0]
dd mm yy
type Tanggal : record <dd : integer[1..31],
mm : integer[1..12],
yy : integer[>0]
>

Jika dideklarasikan sebuah variabel TGL sebagai berikut :


TGL : Tanggal {artinya : mendeklarasikan variabel TGL bertipe Tanggal}
Maka cara mengacu atau mengakses nilai elemen yang tersimpan pada TGL yang telah
terdefinisi adalah :
TGL.dd , TGL.mm, dan dan TGL.yy
Contoh :
Kamus
type Tanggal : record < dd : integer[1..31],
mm : integer[1..12],
yy : integer[>0]
>
TGL : Tanggal
Deskripsi
TGL.dd 20
TGL.mm 2
TGL.yy 1987
read(TGL.dd, TGL.mm, TGL.yy)
write(TGL.dd, TGL.mm, TGL.yy)

Contoh 3 : Type Waktu{menyatakan jam, menit, dan detik }


Tipe waktu merepresentasikan WAKTU dalam notasi hh:mm:ss dimana hh sebagai jam
bernilai [0..23], mm sebagai menit bernilai [0..59], dan ss sebagai detik bernilai [0..59]
hh mm ss

Dasar Pemrograman

type Waktu : record < hh : integer[0..23],


mm : integer[0..59],
ss : integer[0..59]
>

Jika dideklarasikan sebuah variabel W sebagai berikut :


W : Waktu {artinya : mendeklarasikan variabel W bertipe Waktu}
Maka cara mengacu atau mengakses nilai elemen yang tersimpan pada W yang telah
terdefinisi adalah :
W.hh , W.mm, dan dan W.ss
Contoh :
Kamus
type Waktu : record < hh : integer[0..23],
mm : integer[0..59],
ss : integer[0..59]
>
W : Waktu
Deskripsi
W.hh 10
W.mm 30
W.ss 50
read(W.hh, W.mm, W.ss)
write(W.hh, W.mm, W.ss)

Contoh 4 : Record untuk pengolahan data nilai mahasiswa


Tipe terstruktur yang menyatakan nilai ujian seorang mahasiswa untuk mata kuliah
yang diambil(MK) terdiri dari Nim, Nama, Kode MK dan Nilai
Nim NamaMhs KodeMK Nilai

type NilaiMhs : record < Nim : integer,


NamaMhs : string,
KodeMK : string,
Nilai : char
>

Jika dideklarasikan sebuah variabel M sebagai berikut :


M : NilaiMhs {artinya : mendeklarasikan variabel M bertipe NilaiMhs}
Maka cara mengacu atau mengakses nilai elemen yang tersimpan pada W yang telah
terdefinisi adalah :
M.Nim, M.NamaMhs, M.KodeMK, dan M.Nilai
Contoh :
Kamus
type NilaiMhs : record < Nim : integer,
NamaMhs : string,
KodeMK : string,
Nilai : char
>
M : NilaiMhs
Deskripsi
M.Nim 077006187

Dasar Pemrograman

M.NamaMhs Arjuna
M.KodeMK MKK1107
M.Nilai B
read(M.Nim, M.NamaMhs, M.KodeMK, M.Nilai)
write(M.Nim, M.NamaMhs, M.KodeMK, M.Nilai)

8.2 LATIHAN
1. Tentukan baris instruksi yang salah pada algoritma di bawah ini!
Algoritma Contoh_Type
Kamus
type MyPoint : record <x : integer, y : integer>
P : integer
R : MyPoint
Deskripsi
{1} read(MyPoint)
{2} read(R)
{3} read(P)
{4} write(H.x , H.y)
{5} R R + 5
{6} R.x R.x + 5
{7} write(MyPoint)
{8} write(R.x, R.y)

2. Deklarasikan tipe Data_Karyawan yang terdiri dari ID, Nama Karyawan,


Golongan, dan Gaji Pokok. Berikutnya buat algoritma untuk menerima masukan 1
buah data Karyawan dan menampilkannya!
3. Buat algoritma yang membaca dua waktu (jam, menit, dan detik) dan menghitung
selisih kedua waktu tersebut dalam detik kemudian menampilkannya!

Dasar Pemrograman

9. ARRAY
Array merupakan salah satu tipe data terstruktur(structured data type) yang berguna
sebagai sebuah tempat penyimpanan elemen data/nilai yang bertipe sama.
Penggunaannya sama seperti variabel(untuk menyimpan nilai) tetapi variabel hanya
dapat menyimpan sebuah nilai sedangkan pada array data yang diolah bisa beberapa
nilai bertipe sama.
Struktur data array dipakai untuk merepresentasikan sekumpulan informasi yang
bertipe sama dan disimpan dengan urutan yang sesuai dengan definisi indeks secara
kontigu dalam memori komputer. Oleh karena itu indeks harus suatu tipe data yang
mempunyai keterurutan seperti tipe integer atau karakter.
Bentuk array sama seperti tabel sehingga array seringkali juga disebut tabel.
Misalnya tabel untuk menyimpan data nilai 100 buah
TabNilai
index nilai
1
60
2
70
3
100
4
80
5
65
.....
.....
100
89
Sebuah array harus diberi nama, supaya mudah diakses atau diacu. Setiap
elemen/bagian array harus diberi alamat supaya dapat dibedakan dengan elemen
lainnya dan mudah dalam pencarian. Indeks digunakan sebagai alamat elemen pada
array.
9.1 Deklarasi Array
Supaya sebuah array dapat diisi, arraynya harus dibuat dulu atau dipesan
tempatnya (berapa banyak data yang akan dimasukkan ke dalam array) dengan cara
dideklarasikan di bagian kamus. Jumlah elemen array tidak dapat diubah selama
pelaksanaan program
Bentuk umum deklarasi array :
nama_array : array [range_index] of tipe_elemen
contoh :
TabNilai : array [1..100] of real
Frekuensi : array [a..z] of integer
NamaKota : array [1..20] of string

Tipe_elemen menunjukkan tipe data dari elemen tabel, semua isi elemen tabel
bertipe sama. Range index bisa berupa integer atau character dan harus menaik.

Dasar Pemrograman

Setelah sebuah array dideklarasikan, akan disediakan tempat di memori sebanyak


jumlah elemen yang dipesan. Memori adalah tempat untuk menyimpan data yang
bersifat sementara sedangkan harddisk untuk menyimpan data yang bersifat permanen.
Memori juga memiliki alamat yang dapat diakses jika dibutuhkan.
9.2 Operasi Terhadap Array
Operasi atau manipulasi terhadap array hanya dapat dilakukan terhadap satu
elemennya yang ditunjukkan oleh indeks.
Untuk mengisi atau mengambil data/nilai dari array :
Nama_Array[alamat_index] nilai
write(Nama_Array[alamat_index])
nama_variabel Nama_Array[alamat_index]

Contoh 1 : Membuat dan mengisi array huruf

ArrHuruf
1
2
3
4
5

A
N
G
S
A

Kamus
const N = 5
ArrHuruf : array [1..N] of char
Deskripsi
ArrHuruf[1] A
ArrHuruf[2] N
ArrHuruf[3] G
ArrHuruf[4] S
ArrHuruf[5] A
write(ArrHuruf[3])

9.3 Pemrosesan Array


Pemrosesan terhadap Array berarti memproses elemen mulai dari elemen pertama
(elemen dengan indeks terkecil, berturut-turut pada elemen berikutnya, sampai elemen
terakhir dicapai). Pemrosesan terhadap elemen array menggunakan bentuk pengulangan
sebagai berikut :
for i index_awal to index_akhir do
Proses(Nama_Array[i])
endfor
1. Pengisian elemen array dengan nilai yang dibaca dari piranti masukan
Algoritma Tabel1
Kamus
MyTab : array[1..50] of integer
n,I
: integer
Agoritma
read(n)
for i 1 to n do

Dasar Pemrograman

read(MyTab[i])
endfor

2. Penulisan elemen array


Algoritma Tabel
Kamus
MyTab : array[1..50] of integer
n,i
: integer
Agoritma
read(n)
for i 1 to n do
read(MyTab[i])
endfor
for i 1 to n do
write (MyTab[i])
endfor

Contoh 2 : Algoritma yang membaca sebuah array integer yang menyatakan nilai
ujian, TabNilai, mulai indeks 1 sampai n dan menghitung nilai rata-rata
ujian dan menampilkannya pada layar dimana n diinputkan oleh user
Algoritma Nilai_Mahasiswa
Kamus
const NMax = 100
TabNilai : array [1..NMax] of real
n,i : integer
rata : real
Deskripsi
read (n)
for i 1 to n do
read(TabNilai[i])
endfor
jumlah 0
for i 1 to n do
jumlah jumlah + TabNilai[i]
endfor

rata jumlah / n

Dasar Pemrograman

10. PROSEDUR
Seringkali dalam membuat program besar, pemrogram perlu memecah program menjadi
beberapa subprogram yang lebih kecil. Tiap subprogram(modul) dapat dirancang oleh
pemrogram selain orang yang mengembangkan program utama. Modul yang sudah
dirancang dapat dipasang ke dalam program lain yang membutuhkan Teknik
pemrograman modular(prosedur, routine, fungsi)
Keuntungan modularisasi :
1. Untuk aktivitas yang harus dilakukan lebih dari sekali, cukup ditulis sekali sehingga
dapat mengurangi panjang program. Contoh :
Algoritma ABCD
DEKLARASI
A, B, C, D, temp : integer
DESKRIPSI
..
{Pertukarkan nilai A dan B}
temp A
A B
B temp
.....
if C > D then
{pertukarkan nilai C dan D}
temp C
C D
D temp
endif
..
Procedure TUKAR(input/output P, Q : integer)
{mempertukarkan nilai P dan Q}
DEKLARASI
Temp : integer
DESKRIPSI
Temp P
P Q
Q Temp
Algoritma ABCD
DEKLARASI
A, B, C, D, temp : integer
Procedure TUKAR(input/output P, Q : integer)
DESKRIPSI
..
{Pertukarkan nilai A dan B}
TUKAR(A,B)
{panggil prosedur TUKAR}
.....
if C > D then
{pertukarkan nilai C dan D}
TUKAR(C,D)
{panggil prosedur TUKAR}
endif

Dasar Pemrograman

Ketika sebuah program dipanggil, pelaksanaan program berpindah ke dalam modul.


Lalu seluruh instruksi dalam modul dilaksanakan secara beruntun sampai akhir modul.
Setelah instruksi dalam modul dilaksanakan, pelaksanaan program kembali ke program
utama.
Program Utama
MODUL1
A1
M11
A2
M12
A3
M13
Call MODUL1
A4
MODUL2
A5
Call MODUL2
M11
A6
M12
A7
M13
Call MODUL1
A8

Ilustrasi :
a. Prosedur URUS PASPOR (di kantor imigrasi)
- Isi formulir permintaan paspor dengan lampiran foto copy KTP, Kartu keluarga,
pas foto
- Serahkan formulir yang sudah diisi beserta biaya pembuatan paspor
- Wawancara dengan petugas imigrasi
- Terima paspor
b. Prosedur URUS VISA (di kantor kedutaan besar)
- Isi formulir permintaan visa dengan lampiran foto copy KTP, paspor, pas foto,
tiket pesawat
- Serahkan formulir yang sudah diisi beserta biaya pembuatan visa
- Terima visa
c. Prosedur BERANGKAT DARI BANDARA
- Datang ke bandara satu jam sebelum keberangkatan
- Jika sudah disuruh naik ke pesawat, tunjukkan tiket, paspor, dan visa ke petugas
- Naik ke pesawat
- Selamat jalan...
Algoritma PERGI_KE_LUAR_NEGERI
DESKRIPSI :
a. Urus Paspor
b. URUS VISA
c. BERANGKAT DARI BANDARA
2. Kemudahan menulis dan mencari kesalahan(debug) program
Kemudahan menulis berguna jika sebuah program dilaksanakan oleh satu tim
pemrogram. Masalah dipecah menjadi beberapa submasalah. Setiap submasalah ditulis

Dasar Pemrograman

ke dalam modul individual yang dikerjakan oleh orang yang berbeda. Setelah selesai,
semua modul diintegrasikan kembali menjadi program lengkap.
Program modular mudah dipahami dan mudah dicari kesalahannya karena setiap
modul melakukan aktivitas spesifik

10.1 STRUKTUR PROSEDUR


1. Bagian Header nama prosedur dan komentar yang menjelaskan spesifikasi prosedur
2. Bagian Kamus
3. Badan Prosedur (Deskripsi)
Nama prosedur sebaiknya diawali kata kerja, misalnya Hitung_Luas, Tukar, CariMaks
Procedure Nama_Prosedur
{Spesifikasi prosedur, penjelasan yang berisi uraian singkat
mengenai apa yang dilakukan prosedur}
Kamus
{semua nama yang dipakai dalam prosedur dan hanya berlaku
lokal didefinisikan disini}
Deskripsi
{Badan prosedur, berisi kumpulan instruksi}

Contoh :
Procedure CETAK_HALLO
{mencetak string Hallo, Dunia}
DEKLARASI
DESKRIPSI
write(Hallo, Dunia)
Procedure HIT_LUAS_SEGITIGA
{menghitung luas segitiga dengan rumus L = (alas x tinggi)}
DEKLARASI
a, t , L: real
DESKRIPSI
read(a , t)
L a * t / 2
write(L)
Procedure HIT_LUAS_ PERSEGI_PANJANG
{menghitung luas empat persegi panjang dengan rumus L =
panjang x lebar}
DEKLARASI
p, l , Luas: real
DESKRIPSI
read(p , l)
Luas p * l
write(Luas = , Luas)
Procedure HIT_LUAS_LINGKARAN
{menghitung luas segitiga dengan rumus L = (a x t)}
DEKLARASI
const phi = 3.14
r , L: real

Dasar Pemrograman

DESKRIPSI
read(r)
L phi * r * r
write(L)

10.2 PEMANGGILAN PROSEDUR


Prosedur tidak bisa dieksekusi langsung. Instruksi pada prosedur bisa dilaksanakan
jika prosedur diakses. Prosedur diakses dengan memanggil namanya dari program pemanggil
(program utama atau modul program lain)
NAMA_PROSEDUR
Ketika nama prosedur dipanggil, kendali program berpindah ke prosedur tersebut.
Setelah semua instruksi prosedur selesai dilaksanakan, kendali program berpindah kembali
ke program pemanggil. Dalam program pemanggil, harus mendeklarasikan prototype
prosedur (header) dalam bagian deklarasi supaya dikenali oleh program pemanggil dan
mengetahui cara mengaksesnya.. Contoh :
Algoritma HALLO
{program utama untuk mencetak string Hallo, Dunia}
DEKLARASI
Procedure CETAK_HALLO
DESKRIPSI
CETAK_HALLO {panggil prosedur CETAK_HALLO}
Algoritma HITUNG_LUAS_SEGITIGA
{program utama untuk menghitung luas segitiga}
DEKLARASI
Procedure HIT_LUAS_SEGITIGA
DESKRIPSI
write(Menghitung Luas Sebuah Segitiga)
HIT_LUAS_SEGITIGA
{panggil prosedur
HIT_LUAS_SEGITIGA}
write(Selesai)
Algoritma HITUNG_LUAS
{program utama untuk menampilkan menu perhitungan luas
segitiga, luas persegi panjang, dan lingkaran, memilih menu,
dan melakukan proses perhitungan sesuai pilihan menu}
DEKLARASI
nomor_menu : integer
Procedure HIT_LUAS_SEGITIGA
Procedure HIT_LUAS_PERSEGI_PANJANG
Procedure HIT_LUAS_LINGKARAN
DESKRIPSI
Repeat
{cetak menu ke layar}
write(
# Menu Pilihan Menghitung Luas #
)
write(
1. Menghitung Luas Segitiga
)
write(
2. Menghitung Luas Persegi Panjang )
write(
3. Menghitung Luas Lingkaran
)
write(
4. Keluar Program
)
write(Masukkan Pilihan Menu (1 / 2 / 3 / 4) : )
read(nomor_menul)
depend on ( nomor_menu)

Dasar Pemrograman

1 : HIT_LUAS_SEGITIGA
2 : HIT_LUAS_PERSEGI_PANJANG
3 : HIT_LUAS_LINGKARAN
4 : write(Keluar Program...Sampai Jumpa)
until nomor_menu = 4

10.3 VARIABEL GLOBAL DAN VARIABEL LOKAL


Variabel Lokal Ditulis pada bagian Kamus prosedur dan hanya dapat digunakan oleh
prosedur
Variabel Global Ditulis pada bagian Kamus program utama, dapat digunakan di dalam
program utama maupun prosedur. Contoh :
Procedure Hitung_Rata_Rata
{program utama untuk menghitung rata-rata N buah bilangan
bulat yang dibaca dari keyboard}
DEKLARASI
x : integer
{data bilangan bulat yang dibaca dari
keyboard}
k : integer
{pencacah banyak bilangan}
jumlah : real {jumlah seluruh bilangan}
DESKRIPSI
k 1
jumlah 0
while k N do
read(x)
jumlah jumlah + x
k k + 1
endwhile
rata jumlah / N
Algoritma Rata_Rata_Bilangan_Bulat
{program utama untuk menghitung rata-rata N buah bilangan
bulat yang dibaca dari keyboard }
DEKLARASI
N : integer
{banyaknya bilangan bulat }
rata : real
{nilai rata-rata bilangan bulat}
Procedure Hitung_Rata_Rata
DESKRIPSI
read(N)
write(Menghitung rata-rata bilangan bulat)
Hitung_Rata_Rata
write(Nilai rata-rata : ,rata)

Usahakan menggunakan nama global sesedikit mungkin karena dengan nama lokal,
program terlihat lebih elegan dan mempermudah mencari kesalahan program yang
disebabkan oleh nama tersebut

Dasar Pemrograman

Parameter
Kebanyakan program memerlukan pertukaran informasi antara prosedur/fungsi
dengan titik dimana ia dipanggil penggunaan parameter
Parameter adalah :
Nama- nama peubah yang dideklarasikan pada bagian header prosedur.
Parameter actual ( argument ) adalah :
Parameter yang disertakan pada waktu pemanggilan prosedur.
Parameter formal adalah :
Parameter yang dideklarasikan di dalam bagian header prosedur itu sendiri.

Tiap item data ditransfer antara parameter aktual(yang disertakan pada waktu
pemanggilan) dengan parameter formal(yang dideklarasikan di prosedur). Ketika
pemanggilan, parameter aktual menggantikan parameter formal. Tiap parameter berpasangan
dengan parameter formal yang bersesuaian. Pendeklarasian parameter di dalam prosedur
bukanlah keharusan. Dengan kata lain boleh ada atau tidak ada.
Procedure Nama_Prosedur(daftar parameter formal)
{Spesifikasi prosedur, penjelasan yang berisi uraian singkat mengenai apa yang dilakukan
prosedur}

Kamus
{semua nama yang dipakai dalam prosedur dan hanya berlaku lokal didefinisikan disini}

Algoritma
{Badan prosedur, berisi kumpulan instruksi}

Memanggil prosedur dengan parameter :


NAMA_PROSEDUR(daftar parameter actual)
Prosedur yang baik adalah
Prosedur yang independent dari program pemanggilannya. Prosedur yang tidak
menggunakan peubah-peubah global didalam badan prosedurnya.
Jika program utama perlu mengkomunikasikan nilai peubah global ke dalam
prosedur, maka ada satu cara untuk melakukannya yaitu dengan menggunakan
parameter.
Aturan penting korespondensi satu-satu antara parameter formal dengan parameter aktual :
1. Jumlah parameter aktual harus sama dengan jumlah parameter formal
2. Tipe parameter aktual harus sama dengan tipe parameter formal
3. Tiap parameter aktual harus diekspresikan dengan cara yang benar dengan parameter
formal bersesuaian, tergantung jenis parameter formal
Jenis parameter formal :
1. Parameter Masukan(input parameter) = parameter nilai(value parameter) dalam bahasa
pemrograman nilainya berlaku sebagai masukan untuk prosedur
Nilai parameter aktual diisikan(assign) ke parameter formal bersesuaian. Nilai tersebut
digunakan dalam badan prosedur tetapi tidak dapa dikirimkan ke titik pemanggilan .

Dasar Pemrograman

Perubahan nilai parameter dalam badan prosedur tidak mengubah nilai parameter aktual.
Nama parameter aktual boleh berbeda dengan nama parameter formal. Contoh :
Procedure SATU (input x : integer , input y : real)
{Contoh prosedur dengan parameter formal jenis parameter
masukan}
Deklarasi
Deskripsi
x x + 1
y y + 1
write(x)
write(y)
Algoritma PQR
{Contoh program utama yang memanggil prosedur SATU}
Deklarasi
a , b : integer
c , d : real
Procedure SATU (input x : integer , input y : real)
Deskripsi
SATU(4,10.5)
read(a,b,c,d)
SATU(a,c)
SATU(b,d)
SATU(a+5,c/d)
SATU(a,b)

Yang tidak boleh :


SATU(c,d)

SATU(a)

SATU(a,c,b)

Procedure HIT_LUAS_SEGITIGA(input a , t : real)


{menghitung luas segitiga dengan rumus L = (alas x
tinggi)}
DEKLARASI
L: real
DESKRIPSI
L a * t / 2
write(Luas Segitiga = ,L)
Algoritma HITUNG_LUAS_SEGITIGA
{program utama untuk menghitung luas segitiga}
DEKLARASI
alas , tinggi : real
Procedure HIT_LUAS_SEGITIGA(input a , t : real)
DESKRIPSI
write(Menghitung Luas Sebuah Segitiga)
read(alas,tinggi)
HIT_LUAS_SEGITIGA(alas,tinggi)
write(Selesai)

Parameter formal Nilai parameter aktual


2. Parameter Keluaran(output parameter) menampung keluaran yang dihasilkan oleh
prosedur
Bila prosedur menghasilkan satu atau lebih nilai yang akan digunakan oleh program
pemanggil, maka nilai keluaran ditampung di dalam parameter keluaran. Bila prosedur

Dasar Pemrograman

dengan parameter keluaran dipanggil, nama parameter aktual dalam program pemanggil
akan menggantikan nama parameter formal yang bersesuaian dalam prosedur. Nama
parameter aktual akan digunakan selama pelaksanaan prosedur.
Parameter formal Parameter aktual
Karena nama parameter merupakan suatu lokasi di memori, maka jika parameter
aktual diisi suatu nilai di dalam prosedur, nilai tersebut akan tetap berada dalam
parameter aktual walaupun prosedur selesai dilaksanakan. Contoh :
Procedure DUA(input x : integer , output y : real)
{Contoh prosedur dengan parameter formal jenis parameter
masukan dan jenis parameter keluaran}
Deklarasi
Deskripsi
x x + 1
y x * 10
Algoritma PQR
{Contoh program utama yang memanggil prosedur DUA}
Deklarasi
a , b : integer
Procedure DUA (input x : integer , output y : real)
Deskripsi
DUA (4,b)
write(b)
read(a)
DUA (a,b)
write(b)
DUA (a+5,b)
write(b)

Yang tidak boleh : output berupa nilai atau ekspresi


DUA(4,8.5)
DUA(a,a+5)
Procedure HIT_LUAS_SEGITIGA(input a , t:real,output L : real)
{menghitung luas segitiga dengan rumus L = (alas x tinggi)}
DEKLARASI
DESKRIPSI
L a * t / 2
Algoritma HITUNG_LUAS_SEGITIGA
{program utama untuk menghitung luas segitiga}
DEKLARASI
alas , tinggi, Luas : real
Procedure HIT_LUAS_SEGITIGA(input a ,t:real,output L:real)
DESKRIPSI
write(Menghitung Luas Sebuah Segitiga)
read(alas,tinggi)
HIT_LUAS_SEGITIGA(alas,tinggi, Luas)
write(Luas segitiga = , Luas)
Procedure HITUNG_TITIKTENGAH(input T1, T2 : Titik , output
Tt : Titik)
{menghitung titik tengah dari dua buah titik T1 dan T2}
DEKLARASI

Dasar Pemrograman

DESKRIPSI
Tt.x (T1.x + T2.x) / 2
Tt.y (T1.y + T2.y) / 2
Algoritma TITIKTENGAH
{Program untuk menghitung titik tengah dari dua buah titik T1
dan T2}
DEKLARASI
type Titik : record < x : real,
y : real
>
P1, P2, Pt : Titik
Procedure HITUNG_TITIKTENGAH(input T1, T2 : Titik ,
output Tt : Titik)
DESKRIPSI
read(P1.x, P1.y)
read(P2.x, P2.y)
HITUNG_TITIKTENGAH(P1, P2, Pt)
write(Pt.x, Pt.y)

3. Parameter masukan/keluaran(input/output parameter) sebagai masukan dan keluaran


bagi prosedur
Parameter masukan digunakan pada situasi dimana informasi dikirim dari titik
pemanggilan prosedur
Parameter keluaran digunakan pada situasi dimana informasi dikirim dari titik
pemanggilan prosedur
Pada kebanyakan aplikasi, informasi harus dikirim dalam dua arah Parameter
masukan/keluaran
Dengan parameter masukan/keluaran, nama dan nilai parameter aktual dari program
pemanggil akan digunakan di seluruh bagian prosedur. Bila parameter aktual diubah
nilainya di dalam prosedur, maka sesudah pemanggilan prosedur, niai parameter aktual di
titik pemanggilan juga berubah. Contoh :
Procedure TIGA (input x,y : integer)
{Menambahkan nilai x dengan 2 dan mengurangi nilai y dengan
2}
Deklarasi
Deskripsi
x x + 2
y y 2
write(Nilai x dan y di akhir Prosedur TIGA : )
write(x = ,x)
write(y = ,y)
Algoritma FGH
{Contoh program utama yang memanggil prosedur TIGA}
Deklarasi
a , b : integer
Procedure TIGA (input x, y : integer)
Deskripsi
a 15
b 10

Dasar Pemrograman

write(Nilai a dan b sebelum pemanggilan : )


write(a = ,a)
write(b = ,b)
TIGA(a,b)
write(Nilai a dan b sesudah pemanggilan : )
write(a = ,a)
write(b = ,b)

Bila algoritma di atas ditranslasikan ke dalam salah satu bahasa pemrograman, lalu
dijalankan, hasilnya :
Nilai a dan b sebelum pemanggilan :
a = 15
b = 10
Nilai x dan y di akhir Prosedur TIGA :
a = 17
b=8
Nilai a dan b sesudah pemanggilan :
a = 15
b = 10
Procedure TIGA (input/output x,y : integer)
{Menambahkan nilai x dengan 2, mengurangi nilai y dengan 2}
Deklarasi
Deskripsi
x x + 2
y y 2
write(Nilai x dan y di akhir Prosedur TIGA : )
write(x = ,x)
write(y = ,y)
Algoritma FGH
{Contoh program utama yang memanggil prosedur TIGA}
Deklarasi
a , b : integer
Procedure TIGA (input/output x, y : integer)
Deskripsi
a 15
b 10
write(Nilai a dan b sebelum pemanggilan : )
write(a = ,a)
write(b = ,b)
TIGA(a,b)
write(Nilai a dan b sesudah pemanggilan : )
write(a = ,a)
write(b = ,b)

Bila algoritma di atas ditranslasikan ke dalam salah satu bahasa pemrograman, lalu
dijalankan, hasilnya :
Nilai a dan b sebelum pemanggilan :
a = 15
b = 10

Dasar Pemrograman

Nilai x dan y di akhir Prosedur TIGA :


a = 17
b=8
Nilai a dan b sesudah pemanggilan :
a = 17
b=8
Procedure TUKAR(input/output A, B : integer)
{Mempertukarkan nilai antara A dan B }
Deklarasi
temp : integer
Deskripsi
temp A
A B
B temp
Procedure TUKAR_A_B
{Program untuk mempertukarkan nilai antara A dan B }
Deklarasi
A , B : integer
Procedure TUKAR(input/output A, B : integer)
Deskripsi
read(A , B)
write(A , B)
TUKAR(A , B)
write(A , B)

Program dengan Prosedur atau tanpa Prosedur ?


Program yang modular menunjukkan teknik pemrograman yang baik dan terstruktur

Prosedur dengan parameter atau tanpa parameter?


Parameter digunakan sebagai media komunikasi antara prosedur dengan program
pemanggil dan dapat mengurangi kebutuhan penggunaan variabel global

Parameter Masukan atau Parameter Keluaran?


Bila prosedur menghasilkan keluaran yang dibutuhkan program pemanggil, gunakan
parameter keluaran untuk menampung keluaran tersebut.
Bila prosedur tidak menghasilkan keluaran atau keluarannya hanya digunakan di
dalam prosedur, gunakan parameter masukan. Jika prosedur menerima masukan sekaligus
keluaran pada parameter yang sama, gunakan parameter masukan/keluaran

Dasar Pemrograman

11. F U N G S I
Bentuk Umum :
Function nama_fungsi(daftar parameter) tipe_hasil
Kamus
Algoritma
.....
.....
hasil
{mengembalikan nilai}

11.1 Procedure vs function :


Function mengembalikan nilai, hampir sama seperti prosedur dengan parameter
output tetapi outputnya tidak ditampung oleh sebuah parameter/variabel melainkan
dikembalikan/dikirimkan ke program utama
Tipe_Hasil
: integer, real, boolean, string, atau tipe_bentukan seperti record
Parameter
: parameter input
Contoh fungsi :
Buat algoritma untuk menghitung hasil fungsi kuadrat F = 2x2 + 4x 6 dengan
masukan nilai x
Funsction Fungsi_Kuadrat(input x : integer) integer
Kamus
Algoritma
((2 * x * x) + (4 * x) - 6)
Algoritma Kuadrat
Kamus
i : integer
F : integer
Algoritma
i 5
F Fungsi_Kuadrat(i)
write(F)
write(Fungsi_Kuadrat(i))
if (Fungsi_Kuadrat(i) > 0) then
write(Hasil Fungsi Kuadrat Positif)
else
write(Hasil Fungsi Kuadrat Negatif)
endif
write(6 + Fungsi_Kuadrat(i) * 4)

11.2 LATIHAN
1. Buat algoritma untuk menukarkan nilai 3 buah character {proses pertukaran
menggunakan prosedur/fungsi}

Dasar Pemrograman

2. Buat algoritma yang menentukan nilai indeks mahasiswa dengan input NIM dan
nilai akhir mahasiswa tersebut. {menggunakan fungsi/prosedur untuk penentuan
indeksnya}
Ketentuan :
nA 80
: A
70 nA < 80 : B
55 nA < 70 : C
40 nA < 55 : D
nA < 40
: E
3.
Procedure One (input a , b : integer , output c : integer)
Kamus
Algoritma
if (a < b) then
c a
else
while (a b) and (a > 5) do
b b * 2
a a b
endwhile
c (a * b) + Two(a , b) * Two(a + 10 , b + a)
endif
Function Two (input p , q : integer) integer
Kamus
Algoritma
if (q = 0) then
0
else
if (p > q) then
p div q
else
q div p
endif
endif
Algoritma Mistery
Kamus
x , y , z : integer
Algoritma
read(x)
read(y)
One(x , y, z)
write(z)
z Two(x * 2 , y - 2) * 10
write(z)

Tentukan output dari algoritma tersebut jika input


x

20

15 8
20 2

output

Dasar Pemrograman

DAFTAR PUSTAKA

[1]

Inggriani Liem. Diktat Kuliah Algoritma dan Pemrograman (Bagian


Pemrograman Prosedural). 1999. Bandung : Diktat Kuliah Informatika ITB

[2]

Kadir, Abdul. Dasar Pemrograman Delphi 5.0. 2000. Yogyakarta : ANDI

[3]

Munir, Rinaldi. Algoritma dan Pemrograman 1. 2001. Bandung : Informatika

[4]

Pardosi, Mico. Turbo Pascal 7.0. 1999. Surabaya : INDAH Surabaya

[5]

Pranata, Antony. Algoritma dan Pemrograman. 2005. Yogyakarta : Graha Ilmu

[6]

Wahid, Fathul. Dasar-dasar Algoritma dan Pemrograman. 2004. Yogyakarta :


Andi Offset

Anda mungkin juga menyukai