Upload
buikhanh
View
290
Download
10
Embed Size (px)
Citation preview
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
01 87001 Team Dosen
Abstract Kompetensi
Terminologi Pemrograman Logika Pemecahan Masalah
Mampu memahami Konsep Logika dan Pemrograman
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Pendahuluan
1.1 Pengertian umum Program, Algoritma dan Flowchart
Program : sederetan instruksi atau perintah (dalam bahasa yang di mengerti oleh
komputer) untuk melaksanakan tugas-tugas tertentu, sehingga menghasilkan suatu
keluaran / output yang diharapkan.
Algoritma : urutan langkah-langkah atau instruksi-instruksi yang harus dilaksanakan
untuk memecahkan masalah.
Flowchart (Diagram alur) : adalah urutan instruksi-instruksi program yang digambarkan
dalam bentuk suatu diagram.
Bahasa pemrograman : program yang berisikan instruksi-instruksi yang dimengerti oleh
komputer.
Ada 2 klasifikasi dalam Bahasa pemrograman:
Low level language / bahasa tingkat rendah yang berorientasi pada mesin, contohnya:
bahasa mesin / machine language dan bahasa rakitan / assembly language.
High level language /bahasa tingkat tinggi adalah bahasa pemrograman yang berorientasi
pada manusia. Contohnya : BASIC, PASCAL, COBOL, FORTRAN, C.
1.2 FLOWCHART UNTUK PROGRAM KOMPUTER
Ada 2 jenis Flowchart :
1. flowchart sistem, adalah suatu gambar yang menjelaskan :
- file-file yang diproses oleh program
- jenis piranti yang digunakan oleh file
- operasi terhadap file (masukan ataupun keluaran).
2. flowchart program (biasa disebut flowchart saja), adalah suatu gambar yang menjelaskan
urutan :
- Pembacaan data
- Pemrosesan data
- Pengambilan keputusan terhadap data
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
- Penyajian hasil pemrosesan data.
A. Simbol-simbol pada Flowchart
- Simbol dan kotak Flowchart Program :
Simbol untuk menyatakan MULAI (START) ataupun SELESAI (END).
KOTAK MASUKAN, untuk membaca data yang
kemudian diberikan sebagai harga suatu variabel.
Kotak Data, digunakan untuk membaca data dan menampilkan data.
Jadi untuk pemasukan data bisa digunakan kotak “manual input”
atau kotak “data”. Contoh:
atau
KOTAK PENUGASAN, untuk memberi harga kepada suatu variabel,
atau untuk melakukan perhitungan matematika yang hasilnya diberikan
sebagai suatu variabel.
Kotak Keluaran, untuk mencetak (dan/atau menyimpan) hasil/keluaran.
Ter minator
Manual input
Data
Masukan A
Masukan A
Process
CETAK XCETAK X atau
Document
X = 43 X = Y + Z
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
KOTAK KEPUTUSAN, untuk memutuskan arah atau percabangan yang
diambil sesuai dengan kondisi yang saat itu terjadi , BENAR atau SALAH
SIMBOL PENGHUBUNG (CONNECTOR) : simbol untuk keluar/ masuk prosedur
atau proses dalam lembar/halaman yang sama
Simbol penghubung OFF PAGE CONNECTOR : simbol untuk keluar/ masuk
prosedur atau proses dalam lembar/halaman yang lain, untuk penghubung bila
diagram alur terputus disebabkan misalnya oleh pergantian halaman (tak cukup
digambar 1 halaman).
(diagram terputus pada satu halaman) (disambung pada halaman berikutnya)
- Simbol untuk Flowchart Sistem :
A < 3
?
Yes
No
OPC
Dec ision
Conn
ector
1
2
2
1
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Magnetic Magnetic Auxiliary Puncherd keyboard Program/proses
Disk Tape Storage Card
B. Memberikan Harga pada Variabel
Suatu variabel dapat kita artikan sebagai suatu besaran yang dapat berubah-ubah harganya.
Cara memberi harga kepada suatu variabel :
Dengan kotak penugasan.
(a) variabel X diberi harga 12
Selain itu, kotak penugasan dapat berfungsi antara lain untuk :
(b)
( c )
( d )
C. JENIS VARIABEL
(1) Variabel bilangan/numerik : hanya dapat diberi harga berupa bilangan nyata.
(2) Variabel untai kata atau untai aksara/string.
Dapat diberi harga berupa untai kata serta aksara (latin) yang boleh mengandung di antaranya
tanda ! * o ; ? huruf A sampai Z, angka 0 sampai 9 (sebagai simbol saja).
Stored
dataCard
X = 12
C = P - Q Variabel C diberi harga sebesar harga variabel P dikurangi variabel Q (Dalam hal ini, harga variabel P serta Q harus sudah ada). Harga yang baru dari variabel S adalah harga lama T ditambah harga variabel. Harga yang baru dari variabel N adalah harga yang lama dari variabel N ditambah 1. (dengan perkataan lain, harga variabel N bertambah).
N = N + 1
S = S + T
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Untuk membedakannya dengan variabel bilangan, nama variabel untai kata biasanya diberi
tambahan $ pada aksara terakhir.
Contoh :
Misalkan N$ merupakan nama variabel untai kata untuk menyatakan nama cottage.
Suatu untai kata Mawar2 diberikan sebagai harga variabel N$.
Contoh-contoh kasus :
1. Diagram alur untuk menghitung luas segitiga, bila diketahui ALAS = 10 dan TINGGI= 8.
2. Diagram alur untuk menjumlahkan 2 bilangan dalam himpunan data.
N$ <--- "Mawar2"
(1) memberi harga ALAS sebesar 10
(2) memberi harga TINGGI sebesar 8
(3) menghitung & memberi harga LUAS
sebesar harga : (ALAS * TINGGI) / 2
(4) mencetak harga LUAS (akan tercetak = 40).
Keterangan:
(1) Satuan data pertama (berharga 13) dibaca &
diberikan kepada variabel A, sehingga harga
variabel A menjadi = 13.
(2) Selanjutnya satuan data kedua (berharga 21)
dibaca & diberikan kepada variabel B,sehingga
harga B = 21.
(3) Menghitung/memberi harga variabel C sebesar
harga variabel A ditambah variabel B.
Baca Alas
dan Tinggi
Luas = (Alas * Tinggi)/2
Cetak Luas
berhenti
mulai
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Latihan : Berdasarkan algoritma di bawah ini buatlah bentuk flowchart-nya!
1. Buatlah algoritma untuk menuliskan nilai mutlak dari nilai yang dimasukkan oleh
pengguna.
Pemahaman masalah:
Nilai mutlak x | x| adalah sbb: | x | = x, jika x ≥ 0
| x | = -x, jika x < 0
Algoritma Nilai mutlak
x adalah variabel yang menampung nilai yang dimasukkan
Deskripsi:
1. Input nilai x.
2. Jika (x < 0) maka kerjakan perintah nomer 3, jika tidak kerjakan nomer
4
3. x -x
4. Tulis x.
Baca A dan B
C = A + B
Cetak C
berhenti
mulai
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Penjelasan algoritma:
- Baris pertama meminta masukkan bilangan yang disimpan pada variabel x.
- Baris kedua mengecek apakah nilai yang dimasukkan lebih kecil dari nol atau tidak, jika
lebih kecil maka kerjakan perintah nomer 3 jika tidak lebih kecil maka kerjakan perintah
nomer 4.
- Baris ketiga membuat nilai x menjadi positif (baris ini hanya dilakukan jika nilai x lebih
kecil dari nol)
- Baris keempat mencetak nilai x.
Algoritma mencari nilai mutlak merupakan algoritma bentuk percabangan, karena pada
algoritma di atas kita dihadapkan pada sebuah kondisi yang akan membuat program
mempunyai dua arah (lihat baris kedua).
2. Buatlah algoritma untuk mencetak sebuah kata yang diinput oleh pengguna sebanyak 5 kali.
Pemahaman masalah:
Meminta masukan berupa sebuah kata, kemudian kata tersebut tercetak sebanyak 5 kali.
Penjelasan algoritma:
- Langkah pertama meminta masukan sebuah kata yang disimpan pada variabel Kt
Algoritma mencetak kata sebanyak 5 kali
Kt adalah variabel yang digunakan untuk menampung kata yang dimasukkan
pengguna
M adalah variabel untuk menyimpan nilai perulangan.
Deskripsi:
1. Masukkan Kt
2. M = 1
3. selama (M <= 5) lakukan langkah 3 sampai dengan 5
4. cetak Kt
5. M = M +1
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
- Langkah kedua memberi nilai awal m=1, variabel M digunakan untuk menyimpan hasil
pengulangan (pencacah).
- Langkah ketiga memberikan perintah untuk mengulangi langkah ketiga hingga langkah
kelima selama nilai M masih bernilai lebih kecil atau sama dengan 5.
- Langkah keempat merupakan perintah untuk mencetak Kt.
- Langkah kelima menambahkan variabel M dengan 1. variabel M harus ditambah dengan
nilai 1 agar kondisi pada langkah ketiga ada saatnya bernilai salah, dalam hal ini
digunakan untuk membatasi perulangan.
Algoritma mencetak kata yang yang dimasukkan oleh pengguna merupakan bentuk
algoritma pengulangan.
Soal Latihan:
1. Buat Flowchart untuk menghitung Temperatur dalam derajat Celcius dan Reamuur,
temperatur dalam derajat Fahrenheit.
2. Buat Flowchart menghitung luas Trapesium sama kaki yang diketahui alas, sudut alas serta
tingginya.
3. Hitung luas dan keliling lingkaran yang diketahui jari-jarinya.
4. Hitung Luas serta panjang sisi miring segitiga siku-siku jika diketahui ke 2 sisi siku-sikunya.
5. Hitung Luas Jajaran Genjang yang diketahui 2 buah sisi serta sudut antara ke 2 sisi
tersebut.
6. Hitung Luas segi lima beraturan yang diketahui panjang sisinya.
7. Hitung Luas dan Keliling segitiga yang diketahui ketiga sisinya.
8. Hitung Jari-Jari dan Luas Lingkaran Dalam dari segitiga yang diketahui ke 3 sisinya.
9. Hitung Jari-Jari dan Luas Lingkaran Luar dari segitiga yang diketahui ke 3 sisinya.
2015 10
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
10. Hitung Luas dan keliling segi 10 beraturan yang diketahui jari-jari lingkaran luarnya.
11. Hitung Luas dan keliling segi 8 beraturan yang diketahui jari-jari lingkaran dalamnya.
12. Hitung Luas permukaan serta isi balok yang diketahui ke 3 rusuknya.
13. Hitung Luas permukaan serta isi bola yang diketahui jari-jarinya.
14. Hitung Luas permukaan serta isi tabung tertutup yang diketahui tinggi dan jari2 alasnya
Daftar Pustaka
Antony Pranata, Algoritma dan Pemrograman, J & J Learning, Yogyakarta, 2000
Rinaldi Munir, Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Informatika Bandung,
2007.
Suryadi H.S., Agus Sumin, Pengantar Algoritma dan Pemrograman Teknik Diagram Alur dan
Bahasa Basic Dasar, Gunadarma, 1993.
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Algoritma
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
02 87001 Team Dosen
Abstract Kompetensi
Terminologi Algoritma, Struktur Dasar Algoritma, Bentuk Penulisan Algoritma
Memahami Konsep Algoritma, Mampu menjelaskan tahapan-tahapan dalam pemrograman komputer
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Algoritma
2.1. Pengertian Algoritma
Sebuah algoritma merupakan deskripsi pelaksanaan suatu proses, dimana algoritma
disusun oleh sederetan langkah instruksi yang logis.
Kata logis merupakan kata kunci dalam sebuah algoritma. Langkah-langkah di dalam
algoritma harus logis, ini berarti hasil dari urutan langkah-langkah tersebut harus dapat
ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang
salah.
Sebagai contoh, tinjau persoalan mempertukarkan isi dua bejana, A dan B. Bejana A
berisi larutan yang berwarna merah, sedangkan bejana B berisi air berwarna biru. Kita ingin
mempertukarkan isi kedua bejana itu sedemikian sehingga bejana A berisi larutan berwarna
biru dan bejana B berisi larutan berwarna merah.
Untuk mempertukarkan isi dua bejana, kita memerlukan sebuah bejana tambahan yang
diperlukan sebagai tempat penampungan sementara. Sebut bejana tambahan tersebut bejana
C. Dengan menggunakan bejana bantu C ini, algoritma mempertukarkan isi dua buah bejana
yang benar adalah sebagai berikut ini:
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:
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.
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
2.2 Tahapan Pelaksanaan Program Oleh Komputer
Keterangan:
Algoritma di translasikan menjadi program dalam bahasa tingkat tinggi. Selanjutnya, program
dikompilasi dan diterjemahkan menjadi program dalam bahasa mesin dan di-link dengan berkas
library. Instruksi dalam bahasa mesin diinterpretasikan oleh CPU. Operasi yang bersesuaian
dengan setiap instruksi dilaksanakan.
2.3 Notasi Algoritma
Algoritma
Program dalam Bahasa
Tingkat Tinggi
Program dalam Bahasa
Mesin
Translasi
Kompilasi + Linking
Interpretasi oleh CPU
Operasi
(baca, tulis, hitung, perbandingan, dsb)
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Notasi
algoritma bukan notasi bahasa pemrograman, sehingga siapapun dapat membuat notasi
algoritma yang berbeda. Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan
dimengerti. Meskipun demikian untuk menghindari kekeliruan, ketaatan terhadap notasi perlu
diperhatikan. Di bawah ini notasi yang umum digunakan dalam penulisan algoritma :
2.3.1 Notasi I: menyatakan langkah-langkah algoritma dengan untaian kalimat deskriptif
Dengan notasi bergaya kalimat ini, deskripsi setiap langkah dijelaskan dengan bahasa
yang gamblang. Proses diawali dengan kata kerja seperti ‘baca’, ‘hitung’, ‘bagi’, ‘ganti’,
dan sebagainya, sedangkan pernyataan kondisional dinyatakan dengan ‘jika…maka…’.
Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang algoritmanya
besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian notasi algoritma ke notasi
bahasa pemrograman cenderung relatif sukar.
2.3.2 Notasi II: menggunakan diagram alur (Flow chart)
Diagram alir popular pada awal-awal era pemrograman dengan computer (terutama
dengan bahasa Basic, Fortran, dan Cobol). Diagram alir lebih menggambarkan aliran
instruksi di dalam program secara visual dibanding memperlihatkan struktur program.
Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah
Algoritma EUCLIDEAN
Diberikan dua buah bilangan bulat tak-negatif m dan n (m ≥ n). carilah pembagi
bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu bilangan bulat positif
terbesar yang habis membagi m dan n.
Deskripsi:
1. Jika n = 0 maka m adalah jawabannya;
Stop.
Tetapi jika m ≠ 0, lanjutkan ke langkah 2
2. Bagilah m dengan n dan misalkan r adalah sisanya.
3. ganti nilai m dengan nilai n dan nilai n dengan nilai r, lalu ulang kembali
ke langkah 1.
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas.
Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif
sukar.
tidak
2.3.3 Notasi III: menggunakan Pseudo-code
Pseudo-code adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi,
khususnya Pascal dan C. Bahasa pemrograman umumnya mempunyai notasi yang
hampir mirip untuk beberapa instruksi seperti notasi if-then-else, while-do, repeat-until,
read, write, dan sebagainya. Namun tidak seperti bahasa pemrograman yang direpotkan
dengan tanda titik koma, indeks, format keluaran, kata-kata khusus, dan sebagainya,
sembarang versi Pseudo-code dapat diterima asalkan perintahnya tidak
Baca m dan n
r = m mod n m = n n = r
Tulis n
berhenti
mulai
N = 0
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
membingungkan pembaca. Keuntungan menggunakan notasi Pseudo-code adalah
kemudahan mentranslasi ke notasi bahasa pemrograman, karena terdapat
korespodensi antara setiap Pseudo-code dengan notasi bahasa pemrograman.
KOTAK KEPUTUSAN, untuk memutuskan arah atau percabangan yang diambil
sesuai dengan kondisi yang saat itu terjadi , BENAR atau SALAH
Kata-kata yang digaris bawahi menyatakan kata-kata kunci untuk setiap notasi pseudo-
code yang digunakan.
2.4 Proses, Instruksi, dan Aksi
Pada dasarnya, sebuah algoritma merupakan deskripsi pelaksanaan suatu proses. Tiap
langkah instruksi tersebut mengerjakan suatu tindakan (aksi). Bila suatu aksi dilaksanakan,
A < 3
?
Yes
No
Algoritma EUCLIDEAN
{Dibaca dua buah bilangan bulat tak-negatif m dan n (m≥n). carilah pembagi
bersama terbesar, pbt, dari kedua bilangan tersebut, yaitu bilangan bulat positif
terbesar yang habis membagi m dan n.}
DEKLARASI:
m, n : integer {bilangan bulat yang akan dicari pbt-nya}
r : integer {sisa hasil bagi}
DESKRIPSI:
read (m,n) {m ≥ n}
while n ≠ 0 do
r m MOD n {hitung sisa hasil pembagian}
m n
n r
endwhile
{kondisi selesai pengulangan: n= 0, maka pbt(m,n) = m}
write(m)
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
maka sejumlah operasi yang bersesuaian dengan aksi itu dikerjakan oleh pemroses. Efek dari
pengerjaan suatu aksi dapat diamati dengan membandingkan keadaan pada saat aksi belum
dimulai, dan keadaan pada saat aksi selesai dikerjakan.
Tahap-tahap penyusunan algoritma seringkali dimulai dari langkah yang global lebih
dahulu. Langkah global ini diperhalus samapai langkah yang lebih rinci. Pendekatan desain
algoritma seperti ini dinamakan Top-Down design. Cara pendekatan seperti ini sangant
bermanfaat dalam membuat algoritma untuk masalah yang cukup rumit atau kompleks.
Gagasan penghalusan langkah adalah memecah proses menjadi beberapa langkah. Tiap
langkah diuraikan lagi menjadi beberapa langkah yang lebih sederhana. Penghalusan langkah
terus berlanjut samapai tiap langkah sudah cukup rinci dan tepat untuk dilaksanakan oleh
pemroses.
2.5 Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian masalah. Langkah-langkah tersebut
dapat berupa runtunan aksi, pemilihan aksi, dan pengulangan aksi. Ketiga jenis langkah
tersebut membentuk konstruksi suatu algoritma. Jadi, sebuah algoritma dapat dibangun dari
tiga buah struktur dasar, yaitu:
1. Runtunan (sequence).
2. Pemilihan (selection).
3. Pengulangan (repetition).
2..5.1 Runtunan
Sebuah runtunan terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara
berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi dilaksanakan setelah
instruksi sebelumnya selesai dilaksanakan. Urutan instruksi menentukan keadaan akhir
algoritma. Bila urutannya diubah, maka hasil akhir mungkin juga berubah.
Contoh : READ(A)
READ(B)
T = A + B
WRITE T
Instruksi di atas dilaksanakan secara berurutan atau sekuen sehingga membentuk struktur
sequential flow
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
2.5.2 Pemilihan
Adakalanya sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi. Kondisi adalah
persyaratan yang dapat bernilai benar atau salah. Dalam pemilihan dikenal beberapa struktur
pemilihan, yaitu:
If - then
Aksi hanya akan dilaksanakan apabila kondisi bernilai benar. Sebaliknya, apabila
kondisi bernilai salah, maka aksi tidak akan dilaksanakan.
Struktur Umum: if kondisi then
Aksi
Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila kondisi (persyaratan)
dipenuhi (bernilai benar), dan tidak memberikan pilihan aksi lain bila kondisi bernilai
salah.
If-then-else
Struktur pemilihan ini memberikan dua buah aksi yang akan dikerjakan tergantung pada
nilai kondisinya. Struktur umumnya:
if kondisi then
aksi 1
else
aksi 2
Else artinya ”kalau tidak”. Bila kondisi benar, aksi 1 yang akan dikerjakan, tetapi kalau
tidak, aksi 2 yang akan dikerjakan.
Contoh:
If x > y then
Tulis x sebagai bilangan terbesar
Else
Tulis y sebagai bilangan terbesar
2015 10
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Contoh diatas adalah untuk menentukan nilai terbesar dari dua buah bilangan bulat, x
dan y (andaikan x ≠ y)
If-then-else if
Apabila pilihan aksi yang dilakukan lebih dari dua buah, maka struktur pilihannya
menjadi lebih rumit, biasanya untuk pemilihan seperti ini disebut pemilihan bersarang.
Contoh: menentukan bilangan terbesar dari tiga buah bilangan: x, y, z:
If x > y then
If x > z then
Tulis x sebagai bilangan terbesar
Else
Tulis z sebagai bilangan terbesar
Else
If y > z then
Tulis y sebagai bilangan terbesar
else
Tulis z sebagai bilangan terbesar
Kelebihan struktur pemilihan terletak pada kemampuannya yang memungkinakan
pemroses mengikuti jalur aksi yang berbeda berdasarkan kondisi yang ada.
2.5.3 Pengulangan
Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak
beberapa kali. Dengan kata lain, pengulangan memungkinkan pengerjaan beberapa kali
perintah tetapi penulisan perintah tersebut hanya satu kali.
Struktur pengulangan yang umum digunakan antara lain:
Pernyataan for
Pernyataan pengulangan for digunakan jika kita sudah tahu berapa kali kita akan
mengulang satu atau beberapa pernyataan. Bentuk umum pernyataan for adalah sbb:
For pencacah := nilai_awal to nilai_akhir do
Aksi
Aksi akan dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari nilai_awal
sampai nilai_akhir
2015 11
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Pernyataan repeat-until
Pernyataan repeat-until akan melakukan pengulangan aksi hingga kondisi (persyaratan)
berhenti terpenuhi. Bentuk umum pernyataan repeat-until adalah sbb:
Repeat
Aksi
Until kondisi
Tidak seperti pada struktur for-do yang jumlah pengulangannya diketahui sebelum
pengulangan dilaksanakan, maka untuk struktur repeat-until digunakan jika jumlah
pengulangan tidak dapat diketahui di awal. Namun yang pasti, pengulangan aksi akan
terus dilakukan sampai kondisi berhenti dipenuhi.
Pernyataan while-do
Sama seperti pada pernyataan repeat-until, pada pernyataan while-do ini digunakan
untuk pengulangan yang belum diketahui pasti jumlah pengulangannya, berakhirnya
pengulangan ini ditentukan oleh suatu kondisi. Bila kondisi sudah tidak terpenuhi, maka
pengulangan akan berakhir. Dengan kata lain, selama kondisi masih terpenuhi,
pengulangan akan terus dilakukan. Bentuk umum pernyataan while-do adalah sebagai
berikut:
While kondisi do
Aksi
Catatan:
Pada pernyataan repeat-until dan while-do, pada dasarnya hampir sama yaitu
digunakan jika jumlah pengulangan belum dapat ditentukan. Tetapi terdapat perbedaan
yaitu pada pengecekan kondisi. Jika pada pernyataan while, kondisi dicek pada awal
blok pengulangan, pada pernyataan repeat-until, kondisi dicek pada akhir blok
pengulangan.
Perbedaan yang lain, bila pernyataan while mengulang pernyataan selama kondisi
masih terpenuhi, pernyataan repeat-until mengulang pernyataan selama kondisi belum
terpenuhi.
2015 12
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Latihan:
1. Buatlah algoritma dengan notasi deskriftif dengan masalah sbb:
Seorang pemuda berada di tepi sebuah sungai, pemuda tersebut membawa seekor
kambing, seekor serigala, dan sekeranjang sayur. Mereka bermaksud menyebrang sungai.
Pemuda tersebut menemukan sebuah perahu kecil yang hanya dapat memuat satu bawaan
setiap kali menyebrang. Situasi dipersulit dengan dengan kenyataan bahwa serigala tidak
dapt ditinggal berdua dengan kambing (karena serigala akan memangsa kambing) atau
kambing tidak dapat ditinggal berdua dengan sekeranjang sayur (karena kambing akan
memakan sayur). Buatlah algoritma untuk menyebrangkan pemuda dan seluruh bawaannya
itu sehingga mereka sampai ke seberang sungai dengan selamat.
2. Buatlah algoritma untuk meminta masukan tiga bilangan dari pengguna kemudian
menampilkan bilangan terkecil di antara ketiga bilangan tersebut.
3. Sebuah tabel terdiri atas kolom NIM, Nama, alamat, dan Nomor Telepon. Tabel tersebut
sudah berisi data utama sekumpulan mahasiswa di sebuah Perguruan Tinggi. Tuliskan
algoritma dalam notasi pseudo-code jika kita ingin mengetahui alamat dan nomor telepon
mahasiswa dengan NIM tertentu pada tabel tersebut.
2015 13
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Daftar Pustaka
Antony Pranata, Algoritma dan Pemrograman, J & J Learning, Yogyakarta, 2000
Moh. Sjukani, Algoritma dan Struktur Data dengan C, C++ dan JAVA, Mitra Wacana Media,
2004.
Rinaldi Munir, Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Informatika Bandung,
2007.
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
03 87001 Team Dosen
Abstract Kompetensi
Struktur Program PASCAL dan Perintah sederhana dalam bahasa PASCAL
Mengerti Struktur Program PASCAL dan Mampu membuat program sederhana dalam bahasa PASCAL
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Bahasa Pascal
Sejarah Pascal
Pascal adalah bahasa tingkat tinggi (high level language) yang orientasinya pada segala
tujuan, dirancang oleh Profesor Niklaus Wirth dari Technical University di Zurich, Switzerland.
Nama Pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan
philosophi terkenal abad 17 dari Perancis.
Profersor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali untuk
komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan
tujuan untuk mengajar program komputer secara sistematis, khususnya untuk memperkenalkan
bahasa pemrograman yang terstruktur (structured programming). Jadi Pascal adalah bahasa
yang ditujukan untuk membuat program terstruktur.
BAHASA KOMPUTER
Ada tiga jenis bahasa yang dikenal oleh komputer :
1. Bahasa Mesin (Machine Language)
Instruksi komputer yang disimpan dalam memori komputer berupa bits (bilangan biner, yaitu
0 atau 1). Instruksi bahasa mesin sangat tergantung kepada hardware dan desain dari
komputer itu sendiri. Oleh karena itu komputer yang berbeda mungkin saja memiliki kode
mesin yang berbeda pula. Pemrograman dalam bahasa mesin sangat sulit dan memerlukan
waktu yang lama.
Berikut contoh dari bahasa mesin
Addres Content
001 10011001
002 10011101
003 00010101
004 10101100
005 10001001
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
. . . . . .
2. Bahasa Assembly
Adalah salah satu bahasa tingkat rendah (low level language). Dalam bahasa assembly,
programmer menulis instruksi dengan menggunakan kode alphabetic yang dikenal dengan
nama mnemonic. Bahasa assembly sangat bergantung kepada jenis instruksi komputer
yang digunakan. Sebagai contoh bentuk menmonic untuk operasi penambahan,
pengurangan, perkalian dan pembagian dinyatakan dengab kata ADD, SUB, MPY dan DIV
• Berikut contoh dari bahasa assembly
MOV N, R0
MOV #1000, R1
MOV #2000, R2
MOV #3000, R3
JSR R7, ROUTINE
HALT
ROUTINE MOV (R1) +, R4
ADD -(R2),R4
MOV R4, (R3) +
INC R0
BL1 ROUTINE
RTS R7
N : WORD -25
3. Bahasa tingkat tinggi (High Level Language)
Dalam bahasa tingkat tinggi, instruksi program atau pernyataan ditulis dengan
menggunakan bahasa manusia untuk menyatakan data yang akan dimanipulasi atau
aksi yang akan dilakukan.Bahasa tingkst tinggi tidak bergantung kepada jenis instruksi
komputer, artinya tidak tergantung pada jenis perangkat komputer yang digunakan.
Dengan demikian bahasa tingkat tinggi harus dapat diterjemahkan kedalam bahasa
mesin dan harus dapat dieksekusi pada koputer yang berbeda. Program yang
menerjemahkan bahasa tingkat tinggi kedalam bahasa mesin disebut compiler, program
yang digunakan untuk menulis bahasa tingkat tinggi disebut dengna source program.
Program yang diterjemahkan Compiler kedalam bahasa mesin disebut dengan Object
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Program. Contoh dari bahasa tingkat tinggi adalah bahasa ADA, BASIC, COBOL,
FORTRAN, LISP, MODULA-1, PASCAL, C, C++ dan lain-lain.
Kompilasi & Execusi
Sistem komputer terdiri dari perangkat keras (hardware) dan perangkat lunak (software).
Proses kompilasi dan eksekusi pada bahasa tingkat tinggi terjadi dalam sistem komputer.
Proses tersebut dapat digambarkan sebagai berikut :
Langkah-langkah dalam pemrograman
a. Menulis Program
b. menjalankan dan menguji kebenaran program
c. jika terjadi kesalahan (logika maupun kaidah) program diperbaiki dan
d. kembali ke langkah b.
Langkah-langkah tersebut dapat di gambarkan dengan Flowchart.
SISTEM KOMPUTER
Pascal
Compiler Object
Program Link
Executable
Program C
O
M
P
U
T
E
R
Source
Program
Input
Data
Output
Library
Procedur
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Struktur Program Pascal
Struktur dari suatu program Pascal terdiri dari sebuah judul program (optional) dan suatu blok
program (block program) atau badan program (body program).
Judul program (program heading)
Blok program dibagi lagi menjadi dua bagian, yaitu
bagian deklarasi (declaration part).
Bagian deklarasi dapat terdiri dari
deklarasi label (label declaration),
deklarasi konstanta (constant declaration),
deklarasi tipe (type declaration),
deklarasi variabel (variabel declaration),
deklarasi prosedur (procedure declaration) dan
deklarasi fungsi (function declaration).
Bagian pernyataan (statement part)
• Program Pascal Sederhana
Program berikut ini adalah program Pascal yang sederhana yang bertujuan untuk
mencetak kalimat Hello World pada layar. Pada bagian kiri program terdapat angka yang
menunjukkan baris program. Angka ini akan digunakan untuk menjelaskan makna dari
penulisan tersebut. Bagian tersebut bukan merupakan bagian dari struktur program
sehingga tidak perlu ditulis pada saat membuat program.
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
• Tutorial 1.1
{1} program tutorial1; uses wincrt;
{2} var
{3} world_stmt: string;
{4} begin
{5} world_stmt := 'Hello world!';
{6} writeln(world_stmt);
{7} end.
Penjelasan Program Sederhana
Berikut penjelasan dari setiap baris program diatas,
{1} Baris ini merupakan nama program, dan klausa program (uses).Uses adalah sintak program
yang digunakan untuk memanggil library atau *unit*. Crt / Wincrt adalah adalah salah satu
library yang paling banyak digunakan didalam program Pascal. Masih banyak lagi libray
yang disediakan oleh program pascal. Dengan library ini Compiler dapat mengetahui
library yang diperlukan.
{2} var adalah bagian awal dari blok program. Bagian ini memberitahukan compiler bahwa
ada variabel yang akan didefinisikan.
{3} world_stmt adalah nama dari sebuah variabel. Variabel tersebut dideklarasikan
dengan tipe string.
{4} begin adalah sintak yang menunjukkan awal dari sebuah blok kode program
{5} & {6} adalah perintah program. Perintah-perintah program ini akan dijelaskan nanti.
{7} end adalah akhir dari sebuah blok program.
Perintah-Perintah Dasar Pascal
• Definisi Variabel
o String : adalah tipe teks atau kalimat. Contoh : “hello world”, “informatika”.
o Integer : adalah Bilangan yang bukan bilangan desimal. Contoh : 23, 12, 9
o Char : adalah bagian dari string. Contoh “ “h”, “o”, “1”
o Real : adalah bilangan desimal. Contoh : 23.5 adalah bilangan real
Komentar (Comments) Komentar adalah teks yang ditulis dengan tujuan untuk
menjelaskan maksud dari kode program yang ditulis. Komentar ditulis dengan
menggunakan tanda { atau (* untuk tanda pembukan dan *) untuk tanda penutup.
Pemberian Nilai (Assignment) Dalam Pascal
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Pemberian nilai (assignment) ke sebuah variabel dilakukan dengan menggunakan tanda
‘:=’. Berikut contoh pemberian nilai (assignment) :
o choice_char := 'a';
{ Nilai yang diberikan terhadap variabel yang bertipe karakter. Untuk tipe karakter ini
juga nilai yang diberikan menggunakan tanda ‘}
o money := 3.25;
{ Nilai yang diberikan terhadap variabel yang bertipe real}
o coins := 10;
{ Nilai yang diberikan terhadap variabel yang bertipe integer}
Contoh Program Pertama :
Program Pendahuluan
Begin
Writeln(‘Hello World’);
End.
Hasil eksekusi program:
Hello World
Mengenal Prosedur Writeln dan Readln
Dalam bahasa pascal, prosedur yang digunakan untuk melakukan penulisan adalah Write
dan Writeln. Perbedaan dari kedua buah prosedur ini hanyalah terdapat pada posisi kursornya.
Pada prosedur Write kursor akan berada di belakang teks yang dituliskan. Sedangkan pada
prosedur Writeln, setelah menuliskan teks maka posisi kursor akan dipindahkan ke baris
berikutnya. Selanjutnya untuk proses pembacaan, bahasa Pascal memiliki prosedur Read,
Readln dan ReadKey. Namun prosedur yang sering digunakan adalah Readln.
Komentar Program
Komentar program merupakan bagian program yang tidak ikut dieksekusi sehingga
kehadirannya tidak mempengaruhi jalannya program. Pada umumnya bahasa Pascal hanya
mendukung dua macam cara untuk membuat komentar program, yaitu:
1. Menggunakan tanda (*...*)
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Komentar ini dapat digunakan untuk menuliskan komentar yang banyaknya lebih dari satu
baris.
Contoh
(* Ini adalah komentar program yang banyaknya satu baris*)
(* Ini juga merupakan komentar program dengan banyak baris lebih dari satu*)
2. Menggunakan tanda {...}
Komentar ini lebih sering digunakan oleh para programmer Pascal karena lebih singkat dan
sederhana.
Contoh:
{ Ini adalah komentar program yang banyaknya satu baris}
{ Ini juga merupakan komentar program dengan banyak baris lebih dari satu}
Reserved Word
Reserved Word adalah kata-kata baku yang digunakan dalam program dan sudah
terintergrasi dalam pascal dan juga mempunyai bentuk serta kegunaan tertentu yang telah
didefinisikan oleh Pascal.
Reserved Word tidak boleh didefinisikan kembali oleh pemakai, sehingga tidak dapat
digunakan sebagai pengenal (Identifier). Dalam bahasa pemrograman Pascal, beberapa
Reserved Word dalam Pascal antara lain:
AND DOWNTO IN OF STRING ASM
OR INHERITED THEN ARRAY END
TO BEGIN EXPORTS INTERFACE PROCEDURE TYPE
FILE LABEL PROGRAM UNIT CONST FOR
NIL RECORD REPEAT FUNCTION CONSTRUCTOR MOD
GOTO DESTRUCTOR LIBRARY SET VAR DIV
ELSE PACKED CASE UNTIL USES IF
NOT SHL WHILE DO IMPLEMENTATION
OBJECT SHR WITH INLINE
.
2015 10
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Selain dari Reserved Word di atas, Turbo Pascal masih memiliki tambahan Reserved
Word berikut:
ABSOLUTE ASSEMBLER () FAR FORWARD INDEX
Statemen-statemen yang digunakan untuk pengaturan letak layar.
# ClrScr [prosedur].
Perintah ini digunakan untuk membersihkan layar.
sintaks: ClrScr; �[Clear screen]
# GotoXY[prosedur].
Untuk menempatkan posisi kursor pada layar.
Sintaks: GotoXY(X, Y: Byte);
Keterangan : X = sumbu X (posisi horisontal)
Y = sumbu Y (posisi vertikal)
# DelLine [prosedur].
Untuk menghapus sebuah baris pada posisi kursor dan menaikkan baris-baris dibawahnya.
Sintaks: DelLine;
# InsLine [prosedur].
Untuk menyisipkan sebuah baris pada posisi kursor dan menggeser kebawah tampilan-
tampilan baris dibawahnya.
Sintaks: InsLine;
Statemen yang digunakan untuk memanipulasi string.
# ConCat[fungsi].
Untuk menggabungkan 2 atau beberapa variabel string.
Sintaks: ConCat (s1 [,s2,...,sn]: String) : String;
contoh: ConCat ('ABC','DEF') { ABCDEF }
# Copy [fungsi].
Mengambil satu atau beberapa karakter dari sebuah string.
Sintaks: Copy (S,Index,Count) : String;
Keterangan :
2015 11
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
S = sebuah string (string).
Index = posisi awal kita akan mengambil beberapa karakter (integer)
Count = banyaknya karakter yang akan diambil (integer).
# Delete [prosedur].
Menghapus sebagian karakter dari sebuah string.
Sintaks: Delete (S,Index,Count);
Keterangan : sama dengan statemen Copy.
# Insert [prosedur].
Menyisipkan satu atau beberapa karakter ke dalam sebuah string.
Sintaks: Insert (Source,var S,Index);
Keterangan : Source = sumber string untuk disisipi (string)
var S = string tujuan yang akan disisipi oleh string Source (string)
Index = posisi mulai (integer).
# Length [fungsi].
Memberikan nilai panjang dari suatu string (jumlah karakter dalam string).
Sintaks: Length (S);
Keterangan : S = string
Length(S) menghasilkan nilai integer.
# Pos [fungsi].
Mencari posisi sebuah bagian string (substring) didalam sebuah string.
Sintaks: Pos (Substr,S); {menghasilkan nilai Byte}
Keterangan : Substr = substring yang akan dicari posisinya di dalam sebuah string S.
Bila bernilai 0 berarti nilai string yang dicari tidak ada.
# Str [prosedur].
Merubah nilai numerik ke dalam nilai string.
Sintaks: Str (N,S);
Keterangan :
N = data tipe integer,
S = data tipe string.
# Val [prosedur].
2015 12
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Merubah nilai string ke dalam nilai numerik.
Sintaks: Val (S,N,P);
Keterangan :
S = nilai string,
N = nilai real,
P = posisi salah.
Nilai string harus berisi angka, plus atau minus, bila tidak berarti kesalahan dan letak
kesalahannya ditunjukkan oleh variabel posisi salah. Jika benar, maka nilai variabel tsb = 0
(nol).
# UpCase [fungsi].
Memberikan huruf kapital dari argumen.
Sintaks: UpCase (S);
Keterangan :
S = variabel bertipe karakter.
2015 13
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Daftar Pustaka
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Rinaldi Munir, Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Informatika Bandung,
2007.
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
04 87001 Team Dosen
Abstract
Kompetensi
Variabel, Konstanta dan Jenis Tipe Data
Memahami konsep penamaan dan tipe data dalam bahasa pemrograman
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Tipe, Nama dan Nilai
Untuk mendeklarasikan variabel, sebelumnya harus ditentukan tipenya terlebih dahulu.
Tipe ini menentukan nilai yang dapat disimpan variabel tersebut dan operator-operator apa saja
yang dapat dikenakan padanya.
Suatu tipe menyatakan pola penyajian data dalam komputer. Mendefinisikan tipe berarti :
menentukan nama tipe data itu
mendefinisikan domain nilai yang dapat dimiliki
perjanjian tentang cara menulis tetapan bertipe tersebut
operator yang dapat dioperasikan terhadap data bertipe tersebut
Tipe data dapat dikelompokan menjadi dua macam :
1. tipe dasar / sederhana :
- bilangan logik
- bilangan bulat
- bilangan riil
- karakter
2. tipe bentukan :
- rekaman (record)
- String
- Larik (array)
Dan secara rinci ada enam kelompok tipe data, yaitu :
1. Tipe sederhana. Tipe ini dibagi lagi menjadi dua tipe, yaitu:
a. Tipe ordinal. Tipe ordinal sendiri dibagi lagi menjadi beberapa tipe, yaitu :
Tipe bilangan bulat
Tipe boolean
Tipe karakter
Tipe terbilang
Tipe subjangkauan
b. Tipe real
2. Tipe string, yaitu sekumpulan karakter
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
3. Tipe terstruktur. Tipe ini dibagi lagi menjadi lima, yaitu :
Tipe larik (array)
Tipe rekaman
Tipe objek
Tipe himpunan
Tipe berkas
4. Tipe pointer
5. Tipe prosedural
6. Tipe objek
Tidak semua tipe diatas akan dibahas pada modul ini, karena memang ada beberapa tipe data
yang jarang digunakan.
4.1. Tipe Dasar
Dalam dunia pemrograman, yang termasuk tipe dasar adalah bilangan logika, bilangan
bulat, karakter, bilangan Riil, dan string. Tiga tipe dasar yang pertama disebut juga tipe ordinal
karena setiap konstanta nilainya dapat ditransformasikan ke suatu nilai integer.
4.1.1. Bilangan Logika
Nama Tipe
Nama tipe bilangan logik adalah boolean
Ranah Nilai (jangkauan)
Bilangan logik hanya mengenal dua buah nilai: benar (true) atau salah (false). Istilah
“bilangan” pada “bilangan logik” muncul karena nilai “benar” dan “salah” dapat
dinyatakan dengan angka 1 dan 0 (atau sebaliknya tergantung konvensi yang
digunakan).
Konstanta
Karena ranah nilai tipe boolean hanya beranggotakan dua buah nilai, maka konstanta
(constant) atau tetapan yang terdapat pada tipe ini adalah true dan false.
Operasi–operasi yang dapat dilakukan terhadap tipe boolean dikenal dengan operasi
logika atau operasi boolean. Operasi logika menghasilkan nilai true atau false.
Operator yang umum digunakan untuk operasi logika adalah: not, and, or, xor.
a b a and b a or b a xor b
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
true true true true false
true false false true true
false true false true true
false false false false false
4.1.2. Bilangan Bulat
Nama Tipe
Nama tipe bilangan bulat adalah integer
Ranah Nilai (jangkauan)
Dalam algoritma kita dapat mendefinisikan ranah tertentu untuk obyek yang kita
definisikan. Pendefinisian ranah ini diperlukan untuk menyatakan bahwa nilai obyek
hanya boleh berada dalam ranah tersebut. Misalnya obyek “jam“ didefinisikan bertipe
bilangan bulat dengan ranah nilai untuk “jam” adalah dalam {0..23}. implementasi tipe
integer dalam bahasa pemrograman tergantung pada kompilator bahasa yang
digunakan.
Tipe bilangan bulat adalah tipe yang memiliki keterurutan. Ini artinya, bila sebuah nilai
bilangan bulat diketahui, nilai sebelumnya (predecessor) dan nilai sesudahnya
(successor) dapat ditentukan. Contohnya, predecessor dari 8 adalah 7, sedangkan
successor-nya adalah 9.
Konstanta
Konstanta untuk nilai bertipe bilangan bulat harus ditulis tanpa mengandung titik
desimal.
Operasi
Operasi yang dilakukan terhadap bilangan bulat ada dua macam, yaitu operasi
aritmetika dan operasi perbandingan.
a. Operasi Aritmetika
Operasi aritmetika terhadap bilangan bulat dengan sembarang operator aritmetika
akan menghasilkan nilai yang bertipe bilangan bulat juga. Operator aritmetika yang
berlaku pada bilangan bulat adalah:
+ (tambah)
- (kurang)
* (kali)
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
div (bagi)
mod (sisa hasil bagi)
Operator div (divide) adalah operator pembagian khusus untuk bilangan bulat yang
memberikan hasil pembagian berupa bilangan bulat, sedangkan mod (modulo)
memberikan sisa hasil pembagian.
Obyek yang dioperasikan disebut operand. Misalkan pada operasi a + b, masing-
masing a dan b adalah operand, sedangkan “+” adalah operatornya. Semua
operator di atas membutuhakan dua buah operand dalam pengoperasiannya,
sehingga disebut juga operator biner. Khusus untuk operator “-“, dapat juga
menjadi operator uner, karena dapat dioperasikan sebagai dengan satu operand,
misalnya -5, -25, dan sebagainya.
b. Operasi Perbandingan
Operasi perbandingan terhadap bilangan bulat dengan salah satu operator
relasional menghasilkan nilai boolean (true atau false). Operator perbandingan untuk
bilangan bulat adalah:
< (lebih kecil)
< = (lebih kecil atau sama dengan)
> (lebih besar)
> = (lebih besar atau sama dengan)
= (sama dengan)
< > (tidak sama dengan)
4.1.3. Bilangan Riil
Bilangan riil adalah bilangan yang mengandung pecahan desimal, misalnya 3.65,
0.0003,, 2.60240000E-6, .24, dan lain-lain.
Nama Tipe
Nama tipe bilangan riil adalah real
Ranah Nilai (jangkauan)
Dalam implementasinya , tipe real mempunyai rentang nilai yang terbatas tergantung
dengan kompilator yang digunakan (secara teoritis tipe bilangan riil memiliki rentang
nilai yang tidak terbatas).
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Konstanta
Setiap konstanta yang bertipe bilangan riil harus ditulis dengan tanda titik desimal.
Operasi
Operasi yang dilakukan terhadap bilangan riil ada dua macam, yaitu operasi aritmetika
dan operasi perbandingan.
a. Operasi Aritmetika
Operasi aritmetika terhadap bilangan riil dengan sembarang operator aritmetika akan
menghasilkan nilai yang bertipe bilangan riil juga. Operator aritmetika yang berlaku
pada bilangan riil adalah:
+ (tambah)
- (kurang)
* (kali)
/ (bagi)
Umumnya kompilator bahasa pemrograman membolehkan operasi campuran, yaitu
operasi aritmetika dengan salah satu operand-nya bertipe bilangan riil sedangkan
operand lainnya bilangan bulat. Oleh kompilator tersebut, nilai operand bilangan
bulat dikonversi menjadi bilangan riil. Hal ini juga berlaku bila semua operand
merupakan bilangan bulat, sedangkan peubah penampungnya bertipe riil. Sedapat
mungkin di dalam algoritma kita menghindari operasi campuran.
b. Operasi Perbandingan
Operasi perbandingan terhadap bilangan riil dengan salah satu operator relasional
menghasilkan nilai boolean (true atau false). Operator perbandingan untuk bilangan
riil adalah:
< (lebih kecil)
< = (lebih kecil atau sama dengan)
> (lebih besar)
> = (lebih besar atau sama dengan)
< > (tidak sama dengan)
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Pada operasi perbandingan terhadap bilangan riil tidak mengenal operator
kesamaan atau “=”. Hal ini karena bilangan riil tidak dapat disajikan secara tepat
oleh komputer. Misalnya 1/3 tidak sama dengan 0.3333333, sebab 1/3 =
0.33333333……….. (denga angka tiga yang tidak pernah berhenti).
4.1.4. Karakter
Tidak seperti tipe bilangan bulat yang digunakan untuk menyimpan data numeris, tipe
karakter digunakan untuk menyimpan data alfanumeris, seperti A, Z, @, $, 1, 9, &, *, dsb.
Nama Tipe
Tipe data karakter didefinisikan dengan char
Ranah Nilai (jangkauan)
Dalam hal ini bisa berupa apa saja, termasuk semua kode ASCII
Konstanta
Tetapan untuk data bertipe karakter harus diapit oleh tanda petik tunggal.
Operasi
Operasi yang dapat dilakukan terhadap tipe karakter adalah operasi perbandingan.
Operator perbandingan yang berlaku untuk tipe karakter adalah:
< (lebih kecil)
< = (lebih kecil atau sama dengan)
> (lebih besar)
> = (lebih besar atau sama dengan)
= (sama dengan)
< > (tidak sama dengan)
Seperti halnya pada tipe bilangan bulat, tipe karakter juga mempunyai ketentuan
(successor dan predecessor) yang ditentukan oleh cara pengkodeannya di dalam
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
komputer, misalnya pengkodean ASCII. Operasi dengan operator perbandingan akan
menghasilkan nilai boolean.
Contoh:
‘a’ = ‘a’ (hasil: True)
‘T ’= ’t’ (hasil: False)
‘m’ < ‘z’ (hasil: True)
4.2. Variabel/ Parameter
Variabel adalah identifier yang berisi data yang dapat berubah-ubah nilainya didalam
program. Contoh variabel (pengenal) yang benar :
semester_1
N2
K
HargaBarang
Nilai_Akhir
JumlahPenduduk
Jumlah_Total
Contoh variabel identifier (pengenal) yang salah :
Semester 1
2N
Harga Barang
Jumlah-Penduduk
4.3. Operator
Pada dasarnya ada tujuh macam operator, yaitu :
1. operator pemberian nilai, contoh : =
2. operator aritmetik , contoh : +, - , *, /, div, mod
3. operator pemanipulasi bit, contoh SHL, SHR
4. operator Boolean, contoh : And, Or, Nand, Nor, Xor
2015 10
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
5. operator pembanding, contoh : >, >= , <, <=, <>
6. operator himpunan, contoh : + (Union) , - (Selisih) , * (Intersection)
7. operator string, contoh : + (concat)
Tapi pada modul ini tidak akan dibahas semua operator tersebut, hanya beberapa saja,
mengingat keterbatasan yang ada.
4.3.1. Operator Pemberian Nilai
Operator yang paling sering digunkan adalah operator pemberian nilai. Contoh :
A := 12 ; {untuk tipe bil. Bulat / integer}
B := ‘Hallo….’ ; {untuk tipe string}
Phi := 3.14 ; {untuk tipe real}
4.3.2. Operator Aritmetik
Operator aritmetik hanya dapat dipakai pada operand bertipe bilangan bulat dan riil. Ada enam
macam operator aritmetik, yaitu :
Operator Operasi Tipe Operan Tipe Hasil
+ Penjumlahan Bil. Bulat
Bil. Real
Bil. Bulat
Bil. Real
- Pengurangan Bil. Bulat
Bil. Real
Bil. Bulat
Bil. Real
* Perkalian Bil. Bulat
Bil. Real
Bil. Bulat
Bil. Real
/ Pembagian Bil. Bulat
Bil. Real
Bil. Real
Bil. Real
Div Pembagian bil.
Bulat
Bil. Bulat Bil. Bulat
Mod
Sisa
pembagian
(modulus)
Bil. Bulat Bil. Bulat
2015 11
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Berikut ini adalah contoh penggunaan operator aritmetik :
X := y + z ;
Z := a – b – c – d ;
L := 5 * 9 * 3.14 ;
X := a / b ;
C := 10 div 2 ;
D := i mod j ;
Latihan:
Tuliskan rumus berikut dalam notasi algoritma:
1. L = ½ . a . t L := 0.5 * a * t ;
2. C = V B2 + A2 C := V * Sqrt (sqr (B) + sqr (A)) ;
3. X = 2a2 + 2ab + c X := 2 * sqr (a) + 2 * a * b + c ;
4. Vt = Vo . t + 2 . a . t2 Vt := Vo * t + 2 * a * sqr (t);
5. a = 10 mod 3 a := 10 mod 3 ;
6. b = 10 div 3 b := 10 div 3 ;
Buatlah sebuah algoritma dengan spesifikasi sbb:
(a) menampilkan tulisan ‘Halo, siapa namamu?’
(b) meminta pengguna memasukkan namanya
(c) menuliskan pesan ‘senang berteman denganmu, ‘ <nama yang dimasukkan>
2015 12
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Tuliskan program Pascal untuk soal latihan pada modul 1 No. Sampai dengan No.14 sesuai
dengan kelompok masing-masing
Daftar Pustaka
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Rinaldi Munir, Algoritma & Pemrograman Dalam Bahasa Pascal dan C, Informatika Bandung,
2007.
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
05 87001 Team Dosen
Abstract Kompetensi
Runtunan Memahami Struktur Kendali Proses Runtunan
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Runtunan
Algoritma merupakan runtunan (sequence) satu atau lebih instruksi, yang berarti bahwa:
1. Tiap instruksi dikerjakan satu persatu;
2. Tiap instruksi dilaksanakan tepat sekali; tidak ada instruksi yang diulang;
3. Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi
sebagaimana yang tertulis di dalam teks algoritmanya;
4. akhir dari instruksi terakhir merupakan akhir algoritma.
Urutan instruksi di dalam algoritma adalah penting. Urutan instruksi menunjukkan urutan
logik penyelesaian masalah. Bergantung pada masalahnya, urutan instruksi yang berbeda
mungkin tidak ada pengaruhnya terhadap solusi persoalan, tetapi mungkin juga menghasilkan
keluaran yang berbeda pula.
5.1. Urutan instruksi yang tidak berpengaruh terhadap solusi persoalan
Contoh kasus:
Dibaca dua buah nilai integer, A dan B. Hitung jumlah keduanya dan hasil kali keduanya,
lalu cetak jumlah dan hasil kali tersebut.
Kedua algoritma di atas akan menghasilkan keluaran yang sama meskipun urutan
instruksinya diubah.
Algortima Runtunan_1
Deklarasi:
A, B, C, D : integer
Deskripsi:
Read(A, B)
C A + B
D A * B
Write(C,D)
Algortima Runtunan_2
Deklarasi:
A, B, C, D : integer
Deskripsi:
Read(A, B)
D A * B
C A + B
Write(C,D)
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
5.2. Urutan instruksi berpengaruh terhadap solusi persoalan
Contoh kasus:
Diketahui dua buah nilai integer, masing-masing disimpan di dalam dua buah peubah
(variabel), A dan B. Bagaimana cara mempertukarkan nilai A dan B ? misalnya, sebelumnya
pertukaran A=8 dan B=5, maka setelah pertukaran, nilai A=5 dan B=8.
Dalam mempertukarkan nilai dua buah variabel, perlu digunakan variabel bantu, misalnya
temp.
Kedua algoritma di atas akan memberikan hasil yang berbeda. Pada algoritma pertama
akan memberikan hasil yang diinginkan sebaliknya pada algortima kedua nilai A da nilai b tidak
akan bertukar.
Contoh:
1. Tulislah program untuk menampilkan jumlah hari, jam, menit, dan detik dari masukan
berupa lamanya waktu dalam detik. Sebagai contoh, masukan 100.000 detik akan
menghasilkan keluaran: 1 hari, 3 jam 46 menit dan 40 detik. Keluaran dari program ini
adalah banyaknya hari, jam, menit dan detik dari waktu detik yang dimasukan.
Algoritma Tukar_1
Deklarasi:
A : integer {nilai pertama}
B : integer {nilai kedua}
Temp : integer {variabel bantu}
Deskripsi:
Read(A, B)
Write(A,B)
temp A
A B
B temp
Write(A,B)
Algoritma Tukar_2
Deklarasi:
A : integer {nilai pertama}
B : integer {nilai kedua}
Temp : integer {variabel bantu}
Deskripsi:
Read(A, B)
Write(A,B)
temp A
B temp
A B
Write(A,B)
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Jawab:
Misalkan masukan 100.000 detik. Langkah-langkah penghitungan tersebut dapat diltuliskan
sebagai berikut:
- Banyaknya hari = 100.000 / (60 * 60 * 24) = 100.000 / 86.400 = 1 hari.
- Banyaknya jam = (100.000 – 1 * 86.400)/ (60 * 60) = 13.600 / 3600 = 3 jam
- Banyaknya menit = (13.600 – 3 * 3.600) / 60 = 2.800 / 60 = 46 menit
- Banyaknya detik = (2.800 – 46 * 60) = 2.800 – 2.760 = 40 detik.
Berdasarkan contoh penghitungan di atas, maka dapat dituliskan algoritma pencarian hari,
jam, menit dan detik adalah sebagai berikut:
Jika algoritma di atas ditranslasikan ke bahasa Pascal, digunakan tipe data longint untuk
variabel detik karena range(ranah nilai) tipe integer terbatas, sedangkan tipe longint
mempunyai range yang lebih besar dari integer.
Algortima Konversi_detik
Deklarasi
Detik : longint;
Hr, jm, mn, dt : integer;
Deskripsi
Read(detik)
hr detik / 86400
detik detik – hr * 86400
jm detik / 3600
detik detik – jm * 3600
mn detik / 60
detik detik – mn * 60
dt detik.
Write(hr, jm, mn, dt)
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Berikut ini Program Konversi Detik dalam bahasa Pascal:
Program Konversi_Detik
Const Satuhari = 60 * 60 * 24;
Var Detik: longit;
hr, jm, mn, dt: integer;
Begin
Write (’masukkan waktu (dalam detik): ’); Readln(detik);
Writeln(detik,’ detik terdiri dari’);
hr := detik div satuhari;
detik := detik – hr * satuhari;
jm := detik div 3600;
detik := detik – jm * 3600;
mn := detik div 60;
dt := detik – mn * 60;
Writeln(hr, ’ hari’);
Writeln(jm, ’ jam’);
Writeln(mn, ’ menit’);
Writeln(dt, ’ detik’);
End.
Keluaran program di atas adalah sebagai berikut:
Masukkan waktu (dalam detik) : 100000
100000 detik terdiri dari:
1 hari
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
3 jam
46 menit
40 detik
2. Dibaca nama karyawan dan gaji pokok bulanannya. Gaji bersih yang diterima pegawai
adalah: gaji bersih = gaji pokok + tunjangan – pajak
Tunjangan karyawan dihitung 20% dari gaji pokok, sedangkan pajak adalah 15% dari gaji
pokok ditambah tunjangan. Nama karyawan dan gaji bersihnya dicetak ke piranti keluaran.
Tuliskan algoritmanya.
Jawab:
Tunjangan = 0.2 * gaji pokok
Pajak = 0.15 * (gaji pokok + tunjangan)
Gaji bersih = gaji pokok + tunjangan – pajak
Dari ketentuan di atas kita dapat tuliskan algoritma sebagai berikut:
Berikut ini program menghitung Gaji Karyawan yang dituliskan dalam bahasa Pascal:
Program Mengitung_Gaji_Karyawan;
Algoritma Gaji_Karyawan
Deklarasi
Nama : string
GaPok, Tunjangan, GaBer : real
Deskripsi
Read (Nama, GaPok)
Tunjangan 0.2 * GaPok
Pajak 0.15 * (GaPok + Tunjangan)
GaBer GaPok + Tunjangan – Pajak
Write(nama, GaBer)
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Var Nama : string[25];
Gapok, tunjangan, gaber : real;
Begin
Write(’Masukkan Nama Karyawan : ’); Readln(nama);
Write(’Masukkan Gaji Pokok : ’); Readln (gapok);
Tunjangan := 0.2 * gapok;
Pajak := 0.15 (gapok + tunjangan);
Gaber := gapok + tunjangan – pajak;
Writeln(’Gaji Bersih : ’, gaber:7:2);
End.
Jika Program dijalankan maka keluaran dari program adalah sebagai berikut:
Masukkan Nama Karyawan : Yahya
Masukkan Gaji Pokok : 1000000
Gaji Bersih : 1020000.00
3. Buatlah program untuk mencari nilai jam, menit, detik dari total detik yang dimasukkan
Tampilan program sbb:
Masukkan Total detik: 4000
1 jam 6 menit 40 detik
Algoritma mendapatkan Jam Menit dan Detik
Deklarasi
jj, mm, dd: integer
Detik, sisa: long Integer
Deskripsi
Read (Detik)
jj detik div 3600
sisa detik mod 3600
mm sisa div 60
dd sisa mod 60
Write(jj, mm, dd)
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Latihan:
1. Buatlah Algoritma dalam bentuk pseudocode dan tuliskan kode programnya dalam
bahasa Pascal untuk menukar dua buah bilangan. Pada algoritma tersebut tidak
diperkenankan menukar nama variabel saja tetapi nilai kedua variabel tersebut yang
dipertukarkan. Jika program tersebut dijalankan maka hasil tampilan adalah sebagi
berikut:
Masukkan Nilai 1= 10
Masukkan Nilai 2= 35
Penukaran nilai....
Nilai 1= 35
Nilai 2= 10
2. Buatlah Algoritma dalam bentuk flowchart dan program dalam Pascal untuk
menampilkan operasi aritmatika dari 2 buah bilangan bulat yang di-input
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
3. Buatlah Algoritma dalam bentuk flowchart dan program dalam Pascal untuk
menampilkan operasi relasional dari 2 buah bilangan bulat yang di-input
4. Buatlah Algoritma dalam bentuk flowchart dan program dalam Pascal untuk
menampilkan operasi Logika dan Manipulasi-Bit dari 2 buah bilangan bulat yang di-
input.
Daftar Pustaka
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
06 87001 Team Dosen
Abstract Kompetensi
PERCABANGAN Bentuk Percabangan.
Memahami struktur kendali Proses percabangan
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Percabangan
Kondisi merupakan hal yang menentukan didalam mengambil keputusan mengenai tindakan yang
diambil. Didalam pemrograman kondisi dikenal dalam bentuk IF, CASE ataupun yang setara.
6.1 Pernyataan If
Adapun pernyataan yang pertama berbentuk :
IF kondisi(-kondisi) yang harus dipenuhi
Pernyataan
Pernyataan
……
……
Bagan alurnya adalah sebagai berikut :
True (benar) False (Salah)
Pada bentuk if, pernyataan hanya akan dijalankan kalau kondisi bernilai benar. Yang terpenting
dari bagan alur diatas adalah kondisinya. Kondisilah yang menentukan apakah sebuah
pernyataan program akan dieksekusi atau tidak
Contoh pseudocode dari bentuk pernyataan if adalah :
Variabel :
Suhu : bilangan nyata
Mulai
Masukkan suhu tubuh pada variable suhu
Jika Suhu > 37 maka nyatakan panas
Selesai
Kondisi
Pernyataan
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Pernyataan tersebut bisa dterjemahkan kedalam bahasa pemrograman dibawah ini :
C++ Pascal
Include <iostream.h>
void main (void)
{
float suhu;
cout << “Masukkan Suhu : ”;
cin >> suhu;
if (suhu > 37)
{ cout << “Panas”;}
cout << “Selesai”
}
Var
Suhu : Real;
Begin
Write (‘Masukkan Suhu : ’);
Readln(Suhu);
If Suhu > 37 then
writeln(‘Panas’);
Writeln(‘Selesai’)
End.
Pada pernyataan diatas “Panas” tidak selalu ditampilkan tergantung kepada nilai yang
dimasukkan oleh user. Tetapi pernyataan ‘Selesai’ akan selalu ditampilkan karena tidak
tergantung kepada kondisi if.
6.2 Pernyataan If....Else
Pernyataan if..else digunakan untuk menguji sebuah kondisi. Bila kondisi yang diuji
terpenuhi, program akan menjalankan pernyuataan-pernyataan tertentu; dan bila kondisi yang
diuji salah, program akan menjalankan pernyatan-pernyataan yang lain. Bentuk umum
pernyataan if..else adalah sebagai berikut:
IF
……
……
ELSE
Pernyataan
Pernyataan
……
……
Kondisi sendiri merupakan suatu ekspresi bertipe boolean, artinya hanya dapat bernilai benar
(true) atau salah (false).
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Bagan alurnya adalah sebagai berikut :
True (benar) False (Salah)
Pada bentuk ini :
1. Pernyataan sesudah if akan dieksekusi kalau kondisi bernilai benar
2. Pernyataan sesudah else akan dieksekusi kalau kondisi bernilai salah
Sebagai contoh diinginkan tampilan :
1. Suhu tinggi jika bernilai lebih dari 37
2. Suhu tidak tinggi kalau kurang atau sama dengan 37
Maka contoh pseudocodenya adalah sebagai berikut :
Variabel :
Suhu : bilangan nyata
Mulai
Masukkan suhu tubuh pada variable suhu
Jika Suhu > 37 maka nyatakan panas
Selain itu nyatakan tidak panas
Selesai
Pernyataan tersebut bisa diterjemahkan kedalam bahasa pemrograman dibawah ini :
Kondisi
Pernyataan Pernyataan
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
C++ Pascal
Include <iostream.h>
void main (void)
{
float suhu;
cout << “Masukkan Suhu : ”;
cin >> suhu;
if (suhu > 37) { cout << “Panas”;}
else { cout << “Tidak Panas”;}
cout << “Selesai”
}
Var Suhu : Real;
Begin
Write (‘Masukkan Suhu : ’);
Readln(Suhu);
If Suhu > 37 then writeln(‘Panas’)
Else WriteLn(‘Tidak Panas’)
Writeln(‘Selesai’)
End.
6.3 Pernyataan if..else if
Dalam kasus-kasus tertentu, sebuah konstruksi if dan else dapat terdapat bentuk
bersarang (nested). Bentuk bersarang merupakan contoh bentuk dari sebuah atau beberapa
buah pernyataan if dan else yang terdapat didalam bentuk if dan else yang lainnya. Nested IF
dan ELSE merupakan pernyataan yang lebih rumit dibandingkan dengan pernyataan IF dan
ELSE sederhana.
Berikut ini adalah contoh bentuk pernyataan tersebut :
Jumlah Buku >=50
>= 50
Jumlah Buku >= 35
Jumlah Buku >= 20
Diskon 15 %
Diskon 10 %
Diskon 20 %
Ya
Yaaa
Yaaa
tidak
tidak
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
n menggunakan nested if adalah sebagai berikut :
Bahasa C++ Bahasa Pascal
Tidak ada Diskon
tidak
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
#include <iostream.h>
void main(void)
{
int Jumlah_Buku;
float harga;
cout << “Jumlah Buku: “<< endl ;
cin >> Jumlah_Buku;
if (Jumlah_Buku >= 50)
{
harga= Jumlah_Buku * 0.8 * 2500;
cout<< “Total harga: ”<< harga;
}
else
{
if (Jumlah_Buku >= 35)
{
harga= Jumlah_Buku * 0.85 * 2500;
cout<< “Total harga: ”<< harga;
}
else
{
if (Jumlah_Buku >= 20
{
harga= Jumlah_Buku * 0.9 * 2500;
cout << “Total harga: ”<< harga;
}
else
{
harga= Jumlah_Buku * 2500;
cout<< ”Total Harga: ”<< harga;
} } } }
Var
Jumlah_Buku : integer;
Harga_Buku : real;
Begin
Write (‘Jumlah Buku = ‘);
ReadLn(Jumlah_Buku);
IF Jumlah_Buku >= 50 then
Begin
Harga:= Jumlah_Buku * 0.8 * 2500;
WriteLn(‘Total Harga= ‘, Harga);
End;
Else
IF Jumlah_Buku >= 35 then
Begin
Harga:= Jumlah_Buku * 0.85 * 2500;
WriteLn(‘Total Harga= ‘, Harga);
End;
Else
IF Jumlah_Buku >= 20
Begin
Harga:= Jumlah_Buku * 0.9 * 2500;
WriteLn(‘Total Harga= ‘, Harga);
End;
Else
Begin
Harga:= Jumlah_Buku * 2500;
WriteLn(‘Total Harga= ‘, Harga);
End;
End.
6.4 Pernyataan Case
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Pernyataan Case digunakan untuk menyederhanakan konstruksi if..else if yang terlalu
banyak. Sebagai contoh, program berikut:
If ( x = 0) then
Writeln(‘X bernilai 0’)
Else if (x = 1) then
Writeln(‘X bernilai 1’)
Else if (x = 2) then
Writeln(‘X bernilai 2’)
Else if (x = 3) then
Writeln(‘X bernilai 3’)
Else
Writeln(‘X tidak bernilai 0, 1, 2, ataupun 3’);
Dapat diganti menjadi lebih ringkas dan mudah dibaca dengan program berikut:
Case x of
0 : Writeln(‘X bernilai 0’);
1 : Writeln(‘X bernilai 1’);
2 : Writeln(‘X bernilai 2’);
3 : Writeln(‘X bernilai 3’);
else
Writeln(‘X tidak bernilai 0, 1, 2, ataupun 3’);;
End;
Jika dilihat pada contoh di atas bahwa meskipun hasil dari kedua program tersebut
sama tetapi penulisan dengan case lebih mudah dibaca.
Contoh-contoh soal:
1. Tulislah algoritma dan program yang menampilkan ’Genap’ jika suatu bilangan adalah
bilangan genap atau ’Ganjil’ jika bilangan tersebut adalah bilangan ganjil. Nilai masukan
adalah bilangan bulat, yaitu x, dimana 0 ≤ x ≤ 65535. keluaran dari program ini adalah
’Bilangan Genap’ atau ’Bilangan ganjil’.
Jawab:
Suatu bilangan dikatakan bilangan genap jika habis dibagi 2. dengan demikian algoritma
pengecekan bilangan genap atau ganjil dapat dituliskan sebagai berikut:
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
1. Masukkan x.
2. jika (x habis dibagi 2 ) maka kerjakan baris 3; jika tidak kerjakan baris 4.
3. tulis ’Bilangan genap’. Selesai.
4. tulis ’Bilangan ganjil’. Selesai.
Contoh program dalam Pascal untuk mengecek suatu bilangan termasuk bilangan ganjil
atau genap:
Var
x: word;
begin
write (‘Masukkan suatu bilangan bulat sembarang: ‘);
readln(x);
if (x mod 2 = 0) then
writeln (‘Bilangan genap’)
else
writeln (‘Bilangan ganjil’);
end.
Keluaran dari program tersebut adalah sebagai berikut:
Masukkan suatu bilangan bulat sembarang: 25
Bilangan ganjil
Masukkan suatu bilangan bulat sembarang: 4
Bilangan genap
2. Tulislah algoritma dan program yang meminta masukan bilangan bulat dari pengguna. Jika
pengguna memasukkan 0, program menampilkan ’Minggu’; jika pengguna memasukkan 1,
program menampilkan ’Senin’, dan seterusnya sampai dengan ’Sabtu’. Jika pengguna
memasukkan nilai di luar jangkauan 0 sampai dengan 6, program menuliskan ’Hari tidak
Valid’.
Jawab:
Algoritma untuk menampilkan hari dapat dituliskan sebagai berikut:
1. Masukkan x.
2015 10
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
2. Jika (x = 0) Tulis ’Minggu’. Selesai.
3. Jika (x = 1) Tulis ’Senin’. Selesai.
4. Jika (x = 2) Tulis ’Selasa’. Selesai.
5. Jika (x = 3) Tulis ’Rabu’. Selesai.
6. Jika (x = 4) Tulis ’Kamis’. Selesai.
7. Jika (x = 5) Tulis ’Jumat’. Selesai.
8. Jika (x = 6) Tulis ’Sabtu’. Selesai.
9. Tulis ’Hari tidak Valid’
Jika ditulis dalam program Pascal sebagai berikut:
Var
x : byte;
begin
write (’ Masukkan bilangan bulat (0 – 6): ’);
readln (x);
case (x) of
0: writeln (’Minggu’);
1: writeln (’Senin’);
2: writeln (’Selasa’);
3: writeln (’Rabu’);
4: writeln (’Kamis’);
5: writeln (’Jumat’);
6: writeln (’Sabtu’);
else
writeln (’Hari tidak Valid’);
end;
end.
Keluaran dari program di atas adalah sebagai berikut:
Masukkan bilangan bulat (0 – 6) : 5
Jumat
2015 11
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Latihan:
Buatlah Flowchart dan program dalam bahasa Pascal atau C++ untuk meminta masukan
berupa nama, nim, absen, nilai tugas, nilai uts dan nilai uas. Berdasarkan , absen, nilai
tugas, nilai uts dan nilai uas tersebut hitunglah nilai akhir mahasiswa tersebut dengan
menggunakan formula sebagai berikut:
Nilai akhir = 10% absen + 20% tugas + 30% uts + 40% uas
Hasil keluaran yang diharapkan adalah sbb:
Nama = Yulia
NIM = 4150235262
Absen = 70
Tugas = 85
UTS = 70
UAS = 50
Yulia 4150235262 mendapatkan Nilai akhir = 65 dan Nilai huruf C
2015 12
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Daftar Pustaka
Cheltenham Computer Training, C Programming, www.cctglobal.com, United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
07 87001 Team Dosen
Abstract Kompetensi
Perulangan Bentuk Perulangan
Memahami Struktur Kendali Proses Perulangan
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Perulangan
Pengulangan digunakan untuk menjalankan satu atau beberapa pernyataan sebanyak beberapa kali.
Proses yang berulang adalah suatu urut-urutan pernyataan yang akan dieksekusi terus menerus selama
kondisi yang disyaratkan terpenuhi. Pengulangan proses merupakan suatu kemampuan yang dimiliki
oleh semua compiler bahasa pemrograman. Terdapat banyak jenis pengulangan proses, tetapi paling
tidak akan dibahas dua buah bentuk jenis pengulangan :
1. FOR. Pengulangan dengan besarnya nilai integer sebagai kondisi (biasanya berbentuk
for)
2. WHILE. Pengulangan dengan kondisi pernyataan boolean (biasanya berbentuk while)
Gambaran Flowchart dari perulangan adalah sebagai berikut :
7.1 Pernyataan for
Pernyataan dengan FOR biasanya digunakan untuk pernyataan yang sudah ditentukan
jumlah pengulangannya.
Kondisi = nilai awal
Kondisi = Nilai Akhir
Pernyataan……;
Pernyataan……;
Kondisi di increment
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
FOR dengan kondisi numerik yang menaik. Pada looping yang berbentuk seperti ini
terdapat pernyataan increment atau penambahan yang berbentuk sebagai berikut : Kondisi =
Kondisi + n, dimana n adalah bilangan yang bernilai positif.
Bentuk umum pernyataan for dalam bahasa Pascal adalah sebagai berikut:
FOR pencacah := nilai awal TO nilai akhir do
Begin
{ pernyataan-pernyataan yang akan diulang }
end;
Contoh dari pernyataan for dalam bahasa C/C++ diperlihatkan pada contoh berikut :
#include <iostream.h>
void main(void)
{
for (int j = 1 ; j < = 4 ; j = j+1)
{ cout << I<<endl;
}
}
Contoh dari pernyataan for dalam bahasa pascal diperlihatkan pada contoh berikut :
Program Perulangan1;
Var I : integer; {* I adalah variabel kontrol *}
Begin
For I := 1 to 4 do
Begin
WriteLn (I);
End;
End.
Output dari kedua program tersebut adalah :
1
2
3
4
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Perhatikanlah didalam pengulangan dengan for pernyataan yang berada didalam loop akan
dieksekusi sampai kondisi loop tersebut tidak terpenuhi.
Contoh 2 dalam bahasa Pascal :
Program Konversi_Celcius_Fahrenheit2;
Var x : integer; { x adalah variabel kontrol}
C, F : real;
Begin
Writeln (‘--------------------------------------‘);
Writeln (‘Celcius Fahrenheit’);
Writeln (‘--------------------------------------‘);
C := 0;
For x := 1 to 10 do
Begin
F := 1.8 * C + 32;
Writeln (C:8:2, F:14:2); statemen
C := C + 0.25;
End;
Writeln (‘--------------------------------------‘);
End.
Contoh 2 dalam bahasa C :
#include <iostream.h>
void main(void)
{
int x;
float C, F;
cout << “--------------------------------------“;
cout << “Celcius Fahrenheit”;
cout << “--------------------------------------“;
C := 0;
for (x = 1; x <= 10; x++)
{
F := 1.8 * C + 32;
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
cout << C << “ “ << F;
C := C + 0.25;
}
cout << “--------------------------------------“; End.
7.2 Pernyataan for bersarang
Pernyataan for dapat dituliskan di dalam pernyataan for lagi. Hal semacam ini sering
disebut dengan pernyataan for bersarang. Perhatikan contoh berikut:
For x := 1 to 3 do
For y:= 1 to 2 do
Writeln (x, ‘ ‘ y);
Kalang/looping for yang luar (dengan pencacah variable x) akan menjalankan kalang
yang dalam (dengan pencacah y) sebanyak 3 kali. Dan pada setiap pengulangan di layar akan
dituliskan nilai x dan y.
Berikut ini adalah keluaran dari program di atas:
1 1
1 2
2 1
2 2
3 1
3 2
Pada saat x bernilai 1, y diulang sebanyak 2 kali. Jadi pada layar akan tertulis 1 1 dan 1
2. demikian juga pada saat x bernilai 2, y diulang sebanyak 2 kali. Jadi pada layar akan tertulis
2 1 dan 2 2. hal yang sama terjadi pada saat x bernilai 3.
7.3 Pernyataan while
Pernyataan pengulangan ini biasanya digunakan bila belum diketahui pasti berapa
banyak akan dilakukan pengulangan pernyataan-pernyatan. Berakhirnya pengulangan ini
ditentukan oleh suatu kondisi. Bila kondisi sudah tidak terpenuhi maka pengulangan akan
berakhir. Dengan kata lain, selama kondisi masih terpenuhi, pengulangan akan terus dilakukan.
Perulangan ini mempunyai struktur sbb :
While Ungkapan_Logika do statemen
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Bentuk umum pernyataan pengulangan while dalam Pascal adalah sebagai berikut:
While kondisi do
Begin
{ pernyataan-pernyataan yang akan diulang }
end;
kondisi sendiri merupakan suatu ekspresi boolean, artinya hanya dapat bernilai benar (true)
atau salah (false).
Contoh berikut adalah contoh dalam bahasa PASCAL :
Var I : integer;
Begin
I := 0; Ungkapan logika
While I < 15 do
Begin
Writeln (I); Statement
I := I + 1;
End;
End.
Program yang sama jika dituliskan dalam bahasa C akan berbentuk sebagai berikut :
#include <iostream.h>
void main(void)
{
int j;
j = 0; Ungkapan logika
while j < 15 do
{
cout << j ;
j = j + 1;
}
}
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Berikut ini adalah contoh dalam bahasa pascal untuk menghitung rata-rata suatu series data
yang dimasukkan oleh user.
Program Menghitung_TotalNilai_JumlahData_RataRata;
Uses Crt;
Var Nilai, Total, RataRata : real;
N,I : integer;
Begin
Clrscr;
{*** Memasukkan jumlah dari data ***}
write (‘Jumlah data ?’);
readln (N);
writeln ;
{Memasukkan Nilai data dan langsung dihitung totalnya}
I := 0;
Total := 0;
While I < N do
Begin
I := I + 1;
Write (‘Nilai data ke ‘,I,’?’);
Readln (Nilai);
Total := Total + Nilai;
End;
{*** Menghitung nilai rata-ratanya ***}
RataRata := Total/N;
{*** Menampilkan hasil ***}
writeln;
writeln (‘Total nilai =’,Total:8:2);
writeln (‘Jumlah data =’,N:3);
writeln (Rata-rata nilai =’,RataRata:8:2);
end.
7.4 Penyataan repeat..until
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Pernyataan pengulangan ini hampir sama dengan pernyataan pengulangan while, dan
biasanya digunakan bila jumlah pengulangan belum dapat ditentukan pada saat program ditulis.
Struktur repeat..until digunakan untuk mengulang (repeat) statemen atau blok statemen
sampai (until) kondisi yang diseleksi pada until tidak terpenuhi. Sintaks dari struktur ini adalah :
Repeat statemen ; until ungkapan
Contoh :
Perbedaan pernyataan repeat..until dan while terletak pada pengecekan kondisi. Jika
pada pernyataan while, kondisi dicek pada awal kalang, pada pernyataan repeat..until, kondisi
dicek pada akhir kalang.
Perbedaan yang lain, bila pernyataan while mengulang pernyataan selama kondisi
masih terpenuhi, pernyataan repeat..until mengulang pernyataan selama kondisi belum
terpenuhi.
Var I : integer;
Begin
I := 10;
Repeat
Writeln (I);
I := I + 1;
Until I > 5 ungkapan
End.
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Soal Latihan : kerjakan berkelompok, gunakan perulangan if .. atau for
1. Buat Flowchart dan Program C++ untuk mencetak deret aritmatika :
3 7 11 ... ... ... ... ... ... ... ... ...
Sampai 10 suku dan jumlah deret tersebut.
2. Buat Flowchart dan Program C++ untuk mencetak deret geometri :
4 12 36 ... ... ... ... ... ... ...
Sampai 10 suku dan jumlah deret tersebut.
3. Buat Flowchart dan Program C++ untuk mencetak deret kuadrat :
1 4 9 ... ... ... ... ... ... ...
Sampai 10 suku dan jumlah deret tersebut.
4. Buat Flowchart dan Program C++ untuk mencetak deret kubik :
1 8 27 ... ... ... ... ... ... ...
2015 10
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Sampai 10 suku dan jumlah deret tersebut.
5. Buat Flowchart dan Program C++ untuk mencetak deret bilangan:
1 3 5 7 9 ... ... ... ... ...
Sampai 10 suku dan jumlah deret tersebut.
6. Buat Flowchart dan Program C++ untuk mencetak deret bilangan:
2 4 6 8 10 ... ... ... ... ...
Sampai 10 suku dan jumlah deret tersebut.
7. Buat Flowchart dan Program C++ untuk mencetak deret bilangan:
256 196 144 ... ... ... ... ... ... ...
Sampai 10 suku dan jumlah deret tersebut.
Daftar Pustaka
Cheltenham Computer Training, C Programming, www.cctglobal.com, United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Indra Yatini B, Flowchart, Algoritma, dan Pemrograman Menggunakan Bahasa C++ Builder,
Graha Ilmu, Yogyakarta, 2010.
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
08 87001 Team Dosen
Abstract Kompetensi
Fungsi Standar Input - Output
Memahami Fungsi Standar Pascal Dan Penggunaan Input Output
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Fungsi Standar dan Input Output
8.1 Fungsi Standar
Bahasa Pemrograman Pascal memiliki beberapa fungsi matematika standar yang dapat
digunakan dalam operasi matematika. Sebagai contoh untuk mencari nilai sin dari sudut pi
dalam fungsi trigonometri
value := sin (3.1415926535897932);
Fungsi Standar dapat digunakan dengan cara menuliskan nama fungsinya , setelah itu
diikuti dengan argumen dalam tanda kurung. Fungsi-fungsi standard yang disediakan
Pascal antara lain :
Nama
Fungsi Deskripsi Tipe Argumen
Tipe nilai yang
dikembalikan
abs absolute value real or integer same as argument
type
arctan arctan in radians real or integer real
cos cosine of a radian measure real or integer real
exp e to the given power real or integer real
ln natural logarithm real or integer real
round round to nearest integer Real integer
sin sin of a radian measure real or integer real
sqr square (power 2) real or integer same as argument
type
sqrt square root (power 1/2) real or integer real
trunc truncate (round down) real or integer integer
Untuk tipe data ordinal (integer atau char), yaitu tipe data yang memiliki urutan awal
(predecessor) dan urutan akhir (successor), maka fungsi antara lain :
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Fungsi Deskripsi Tipe Argumen Nilai yang
dikembalikan
chr character with given ASCII value integer char
ord ordinal value integer or char integer
pred predecessor integer or char same as argument
type
succ successor integer or char same as argument
type
Real bukan merupakan tipe data ordinal, karena tipe real tidak memiliki predecessor
maupun successor yang unik. Sebagai contoh berapa successor dari 56.0 ? maka jawaban
yang mungkin antara lain 56.1 56.01 56.001 56.0001 56.00001 56.000001
Sedangkan untuk tipe data integer, memiliki predecessor ataupun successor yang unik.
Contohnya bilangan 56 memiliki predecessor 55 dan successor 57. Demikian juga dengan
karakter. Contohnya predecessor karakter ‘b’ adalah ‘a’ dan successornya adalah ‘c’
Pungtuasi dan Indentasi
Pada pascal setiap akhir dari pernyataan program harus menggunakan pungtasi, dalam
hal ini menggunakan tanda titik koma ( ; ). Bagian-bagian yang harus menggunakan tanda
tersebut antara lain :
1. Kepala Program
2. Setiap kali mendefinisikan kontanta.
3. Setiap kali mendefinisikan variabel
4. Setiap kali mendefinisikan tipe
5. Semua pernyataan dalam tubuh program.
Satu baris sebelum baris terakhir yakni sebelum END, tidak harus menggunakan tanda titik
koma.
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Indentasi memang tidak menjadi keharusan dalam membuat program. Namun dengan
indentasi akan memudahkan programmer untuk membaca dan memperbaiki program.
Perhatikan bila Anda harus membaca kode program seperti ini :
program Contoh; const a=5; b=385.3; var alpha,beta:real;
begin alpha := a + b; beta:= b / a end.
Anda akan lebih sulit untuk memahami kode program tersebut. Akan tetapi perhatikan
bila kode program tersebut ditulis dalam bentuk seperti dibawah ini :
program Contoh;
const
a = 5;
b = 385.3;
var
alpha, beta : real;
begin (* main *)
alpha := a + b;
beta := b / a
end. (* main *)
Anda akan jauh lebih mudah untuk memahami kode program tersebut. Inilah sebab
mengapa identasi penulisan dalam membuat kode program sangat diperlukan. Hal lain yang
juga harus dibiasakan dalam membuat kode program adalah mengggunakan komentar
(keterangan) untuk menyampaikan maksud dari kode tersebut.
8.2 Input Output
Ada beberapa cara untuk membaca atau menampilkan data pada layar. Seperti Read
dan Readln untuk membaca input dari keyboard, atau write dan Writeln untuk menampilkan
data di layar.
8.2.1 Input
Input adalah membaca data dari keyboard, mouse atau disk untuk disimpan didalam
memory. Format untuk membaca input melalui keyboard adalah sebagai berikut :
Read (Varibel_list);
Variabel_List adalah serangkaian variabel yang dipisahkan dengan menggunakan koma. Read
akan menghentikan program dan menunggu user memasukkan data. Data akan disimpan ke
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
dalam variabel_list setelah itu kursor tetap berada pada baris yang sama, tidak pindah ke baris
yang baru.
Perintah lainnya yang digunakan untuk memasukkan input dari keyboad adalah dengan
menggunakan perintah berikut:
Readln (Variabel_List);
Readln ini pun akan meminta user memasukkan input, dan kursor akan berpindah ke baris
baru.
Perhatikan contoh berikut!
Misalnya User memasukkan input seperti dibawah ini, dan a, b, c dan d semuanya adalah
bilangan integer.
45 97 3
1 2 3
Pernyataan a b c d
read (a); read (b);
45 97
readln (a); read (b);
45 1
read (a, b, c, d); 45 97 3 1
readln (a, b); readln (c, d);
45 97 1 2
Pada contoh diatas terlihat bahwa dengan perintah read, kursor tidak berada pada baris
selanjutnya, sedangkan dengan perintah readln, kursor akan berada pada baris selanjutnya.
Pada saat membaca tipe data integer, perintah readln akan mengabaikan spasi sampai
menemukan bilangan integer. Demikian pula dengan tanda koma, jika yang dibaca adalah tipe
data integer, maka akan diabaikan pula. Sebagai contoh ketika membaca nilai 8253.67, maka
akan dibaca sebagai 825367
Hal yang sama juga pada saat membaca tipe data real, perintah read/readln akan
mengabaikan spasi sampai menemukan angka berikutnya. Untuk tipe data real seperti 0.678
harus ditulis lengkap, tidak boleh hanya menuliskan .678
Untuk tipe data konstanta tidak dapat diberi nilai, baik itu angka ataupun karakter.
8.2.2 Output
Untuk menampilkan data pada layar, Pascal mempunyai dua perintah yaitu :
write (Argument_List);
writeln (Argument_List);
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Setelah data ditampilkan, perintah writeln akan langsung pindah ke baris baru.
Argument_List dapat berupa konstanta atau variabel. Jika ingin menampilkan string, maka
harus menggunakan tanda kutip ( ‘ ) pada kedua sisinya.
Format Output
Pada Pascal melakukan format untuk menampilkan output sangat mudah. Untuk setiap
identifier atau literal pada argumen_list, format yang digunakan adalah
Value : field_width
Jika lebar data melebihi field_width yang telah ditentukan, maka format field_width yang
telah ditetapkan akan diabaikan.
Contoh :
write ('Hi':10, 5:4, 5673:2);
maka output akan ditampilkan seperti dibawah ini :
--------Hi---55673
Untuk tipe data real, format yang digunakan adalah sebagai berikut :
Value : field_width : decimal_field_width
Field_width adalah total lebar field, termasuk untuk desimal. Sedangkan decimal_field_width
menyatakan banyaknya desimal yang akan ditampilkan. Perhatikan contoh dibawah ini :
write (573549.56792:20:2);
maka output yang akan ditampilkan adalah sebagai berikut :
-----------573549.57
8.3 Pengaturan Letak di Layar
Beberapa prosedur standar disediakan oleh Bahasa Pascal untuk mengatur tampilan di
layar monitor,sehingga tampilan akan lebih baik.
8.3.1 Prosedur CLRSCR
Prosedur standar ini digunakan untuk membersihkan layar dari tampilan-tampilan
sebelumnya dan meletakan cursor di posisi ujung kiri atas dari layar. Prosedur standar ini bila
digunakan harus menyebutkan terlebih dahulu unit standar Crt.
Contoh:
Program tampil_clrscr;
Uses crt;
Begin
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Clrscr;
Writeln(’Belajar Dasar Pemrograman’);
End.
Output:
Belajar Dasar Pemrograman
Berada pada posisi ujung
atas kiri.
8.3.2 Prosedur GOTOXY
Prosedur standar ini digunakan untuk meletakkan cursor di posisi yang ditunjuk oleh X
(posisi horizontal, kolom 1 sampai dengan kolom 80) dan Y (posisi vertikal, baris 1 sampai
dengan baris 25). Prosedur standar ini harus melibatkan unit Crt.
Contoh:
Program tampil_gotoxy;
Uses crt;
Begin
Clrscr;
gotoXY(10, 18);
Writeln(’Belajar Dasar Pemrograman’);
End.
Output:
Belajar Dasar Pemrograman
Baris 18
Kolom 10
8.3.3 Prosedur CLREOL
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Prosedur standar ini digunakan untuk menghapus semua karakter dalam satu baris
disebelah kanan posisi cursor tanpa merubah posisi dari cursor. Prosedure standar ini harus
melibatkan unit Crt.
Contoh:
Program tampil_clreol;
Uses crt;
Var
x: integer;
Begin
Clrscr;
gotoXY(15, 15);
Writeln(‘Masukkan Sebuah Bilangan Bulat: ‘);
Readln(x);
gotoXY(15,15);
ClrEol;
Write (“Terima Kasih !!!’);
End.
Output:
Masukkan Sebuah Bilangan Bulat: 71
Baris 18
Kolom 10
Setelah nilai dimasukkan oleh pengguna maka posisi cursor akan diletakkan kembali ke posisi
baris 18, kolom 10 dan isi dari baris tersebut dihapus dengan prosedur ClrEol, kemudian
ditampilakan tampilan lain.
Terima Kasih
Baris 18
Kolom 10
Soal :
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Buatlah Flowchart dan program C++ untuk menghitung jumlah dan Rata-rata dari lima
buah bilangan, yaitu : (angka bisa diganti dan disesuaikan)
Contoh bilangan : 7 68 2 34
Gunakan tipe data konstanta untuk menyimpan banyaknya bilangan yang akan dihitung.
Keluaran yang diinginkan adalah sebagai berikut :
Jumlah bilangan = 5
Bilangan1 = 45
Bilangan2 = 7
Bilangan3 = 68
Bilangan4 = 2
Bilangan5 = 34
Jumlah = 156
Rata-rata = 3.120
Daftar Pustaka
Cheltenham Computer Training, C Programming, www.cctglobal.com, United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001.
Indra Yatini B, Flowchart, Algoritma, dan Pemrograman Menggunakan Bahasa C++ Builder,
Graha Ilmu, Yogyakarta, 2010.
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
09 87001 Team Dosen
Abstract Kompetensi
Subprogram Prosedur Memahami subprogram Prosedur
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Sub Program1 (PROSEDUR)
9.1. Konsep Dasar Sub Program
Salah satu metode perancangan program yang baik adalah menggunakan konsep
modular atau sering disebut dengan pemrograman modular. Dengan metode ini suatu masalah
dipecah menjadi beberapa masalah yang lebih kecil (ke dalam modul-modul). Dengan membagi
masalah menjadi beberapa modul, maka masalah tersebut akan menjadi lebih sederhana,
sehingga program dapat lebih mudah disusun dan dipahami. Dalam bahasa Pascal sub
program terbagi dua jenis yaitu prosedur dan fungsi.
Manfaat lain dari pemrograman modular adalah software reusabilty. Subprogram yang
dibuat satu kali diharapkan dapat digunakan oleh program lain, sehingga penulisan program
(proses pengkodean) lebih efektif.
Jika Program yang Anda buat sudah terlalu panjang, sebaiknya dipecah menjadi
beberapa bagian (modul). Untuk membuat modul, Pascal menyediakan dua pilihan, yaitu:
PROCEDURE
FUNCTION
Keuntungan menggunakan modul:
1. Rancangan top-down dengan pendekatan divide-and-conquer, program besar dapat dibagi
menjadi modul-modul yang lebih kecil;
2. Dapat dikerjakan oleh beberapa orang dengan koordinasi yang lebih mudah;
3. Mencari kesalahan relatif lebih mudah karena alur logika lebih jelas, dan kesalahan dapat
dilokalisasi dalam satu modul;
4. Modifikasi dapat dilakukan tanpa mengganggu program secara keseluruhan;
5. Mempermudah dokumentasi.
Sifat-sifat modul yang baik adalah:
Fan-in yang tinggi: makin sering suatu modul dipanggil oleh pengguna makin tinggi nilai fan-
in.
Fan-out yang rendah: makin sedikit (spesifik) tugas yang dilakukan oleh suatu modul, makin
rendah nilai fan-out.
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Self-contained: kemampuan memenuhi kebutuhannya sendiri.
9.2. Prosedur
Berguna untuk mengumpulkan statemen2 yang dapat dijalankan menjadi satu dalam
suatu blok dan untuk menjalankannya kembali hanya dengan menuliskan nama
procedure yang menampungnya.
Untuk mendeklarasikan procedure dapat dilakukan dengan dua cara, yaitu :
1. Header Procedure Tanpa Parameter
B.U : Procedure <NamaProcedure>;
Contoh : Procedure BuatKotak;
Procedure Input; Procedure Output;
Program <NamaProgram>; Struktur Blok Program :
Procedure Begin …….. …….. End;
<Nama Procedure>;
Contoh Program :
Program Hitungtanpaparameter ;
Var p, q, x, y : byte ;
Procedure TambahKali;
Begin
p : = x + y ;
q : = x * y ;
WriteLn (‘ X + Y = ‘ , p ) ;
WriteLn (‘ X * Y = ’ , q );
End ;
Begin
Write ( ‘ X = ‘) ; ReadLn (x) ;
Write ( ‘ Y = ‘) ; ReadLn (y);
TambahKali;{untuk menjalankan procedure TambahKali}
End.
Output : X = 2 Y = 3 X + Y = 5 X * Y = 6
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
2. Header Procedure Dengan Parameter
B.U : Procedure <NamaProcedure> (<Daftar Parameter>;
Contoh : Procedure Hitung ( a , b : byte ; c : real) ;
Procedure Lingkaran ( x , y, jari : integer ) ;
Program <NamaProgram>; Struktur Blok Program : Procedure
Begin …….. End;
Contoh Program :
Program Hitungdenganparameter ;
Var p, q, x, y : byte ;
Procedure TambahKali ( a,b : byte );
Begin
p : = a + b ;
q : = a * b ;
WriteLn (‘ X + Y = ‘ , p ) ;
WriteLn (‘ X * Y = ’ , q );
End ;
Begin { main program }
Write ( ‘ X = ‘) ; ReadLn (x) ;
Write ( ‘ Y = ‘) ; ReadLn (y);
TambahKali ( x, y ) ;
End.
Output :
X = 2
Y = 3
X + Y = 5
X * Y = 6
Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub
program. Prosedur diawali dengan kata Procedure didalam bagian deklarasi prosedur.
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Prosedur dipanggil dan digunakan didalam blok program yang lainnya dengan
menyebutkan judul prosedurnya.
Bentuk umum penulisan prosedur dalam sebuah program:
Program judul_program;
Procedure judul_procedure;
Begin
….instruksi…
end;
Begin
........
end.
Prosedur memiliki struktur yang sama dengan program, yaitu :
procedure Name;
const
(* Constants *)
var
(* Variables *)
begin
(* Statements *)
end;
Perhatikan pada bagian akhir prosedur, terlihat setelah END tidak menggunakan titik, tapi tanda
titik koma. Ini menandakan bahwa bagian tersebut bukan akhir suatu program.
Untuk memanggil program, dapat dilakukan dengan cara menuliskan nama porsedur :
Nama_procedure;
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Procedure Tanya_hitung2;
Var
X, Y: Real;
Begin
Write (‘Nilai X ? ‘);
Readln(X)
Y := X * X;
Writeln (‘Nilai Y = ‘, Y:6:2)
End;
Begin
Tanya_hitung2;
End.
9.3. Parameter dalam Prosedur
Nilai didalam suatu program Pascal sifatnya lokal, artinya hanya dapat digunakan pada
modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit
program yag lainnya. Perhatikan contoh dibawah ini :
Program 9.1 Program 9.2
Procedure Tanya_hitung1;
Var
X, Y: Real;
Begin
Write (‘Nilai X ? ‘);
Readln(X)
Y := X * X;
End;
Begin
Tanya_hitung1;
Writeln (‘Nilai Y = ‘, Y:6:2)
End.
Program 9.1 adalah salah, karena modul utama menggunakan variabel lokal suatu prosedur.
Bandingkan dengan program 9.2. Jika program 9.2 dijalankan maka hasil program adalah
sebagai berikut:
Nilai x? 3.0
Nilai Y= 9.00
Supaya nilai-nilai variabel dapat digunakan di modul lainnya yang membutuhkannya, maka
dapat dilakukan dengan beberapa cara, yaitu :
1. Dibuat bersifat global
Supaya suatu nilai dapat bersifat global, maka harus dideklarasikan diatas modul yang
menggunakannya
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Contoh :
Var A, B : Integer;
Procedure Satu;
Begin
Readln(A);
Readln(B);
End;
Procedure Dua;
Begin
B:= A+1
End
Begin
Satu;
Writeln (A);
Dua
Writeln (B);
End.
Pada contoh diatas, variabel A dan B bersifat global untuk semua modul yaitu untuk
prosedur SATU dan DUA, sehingga dapat digunakan untuk semua modul itu.
2. Dikirimkan sebagai parameter ke modul yang membutuhkannya.
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Parameter yang dikirimkan dari modul utama ke modul prosedur disebut dengan
parameter nyata (actual prameter) dan parameter yang ada dan dituliskan pada judul
prosedur disebut dengan parameter formal (formal parameter). Proses pengiriman data
lewat parameter nyata ke parameter formal disebut dengan passing parameter. Parameter
nyata dan parameter formal harus dengan tipe yang sama.
Pada bahasa Pascal pengiriman parameter dapat dikirimkan secara nilai (by Value)
atau secara acuan (by Reference).
Sintak penulisan prosedur dengan parameternya adalah :
procedure Name (formal_parameter_list);
Parameter list terdiri dari sekumpulan parameter yang dipisahkan dengan tanda titik dua.
param_group_1; param_group_2; ... ; param_group_n
Setiap parameter mempunyai bentuk
identifier_1, identifier_2, ... , identifier_n : data_type
Perhatikan contoh dibawah ini :
procedure Name (a, b : integer; c, d : real);
begin
a := 10;
b := 2;
writeln (a, b, c, d)
end;
Asumsikan prosedur diatas dipanggil di program utama
alpha := 30;
Name (alpha, 3, 4, 5);
Pada saat kembali ke program utama, berapakah nilai variabel alpha? Apakah bernilai 30
atau 10?
Untuk menjawab pertanyaan diatas, maka perlu diketahui cara pengiriman parameternya
apakah secara nilai (by value) atau secara acuan (by reference).
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
9.4. Pengiriman Parameter secara Nilai (by value)
Bila parameter dikirim secara nilai , parameter formal di prosedur akan berisi nilai yang
akan dikirimkan yang kemudian bersifat lokal di prosedur. Bila nilai parameter formal di
prosedur tersebut berubah, tidak akan mempengaruhi nilai parameter nyata (nilai parameter
nyata tetap, tidak berubah). Pengiriman secara nilai ini merupakan pengiriman searah, yaitu
dari parameter nyata ke parameter formal, yang tidak dikirim balik dari parameter formal ke
parameter nyata. Pengiriman parameter secara nilai ini juga dapat dikatakan dengan menyalin
(copy) nilai variabel dan nilai itu diberikan ke variabel parameter. Prosedur bekerja pada salinan
variabel, sehingga tidak mengubah parameter aktualnya.
Contoh:
Procedure tukar(A, B: integer);
Var C: integer;
Begin
C:= A;
A:= B;
B:= C;
Writeln (’Nilai pertama = ’,A);
Writeln(‘Nilai Kedua = ‘, B);
End;
Var x,y : integer;
Begin
x:= 10;
y:= 15;
tukar(x,y);
writeln(‘x = ‘, x, ‘ y = ‘,y);
end.
2015 10
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Hasil program:
Nilai pertama = 15
Nilai Kedua = 10
x= 10 y=15
Berdasarkan program di atas nilai dari x diberikan kepada A dan nilai dari y diberikan kepada
B. Nilai yang dipertukarkan adalah nilai A dan B yang terjadi di dalam prosedur tukar,
sedangkan nilai x dan y yang berada di program utama tetap.
9.5. Pengiriman Parameter secara Acuan (by reference)
Bila pengiriman parameter secara acuan, maka perubahan-perubahan yang terjadi pada
nilai parameter formal di prosedur akan memperngaruhi nilai parameter nyata. Parameter-
parameter ini disebut dengan variabel parameter serta dideklarasikan di deklarasi prosedur
dengan menggunakan kata cadangan Var, Berikut format penulisannya:
Procedure nama_procedure (VAR identifier1, identifier2, …., identifier3: tipe data)
Identifier konstanta dan literal tidak dapat digunakan dalam parameter, karena kedua identifier
tersebut tidak dapat berubah nilainya.
Contoh:
Procedure tukar_acuan(var A, B: integer);
Var C: integer;
Begin
C:= A; A:= B; B:= C;
Writeln (’Nilai pertama = ’,A);
Writeln(‘Nilai Kedua = ‘, B);
End;
Var x,y : integer;
Begin
x:= 10; y:= 15;
tukar_acuan(x,y);
writeln(‘x = ‘, x, ‘ y = ‘,y);
end.
2015 11
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Hasil program:
Nilai pertama = 15
Nilai Kedua = 10
x= 15 y=10
Berdasarkan program di atas terlihat bahwa pengiriman parameter secara acuan merupakan
pengiriman dua arah, bolak-balik, sehingga perubahan nilai di parameter formal akan
mempengaruhi nilai pada parameter nyata juga. Pada contoh di atas nilai dari variabel A dan B
yang telah dipertukarkan mempengaruhi nilai x dan y, sehingga nilai x dan y menjadi tertukar
pula.
9.6. Tipe Parameter Formal
Tipe parameter formal yang dapat digunakan adalah berupa variabel atau konstanta.
Tipe data sederhana seperti integer, byte, real, char dan Boolean dapat langsung
dipergunakan. Sedangkan tipe data kompleks seperti string, array dan record tidak dapat
langsung dipergunakan tetapi harus dideklarasikan terlebih dahulu menggunakan Type.
Contoh untuk tipe data array:
Type
Nilai= array[1..100] of integer;
Procedure Arrayku(a: Nilai);
Contoh untuk tipe data string:
Type
Kata=string[25];
Procedure Panjang_Kata(Nama: Kata);
Untuk pengiriman parameter string secara nilai, panjang parameter formal dan
parameter nyata boleh tidak sama. Akan tetapi untuk untuk pengiriman parameter secara
acuan panjang panjang string harus sama.
Latihan
1. Buatlah program untuk mencari nilai faktorial dan pangkat tiga dari sebuah nilai yang
berupa bilangan bulat yang dimasukkan oleh pengguna. Program tersebut terdiri dari
prosedur untuk mencari faktorial dan prosedur untuk mencari nilai pangkat tiga.
2015 12
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
2. Buatlah program Lingkaran, dimana program memiliki prosedur untuk mencari luas
lingkaran dan prosedur menghitung keliling lingkaran. Pada saat prosedur tersebut
dipanggil akan langsung menampilkan nilai dari masing-masing prosedur.
Luas lingkaran= 3.14*r*r atau 3.14 * sqr (r)
Keliling = 2 * 3.14 * r
Buat program dengan menggunakan :
1. procedure (tanpa parameter dan dengan parameter) dan
2. Fungsi/function (tanpa parameter dan dengan parameter)
Jawab:
1.
Procedure Faktorial( n: Integer);
Var i, Hasil: integer;
Begin
Hasil:=1;
If( n<=0) then Exit;
For i:= 2 to n do
Hasil:= hasil * i;
Writeln(n,’ Faktorial = ’, Hasil);
2015 13
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
End;
Procedure Pangkat_Tiga(A: integer);
Var Hasil:integer;
Begin
Hasil:= A*A*A;
Writeln(A, ‘ Pangkat Tiga = ‘, Hasil);
End;
Var X: integer;
Begin
Write(‘Masukkan Bilangan bulat : ‘);
Readln(X);
Faktorial(X);
Pangkat_Tiga(X);
End.
2015 14
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Daftar Pustaka
Cheltenham Computer Training, C Programming, www.cctglobal.com, United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004.
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
10 87001 Team Dosen
Abstract Kompetensi
Subprogram Function Memahami subprogram Function
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Function Hitung(Var A,B : integer) : integer;
Begin
Hitung := A + B;
End;
Var
X, Y : integer;
Begin
Write(‘Nilai X ? ‘); Readln(X);
Write(‘Nilai Y ? ‘); Readln(Y);
Writeln;
Writeln(X, ‘ + ‘,Y,’ = ‘,Hitung(X,Y));
End.
Sub Program2 (FUNCTION)
Fungsi adalah modul program yang memberikan/mengembalikan (return) sebuah nilai
yang bertipe sederhana (integer, real, Boolean, string). Sebagaimana halnya dengan prosedur,
fungsi diakses dengan memanggil namanya. Selain itu fungsi juga dapat mengandung daftar
parameter formal.
Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan
dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Penulisannya adalah :
FUNCTION identifier(daftar parameter) : type;
Contoh : Function Faktorial(Var Fak, Hasil : integer) : integer;
Function Pangkat(X,Y : real) : real;
Blok fungsi sama dengan blok prosedur yang diawali dengan kata Begin dan diakhiri dengan
kata End dan titik koma. Berikut adalah Contoh :
Bila program dijalankan :
Nilai X ? 2
Nilai Y ? 3
2 + 3 = 5
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Function tidak hanya dapat dipakai untuk mengelompokkan baris2 perintah seperti halnya
procedure, tetapi Function juga dapat menampung nilai yang disimpan pada nama Function.
Penulisan Header Function dapat dilakukan dengan 2 cara, yaitu :
Header Function Tanpa Parameter
B.U : Function <NamaFunction> : TipeData;
Contoh : Function Hitung : Integer ;
Function Nama : String ;
Function Check : Boolean ;
Struktur Blok Program :
Program <NamaProgram> Function <NamaFunction> : TipeData ;
Begin ……. End ; Begin ……. End.
Contoh Program :
Program HitungTanpaParameter;
Var x, y : byte ;
Function Tambah : byte ;
Begin
Tambah : = x + y ;
End;
Function Kali : byte ;
Begin
Kali : = x * y ;
End;
Begin
Write ( ‘ X = ‘) ; ReadLn (x) ;
Write ( ‘ Y = ‘) ; ReadLn (y);
WriteLn (‘ X + Y = ‘ , Tambah ) ;
WriteLn (‘ X * Y = ’ , Kali ) ;
Output :
X = 2
Y = 3
X + Y = 5
X * Y = 6
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
End.
Header Function Dengan Parameter
B.U : Function <NamaFunction> ( <Daftar Parameter> ) : TipeData;
Contoh : Function Hitung ( a , b : byte ) : Integer ;
Function CheckPosisi ( x , y : Integer ) : Boolean ;
Struktur Blok Program :
Program <NamaProgram> Function <NamaFunction> (<Daftar Parameter>) : TipeData ; Begin ……. End ; Begin ……. End.
Contoh Program :
Program HitungDenganParameter;
Function Tambah (x,y : byte) : byte ;
Begin
Tambah : = x + y ;
End;
Function Kali (x,y : byte) : byte ;
Begin
Kali : = x * y ;
End;
Var x , y : byte ;
Begin
Write ( ‘ X = ‘) ; ReadLn (x) ;
Write ( ‘ Y = ‘) ; ReadLn (y);
WriteLn (‘ X + Y = ‘ , Tambah(x,y) ) ;
WriteLn (‘ X * Y = ’ , Kali (x,y) ) ;
End.
Output :
X = 2
Y = 3
X + Y = 5
X * Y = 6
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Perbedaan Procedure dan Function :
Jika membuat suatu procedure maka harus dideklarasikan dengan reserved word
“Procedure”. Jika membuat suatu function harus dideklarasikan dengan reserved word
“Function”
Functon harus dideklarasikan dengan typenya, sedangkan procedure tidak. Hal ini
menunjukkan bahwa function dapat menampung nilai, sedang procedure tidak dapat
menampung nilai.
Persamaan Procedure dan Function :
Memecah sebuah program besar menjadi beberapa bagian / modul sehingga
memudahkan pembagian tugas jika program dibuat oleh lebih dari 1 orang, dan
mempermudah pengecekan kesalahan / error.
Jika terdapat perintah2 yang sama yang akan dipakai dalam suatu program, maka
sebaiknya perintah2 tsb dipisahkan dalam suatu modul program dengan bantuan
procedure, sehingga jika ingin memakainya kita hanya tinggal memanggil nama
procedure tsb.
Mempermudah proses dokumentasi.
PARAMETER DALAM FUNGSI
Sama dengan prosedur, parameter dalam fungsi dapat dikirim secara nilai (by value)
atau secara acuan (by reference).
I.1 Parameter By Value
Function Hitung (A,B : integer) : integer;
Contoh :
Berikut akan dibuat suatu fungsi yang akan menghasilkan nilai terbesar dari 2 buah nilai real.
Function Terbesar(X,Y : real) : real;
Begin
If X>Y Then
Terbesar := X
Else Terbesar := Y;
End;
Var Nilai1, Nilai2 : real;
Begin
Write(‘Nilai pertama ? ‘); readln(Nilai1);
Write(‘Nilai kedua ? ‘); readln(Nilai2);
Writeln(‘Nilai terbesar adalah ‘,Terbesar(Nilai1,Nilai2):9:3);
End.
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Bila program dijalankan :
Nilai pertama ? 12.356
Nilai kedua ? 55.182
Nilai terbesar adalah 55.182
I.2. Parameter by Reference
Function Hitung(var A,B : integer) : integer;
Pengiriman parameter dengan secara acuan akan mengakibatkan perubahan nilai parameter di
fungsi juga merubah nilai parameter di modul yang mengirimkannya.
Bila program dijalankan :
Nilai X ? 2
Function Hitung(Var A,B,C : integer) : integer;
Begin
Hitung := A + B;
C := A * B;
End;
Var
X, Y, Z : integer;
Begin
Write(‘Nilai X ? ‘);
Readln(X);
Write(‘Nilai Y ? ‘);
Readln(Y);
Writeln;
Writeln(X,’ + ‘,Y,’ = ‘,Hitung(X,Y,Z));
Writeln(X,’ * ‘,Y,’ = ‘,Z);
End.
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Nilai Y ? 3
2 + 3 = 5
2 * 3 = 6
II. FUNGSI PANGKAT
Pascal tidak menyediakan fungsi untuk perpangkatan tinggi, yang ada hanyalah fungsi
standar sqr, yaitu pemangkatan kuadrat. Bila akan dilakukan pemangkatan lebih dari pangkat 2,
maka harus dibuat program tersendiri. Berikut contohnya :
Function Pangkat(X:real; Y:integer) : real;
Var
Pangkat : real;
I : integer;
Begin
Pangkat :=1;
For I := 1 to Y do
Pangkat := Pangkat*X;
PangkatI := Pangkat;
End;
Var
A : real;
B : integer;
Begin
Write(‘Nilai yang akan dipangkatkan ? ‘);
Readln(A);
Write(‘Dipangkatkan dengan ? ‘);
Readln(B);
Writeln(A:9:3,’ pangkat ‘,B,’ adalah ‘,PangkatI(A,B):9:3);
End.
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Bila program dijalankan :
Nilai akan dipangkatkan ? 1.5
Dipangkatkan dengan ? 3
1.500 pangkat 3 adalah 3.375
III. FUNGSI MEMANGGIL DIRINYA SENDIRI
Seperti halnya prosedur, fungsi juga dapat memanggil dirinya sendiri. Proses fungsi memanggil
dirinya sendiri juga merupakan proses recursion.
Contoh :
IV. FUNGSI MEMANGGIL FUNGSI YANG LAIN
Suatu fungsi dapat juga memanggil fungsi yang lainnya. Fungsi yang dipanggil letaknya harus
berada diatas fungsi yang memanggil.
Contoh :
Function Fungsi2(Y: integer) : integer;
Begin
Fungsi2 := Y*2;
End;
Function Fungsi1(X:integer) : integer;
Begin
Fungsi1 := Fungsi2(X) + 5;
End;
Begin
Writeln(Fungsi1(3));
End.
Function Faktorial(Nilai : integer) : real;
Begin
If Nilai = 0 then Faktorial := 1
Else Faktorial := Nilai * Faktorial(Nilai-1);
End;
Var N : integer;
Begin
Write(‘Berapa faktorial ? ‘); Readln(N);
Writeln(N,’ faktorial = ‘,Faktorial(N):9:0);
End.
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Bila program dijalankan :
11
V. FUNGSI BERSARANG
Fungsi bersarang merupakan fungsi yang letaknya berada didalam fungsi yang lainnya.
Contoh :
VI. FUNGSI STANDAR
Pascal menyediakan beberapa fungsi standar yang telah didefinisikan dan tidak perlu dibuat
kembali oleh si pemakai. Berikut beberapa contoh fungsi standar :
Jenis fungsi standar Contoh Keterangan
Arithmatika Abs(X); Memutlakan suatu nilai yang ditunjukkan
oleh argumen x
Exp(x:real):real; Menghitung nilai pangkat dari bilangan e
Int(x:real):real; Menghasilkan nilai integer dari x
Function Fungsi1(X:integer) : integer;
Function Fungsi2(Y:integer) : integer;
Begin
Fungsi2 := Y*2;
End;
Begin
Fungsi1 := Fungsi2(X) + 5;
End;
Begin
Writeln(Fungsi1(3));
End.
2015 10
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Sqr(x); Menghitung nilai pangkat kuadrat dari
argumen x
Transfer Chr(X:byte):char; Merubah nilai dari byte x ke bentuk
karakter yang sesuai dengan kode ASCII
Ord(X):longint; Merubah nilai x ke bentuk nilai longint
yang sesuai dengan kode ASCII
Round(x:real):longint; Membulatkan nilai dari real x ke longint
yeng terdekat
Contoh : Panggunaan fungsi standar Abs
Bila program dijalankan :
Nilai yang akan dimutlakkan ? -25.75
Nilai mutlaknya = 25.75
Contoh : Penggunaan fungsi standar Exp
Var X : real;
Begin
Write(‘Nilai yang akan dimutlakan ? ‘); readln(X);
Writeln(‘Nilai mutlaknya = ‘,Abs(X):9:2);
End.
Var X : real;
Begin
Write(‘Nilai yang akan diexponentialkan ? ‘); readln(X);
Writeln(‘Nilai exponentialnya = ‘,Exp(X):9:2);
End.
2015 11
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Bila program dijalankan :
Nilai yang akan diexponentialkan ? 7.5
Nilai exponentialnya = 1808.04241
Contoh : Fungsi standar SQRT
Contoh : Penggunaan fungsi standar CHR
Contoh : Penggunaan fungsi standar round
Begin
Writeln(’10 dibagi 3 hasil pembulatan terdekat adalah ‘,Round(10/3));
Writeln(’20 dibagi 3 hasil pembulatan terdekat adalah ‘,Round(20/3));
End.
Var
X : byte;
Begin
Write(‘Nilai kode ASCII (0-255) ? ‘);
Readln(X);
Writeln(“Karakter kode ASCII ini adalah : ‘,chr(X));
End.
Var A,B,C : real;
Begin
Write(‘Panjang sisi tegak ? ‘);readln(A);
Write(‘Panjang sisi datar ? ‘);readln(B);
C := SQRT(SQR(A) + SQR(B));
Writeln(“Panjang sisi miring = ‘,C:9:2);
End.
2015 12
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Daftar Pustaka
Cheltenham Computer Training, C Programming, www.cctglobal.com, United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
11 87001 Team Dosen
Abstract Kompetensi
Fungsi Rekursif Memahami Fungsi Rekursif
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
FUNGSI REKURSIF
11.1 Pengertian Rekursi
Rekursi adalah suatu proses dari fungsi yang memanggil dirinya sendiri. Fungsi yang
seperti ini disebut fungsi rekursif (recursive function). Dalam sebuah fungsi rekursif
pemanggilan dapat terjadi berulang kali. Karena ada proses yang berulang-ulang maka harus
ada suatu kondisi yang mengakhiri prosesnya. Jika tidak, maka proses tidak akan pernah
berhenti sampai memori yang digunakan tidak dapat menampung lagi.
Pemecahan masalah dengan pendekatan rekursif dapat dilakukan jika masalah
tersebut dapat didefinisikan secara rekursif, yaitu masalah dapat diuraikan menjadi masalah
sejenis yang lebih sederhana.
Listing Program 11.1 Contoh Fungsi Rekursi
Hasil Running:
procedure rekursi(n: integer);
begin
if n > 0 then
begin
writeln('rekursi ',n);
rekursi(n-1);
end;
end;
var p: integer;
begin
p:=3;
rekursi(p);
end.
Rekursi 3
Rekursi 2
Rekursi 1
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Dalam membuat fungsi rekursi harus ditentukan kondisi perhentian. Pada contoh
listing program 11.1 di atas kondisi perhentiannya adalah jika nilai n sudah lebih kecil atau
sama dengan 0. Setiap kali fungsi memanggil dirinya sendiri, nilai dari n dikurangi dengan nilai
1, sehingga nilai n akhirnya akan menjadi nol dan proses rekursi akan diakhiri, sehingga fungsi
ini akan memanggil dirinya sendiri sebanyak n kali.
Contoh untuk menggambarkan fungsi rekursif yang sering digunakan adalah fungsi
untuk mendapatkan nilai faktorial dari suatu bilangan bulat.
Listing Program 11.2 Program Faktorial
Hasil Running:
Program 11.2 di atas dapat dijelaskan sebagai berikut:
1. Fungsi utama memanggil fungsi faktorial() dengan mengirimkan nilai n = 5 untuk parameter
formal x, yang maksudnya akan dilakukan perhitungan sebanyak 5 faktorial.
2. Jika nilai dari x pertama kali yang diberikan oleh fungsi utama bernilai kurang dari atau
sama dengan satu, maka hasil faktorial yang akan diberikan adalah bernilai 1.
3. Jika nilai x pertama kali yang diberikan oleh fungsi utama lebih besar dari 1, maka proses
rekursi akan dilakukan misalnya nilai x = 5 , maka proses rekursi yang pertama adalah:
Function faktorial(x: integer): longint;
Begin
If x<= 1 then
Faktorial := 1
Else
Faktorial := x * faktorial(x-1);
End;
Var n:integer;
Begin
Writeln(‘Menghitung N Faktorial (N!)’);
Write(‘Masukkan N : ’); readln(n);
Writeln(n,’ ! = ‘, faktorial(n));
End.
Menghitung N Faktorial (N!)
Masukkan N : 5
5 ! = 120
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Faktorial= 5 * faktorial(4);
Proses ini akan memanggil kembali fungsi dirinya sendiri dengan mengirimkan nilai 4
sebagai nilai x yang baru. Karena nilai x masih lebih besar dari 1 maka proses rekursi
kedua akan dilakukan dengan hasilnya adalah 4 * faktorial(3). Untuk x adalah 3, hasil yang
diperoleh oleh rekursi adalah 3 * faktorial(2) dan seterusnya sampai nilai x adalah 1. Untuk
nilai x sama dengan 1 ini, perintah faktorial:=1 akan mengembalikan proses ke bagian
yang memanggilnya.
Hasil akhir dari nilai yang akan dikembalikan oleh fungsi faktorial dari penjelasan di atas
untuk 5 faktorial dapat dituliskan sebagai berikut:
faktorial:= 5 * faktorial(4);
faktorial:= 4 * faktorial(3);
faktorial:= 3 * faktorial(2);
faktorial:= 2 * faktorial(1);
faktorial:= ( 5 * 4 * 3 * 2 * 1);
11.2 Perbandingan Rekursif dengan Iteratif
Kekurangan fungsi rekursif:
1. Memerlukan memory yang lebih banyak untuk menyimpan activation record dan variabel
lokal. Activation record diperlukan waktu proses kembali kepada pemanggil.
2. Memerlukan waktu yang lebih banyak untuk menangani activation record.
Secara umum gunakan penyelesaian rekursif hanya jika:
1. Penyelesaian sulit dilaksanakan secara iteratif.
2. Efisiensi dengan cara rekursif sudah memadai.
3. Efisiensi bukan masalah dibandingkan dengan kejelasan logika program.
Jika sebuah masalah dapat diselesaikan dengan cara iteratif maka gunakan iteratif.
Jika penyelesaian dengan menggunakan iteratif memerlukan algoritma yang relatif rumit maka
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
dapat dicoba dengan pendekatan rekursif karena rekursif memerlukan sumber daya yang lebih
banyak.
Contoh program untuk membandingkan penggunaan itertif dan rekursif dapat dilihat
dalam program menampilkan deret fibonacci pada listing program 11.3 dan listing program 11.4
bawah ini.
Listing Program 11.3 Program Fibonacci dengan Rekursif
Hasil Running:
Penjelasan program:
Deret fibonacci mempunyai nilai suku-suku bilangan berikut:
0, 1, 1, 2, 3, 5, 8, 13, 21, ............
Ciri khusus deret ini adalah tiap-tiap suku adalah hasil penjumlahan dari nilai dua suku
sebelumnya. Misalnya adalah nilai suku ke dua adalah penjumlahan nilai suku ke 0 (bernilai 0)
Function Fibo(N:word): word;
Begin
If n< 2 then Fibo := N;
Else Fibo := Fibo(N-2) + Fibo(N-1);
End;
Var N,i : Word;
Begin
Writeln(‘Menampilkan deret Fibonacci’);
Write(‘Batas suku bilangan ke : ‘); readln(N);
Writeln(‘Deret ke ‘,N,‘ = ‘, Fibo(N));
Write(‘Deret fibonacci : ‘);
For i:= 1 to N do
write(fibo(i),’ ‘);
end.
Menampilkan deret Fibonacci
Batas suku bilangan ke : 5
Deret ke 5 = 5
Deret Fibinacci : 1 1 2 3 5
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
dengan suku ke 1 (bernilai 1) jadi nilai suku ke 2 adalah sama dengan 1 (0 + 1). Nilai suku ke
tiga adalah nilai suku ke dua ditambah nilai suku ke satu. Misalnya untuk mencari bilangan
fibonacci ke- 5, maka urutan pengerjaannya adalah sebagai berikut:
Dari diagram terlihat bahwa untuk mendapatkan deret ke 5 dari deret fibonacci maka fungsi
fibo(4) dihitung satu kali, fungsi fibo(3) dihitung dua kali, fungsi fibo(2) dihitung tiga kali dan
fungsi fibo(1) dihitung dua kali. Hal ini menyebabkan proses lebih lama dan juga sumber daya
yang dibutuhkan untuk menangani proses ini lebih banyak.
Listing Program 11.4 Program Fibonacci dengan Iteratif
fibo(5)
fibo(3) fibo(4)
fibo(1) fibo(2) fibo(2) fibo(3)
fibo(1) fibo(2)
uses wincrt;
Function fibo(n : word): word;
Var fb1, fb2, fn, i : word;
begin
if n< 2 then fibo:=n
else
begin
fb1:= 0; fb2:= 1;
for i:= 2 to n do begin
fn: = fb1; fb1:= fb2; fb2:= fn + fb2;
end;
fibo:= fb2;
end;
end;
var x, i: word;
begin
writeln('Menampilkan deret Fibonacci'); writeln;
write('Batas suku bilangan ke : '); readln(x);
write('Deret ke ', x, ' = ',fibo(x)); writeln;
write('Deret fibonacci : ');
for i:= 1 to x do
write(fibo(i),' ');
end.
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Hasil Running:
Penjelasan Program:
Dari listing program 11.4, terlihat bahwa setiap kali akan menghitung suku ke-n, maka nilai-nilai
suku sebelumnya akan digunakan kembali, yaitu nilai dari n-1(variabel fb1) dan nilai dari n-
2(variabel fb2). Pertama dihitung nilai dari deret ke-n, kemudian nilai dari deret n-1 diberikan
kepada deret n-2, dan nilai dari deret n diberikan kepada deret n-1.
Dengan cara iterasi ini, untuk menghitung nilai fibonacci(5) dapat dilakukan dengan cara:
Fb1(nilai variabel n-1) = 0
Fb2(nilai variabel n-2)=1
Untuk i = 2 (suku ke-2):
Fn = 0
Fb1 = 1
Fb2 = 0+1= 1
Untuk i = 3 (suku ke-3):
Fn = 1
Fb1 = 1
Fb2 = 1+1= 2
Untuk i = 4 (suku ke-4):
Fn = 1
Fb1 = 2
Menampilkan deret Fibonacci
Batas suku bilangan ke : 5
Deret ke 5 = 5
Deret fibonacci : 1 1 2 3 5
Menampilkan deret Fibonacci
Batas suku bilangan ke : 5
Deret ke 5 = 5
Deret fibonacci : 1 1 2 3 5
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Fb2 = 1+2= 3
Untuk i = 5 (suku ke-5):
Fn = 2
Fb1 = 3
Fb2 = 2+3= 5
Hasil akhirnya adalah Fibo(5) adalah 5
Latihan:
1. Apakah yang dimaksud dengan fungsi yang rekursif?
2. Apa persyaratan masalah untuk bisa diselesaikan dengan cara rekursif
3. Apa kekurangan fungsi rekursif?
4. Jelaskan mengenai activation recors.
5. Apakah lebih baik menulis program dengan menggunakan pendekatan iteratif ataukah
rekursif?
Tugas Mandiri:
1. Buatlah program untuk menghitung kombinasi dan permutasi.
2. Buatlah flowchart dan program untuk menghitung jumlah nilai deret fibonacci dari masukan
berupa batas deret.
==============
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Daftar Pustaka
Cheltenham Computer Training, C Programming, www.cctglobal.com, United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004.
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
12 87001 Team Dosen
Abstract Kompetensi
Tipe Data Bentukan Memahami Tipe Data Bentukan
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
TIPE DATA BENTUKAN
12.1. Tipe Data Type
Bahasa pemrograman seperti Pascal, sudah mendefinisikan tipe data yang dapat
digunakan, akan tetapi pengguna/user dapat juga mendefinisikan sendiri tipe data. Caranya
adalah dengan mendeklarasikan TYPE pada program. Sintak yang dapat digunakan untuk
mendefinisilkan TYPE adalah sebagai berikut :
type
datatypeidentifier = typespecification;
Format typespecification adalah :
(identifier1, identifier2, ... identifiern)
Sebagai contoh tipe data bentukan untuk mendefinisikan nama bulan satu tahun. Perhatikan
contoh berikut :
type
MonthType = (January, February, March, April, May, June, July,
August, September, October, November, December);
Setelah mendeklarasikan tipe maka tipe data bentukan itu dapat digunakan untuk variabel,
seperti dibawah ini :
var
Month : MonthType;
Pengguna juga dapat memberikan nilai dari data bentukan tersebut terhadap variabel yang
didefinisikan.
Month := January;
Fungsi ordinal juga dapat digunakan untuk tipe data bentukan, seperti pernyataan berikut:
ord(January) = 0, and ord(December) = 11.
Kelemahan tipe data bentukan adalah tidak dapat dibaca ataupun ditulis langsung ke
sebuah file. Data tersebut harus dikonversi terlebih dahulu ke dalam tipe data bentukan. Selain
itu juga tipe data bentukan tidak dapat digunakan untuk tipe data yang lainnya.
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
12.2. Subrange
Tipe data ordinal lainnya adalah subrange. Hampir sama dengan Type, subrange pun
memiliki format sebagai berikut:
type
datatypeidentifier = typespecification;
Format type spesificationnya adalah
lowest_value .. highest_value
Sebagai contoh bila ingin mendefinisikan hari dengan menggunakan subrange, seperti dibawah
ini :
type
DaysOfWeek = (Sunday, Monday, Tuesday, Wednesday, Thursday,
Friday, Saturday);
DaysOfWorkWeek = Monday..Friday;
Subrange dapat juga digunakan untuk tipe data karakter dan integer.
12.3. ARRAY
Array dimensi 1
Andaikan Anda harus membaca 5000 angka dan melakukan operasi yang sama
terhadap data tersebut, bagaimana Anda mendeklarasikan ke 5000 angka tersebut kedalam
variabel?
Anda dapat saja mendeklarasikan variabel untuk 5000 angka tersebut dengan cara
aa, ab, ac, ad, ... aaa, aab, ... aba, ... : integer
Walaupun hal tersebut dapat dilakukan, tapi akan memerlukan waktu yang lama untuk
mendefiinisikannya. Ada cara lain yang dapat digunakan yaitu dengan menggunakan array.
Array adalah tipe data berstruktur yang terdiri dari beberapa elemen data, dimana etiap
elemen data tersebut memiliki tipe data yang sama. Untuk mengacu setiap elemen di dalam
array dapat dilakukan dengan menggunakan nama array dan index
Tipe data array dapat dideklarasikan sebagai berikut :
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
type
typename = array [enumerated_type] of another_data_type;
Array dapat dideklarasikan dengan menggunakan tipe data apapun bahkan dengan tipe
data bentukan sekalipun. Sebagai contoh :
type
enum_type=1..50;
arraytype = array [enum_type] of integer
Deklarasi diatas dapat juga didefinisikan dengan cara berikut :
type
arraytype = array [1..50] of integer;
Tipe data array akan sangat berguna jika data yang akan disimpan berukuran besar.
Array pada umumnya digunakan dengan menggunakan bentuk perulangan (loop) karena dapat
diakses dengan menggunakan index. Sebagai contoh untuk membaca 50 bilangan integer,
maka dapat dikodekan sebagai berikut :
type arraytype = array[1..50] of integer;
var myarray : arraytype;
(*membaca 50 bilangan*)
for count := 1 to 50 do
read (myarray[count]);
Kurung siku digunakan diantara index pada saat mengakses elemen array.
myarray[5] := 6;
Array dimensi n
Untuk array berdimensi n, dideklarasikan dengan cara :
type
datatypeidentifier = array [enum_type1, enum_type2] of datatype;
Kurung siku digunakan untuk memisahkan dimensi dari array.
a [5, 3]
Contoh :
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
type
StatusType = (X, O, Blank);
BoardType = array[1..3,1..3] of StatusType;
Var Board : BoardType;
(*Inisialisasi*)
for count1 := 1 to 3 do
for count2 := 1 to 3 do
Board[count1, count2] := Blank;
12.4.Records
Record adalah salah satu tipe data terstruktur, dimana elemen-elemen data di dalamnya
memiliki tipe data yang berbeda. Sebagai contoh data mengenai orang yang terdiri dari nama,
umur, kota, dan alamat.
Record dapat dituliskan dalam format berikut :
TYPE
TypeName=record
identifierlist1:datatype_1;
...
identifierlis:datatype_n;
end;
Maka data orang dapat dinyatakan dengan record, seperti dibawah ini :
type
InfoType = record
Nama : string;
Umur : integer;
kota : String;
alamat :string;
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
end;
Setiap elemen data yang terdapat didalam record dapat dinyatakan sebagai sebuah field. Cara
untuk mengakses field tersebut adalah sebagai berikut :
VariableIdentifier.FieldIdentifier
Tanda titik memisahkan antara nama variabel record dengan nama field. Ada cara lain yang
dapat digunakan untuk mengakses field dalam record yaitu dengan menggunakan kata WITH
…. DO, seperti dibawah ini :
WITH Info DO
BEGIN
Age := 18;
ZIP := 90210;
END;
Contoh:
1. Dibaca dua buah titik P1(x1, y1) dan P2(x2, y2). Tulislah algoritma untuk menghitung titik
tengah dari P1 dan P2, dan buatlah programnya dalam Pascal.
Titik tengah dua P1 dan P2 adalah P3(x3, y3) yang dihitung dengan rumus:
x3 = x1 + x2 dan y3 = y1 + y2
2 2
Jawab:
Algoritma Titik_Tengah
Deklarasi
Type Titik : record < x: real
y: real
>
P1, P2, P3 : titik
Deskripsi
Read (P1.x, P1.y) {baca titik P1}
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Read (P2.x, P2.y) {baca titk P2}
P3.x (P1.x + P2.x) / 2
P3.y (P1.y + P2.y) / 2
Write (P3.x, P3.y)
Berikut ini adalah Program yang dituliskan dengan Bahasa Pascal:
Program Titik_Tengah;
Type Titik = record
x : real;
y: real;
end;
var
P1, P2, P3 : Titik;
Begin
Write(’Nilai x pada P1 (x1) : ’); readln(P1.x);
Write(‘Nilai y pada P1 (y1) : ‘); readln(P1.y);
Write(‘Nilai x pada P2 (x2) : ’); readln(P2.x);
write(‘Nilai y pada P2 (y2) : ‘); readln(P2.y);
P3.x := (P1.x + P2.x) / 2;
P3.y := (P1.y + P2.y) / 2;
Writeln(‘Koordinat P1 = (‘,P1.x,’, ’,P1.y,’)’);
Writeln(‘Koordinat P2 = (‘,P2.x,’, ’,P2.y,’)’);
Writeln(‘Titik tengah dari P1 dan P2= (‘,P3.x,’, ’,P3.y,’)’);
End.
Jika Program dijalankan maka akan memberikan hasil seperti berikut:
Nilai x pada P1 (x1) : 4
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Nilai y pada P1 (y1) : 8
Nilai x pada P2 (x2) : 2
Nilai y pada P2 (y2) : 6
Koordinat P1 = (4, 8)
Koordinat P2 = (2, 6)
Titik tengah dari P1 dan P2= (3, 7)
Latihan:
1. Apakah perbedaan record dengan array?
2. Dapatkah sebuah record mempunyai elemen sebuah record juga? Bagaimana cara
mengaksesnya?
3. Tulislah program untuk menampilkan sejumlah data pegawai yang terdiri dari Nomor
pegawai, nama pegawai, alamat, jabatan, gaji dan jenis kelamin. Banyaknya jumlah
pegawai ditentukan oleh pengguna.
4. Buatlah algoritma untuk menghitung rata-rata dari beberapa nilai mahasiswa, banyaknya
nilai yang akan dihitung berdasarkan masukan dari pengguna program
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Daftar Pustaka
Cheltenham Computer Training, C Programming, www.cctglobal.com, United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004.
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
13 87001 Team Dosen
Abstract Kompetensi
ARRAY (LARIK) Memahami Jenis Array
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
ARRAY (LARIK)
Array adalah : type terstrukur yang terdiri dari sejumlah komponen-komponen yang mempunyai
type yang sama. Suatu array mempunyai jumlah komponen yang tetap. Banyaknya komponen
dari suatu array ditunjukan oleh Indeks yaitu ungkapan tipe ordinal.
DEKLARASI ARRAY
Array dalam suatu program pascal harus dideklarasikan terlebih dahulu, dengan kata
cadangan Array diletakan diantara tanda [ ], larik bertipe sederhana seperti byte, word, integer,
real, Boolean, character, dan tipe subrange.
Contoh :
Var
X : array [ 1 .. 100 ] of integer tipe dari larik.
Nama larik tipe indeks.
Larik X telah dideklarasikan dengan tipe integer, dengan jumlah elemennya maksimum 100
elemen nilai-nilainya harus bernilai integer.
X[1] :=25;
X[2] :=75;
X[3] :=15;
X[4] :=10;
Jika nilai elemen ke 3 dari larik X yang akan ditampilkan maka dapat dipergunakan statemen
sebagai berikut :
WriteLn(X[3]);
Contoh deklarasi Array dengan macam-macam tipe
Var nilai : Array [1..100] of byte;
Var Urutan : Array [1..200] of word;
Var gaji : Array [5..100] of Real;
Var Lulus : Array [1..25] of Boolean;
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Var Nilai : Array [1..5] of char;
Array dibedakan menjadi :
array berdimensi Satu
array berdimensi dua
array berdimensi banyak.
ARRAY BERDIMENSI SATU
Adalah tipe array yang paling sederhana.
78 65 80 75 62
Deklarasi untuk array tersebut diatas sebagai berikut :
Var
Nilai_test : array [1..5] of integer;
Dengan adanya pendeklarasikan tersebut diatas berarti ada 5 buah elemen dalam array
Nilai_test yaitu :
Nilai_test[1] :=78;
Nilai_test[2] :=65;
Nilai_test[3] :=80;
Nilai_test[4] :=75;
Nilai_test[5] :=62;
Memberikan Nilai dalam suatu Array.
Nilai_test[2] :=65;
Readln (Nilai_test[2]);
Perhatikan contoh Program Larik_1 berikut ini :
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Jika Program Larik_1 dijalankan, maka akan menampilkan output seperti di bawah ini :
ARRAY BERDIMENSI DUA
Array berdimensi dua dapat berbentuk tabel atau matrik yaitu indeks yang pertama menunjukan
baris dan indeks yang kedua menunjukan kolom dari tabel atau matrik.
Eko Dwi Tri Catur
Topan Bahari Ami Anank
Arev Areh Anin Andi
Bentuk deklarasinya sebagai berikut :
Var
TABEL = ARRAY [1..3,1..4]; of STRING;
Indeks kolom Tipe Array
Nama Array Indeks Baris
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MEMBERI NILAI
Yang harus dipaham dalam pemberian nilai pada array tabel terdapat elemen sebagai berikut :
Tabel [1,1] berisi nilai string yaitu ‘ Eko’
Tabel [1,2] berisi nilai string yaitu ‘ Dwi’
Tabel [1,3] berisi nilai string yaitu ‘ Tri’
Tabel [1,4] berisi nilai string yaitu ‘ Catur’
Tabel [2,1] berisi nilai string yaitu ‘ Topan’
Tabel [2,2] berisi nilai string yaitu ‘ Bahari’
Tabel [2,3] berisi nilai string yaitu ‘ Ami’
Tabel [2,4] berisi nilai string yaitu ‘ Andi’
ini berarti elemen bergerak mulai dari :
baris 1 - kolom 1, kolom2, kolom3, kolom4
baris 2 - kolom 1, kolom2, kolom3, kolom4
baris 3 - kolom 1, kolom2, kolom3, kolom4
Perhatikan contoh program larik_2 berikut ini :
Jika program larik_3 dijalankan, maka akan menampilkan output seperti di bawah ini :
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Perhatikan contoh program larik_3 berikut ini :
Jika program larik_3 dijalankan, maka akan menampilkan output seperti di bawah ini :
Perhatikan contoh program larik_4 berikut ini :
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Jika program larik_4 dijalankan, maka akan menampilkan output seperti di bawah ini :
Perhatikan contoh program larik_5 berikut ini :
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Latihan :
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
1. Buatlah flowchart dan program pascal yang dapat menjumlahkan 2 buah matrik. Ingat syarat
penjumlahan 2 buah matrik, yaitu kedua matrik harus mempunya ordo yang sama, misal
ordo matrik A 2 x 3 hanya dapat dijumlahkan dengan matrik yang berordo 2x3.
Jawab :
2015 11
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Jika program di atas dijalankan outputnya adalah :
2. Buatlah flowchart dan program pascal perkalian 2 buah matrik.
2015 12
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Daftar Pustaka
Cheltenham Computer Training, C Programming, www.cctglobal.com, United Kingdom, 1997
Deitel & Deitel, C How to Program 3rd Edition, Prentice Hall, New Jersey, 2001
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004.
2015 1
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
MODUL PERKULIAHAN
Dasar Pemrograman
Modul Standar untuk digunakan dalam Perkuliahan di Universitas Mercu Buana
Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
Ilmu Komputer Sistem Informasi
14 87001 Team Dosen
Abstract Kompetensi
RECORD Jenis Record
Memahami pemakaian Record dalam PASCAL
2015 2
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
RECORD
14.1. PENDAHULUAN
Jika pada array komponen data harus memiliki tipe data yang sama, maka pada record
beberapa item data yang dikumpulkan dapat memiliki tipe data yang berbeda. Masing masing
item data disebut dengan FIELD. Jadi record terdiri dari kumpulan field yang dapat berbeda
tipe. Biasanya suatu record berisi beberapa field untuk sebuah subyek tertentu. Misalnya record
Langganan dapat terdiri dari field kode langganan, nama langganan, alamat langganan dan
besarnya piutang.
14.2. DEKLARASI RECORD
Deklarasi tipe record diawali dengan kata cadangan RECORD dan diikuti oleh suatu daftar field
dan diakhiri dengan kata cadangan END.
Contoh 1 :
type
Lgn = record
Kode : integer;
Nama : string[35];
Alamat : string[45];
Piutang ; real;
End;
Var
Langganan : Lgn;
Deklarasi variable tipe data record dapat langsung dilakukan di bagian deklarasi variable
:
Var
Langganan : record
Kode : integer;
Nama : string[35];
Alamat : string[45];
2015 3
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Piutang ; real;
End;
14.3. MENGGUNAKAN TIPE DATA RECORD
Tiap tiap komponen field dari record dapat dipergunakan dengan cara menuliskan :
Pengenal-record.pengenal-field[pengenal.field]
Dari contoh 1 bila field nama akan dipanggil, misalnya akan diisi dengan suatu nilai nama maka
dapat ditulis :
Langganan.Nama := ‘Yahya Ayyash’;
Pengenal field
Pengenal record
Contoh 2 :
uses WinCrt;
Type
Hasil = record
JariJari : real;
Keliling : real;
Luas : real;
end;
Var
Lingkaran : Hasil;
Begin
Write('Jari-jari lingkaran ? '); readln(Lingkaran.JariJari);
Lingkaran.Keliling := 2*PI*Lingkaran.JariJari;
Lingkaran.Luas := PI*sqr(Lingkaran.JariJari);
Writeln;
Writeln('Keliling Lingkaran = ',Lingkaran.Keliling:7:2);
Writeln('Luas Lingkaran = ',Lingkaran.Luas:7:2);
End.
2015 4
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
14.4. STATEMEN WITH
Penggunaan field di dalam record seperti contoh 2 menyebabkan statemen menjadi
panjang akan lebih mudah dan lebih pendek bila pengenal record tidak selalu harus ditulis
dengan menggunakan statemen With.
Contoh 3 ;
uses WinCrt;
Type
Hasil = record
JariJari : real;
Keliling : real;
Luas : real;
End;
Var
Lingkaran : Hasil;
Begin
With Lingkaran Do
Begin
Write('Jari-jari lingkaran ? '); readln(JariJari);
Keliling := 2*PI*JariJari;
Luas := PI*sqr(JariJari);
Writeln;
Writeln('Keliling Lingkaran = ',Keliling:7:2);
Writeln('Luas Lingkaran = ',Luas:7:2);
End;
End.
14.5. TIPE DATA RECORD DENGAN FIELD TIPE RECORD
2015 5
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Tipe data record dapat juga mempunyai field berupa tipe data record yang lainnya. Misalnya
item item data berikut :
1. Nama pegawai
2. Tanggal masuk
a. hari
b. bulan
c. tahun
3. Alamat pegawai
a. jalan
b. kota
4. Gaji
a. gaji pokok
b. tunjangan
c. lembur
Contoh 4 :
uses WinCrt;
Type
Tgl = Record
Hari : 1..31;
Bulan : 1..12;
Tahun : word;
End;
alm = record
Jalan : string[35];
Kota : string[25];
End;
GajiPeg = Record
GajiPokok, Tunjangan, Lembur : real;
End;
Pegawai = Record
Nama : string[40];
TglMasuk : Tgl;
2015 6
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Alamat : alm;
Gaji : GajiPeg;
End;
Var
DataPegawai : Pegawai;
TotalGaji : Real;
Begin
DataPegawai.Nama := 'Badu';
DataPegawai.TglMasuk.Hari := 15;
DataPegawai.TglMasuk.Bulan := 3;
DataPegawai.TglMasuk.Tahun := 1980;
DataPegawai.Alamat.Jalan := 'Gang Buntu 22';
DataPegawai.Alamat.Kota := 'Yogyakarta';
DataPegawai.Gaji.GajiPokok := 1000000;
DataPegawai.Gaji.Tunjangan := 1000000;
DataPegawai.Gaji.Lembur := 500000;
With DataPegawai Do
Begin
Writeln('Nama Pegawai : ',Nama);
With TglMasuk Do
Writeln('Tanggal masuk : ',Hari,'-',Bulan,'-',Tahun:4);
With Alamat Do
Begin
Writeln('Alamat : ',Jalan,' ',kota);
End;
With Gaji Do
Begin
TotalGaji := GajiPokok+Tunjangan+Lembur;
Writeln;
Writeln('Gaji Pokok : Rp ',GajiPokok:6:0);
Writeln('Tunjangan : Rp ',Tunjangan:6:0);
Writeln('Lembur : Rp ',Lembur:6:0);
Writeln(' ***TOTAL Rp ',TotalGaji:6:0);
End;
2015 7
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
End;
End.
14.6. RECORD BERVARIASI
Pada contoh 4 kita lihat field field pada record sudah tertentu dan pasti disebut fixed
record structure, kita juga dapat membuat suatu record yang mempunyai field yang tidak pasti
atau bervariasi disebut variant record.
Contoh 5 :
Type
StatusMenikah = (Single, menikah, Cerai,MenikahLagi);
DataPribadi = record
Nama : string[20];
Gaji : real;
Case Status : StatusMenikah of
Single: ();
Menikah : (AnakM : 0..20);
Cerai : (AnakC : 0..20);
MenikahLagi:( );
end;
var
Karyawan : Array[1..20] of DataPribadi;
Jawab : Char;
JumlahData, I : Byte;
Procedure MasukkanData;
Begin
Clrscr;
Write('Jumlah Data ? ');readln(JumlahData);
For I := 1 to JumlahData Do
Begin
2015 8
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
With Karyawan[I] Do
Begin
Writeln;
Write(' Nama Karyawan ? ');readln(Nama);
Write(' Gaji tiap Bulan ? ');readln(Gaji);
Write(' status menikah (S/M/C) ? ');readln(Jawab);
If Upcase(Jawab)='S' then
Begin
Status := Single;
End;
If Upcase(Jawab)='M' then
Begin
Status := Menikah;
Write(' Jumlah anak ? ');readln(AnakM);
End;
If Upcase(Jawab)='C' then
Begin
Status := Cerai;
Write(' Jumlah anak ? ');readln(AnakC);
Write(' Menikah lagi (Y/T) ? ');readln(jawab);
End;
End; {with karyawan[I]}
End; {for I }
End; {Masukkan data}
Procedure TampilkanHasil;
Begin
Clrscr;
Writeln(' D A F T A R K A R Y A W A N');
Writeln(' ----------------------------------------------------------------');
Writeln(' Nama Gaji Status Jumlah Menikah');
writeln(' Karyawan Sebulan S/M/C Anak Lagi ');
writeln(' ----------------------------------------------------------------');
For I := 1 to JumlahData Do
2015 9
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Begin
With Karyawan[I] Do
Begin
Write(Nama:10, Gaji:19:2);
Case Status Of
Single : Writeln(' S ':9);
Menikah : writeln(' M ',AnakM:12);
Cerai : writeln(' C ',AnakC:12,Jawab:10);
End; {Case Status}
End; {With Karyawan[I]}
End; {For I }
Writeln(' ----------------------------------------------------------------');
End; {TampilkanHasil}
Begin {Modul utama}
MasukkanData;
TampilkanHasil;
End.
LATIHAN :
1. Buat program record data mahasiswa tanpa menggunakan reserved word with dan
menggunakan reserved word with dengan output yang sama sebagai berikut :
Program tanpa menggunakan with adalah sebagai berikut :
2015 10
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Program dengan menggunakan with adalah sebagai berikut :
2015 11
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
2. Buatlah program untuk mencatat data-data karyawan suatu perusahaan yang terdiri
dari field jumlah karyawan, nama, gaji/bulan, serta statusnya (belum menikah,
menikah, duda/janda). Jika sudah menikah tanya berapa anaknya. Jika duda/janda,
tanya apa akan menikah lagi. Tampilkan seluruh data yang dicatat dalam sebuah
tabel.
3. Buatlah program untuk menampilkan sejumlah data pegawai yang terdiri dari Nomor
pegawai, nama pegawai, alamat, jabatan, gaji dan jenis kelamin. Banyaknya jumlah
pegawai ditentukan oleh pengguna.
2015 12
Dasar Pemrograman Pusat Bahan Ajar dan eLearning
Team Dosen http://www.mercubuana.ac.id
Daftar Pustaka
Dwi Sanjaya, Berpetualang dengan Struktur Data di Planet Pascal, J&J Learning Yogyakarta,
2001.
Jogiyanto, Konsep Dasar Pemrograman Bahasa PASCAL, Andi Offset, Yogyakarta, 1993
Thompson Susabda Ngoen, Pengantar Algoritma dengan Bahasa C, Salemba Teknika, Jakarta,
2004.