157
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

MODUL PERKULIAHAN Dasar Pemrogramanfasilkom.mercubuana.ac.id/wp-content/uploads/2017/10/Modul-Dasar... · A. Simbol-simbol pada Flowchart ... atau proses dalam lembar/halaman yang

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 2

Dasar Pemrograman Pusat Bahan Ajar dan eLearning

Team Dosen http://www.mercubuana.ac.id

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 2

Dasar Pemrograman Pusat Bahan Ajar dan eLearning

Team Dosen http://www.mercubuana.ac.id

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 2

Dasar Pemrograman Pusat Bahan Ajar dan eLearning

Team Dosen http://www.mercubuana.ac.id

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 10

Dasar Pemrograman Pusat Bahan Ajar dan eLearning

Team Dosen http://www.mercubuana.ac.id

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 10

Dasar Pemrograman Pusat Bahan Ajar dan eLearning

Team Dosen http://www.mercubuana.ac.id

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.