modul lengkap

79
1 MODUL I MEMULAI PROGRAM PASCAL A. TUJUAN 1. Mengenal bahasa pemrograman Pascal 2. Memahami struktur program Pascal 3. Mampu membuat program Pascal sederhana B. DASAR TEORI 1. Struktur Program Pascal PROGRAM nama_program; USES unit1, unit2, unit3; CONST Deklarasi konstanta; TYPE Deklarasi type data; VAR Deklarasi variabel; BEGIN Instruksi program Pascal pernyataan/statement END. 2. Menjalankan Turbo Pascal a. Dari menu Start > All Programs > Accessories > Command Prompt b. Kemudian masuklah ke direktori yang tepat. Tanyakan pada dosen/instruktur, direktori mana yang memuat aplikasi Turbo Pascal (misalnya : C:\TP\BIN) cd; masuk ke direktori cd.. ; keluar dari direktori c. Setelah masuk ke direktori yang sesuai, tulis TURBO, lalu tekan tombol <ENTER>. Contoh : C:\TP\BIN\TURBO. Tampilan aplikasi Turbo Pascal : judul program bagian deklarasi badan program

Upload: fisma-ananda

Post on 21-Jul-2015

226 views

Category:

Education


21 download

TRANSCRIPT

1

MODUL I MEMULAI PROGRAM PASCAL

A. TUJUAN

1. Mengenal bahasa pemrograman Pascal 2. Memahami struktur program Pascal

3. Mampu membuat program Pascal sederhana B. DASAR TEORI

1. Struktur Program Pascal

PROGRAM nama_program;

USES unit1, unit2, unit3;

CONST

Deklarasi konstanta;

TYPE

Deklarasi type data;

VAR

Deklarasi variabel;

BEGIN

Instruksi program Pascal

pernyataan/statement

END.

2. Menjalankan Turbo Pascal

a. Dari menu Start > All Programs > Accessories > Command Prompt

b. Kemudian masuklah ke direktori yang tepat. Tanyakan pada dosen/instruktur, direktori

mana yang memuat aplikasi Turbo Pascal (misalnya : C:\TP\BIN) cd; masuk ke direktori cd.. ; keluar dari direktori

c. Setelah masuk ke direktori yang sesuai, tulis TURBO, lalu tekan tombol <ENTER>.

Contoh : C:\TP\BIN\TURBO.

Tampilan aplikasi Turbo Pascal :

judul program

bagian deklarasi

badan program

2

3. Cara Memilih Menu

Ketika anda sudah masuk ke aplikasi Pascal, maka yang anda lihat sesungguhnya adalah

editor Pascal, yaitu suatu tempat bagi anda untuk menulis baris-baris pernyataan program. Pada editor tersebut, perhatikan baris paling atas yang memuat tulisan File, Search, Run,

Compile, Tool, Option, Debug, Window, dan Help yang merupakan Menu Utama di dalam aplikasi Pascal dan masing-masing menu memiliki sub menu. Menu yang wajib dipahami adalah File, Edit, Run, dan Compile.

a. Cara Pertama

1. Gunakan mouse untuk menggerakkan pointer di layar monitor ke arah menu-menu

yang tersedia 2. Left Click untuk memilih menu yang diinginkan.

b. Cara Kedua

1. Menekan tombol <ALT> dan huruf pertama dari menu yang diinginkan secara bersamaan. Misalnya ingin memilih menu File, maka yang perlu dilakukan adalah

menekan tombol <ALT> dan tombol <F> secara bersamaan. 2. Gunakan tombol <ENTER> untuk memilih sub menu yang ada.

4. Mengedit

Perintah-perintah mengedit seperti menghapus, menggerakkan kursor (pointer),

menggulung layar, dan lain-lain banyak yang sama dengan perintah pada MS WORD. a. Menggerakkan Kursor

Untuk menggerakkan kursor, dapat menggunakan tombol panah, <home>, <Page Up>,

<Page Down>, atau <End>.

b. Operasi Blok 1) Arahkan kursor pada awal blok. Kemudian tekan tombol <SHIFT>, lanjutkan

dengan menekan tombol panah tapi tombol <SHIFT> jangan dilepas dulu. Arahkan

tombol panah sampai posisi yang diinginkan. 2) Untuk menghapus arsiran blok, tekan tombol <CTRL><K><H> secara bersamaan.

c. Menghapus (cut atau clear) 1) <CTRL><T> : untuk menghapus 1 kata yang berada di kanan kursor 2) <CTRL><Y> : untuk menghapus 1 baris pada kursor

3) <CTRL><K><Y> atau <SHIFT><DEL> atau <CTRL><DEL> : untuk menghapus 1 blok.

3

d. Menyalin (copy)

1) Blok tulisan yang akan disalin (copy) 2) Tekan tombol <CTRL><INSERT> atau <CTRL><K><C>.

3) Untuk memindahkan (paste) tulisan yang telah disalin, tekan tombol <SHIFT><INSERT>.

5. Mengubah Direktori Kerja

Direktori kerja merupakan direktori yang digunakan untuk menyimpan file-file program

yang telah dibuat. Secara default, direktori kerja sama dengan direktori sistem aplikasi. Untuk mengubah direktori kerja, buka menu File, lalu pilih sub menu Change Dir. Setelah muncul kotak dialog Change Directory, ketiklah alamat lengkap direktori yang diinginkan

pada Directory name, kemudian pilih tombol OK. Tanyalah pada dosen/instruktur dimana letak direktori kerja anda.

6. Memulai Mengetik Teks Program (New)

Ketika aplikasi Pascal dijalankan, secara default akan menyediakan lembar kerja baru.

Sehingga dapat digunakan langsung untuk mengetikkan kode program. Untuk membuat lembar kerja baru, buka menu File, kemudian pilih sub menu New.

7. Menyimpan Program (Save atau Save As)

Untuk menyimpan program yang telah dibuat, tekan tombol <F2> atau buka menu File,

kemudian pilih sub menu Save. Jika ingin menyimpan degan nama dan/atau pada direktori lain, gunakan sub menu Save As. File program Pascal disimpan dengan ekstensi .PAS.

8. Membuka Program (Open)

Untuk membuka program yang sudah pernah dibuat, buka menu File, kemudian pilih

sub menu Open atau langsung tekan tombol <F3>, kemudian cari file program yang ingin dibuka kembali.

9. Kompilasi (Compile)

Program dapat dijalankan apabila telah di-compile terlebih dahulu. Cara melakukan

compile adalah dengan menekan tombol <ALT><F9> secara bersamaan atau dengan cara membuka menu Compile, kemudian pilih sub menu Compile.

10. Menjalankan Program (Running Program)

Setelah di-compile, program dijalankan dengan menekan tombol <CTRL><F9>

atau dengan membuka menu Run, dan pilih sub menu Run.

11. Membuat Executable Program

Executable program adalah program yang dapat dijalankan langsung tanpa harus menggunakan compiler (dalam hal ini adalah Pascal). Cirinya adalah file berekstensi .EXE.

Cara mengubah program Pascal menjadi executable program adalah : a. Buka menu Compile, kemudian pilih sub menu Destination Memory. Maka

Destination Memory secara otomatis berubah menjadi Destination Disk. b. Kemudian lakukan kompilasi, maka secara otomatis akan tercipta satu buah file yang

berekstensi .EXE sesuai dengan nama file.

12. Aturan Pemberian Nama Program

Nama program terdiri dari maksimal 8 huruf dengan ekstensi .PAS. Dalam praktikum ini, praktikan diwajibkan memberi nama program sesuai dengan aturan yang telah

4

ditentukan untuk tujuan kemudahan dalam penilaian. Praktikan yang memberi nama

program tidak sesuai dengan ketentuan ini akan menyulitkan praktikan sendiri!!! Pada kasus tertentu, pekerjaan tidak akan dinilai!!!

Berikut ini adalah ketentuan dalam pemberian nama file dari program yang akan disimpan : a. Tentukan angkatan anda. Ambil 2 digit terakhir. Jika angkatan anda adalah 2009, maka

yang diambil adalah 09. b. Tentukan nomor urut mahasiswa anda. Ambil 2 digit terakhir. Jika nomor mahasiswa

anda adalah 3200916001, maka yang diambil adalah 01. c. Tentukan nomor program. Nomor program sudah ditentukan oleh dosen/instruktur atau

sudah tercantum dalam modul ini. Nomor program merupakan kombinasi antara nomor

modul dan nomor urut latihan. Contoh : modul 1 dan latihan 1, maka nomor program adalah 0101.

d. Gabungkan angka-angka yang berasal dari poin a, b, dan c, sehingga nama program menjadi : 09010101.PAS

09 01 0101 .PAS

C. LATIHAN SOAL

1. Nomor Program : 0101

a. Tulis program berikut dan amati outputnya!

PROGRAM hello_world;

USES CRT;

BEGIN

CLRSCR;

WRITE(‘Hello’);

WRITE(‘World’);

READLN;

END.

b. Statement/pernyataan yang merupakan judul program adalah : c. Statement/pernyataan yang merupakan deklarasi adalah :

d. Statement/pernyataan yang merupakan badan program adalah :

angkatan nomor urut mahasiswa nomor program

5

e. Output dari program dengan nomor program 0101 adalah :

f. Gantilah statement WRITE menjadi WRITELN, maka outputnya adalah :

g. Hapuslah procedure CLRSCR yang berada pada baris pertama pada badan program,

kemudian lakukan proses running lebih dari 1 kali dan jelaskan apa yang terjadi?

Masih ada tampilan running yang sebelumnya

h. Hapuslah procedure READLN yang berada pada baris terakhir pada badan program dan

jalankan program, kemudian jelaskan apa yang terjadi? Program hanya bisa nampil sebentar lalu kembali ke coding.

2. Nomor Program : 0102

a. Tulis program berikut dan amati outputnya!

PROGRAM warna_warni;

USES CRT;

BEGIN

CLRSCR;

TEXTCOLOR(red);

WRITELN(‘Saya suka warna merah’);

TEXTCOLOR(green);

WRITELN(‘Kamu suka warna hijau’);

READLN;

END.

6

b. Output dari program dengan nomor program 0102 adalah :

c. Ganti parameter dalam fungsi TEXTCOLOR menjadi white, black, yellow, blue,

magenta, atau cyan. Bagaimana hasilnya?

d. Tambahkan string + blink dalam fungsi TEXTCOLOR, sehingga menjadi :

TEXTCOLOR(red + blink); Apa kegunaan dari string + blink?

Menambah efek blink pada tulisan.

3. Nomor Program : 0103

a. Buatlah program untuk menampilkan tulisan seperti berikut ini : MATAKULIAH PRAKTIKUM PEMROGRAMAN 1

PROGRAM STUDI D3 TEKNIK INFORMATIKA

JURUSAN TEKNIK ELEKTRO

POLITEKNIK NEGERI PONTIANAK b. Tentukan warna text untuk tiap baris dan tidak boleh sama. c. Kemudian tampilkan dengan berkedip.

d. Jika sudah selesai, tambahkan statement TEXTBACKGROUND(green) setelah statement

CLRSCR. Amati outputnya dan jelaskan!

7

4. Nomor Program : 0104

a. Tulis program berikut dan amati outputnya!

PROGRAM simbol;

USES CRT;

BEGIN

CLRSCR;

WRITELN(‘α adalah simbol alfa’);

READLN;

END.

b. Perhatikan simbol α. Simbol tersebut tidak ada di keyboard, sehingga anda harus mencari terlebih dahulu kode ASCII (American Standard Code for Information

Interchange) desimal dari simbol tersebut. Berikut ini adalah tabel kode ASCII :

8

c. Untuk dapat menggunakan kode ASCII, tekan tombol <ALT>, kemudian tekan tombol

angka yang ada di bagian sebelah kanan keyboard secara bersamaan. Contoh : simbol α kode ASCII adalah 224, maka tekan tombol <ALT><2><2><4> secara bersamaan.

5. Nomor Program : 0105

Buatlah program untuk menampilkan simbol : ß, Φ, Ω, dan Σ

9

6. Nomor Program : 0106

a. Buatlah program yang menghasilkan suatu output dengan menggunakan kode ASCII : 218, 196, 196, 196, 194, 196, 196, 196, 191. Gunakan Syntax WRITE.

b. Tampilan dari simbol tersebut adalah :

10

7. Nomor Program : 0107

Buatlah program untuk menampilkan tabel seperti berikut ini :

NO NIM NAMA

1 2

3

3200916001 3200916002

3200916003

Budi Antok

Siska

8. Nomor Program : 0108 (A) Buatlah program untuk menghitung luas lingkaran dengan jari-jari = 20 dan tetapan

(konstanta) π = 3.14. Output dari program adalah :

11

Program Menghitung Luas Lingkaran

Diketahui :

Jari-jari = 20

Phi = 3.14

Maka :

Luas Lingkaran = 1256

Nomor Program : 0108 (B)

Buatlah program untuk menghitung luas segi tiga, dengan alas = 10 dan tinggi = 20. Output dari program adalah :

Program Menghitung Luas Segi Tiga

Diketahui :

Alas = 10

Tinggi = 20

Maka :

Luas Segi Tiga = 100

12

9. Nomor Program : 0109 (A)

a. Tulis program berikut dan amati outputnya!

PROGRAM luas_lingkaran;

USES CRT;

CONST phi = 3.14;

VAR r : integer;

luas : real;

BEGIN

CLRSCR;

WRITELN(‘Program Menghitung Luas Lingkaran’);

WRITELN(‘Diketahui :’);

WRITE(‘ Jari-jari = ‘);READLN(r);

luas:=phi*r*r;

WRITELN(‘ Phi = ‘,phi);

WRITELN(‘Maka :’);

WRITELN(‘ Luas Lingkaran = ‘,luas);

WRITE(‘ Luas Lingkaran = ‘,luas:0:0);

READLN;

END.

b. Jelaskan apa fungsi dari statement READLN(r)!

Menyimpan data yang di inputkan ke dalam variabel r.

c. Jelaskan apa fungsi dari :0:0 pada statement WRITE(‘ Luas Lingkaran =

‘,luas:0:0);

13

0 pertama di gunakan untuk memberi jarak atau spasi saat pengeluaran data, 0 yang

kedua di gunakan untuk memberi seberapa banyak angka di belakang koma.

Nomor Program : 0109 (B)

d. Tulis program berikut dan amati outputnya!

PROGRAM luas_segitiga;

USES CRT;

VAR alas, tinggi : integer;

luas : real;

BEGIN

CLRSCR;

WRITELN(‘Program Menghitung Luas Segi Tiga’);

WRITELN(‘Diketahui :’);

WRITE(‘ alas = ‘);READLN(alas);

WRITE(‘ tinggi = ‘);READLN(tinggi);

luas:=1/2*alas*tinggi;

WRITELN(‘ Phi = ‘,phi);

WRITELN(‘Maka :’);

WRITELN(‘ Luas Segi Tiga = ‘,luas);

WRITE(‘ Luas Segi Tiga = ‘,luas:0:0);

READLN;

END.

14

e. Jelaskan apa fungsi dari statement READLN(alas) dan READLN(tinggi)!

Memasukkan data ke dalam variabel alas dan variabel tinggi.

f. Jelaskan apa fungsi dari :0:0 pada statement WRITE(‘ Luas Segi Tiga =

‘,luas:0:0);

15

MODUL II

DEKLARASI PROGRAM

A. TUJUAN

1. Mengenal bagian-bagian dalam deklarasi program beserta kegunaannya

2. Mengenal istilah- istilah yang merupakan unsur penting dalam program Pascal 3. Memahami pengertian variabel

4. Memahami tipe-tipe data sederhana dalam Pascal 5. Mampu mengaplikasikan berbagai macam tipe data dalam permasalahan pemrograman

B. DASAR TEORI

Unsur-unsur pokok program Pascal sederhana :

1. Kata simpan (reserved word) adalah kata-kata yang telah didefinisikan oleh Pascal. Misalnya kata : PROGRAM, CONST, TYPE, VAR, BEGIN, END, INTEGER.

2. Pemisah pernyataan digunakan untuk memisahkan satu pernyataan dengan pernyataan

lainnya. Dalam Pascal, pemisah pernyataan menggunakan tanda titik koma (;) 3. Identifier adalah kata-kata yang kita definisikan sendiri (bukan kata simpan). Identifier

memenuhi beberapa syarat berikut : a. Terdiri dari huruf dan angka serta garis bawah (_). Garis bawah (_) biasanya digunakan

sebagai pengganti spasi (space).

b. Karakter/huruf pertama dari identifier tidak boleh menggunakan angka. c. Tidak boleh menggunakan karakter spasi (space).

d. Tidak membedakan huruf besar dan huruf kecil. e. Maksimal karakter yang digunakan dalam sebuah identifier adalah 63 karakter. f. Identifier biasa digunakan untuk memberi nama variabel, judul program, dan konstanta.

4. PROGRAM Digunakan untuk memberi nama/judul suatu program. Untuk memberi nama program,

tidak boleh diawali dengan angka dan tidak boleh menggunakan spasi maupun operator aritmatika.

5. USES

USES artinya menggunakan. Pengertian menggunakan di sini adalah menggunakan UNIT. UNIT adalah istilah dalam bahasa Pascal yang merupakan tempat prosedur/fungsi

tertentu. Dalam bahasa Pascal, terdapat beberapa prosedur yang disedikan langsung oleh Pascal, misalnya write, writeln, read, readln, dan lain-lain. Namun terdapat beberapa prosedur yang tidak dimiliki oleh Pascal, tetapi dimiliki oleh UNIT, misalnya prosedur

clrscr, textcolor, dan lain-lain. Berikut ini adalah beberapa UNIT standar yang tersedia :

Nama Unit Keterangan

CRT Berisi fasilitas yang berhubungan dengan layar, gunanya untuk menghapus layar, mengatur warna teks

dan latar belakangnya (background), dan membangkitkan suara speaker komputer.

DOS Berisi fasilitas yang berhubungan dengan sistem

operasi dan penanganan file.

GRAPH Berisi fasilitas yang berhubungan dengan mode grafik

SYSTEM Berisi fasilitas prosedur dan fungsi, juga untuk menangani masukan dan keluaran file serta alokasi memori yang dinamis.

PRINTER Berisi fasilitas untuk mencetak hasil keluaran (output) dengan menggunakan printer.

16

TURBO 3 Berisi fasilitas untuk menjalankan programyang telah dibuat dengan Pascal versi 3, untuk bisa dijalankan

dengan pascal versi 5.5, walau tidak semua program bisa dijalankan.

GRAPH3 Berisi fasilitas grafik yang terdapat pada Pascal versi

3.0, (khususnya gambar) tetapi harus melibatkan file GRAPH.BIN dan GRAPH.P.

OVERLAY Berisi fasilitas yang berguna untuk menjalankan

overlay

WINDOS Berisi fasilitas untuk menangani implementasi rutin penanganan file dan sistem operasi, dan merupakan unti alternatif dari unit DOS.

6. CONST

Digunakan apabila kita ingin mendeklarasikan suatu nilai tertentu yang tidak dapat

berubah (tetap), misalnya phi = 3.14, nama_pt = ‘Politeknik Negeri Pontianak’, kode =

’X’, benar = ‘TRUE’, dan lain-lain.

7. TYPE Digunakan apabila kita ingin mendeklarasikan tipe data tertentu.

8. VAR

Digunakan untuk mendeklarasikan suatu variabel. Variabel adalah suatu nama (identifier) yang dimaksudkan untuk menampung suatu data/nilai tertentu. Isi dari suatu variabel boleh berubah. Sebelum digunakan di dalam program, variabel harus dideklarasikan

terlebih dahulu. Cara mendeklarasikan variabel adalah diawali dengan kata VAR kemudian diikuti dengan nama variabel dan tipe variabelnya (tipe data). Berikut ini adalah tipe-tipe

data sederhana yang dikenali oleh Pascal : a. Variabel Numerik

Type Range/Jangkauan Keterangan

INTEGER -32768 s.d. 32767 Bilangan Bulat

WORD 0 s.d. 65535 Bilangan Bulat

BYTE 0 s.d. 255 Bilangan Bulat

REAL 2.9 x 10-39 s.d. 1.7 x 1038 Bilangan Pecahan

b. Variabel Non Numerik

Type Contoh Keterangan

STRING ‘Pontianak’, ‘PASCAL’, ‘2009’

Rangkaian Karakter

CHAR ‘a’, ‘A’, ‘2’, ‘Z’, ‘1’ 1 buah karakter

BOOLEAN TRUE, FALSE TRUE = berinilai

benar, FALSE = berinail salah

9. KOMENTAR

Komentar hanya sebuah tulisan yang digunakan untuk memberikan suatu keterangan yang akan menjelaskan isi program dan tidak akan berarti apa-apa bagi komputer. Komentar

tidak akan dibaca oleh program. Komentar dapat ditulis dalam 1 (satu) baris maupun lebih. Pada Pascal, komentar ditulis dengan diawali oleh tanda kurung kurawal ({) dan harus

diakhiri dengan tandan tutup kurung kurawal (}) atau dengan tanda (* dan *).

10. BEGIN dan END BEGIN digunakan untuk mengawali suatu blok pernyataan dan diakhir dengan END.

17

C. LATIHAN SOAL

1. Berilah tanda centang (√) pada nama-nama program yang benar! PROGRAM CobaCoba; √ PROGRAM 2000;

PROGRAM Coca-Cola; PROGRAM _Garis; PROGRAM 3Com; PROGRAM Coba_Coba; √

2. Berilah tanda centang (√) pada nama identifier yang benar!

mata kuliah _jarak_kota √ angka 3

angka_3 √ angka3 √ 3angka

1kelas contoh √ a√

Program 3_angka pro_gram √

3. Tentukan type variabel/tipe data (char, string, integer, boolean, word, byte atau real) yang tepat untuk menampung data :

No Data Tipe

1 Jumlah peserta ujian Integer

2 Nilai ujian negara Real

3 Jumlah anak dalam 1 keluarga Integer

4 Prosentase potongan harga Real

5 Kiriman bulanan seorang mahasiswa Integer

6 Nama mahasiswa String

7 Alamat mahasiswa String

8 Suatu jawaban yang hanya memiliki dua kemungkinan, yaitu : ya atau tidak

Boolean

9 Nilai huruf mahasiswa Char

10 Suatu nilai yang berkisar antara 0 sampai dengan 100

Byte

4. Nomor Program : 1

Tulislah program berikut ini dan amati outputnya! PROGRAM beli_disket;

USES CRT;

CONST dolar = 9750.80;

VAR jml_disket : integer;

harga_disket, total : real;

BEGIN

CLRSCR;

jml_disket:=3;

harga_disket:=3500;

total:= jml_disket * harga_disket;

WRITELN(‘Harga disket = Rp ‘, total:0:2);

WRITELN(‘Harga disket = $ ‘,total/dolar:0:2);

READLN;

END.

18

5. Nomor Program : 2

a. Tulislah program berikut dan amati outputnya!

PROGRAM identitas;

USES CRT;

VAR nama : string[10];

ipk : real;

semester : byte;

sex : boolean;

BEGIN

CLRSCR;

nama:=’Habib Fatahillah’;

sex:=true;

semester:=1;

ipk:=3.80;

WRITELN(‘Nama saya : ‘, nama);

WRITELN(‘True = Laki-laki’);

WRITELN(‘False = Perempuan’);

WRITELN(‘Jenis kelamin : ‘, sex);

WRITELN(‘Semester : ‘, semester,’ (ganjil)’);

WRITELN(‘IPK saya = ‘, ipk:0:2);

READLN;

END.

19

b. Mengapa nama yang ditampilkan hanya sebanyak 10 huruf saja?

..................................................................................................................

..................................................................................................................

..................................................................................................................

c. Coba ganti statement nama:string[10]; menjadi nama:string[15];, amati outputnya

dan jelaskan apa yang terjadi!

..................................................................................................................

..................................................................................................................

..................................................................................................................

Catatan : Jika nama masih belum muncul secara keseluruhan, naikkan nilai angka yang berada pada deklarasi variabel dengan tipe data string.

6. Nomor Program 3

Suatu komputer memiliki memori sebesar 8.192 Mbyte atau 8192 Kbyte. Pada sistem

komputer yang digunakan, jatah ruang memori untuk masing-masing jenis memori adalah sebagai berikut :

Conventional Memori : 640 Kbyte

Upper Memori : 123 Kbyte Reserved Memori : 384 Kbyte

Extended Memori (XMS) : 7045 Kbyte Pada saat program berjalan, maka jumlah memori yang digunakan pada masing-masing jenis memori adalah :

Conventional Memori : 40 Kbyte Upper Memori : 123 Kbyte

20

Reserved Memori : 384 Kbyte

Extended Memori (XMS) : 6021 Kbyte Karena tidak semua ruang digunakan, maka pada jenis-jenis memori tertentu masih ada

ruang kosong (free space). Buatlah program untuk menampilkan tabel berikut :

Jenis Memori Total Digunakan Free Space

Convensional 640 40 ...................

Upper 123 123 ...................

Reserved 384 384 ...................

Extended (XMS) 7045 6021 ...................

Total Memori 8192 ................... ...................

Pada ruang dalam tabel yang kosong (titik-titik), harus ditampilkan nilai yang sesuai! Gunakan operator penjumlahan maupun pengurangan untuk mengisi ruang kosong tersebut!

21

22

MODUL III

MASUKAN DAN KELUARAN

(DATA INPUT DAN OUTPUT)

A. TUJUAN

1. Mengenal fasilitas masukan dan keluaran dalam Pascal 2. Memahami cara memasukkan serta menampilkan data

3. Memahami statement masukan dan keluaran serta mengaplikasikannya dalam program

B. DASAR TEORI

Pernyataan masukan dan keluaran merupakan sarana penting dalam bahasa Pascal untuk melakukan komunikasi antara program dengan komputer. Pernyataan masukan dan keluaran

pada Pascal dapat berupa : 1. READ dan READLN

Pernyataan ini digunakan untuk meminta masukan dari keyboard untuk diolah komputer. Hasil ketikan pada keyboard akan ditampilkan pada layar. Masukan tersebut dapat berupa integer, real, character, sesuai dengan tipe variabel masukan yang telah didefinisikan

sebelumnya. Perbedaan antara READ dengan READLN adalah pada READLN, setelah menerima masukan, komputer akan melanjutkannya dengan pindah baris, sedangkan READ

hanya menerima masukan. Bentuk umum : READ(var1, var2, ...); contoh : READ(jml_siswa, nilai_mhs);

READLN(var1, var2, ...); contoh : READLN(jml_siswa, nilai_mhs); 2. WRITE dan WRITELN

Pernyataan ini digunakan untuk menampilkan data hasil pengolahan ke layar. Perbedaan antara WRITE dengan WRITELN adalah setelah mengerjakan pernyatan WRITELN, komputer akan melanjutkannya dengan pindah baris, sedangkan WRITE tidak.

Bentuk umum : WRITE(string1,string2, ..., var1, var2, ...);

WRITELN(string1,string2, ..., var1, var2, ...); Contoh : write(nil_ujian,nil_mid);

write(‘nilai mid semester = ‘,nil_mid); writeln(nil_ujian,nil_mid);

writeln(‘nilai mid semester = ‘,nil_mid); 3. UNIT CRT

UNIT Keterangan

CLRSCR Digunakan untuk menghapus seluruh layar

DELAY Digunakan untuk menunda selama waktu tertentu

GOTOXY Digunakan untuk meletakkan posisi kursor pada lokasi

dengan koordinat tertentu

READKEY Digunakan untuk membaca masukan berupa data char dan tidak menampilkan data yang dimasukkan

TEXTCOLOR Digunakan untuk memberi warna tertentu pada string

yang ditampilkan

C. LATIHAN SOAL

1. Nomor Program 1

23

a. Tulislah program berikut dan amati outputnya!

PROGRAM biodata;

USES CRT;

VAR nama : string[20];

umur : real;

lama : integer;

nilai : char;

BEGIN

CLRSCR;

WRITE(‘Tulis nama anda : ‘);READLN(nama);

WRITE(‘Berapa umur anda : ‘);READLN(umur);

WRITE(‘Apa nilai ujian Pascal anda (A-E)? ‘);

nilai:=READKEY;

WRITELN(‘Terima kasih... Tunggu sebentar, ya...’);

lama:=1000;

DELAY(lama);

WRITELN;

WRITELN(‘Nama anda : ‘,nama:20);

WRITELN(‘Umur anda : ‘,umur:20:2);

WRITELN(‘Nilai anda : ‘,nilai:20);

GOTOXY(20,24);

WRITE(‘Tekan sembarang tombol’);

READLN;

END.

24

b. Apakah yang terjadi jika statement lama:=1000; diganti dengan lama:=5000; ? Apa

yang terjadi jika semakin kecil nilainya? Apa yang terjadi jika semakin besar nilainya? Jika lama:=1000; di ganti lama:=5000; maka waktu menunggu akan semakin lama.

Semakin kecil nilainya maka waktu menunggunya akan semakin lama.

c. Apakah yang terjadi jika statement WRITELN(‘Nama anda : ‘,nama:20);

WRITELN(‘Umur anda : ‘,umur:20:2);

WRITELN(‘Nilai anda : ‘,nilai:20);

diganti dengan : WRITELN(‘Nama anda : ‘,nama:40);

WRITELN(‘Umur anda : ‘,umur:40:5);

WRITELN(‘Nilai anda : ‘,nilai:40);

d. Apakah yang terjadi jika statement GOTOXY(20,24); diganti dengan GOTOXY(1,24); ?

2. Nomor Program 2 Buatlah program untuk mencari luas sebuah lingkaran dengan meminta masukan berupa

jari-jari lingkaran dengan phi=3.14. Tampilkan luas lingkaran tersebut pada tengah-tengah layar. Untuk menampilkan data real, hindari penampilan 0000000+00.

25

3. Nomor Program 3 Buatlah program yang akan menerima masukan berupa data nilai matakuliah untuk 3 orang mahasiswa. Kemudian carilah rata-rata dari nilai tersebut. Tampilkan nilai rata-rata tersebut

pada layar sudut kiri paling bawah!

26

4. Nomor Program 4 Buatlah program untuk menanyakan biodata mahasiswa yang meliputi : nama, nomor induk mahasiswa, tanggal lahir, asal, jurusan, program studi, IPK. Kemudian menampilkan

kembali data tersebut ke layar.

27

28

MODUL IV

STRUKTUR KENDALI

PERCABANGAN BERSYARAT DENGAN

IF ... THEN DAN IF ... THEN ... ELSE ...

A. TUJUAN

1. Memahami salah satu jenis statement kendali untuk pemilihan proses 2. Memahami proses pengambilan keputusan dengan statement if ... then ... else ... 3. Memahami variasi proses pengambilan keputusan dalam bentuk tunggal

4. Mampu mengaplikasikan proses pengambilan keputusan dalam program

B. DASAR TEORI

Sebuah program sering kali harus dapat memilih pernyataan mana yang akan dikerjakan berdasarkan suatu kondisi logika tertentu, misalnya bagaimana membuat program untuk

mengetahui bilangan mana yang lebih besar di antara 2 (dua) buah bilangan. Untuk menyelesaikan persoalan di atas, Pascal menyediakan fasilitas pengambilan

keputusan, yaitu dengan statement IF ... THEN ... ELSE ... Bentuk umum untuk IF ... THEN ...

IF (ekspresi logika) THEN

BEGIN

bagian yang dikerjakan

jika ekspresi logika bernilai benar (TRUE)

END;

Bentuk umum untuk IF ... THEN ... ELSE ...

IF (ekspresi logika) THEN

BEGIN

bagian yang dikerjakan

jika ekspresi logika bernilai benar (TRUE)

END {tanpa titik koma}

ELSE

BEGIN

bagian yang dikerjakan

jika ekspresi logika bernilai salah (FALSE)

END;

C. LATIHAN SOAL

1. Nomor Program 0401

a. Tulislah program berikut ini, kemudian amati outputnya!

PROGRAM tanya;

USES CRT;

VAR a : real;

BEGIN

CLRSCR;

WRITE(‘Masukkan sebuah bilangan di bawah 100! ’);

READLN(a);

IF a<100 THEN

WRITE(‘Terima Kasih’);

READLN;

END.

29

b. Apa yang terjadi jika anda memasukkan nilai kurang dari 100, jelaskan!

Akan tampil dilayar “Terima Kasih”.

c. Apa yang terjadi jika anda memasukkan nilai lebih dari 100, jelaskan!

Program keluar atau program berhenti memproses.

2. Nomor Program 0402

a. Tulislah program berikut ini, kemudian amati outputnya! PROGRAM nilai_maksimal;

USES CRT;

VAR a, b, max : integer;

BEGIN

CLRSCR;

TEXTCOLOR(lightblue);

WRITE(‘Masukkan bilangan pertama : ’);READLN(a);

WRITE(‘Masukkan bilangan kedua : ‘);READLN(b);

IF a>b THEN

max:=a

ELSE

max:=b;

WRITELN(‘Bilangan terbesar adalah ‘,max);

READLN;

END.

30

b. Modifikasilah program di atas sehingga output yang ditampilkan adalah nilai terbesar

adalah bilangan pertama (jika bilangan pertama memiliki nilai terbesar) atau nilai terbesar adalah bilangan kedua (jika bilangan kedua memiliki nilai terbesar)!

31

c. Gantilah bagian-bagian tertentu dari program di atas sehingga dapat digunakan untuk

menampilkan bilangan yang memiliki nilai terkecil!

3. Nomor Program 0403

a. Tulislah program berikut ini, kemudian amati outputnya!

PROGRAM nilai_ujian;

USES CRT;

VAR nilai : real;

nil_huruf : char;

BEGIN

CLRSCR;

WRITE(‘Tulis nilai ujian anda (0-100) : ‘);

READLN(nilai);

SOUND(1000); DELAY(1000); NOSOUND;

IF nilai>=80 THEN

nil_huruf:=’A’

ELSE IF nilai>=70 THEN

nil_huruf:=’B’

ELSE IF nilai>=60 THEN

nil_huruf:=’C’

ELSE IF nilai>=20 THEN

nil_huruf:=’D’

ELSE

nil_huruf:=’E’;

WRITELN(‘Nilai Anda : ‘,nil_huruf);

READLN;

END.

32

b. Modifikasilah program di atas sehingga apabila user memasukkan angka di atas 100,

maka program akan memberi pesan kesalahan!

33

4. Nomor Program 0404

Buatlah program yang akan menampilkan pesan apakah bilangan (0-65535) yang user

masukkan adalah bilangan genap atau ganjil!

5. Nomor Program 0405

34

Seorang karyawan bekerja di perusahaan X. Karyawan tersebut digaji dengan mengikuti

ketentuan PTKP (Penghasilan Tidak Kena Pajak) dan PKP (Penghasilan Kena Pajak). PTKP berlaku bagi karyawan yang digaji di bawah 360000 per bulan, sedangkan bagi karyawan

yang gajinya adalah 360000 ke atas akan tergolong PKP, dengan pajak 10% dari Penghasilan Kena Pajak (PKP). PKP = (Gaji-360000). Misalnya seorang karyawan digaji sebesar 500000, maka PKP = 500000 – 360000 = 140000. Jadi, pajak yang harus dibayar =

140000 x 10% = 14000. Berdasarkan kasus di atas, buatlah program untuk menentukan pajak yang harus dibayar

oleh karyawan, yang mana ketika program dijalankan, program akan meminta masukan dari user berupa penghasilan perbulan. Berikut ini contoh output program :

dan

35

MODUL V

PERCABANGAN JAMAK

DENGAN CASE ... OF

A. TUJUAN

1. Memahami salah satu jenis statement kendali untuk pemilihan proses 2. Memahami proses pengambilan keputusan dengan statement case ... of 3. Memahami variasi proses pengambilan keputusan bersifat jamak

4. Mampu mengaplikasikan proses pengambilan keputusan dalam program

B. DASAR TEORI

Statement CASE merupakan alternatif dari statement IF dengan pilihan ganda/jamak. Biasanya pada masalah tertentu, CASE akan lebih memberi kejelasan dibandingkan IF dan

semua permasalahan yang dibuat dengan CASE akan bisa juga dibuat dengan IF, tetapi tidak semua permasalahan yang dibuat dengan IF bisa dibuat dengan CASE.

Bentuk umum dari CASE ... OF adalah :

CASE nama_variabel OF

nilai_variabel : statement-statement;

nilai_variabel : statement-statement;

ElsE statement-statement; {setelah ELSE tidak ada titik dua}

END;

Percabangan jamak dimaksudkan untuk mengecek isi dari suatu variabel. Variabel ini

biasanya disebut variabel selektor. Pada struktur di atas, variabel yang akan dicek isinya adalah variabel dengan nama nama_variabel. Kemudian, isi variabel tersebut dicocokkan dengan

pilihan yang ada di bawahnya. Pada pilihan yang cocok, instruksi/statement yang berada setelah tanda titik dua (:) akan dikerjakan. Jika tidak ada pilihan yang sesuai, maka statement yang akan

dikerjakan adalah statement pada pilihan ELSE.

C. LATIHAN SOAL

1. Nomor Program 0501

Keluarga Pak Hamid memiliki 3 orang anak berturu-turut, yaitu : Azam, Sarah, dan yang

bungsu bernama Hasim. Tulislah program berikut ini dan amatilah outputnya! PROGRAM nama_anak;

USES CRT;

VAR no_anak : byte;

BEGIN

CLRSCR;

WRITELN('Program untuk mengetahui nama anak keluarga hamid');

WRITE('Tulis anak ke-');READLN(no_anak);

CASE no_anak OF

1 : WRITELN('Anak ke-',no_anak,' bernama Azam');

2 : WRITELN('Anak ke-',no_anak,' bernama Sarah');

3 : WRITELN('Anak ke-',no_anak,' bernama Hasim');

ELSE WRITELN('Hanya ada anak ke 1, 2, dan 3');

END;

36

READLN;

END.

2. Nomor Program 0502

Tulislah program berikut ini dan amatilah outputnya! PROGRAM ramalan;

USES CRT;

VAR bln_anda, bln_pacar, nilai_ramal : byte;

nama_anda, nama_pacar : string[30];

BEGIN

CLRSCR;

WRITE('Siapa nama anda? ');READLN(nama_anda);

WRITE('Bulan ke berapa anda lahir? ');READLN(bln_anda);

WRITE('Siapa nama pacar anda? ');READLN(nama_pacar);

WRITE('Bulan ke berapa dia lahir? ');READLN(bln_pacar);

nilai_ramal:=(bln_anda + bln_pacar) mod 13;

CASE nilai_ramal OF

0 : WRITELN('Anda berdua tidak cocok');

1,3 : WRITELN('Anda berdua memang cocok');

5..7 : WRITELN('Kalian berdua harus saling mengalah');

2,4,8 : WRITELN('Cinta bukanlah segalanya. Berpikirlah logis!');

9..12 : WRITELN('Masa depan lebih penting bagi kalian');

END;

READLN;

END.

37

3. Nomor Program 0503

Buatlah program yang mirip dengan nomor program 0403, tetapi dengan menggunakan percabangan jamak CASE ... OF!

4. Nomor Program 0504

Buatlah program yang menampilkan output untuk meminta masukan dari user berupa nomor urut hari dan akan menghasilkan output nama hari yang sesuai, yaitu : 1 = minggu, 2 =

senin, 3 = selasa, 4 = rabu, 5 = kamis, 6 = jumat, 7 = sabtu.

38

5. Nomor Program 0505

Buatlah program yang menampilkan output untuk meminta masukan dari user berupa nomor

urut bulan dan akan menghasilkan output nama bulan yang sesuai. Misalnya yang diinputkan adalah 4, maka hasilnya adalah April.

6. Nomor Program 0506

Buatlah program untuk memberi komentar nilai huruf yang diinputkan oleh user dengan

komentar sebagai berikut : NILAI KOMENTAR

A Istimewa B Baik C Cukup

D Kurang E Tidak Lulus

Apabila yang diinputkan tidak sesuai, beri pesan khusus!

39

7. Nomor Program 0507

Buatlah program untuk menghitung besarnya gaji pokok, tunjangan jabatan, dan gaji total seorang karyawan sesuai dengan tabel sebagai berikut :

Golongan Gaji Pokok Tunjangan Jabatan

1 100000 5%

2 120000 10%

3 150000 10%

4 175000 10%

5 200000 10%

6 220000 13%

7 250000 17%

Output : Berapa golongan anda? 1 <- meminta input dari user

Gaji Pokok : 100000

Tunjangan Jabatan : 10000

Gaji Total : 110000

40

MODUL VI

PERULANGAN

DENGAN FOR ... TO ... DO ...

A. TUJUAN

1. Memahami salah satu jenis statement perulangan dalam Pascal 2. Memahami proses perulangan dengan jumlah yang diketahui

3. Mampu mengaplikasikan proses perulangan dalam program Pascal

B. DASAR TEORI

Proses perulangan adalah suatu proses dimana komputer akan mengeksekusi satu atau lebih statement berulang kali, sampai suatu kondisi yang telah ditentukan terpenuhi.

Bentuk umum dari FOR ... TO ... DO ... adalah sebagai berikut :

FOR var_penghitung := nilai_awal TO nilai_akhir DO

BEGIN

Statement1;

Statement2;

...

END;

Blok adalah bagian yang diapit oleh BEGIN dan END; yang merupakan bagian yang akan dikerjakan secara berulang-ulang. Blok tersebut berisi statement-statement Pascal dan merupakawn satu kesatuan.

blok

41

var_penghitung adalah variabel yang menghitung banyaknya perulangan yang diminta.

var_penghitung merupakan variabel yang bertipe integer. Isi var_penghitung akan selalu bertambah 1 setiap kali perulangan dilakukan.

nilai_awal dan nilai_akhir merupakan suatu nilai yang menentukan banyaknya perulangan yang terjadi. Banyaknya perulangan yang terjadi adalah (nilai_akhir – nilai_awal + 1).

C. LATIHAN SOAL

1. Nomor Program 0601

a. Tulislah program berikut ini, dan amatilah outputnya!

PROGRAM ulang_nama;

USES CRT;

VAR i : integer; nama : string[30];

BEGIN

CLRSCR;

nama:=’Zahratussita’;

FOR i := 1 to 5 do

WRITELN(nama);

READLN;

END.

b. Bagaimana output program apabila angka 5 diganti dengan angka 10?

2. Nomor Program 0602

a. Tulislah program berikut ini, dan amatilah outputnya!

PROGRAM urutangka;

USES CRT;

VAR i : integer;

BEGIN

CLRSCR;

FOR i := 1 to 5 DO WRITELN(i:10);

READLN;

END.

42

b. Apa output dari program di atas?

3. Nomor Program 0603

Buatlah program perulangan untuk menghasilkan output sebagai berikut : 1. Politeknik Negeri Pontianak 2. Politeknik Negeri Pontianak 3. Politeknik Negeri Pontianak 4. Politeknik Negeri Pontianak 5. Politeknik Negeri Pontianak

4. Nomor Program 0604

a. Tulislah program berikut dan amati outputnya! PROGRAM urut;

USES CRT;

VAR i : intger;

BEGIN

CLRSCR;

FOR i := 1 to 10 DO

BEGIN

GOTOXY(40,i);

WRITE(i:10);

END;

43

END.

b. Gantilah statement GOTOXY(40,i); menjadi GOTOXY(40,i+1); Bagaimana hasilnya?

c. Bagaimana jika i ditambah 2?

5. Nomor Program 0605

Buatlah program untuk menampilkan hasil sebagai berikut : 100

200

300

400

44

6. Nomor Program 0606

Buatlah program untuk menampilkan hasil sebagai berikut : 1000

2000

3000

4000

7. Nomor Program 0607

a. Tulislah program berikut dan amatilah outputnya! PROGRAM akumulator;

USES CRT;

VAR accumulator, i, n : integer;

BEGIN

CLRSCR;

accumulator:=0;

n:=10;

FOR i := 1 TO n DO

accumulatr:=accumulator+i;

45

WRITELN(‘Nilai pengumpul atau akumulator adalah : ‘, accumulator);

READLN;

END.

b. Bagaimana jika nilai n diganti menjadi 100?

8. Nomor Program 0608

Tulislah program berikut dan amatilah outputnya!

PROGRAM tampil_ascii;

USES CRT;

VAR huruf : char; i : integer;

BEGIN

CLRSCR;

FOR i := 1 to 10 DO

BEGIN

WRITE(‘Tulis sebuah huruf : ‘);

huruf:=readkey;

WRITELN(‘Kok hurufnya tidak muncul?’);

SOUND(300); DELAY(1000); NOSOUND;

SOUND(600); DELAY(1500); NOSOUND;

WRITELN;

WRITELN(‘Huruf yang anda masukkan adalah huruf ‘,huruf);

WRITELN(‘No ASCII dr huruf di atas adalah ‘,ord(huruf));

END;

READLN;

END.

46

9. Nomor Program 0609

Buatlah program untuk menghitung perpangkatan dengan a pangkab b (ab). Dengan catatan b adalah bilangan bulat.

10. Nomor Program 0610

Buatlah program perulangan untuk menampilkan tabel data buku tabungan dengan saldo awal 100 ribu dan bunga per bulan adalah 2 %.

Bulan Saldo Awal Bulan Saldo Akhr Bulan

Januari 100000.00 102000.00

Februari 102000.00 104040.00

Maret 104040.00 106120.00

47

MODUL VII

PERULANGAN

DENGAN FOR ... TO ... DO ... BERGANDA

A. TUJUAN

1. Memahami prroses perulangan berganda dengan jumlah yang diketahui 2. Mampu mengaplikasikan proses perulangan berganda dalam Pascal

3. Mampu mengimplementasikan kasus ke dalam bentuk program Pascal

B. DASAR TEORI

Bentuk umum dari FOR ... TO ... DO ... berganda adalah sebagai berikut :

FOR var_penghitung1 := nilai_awal1 TO nilai_akhir2 DO

FOR var_penghitung2 := nilai_awal2 TO nilai_ahir2 DO

BEGIN

Statement1;

Statement2

...

END;

Pada perulangan berganda, dibutuhkan minimal 2 buah variabel penghitung, tergantung

jumlah FOR ... TO ... DO ... dalam program tersebut. Nilai awal dan nilai akhir pada masing-

masing perulangan bisa sama. Kasus yang biasa diselesaikan dengan perulangan berganda adalah persoalan matriks.

C. LATIHAN SOAL

1. Nomor Program 0701

a. Tulislah program berikut dan amatilah outputnya! PROGRAM deret_bintang;

USES CRT;

VAR karakter : char;

baris, i, j, kolom : integer;

BEGIN

CLRSCR;

FOR i := 1 TO 5 DO

BEGIN

FOR j := 1 TO 20 DO

BEGIN

TEXTCOLOR(i);

WRITE(‘*’);

END;

WRITELN;

END;

READLN;

END.

48

b. Ubahlah nilai variabel penghitung i, mulai 1 s.d. 20. Kemudian ubah juga nilai variabel

penghitung j, mulai 1 s.d. 5. Bagaimana outputnya, apa kesimpulan anda?

2. Nomor Program 0702

Buatlah program untuk menampilkan output seperti berikut : 1234567890

1234567890

1234567890

3. Nomor Program 0703

Buatlah program untuk menampilkan output seperti berikut : 1111111111

1111111111

111111111

49

4. Nomor Program 0704

Buatlah program untuk menampilkan output seperti berikut : *

* * * * * * * * *

* * * * *

5. Nomor Program 0705

Buatlah program untuk menampilkan output seperti berikut : 1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

50

6. nomor Program 0706

Buatlah program untuk menampilkan output seperti berikut : 1 = 1

1 2 = 3

1 2 3 = 6

1 2 3 4 = 10

1 2 3 4 5 = 15

51

MODUL VIII

TIPE DATA (BAG. 2)

LARIK

A. TUJUAN

1. Mengenal tipe data terstruktur menggunakan larik 2. Memahami larik dimensi satu

3. Memahami penggunaan larik dalam program

B. DASAR TEORI

Larik adalah deretan rinci data yang mempunyai tipe data sejenis. Setiap rinci data disebut dengan komponen atau elemen larik. Setiap larik bisa dioperasikan dengan pemilih larik yang

disebut index. Bentuk umum larik dimensi satu :

TYPE

nama_larik = array[awal .. akhir] of tipe_data;

VAR

nama_variabel : nama_larik;

atau VAR nama_variabel : array of [awal .. akhir] of tipe_data;

Gambaran larik dimensi satu adalah sebagai berikut :

Data

[1]

Data

[2] .......................

Data

[n-1]

Data

[n]

1 2 n-1 n <----- index Index pada larik tergantung dari nilai awal dan akhir pada deklarasi tipe larik. Nilai index harus berupa bilangan bulat yang dapat dimulai pada bilangan negatif, nol atau positif.

C. LATIHAN SOAL

1. Nomor Program 0801

Tulislah program berikut dan amatilah outputnya! PROGRAM isilarik;

USES CRT;

TYPE

larik = array [1..10] of integer;

VAR nilai : larik;

nilai : integer;

BEGIN

CLRSCR;

nilai[1]:=3;

nilai[2]:=2*nilai[1];

nilai[3]:=2;

nilai[4]:=nilai[1]+nilai[2];

nilai[5]:=nilai[4];

nilai[6]:=nilai[nilai[1]];

nilai[7]:=nilai[2] – nilai[4];

nilai[8]:=23;

nilai[9]:=nilai[3+4];

nilai[10]:=nilai[9];

52

FOR i := 1 to 10 do

WRITELN(‘Nilai index ke- ‘,i,’ = ‘,nilai[i]:5);

READLN;

END.

2. Nomor Program : -

Lengkapilah tabel larik berikut dengan memperhatikan statement di atasnya : a[1] := 5;

a[2] := 4 – nilai[1];

a[3] := 0;

a[4] := nilai[2];

a[5] := nilai[4-nilai[3]];

a[6] := nilai[nilai[1]-2];

a[7] := nilai[1] * nilai[];

a[8] := nilai[2];

a[9] := nilai[3+4];

a[10] := 9;

1 2 3 4 5 6 7 8 9 10

3. Nomor Program 0802

Buatlah larik dengan kapasitas 10 ruang. Gunakan tipe data string[30] untuk larik

tersebut. Kemudian, isilah masing-masing ruang dalam larik dengan nama-nama teman

anda. Buatlah program dengan ketentuan tersebut dan jangan lupa tampilkan isi larik yang berupa nama-nama anda tersebut.

4. Nomor Program 0803

Buatlah larik string dengan kapasitas 12 ruang. Isilah masing-masing ruang data dengan

nama-nama bulan. Kemudian buatlah program untuk menampilkan hasil sebagai berikut : Tulis bulan ke- : 2 angka 2 diinputkan oleh user

Bulan ke-2 adalah FEBRUARI

........................................................................................................................

........................................................................................................................

53

5. Nomor Program 0804

1. Tulislah program berikut dan amatilah outputnya! PROGRAM rata_rata_nilai;

USES CRT;

TYPE

larik = array[1..100] of real;

VAR nilai : larik;

total : real;

i, jml_mhs : integer;

BEGIN

CLRSCR;

total:=0;

WRITE(‘Berapa jumlah mahasiswa? ‘); READLN(jml_mhs);

FOR i := 1 to jml_mhs DO

BEGIN

WRITE(‘Masukkan nilai ke- ‘,i,’ ‘); READLN(nilai[i]);

total:=total+nilai[i];

END;

WRITE(‘Nilai rata-rata dari ‘,jml_mhs,’ adalah ‘,total/jml_mhs);

READLN;

END.

2. Modifikasilah program di atas sehingga rata-ratanya ditampilkan dengan 2 digit angka di

belakang koma.

6. Nomor Program 0805

Buatlah larik dengan tipe data integer yang akan menampung nilai praktikum 10 mahasiswa. Namailah larik ini sebagai larik_nilai. Buatlah 1 larik lagi dengan jenis dan isi yang sama

seperti nomor program 0802 dan namailah dengan larik_nama. Ketentuannya adalah : pada larik_nilai, index-1 adalah nilai dari nama yang tercantum pada larik_nama. Begitu juga pada index-2, adalah nilai dari nama yang tercantum pada larik_nama pada index-2 dan

begitu seterusnya. Maka buatlah program untuk menampilkan nama-nama dan nilainya serta nilai rata-rata dari keseluruhan nilai. Contoh output :

Daftar Nilai Praktikum Pascal

Andi 80

Bambang 75

Basuki 80

54

Cahyono 60

Dadang 85

Endah 80

Gara 90

Naruto 85

Sakura 90

Sasuke 100

Nilai rata-rata adalah 82.50

7. Nomor Program 0806

Buatlah program yang akan mencari :

a. rata-rata dari 10 bilangan yang diinputkan b. nilai maksimum dari bilangan tersebut, serta menyebutkan pada urutan ke berapa nilai

tersebut

c. nilai minimum dari 10 bilangan tersebut, serta menyebutkan pada urutan ke berapa nilai tersebut

55

8. Nomor Program 0807

Buatlah sebuah larik dengan kapasitas 100 ruang data yang bertipe data integer. Isilah nilai larik pada index ke-1 dan index ke-2 dengan bilangan 1. Larik ini akan mengisi index ke-3

dan seterusnya berdasarkan penjumlahan pada dua buah bilangan sebelumnya, sehingga menjadi sebuah deret yang dinamakan dengan deret Fibonacci. Kemudian tampilkan deret tersebut!

56

57

MODUL IX

LARIK MULTI DIMENSI

A. TUJUAN

1. Mengenal tipe data terstruktur menggunakan larik multi dimensi

2. Memahami penggunaan larik multi dimensi 3. Mampu mengimplementasikan permasalahan dengan larik multi dimensi

B. DASAR TEORI

Pada modul sebelumnya, anda telah mempelajari larik 1 dimensi, yaitu hanya memiliki 1

index saja. Pada modul ini akan mempelajari larik multi dimensi, yang memiliki lebih dari 1 index. Larik multi dimensi yang akan dipelajari adalah larik 2 dimensi.

Larik 2 dimensi ini biasa digunakan untuk menyelesaikan persoalan tentang matrik. Instruksi yang digunakan biasanya adalah instruksi perulangan dengan FOR ... TO ... DO ... berganda. Berikut ini gambaran larik 2 dimensi :

Data

[1,1]

Data

[1,2]

........ Data

[1,n-1]

Data

[1,n]

Data [2,1]

Data [2,2]

........ Data [2,n-1]

Data [2,n]

........ ........ ........ ........ ........

Data

[m-1,1]

Data

[m-1,2]

........ Data

[m-1,n-1]

Data

[m-1,n]

Data [m,1]

Data [m,2]

........ Data [m, n-1]

Data [m,n]

1 2 ........ n-1 n

Perhatikan baik-baik gambar di atas. Index pada larik dua dimensi merupakan index dari baris

dan index dari kolom. Jika index-nya adalah [m,n], maka m melambangkan nomor baris dan n melambangkan nomor kolom. Bentuk umum dari larik 2 dimensi adalah : TYPE

nama_larik = array[aw_brs..ak_brs, aw_klm..ak_klm] of tipe_data;

VAR

nama_variabel : nama_lari;

C. LATIHAN SOAL

1. Nomor Program : -

Perhatikan statement program berikut, kemudian isiah tabel 2 dimensi yang diberikan! larik[1,1]:=10; larik[1,2]:=2;

larik[1,3]:=6; larik[1,4]:=33;

larik[2,1]:=17; larik[2,2]:=5;

larik[2,3]:=26; larik[2,4]:=9;

larik[3,1]:=11; larik[3,2]:=-4;

larik[3,3]:=31; larik[3,4]:=18;

1

2

3

1 2 3 4

2. Nomor Program 0901

a. Tulislah program berikut dan amatilah outputnya! PROGRAM matriks3x4;

1

2

m

m-1

58

USES CRT;

TYPE

matriks = array[1..3, 1..4] of integer;

VAR

larik : matriks; i, j : integer;

BEGIN

CLRSCR;

larik[1,1]:=10; larik[1,2]:=2;

larik[1,3]:=6; larik[1,4]:=33;

larik[2,1]:=17; larik[2,2]:=5;

larik[2,3]:=26; larik[2,4]:=9;

larik[3,1]:=11; larik[3,2]:=-4;

larik[3,3]:=31; larik[3,4]:=18;

FOR i := 1 to 3 DO

BEGIN

WRITELN(‘Baris ke- ‘,i:5);

FOR j := 1 TO 4 DO WRITE(larik[i,j]:5); WRITELN;

END;

READLN;

END.

b. Modifikasilah program di atas agar matriks yang ditampilkan adalah isi matriks yang sudah dikalikan dengan 3.

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

3. Nomor Program 0902

Buatlah dua buah matriks dengan ordo yang sama, yaitu 3x2. Isilah dengan nilai integer. Tulislah program untuk menjulahkan dua buah matriks tersebut dan tampilkan hasilnya!

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

59

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................ 4. Nomor Program 0903

Buatlah dua buah matriks dengan ordo yang sama, yaitu 2x4. Isilah dengan nilai integer.

Tulislah program untuk mengurangkan dua buah matrik tersebut dan tampilkan hasilnya! ........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

60

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................ 5. Nomor Program 0904

Buatlah dua buah matriks yang masing-masing berordo 3x2 dan 3x2. Isilah dengan nilai

integer. Tulislah program untuk mengalikan dua buah matriks tersebut. Apabila anda sudah memahami cara mengalikan matriks, anda bisa langsung mengerjakan program ini!

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

61

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................ 6. Nomor Program 0905

Tulislah program berikut dan amatilah outputnya!

PROGRAM data_nilai;

USES CRT;

TYPE

larik1 = array[1..10] of string;

larik2 = array[1..10,1..3] of real;

VAR

nama : larik1;

nilai : larik2;

total : real;

jml_mhs, i, j : integer;

BEGIN

CLRSCR;

WRITE(‘Berapa jumlah mahasiswa(max 10 orang)? ’);

READLN(jml_mhs);

FOR i := 1 DO jml_mhs DO

BEGIN

CLRSCR;

WRITE(‘Nama mahasiswa : ‘); READLN(nama[i]);

FOR j := 1 TO 3 DO

BEGIN

WRITE(‘Masukkan nilai ke- ‘,j,‘ ‘);

READLN(nilai[i,j]);

END;

END;

CLRSCR;

WRITELN(‘Data-Data Mahasiswa’);

FOR i := 1 TO jml_mhs DO

BEGIN

62

WRITELN(nama[i]);

FOR j := 1 TO 3 DO

WRITE(nilai[i,j],‘ ‘);

WRITELN;

END;

READLN;

END.

7. Nomor Program 0906

Setiap kelas pada praktikum pemrograman 1 terdiri dari 15 orang mahasiswa. Nilai akhir dari tiap-tiap mahasiswa ditentukan oleh 3 buah tes, yaitu tes tertulis pada pertengahan praktikum, nilai ujian tengah semester untuk praktek, dan nilai ujian akhir untuk praktek.

Dari ketiga nilai tersebut akan dicari rata-ratanya. Jika nilainya lebih besar atau sama dengan 60, maka mahasiswa tersebut dinyatakan lulus. Tetapi jika nilai rata-ratanya lebih kecil dari

60, maka dinyatakan tidak lulus. Buatlah program yang akan menampung data-data mahasiswa tersebut, kemudian setelah data-datanya anda inputkan, tentukan berapa orang mahasiswa yang lulus dan tidak lulus serta tampilkan output data-data mahasiswa lengkap

secara lengkap! ........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

63

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

PERULANGAN

DENGAN WHILE ... DO ...

A. TUJUAN

1. Memahami statement perulangan dengan while ... do ... dalam Pascal

2. Memahami proses perulangan dengan jumlah yang tidak diketahui 3. Mampu mengaplikasikan proses perulangan dalam program Pascal

B. DASAR TEORI

Pada modul sebelumnya, anda telah mempelajari perulangan dengan menggunakan FOR ...

TO ... DO ... Perulangan menggunakan FOR ... TO ... DO ... cocok untuk digunakan jika jumlah perulangannya telah diketahui. Banyak masalah yang terjadi jika jumlah perulangannya tidak

diketahui secara pasti sebelum blok perulangan itu dijalankan. Perulangan dengan jumlah yang tidak diketahui dapat menggunakan statement WHILE ...

DO ... Bentuk umum dari WHILE ... DO ... adalah :

WHILE (ekspresi logika) DO

BEGIN

Statement1;

Statement2;

...

END;

Mula-mula, komputer akan mengamati nilai logika dari (ekspresi logika). Jika bernilai benar

atau TRUE, maka blok perulangan akan dikerjakan. Setelah blok perulangan dikerjakan, komputer akan mengamati kembali ekspresi logika pada (ekspresi logika). Jika bernilai benar, maka blok perulangan dikerjakan kembali. Kemudian mengamati kembali nilai (ekspresi

logika). Jika (ekspresi logika) bernilai salah atau FALSE, maka blok perulangan tidak akan dikerjakan lagi.

C. LATIHAN SOAL

1. Nomor Program 1001

a. Tulislah program berikut dan amatilah outputnya! PROGRAM while_do;

USES CRT;

blok perulangan

64

VAR i : intger;

BEGIN

CLRSCR;

i := 3;

WHILE (i < 10) DO

BEGIN

WRITELN(i:10);

i := i * 5;

END;

READLN;

END.

b. Jika statement i := 3; diganti menjadi i := 30; bagaiman outputnya? Mengapa ?

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

c. Jika statement i := i * 5; diganti menjadi i := i + 1; bagaimana outputnya?

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

2. Nomor Program 1002

Buatlah program untuk menampilkan angka dari 1 s.d. 10 dengan mengguankan WHILE ...

DO ... ........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

3. Nomor Program 1003

a. Tulislah program berikut dan amati outputnya! PROGRAM balik_nama;

USES CRT;

TYPE

larik = array[1..30] of char;

VAR

nama : larik;

c : char;

index, jml_huruf, i : integer;

BEGIN

CLRSCR;

index := 1;

c := ‘a’;

WRITELN(‘Tulis nama anda. Akhiri dengan spasi. Lalu tekan enter’);

WHILE (c <> ‘ ‘) DO

BEGIN

c := readkey; WRITE(‘x’);

nama[index] := c;

index := index + 1;

65

END;

jml_huruf := index;

WRITELN;

WRITELN(‘Ini lho nama kamu...’);

i := 1;

WHILE (i <= jml_huruf) DO

BEGIN

WRITE(nama[i]);

INC(i);

END;

READLN;

END.

Perhatikan statement inc(i). Statement tersebut berupa sebuah prosedur, yaitu

procedure inc(i) yang berguna untuk menambahkan nilai variabel sebesar 1,

sehingga artinya sama dengan i := i + 1;

b. Modifikasilah program tersebut sehingga nama yang ditampilkan adalah nama secara

terbalik.

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

4. Nomor Program 1004

Buatlah program untuk meminta masukan berupa nama, kemudian tampilkan kebalikan dari input tersebut. Berikut ini contoh tampilannya :

66

Nama anda : MANDRA MANDRA diinputkan user, lalu <ENTER>

Kebalikan : ARDNAM

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

5. Nomor Program 1005

Buatlah program untuk meminta masukan kata password. Jika kata password yang

diinputkan benar, maka tampilkan pesan benar. Jika kata password yang diinputkan salah, komputer akan meminta masukan sekali lagi. Maksimal masukkan adalah tiga kali. Tampilkan input dengan karakter ‘*’. Berikut ini contoh output program :

Masukkan password : *****

Salah. Ulangi sekali lagi!

67

Masukkan password : ***

Benar.

6. Nomor Program 1006

Buatlah program untuk mengecek kata yang dimasukkan. Jika kata yang dimasukkan adalah

PALINDROM, maka tampilkan pesan benar. Jika kata yang dimasukkan bukan PALINDROM, maka tampilkan pesan kesalahan. PALINDROM adalah kata/kalimat yang

dibaca dari arah kiri maupun kanan bunyinya sama. Contoh : KATAK, MALAM, XXZXX, AMIKIMA, KASURRUSAK, dan seterusnya. ........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

PERULANGAN

DENGAN REPEAT ... UNTIL ...

A. TUJUAN

1. Memahami statement perulangan dengan repeat ... until ... dalam Pascal 2. Memahami proses perulangan dengan jumlah yang tidak diketahui

3. Mampu mengaplikasikan proses perulangan dalam program Pascal

B. DASAR TEORI

Bentuk umum dari REPEAT ... UNTIL ... adalah sebagai berikut : REPEAT

blok perulangan

68

Statement1;

Statement2;

...

UNTIL (ekspresi logika)

Blok perulangan dalam repeat until tidak memerlukan BEGIN dan END sebagai tanda

bagian yang diulang, sebab repeat until itu sendiri sudah menjadi pembatas bagian yang diulang. Cara kerja perulangan repeat until adalah mula-mula blok perulangan dilaksanakan. Setelah

itu baru ekspresi logika dicek. Apabila ekspresi logika SALAH atau FALSE, maka blok

perulangan dikerjakan. Apabila ekspresi logika bernilai BENAR atau TRUE, maka blok perulangan tidak dikerjakan lagi.

C. LATIHAN SOAL

1. Nomor Program 1101

a. Tulislah program berikut ini dan amatilah outputnya! PROGRAM repeat_until;

USES CRT;

VAR i : integer;

BEGIN

CLRSCR;

i := 3;

REPEAT

WRITELN(i:10);

INC(i);

UNTIL (i < 10);

READLN;

END.

b. Jika statement i := 3; diganti menjadi i := 30; dan statement INC(i); diganti

menjadi DEC(i); bagaimana outputnya?

Keterangan : fungsi DEC(i) berguna untuk mengurangi nilai variabel dengan 1.

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

69

..................................................................................................................

2. Nomor Program 1102

a. Tulislah program berikut dan amatilah outputnya! PROGRAM tebakan;

USES CRT;

VAR bilangan, tebak : integer;

BEGIN

CLRSCR;

RANDOMIZE;

bilangan := random(10) + 1;

WRITELN(‘Saya memiliki sebuah bilangan antara 1-10. Coba tebak! ‘);

REPEAT

WRITE(‘Tebakan anda adalah : ‘); READLN(tebak);

IF tebak <> bilangan THEN

WRITELN(‘Tebakan salah. Coba tebak lagi.’)

ELSE

WRITELN(‘Kamu is the best. Tebakanmu tepat.’);

UNTIL (tebak = bilangan);

READLN;

END.

Program di atas menggunakan prosedur randomize yang berguna untuk menghasilkan

bibit bilangan random atau acak. Bilangan acak tersebut nanti dihasilkan oleh fungsi

random(10). Fungsi random(10) akan menghasilkan bilangan bulat acak dari 0 s.d. 9.

b. Modifikasilah program di atas untuk menebak tanggal lahir. Nilai tanggal tentunya dimulai dari angka 1 s.d. 31. Petunjuk : gunakan fungsi random() dengan nilai variabel

yang sesuai.

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

3. Nomor Program 1103

Buatlah program untuk menampilkan bilangan genap sempai nilai tertentu yang diinputkan. Contoh output :

Masukkan bilangan tertinggi : 11 11 diinput oleh user

Deret bilangan genap : 0 2 4 6 8 10

70

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................ 4. Nomor Program 1104

Sama dengan nomor program 1103, tetapi untuk menampilkan deret bilangan ganjil. ........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

5. Nomor Program 1105

Sama dengan nomor program 1103, tetapi untuk menampilkan deret bilangan fibonacci.

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

71

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

MODUL XII

TIPE DATA (BAG. 2)

ENUMERASI

A. TUJUAN

1. Mengenal bermacam-macam tipe data dalam Pascal 2. Mengenal dan memahami tipe data enumerasi

3. Mampu mengaplikasikan berbagai macam tipe data dalam Pascal

B. DASAR TEORI

Tipe data enumerasi merupakan tipe data yang berisi sejumlah pengenal yang diciptakan sendiri oleh pemrogram. Dalam sebuah program, tipe data enumerasi harus dideklarasikan

terlebih dahulu pada bagian deklarasi di awal program. Bentuk umum deklarasi tipe data enumerasi adalah sebagai berikut :

TYPE

nama_tipe = (pengenal_1, pengenal_2, ..., pengenal_n);

VAR

nama_var : nama_tipe;

pengenal_1, pengenal_2, ..., pengenal_n tidak boleh berupa bilangan. Tipe data enumerasi memiliki nilai ordinal pada masing-masing pengenal yang dimiliki. Nilai ordinal berawal dari

pengenal yang pertama sampai terakhir. Pengenal pertama memiliki nilai ordinal 0, selanjutnya adalah 1, kemudian 2, dan seterusnya. Jadi, pengenal_1 memiliki nilai ordinal 0. pengenal_2 memiliki nilai ordinal 1, dan seterusnya. Sehingga pengenal_n miliki nilai ordinal n-1.

Pengurutan ini disebut ordinary. Jadi ordinary dari pengenal_n adalah n-1. Dalam data enumerasi, masing-masing pengenal memiliki kedudukan terhadap pengenal

yang lain. Pada pengenal di ordinary tertentu, ada pengenal yang berada tepat sesudahnya, dan ada pengenal yang terletak tepat sebelumnya. Pengenal yang berbeda tepat sesudahnya disebut sebagai successor. Pengenal yang berada tepat sebelumnya disebut sebagai predecessor. Jadi,

pengenal_n pada successor-nya adalah pengenal_n+1 dan predecessor adalah pengenal_n-1.

C. LATIHAN SOAL

1. Nomor Program 1201

72

Tulislah program berikut dan amatilah outputnya!

PROGRAM enumerasi;

USES CRT;

TYPE

hari = (Minggu, Senin, Selasa, Rabu, Kamis, Jumat, Sabtu);

VAR

today : hari;

BEGIN

CLRSCR;

WRITELN(‘Nilai Ordinal Senin-Sabtu’);

FOR today := Minggu TO Sabtu DO

WRITELN(ord(today));

WRITELN;

WRITELN(‘Hari ini adalah hari SELASA’);

WRITELN(‘Hari ini adalah hari ke- ‘,ord(selasa));

WRITELN(‘Kemaren adalah hari ke- ‘,ord(pred(selasa)));

WRITELN(‘Besok adalah hari ke- ‘,ord(succ(selasa)));

WRITELN(‘Lusa adalah hari ke- ‘,ord(succ(succ(selasa))));

REPEAT UNTIL KEYPRESSED;

END.

2. Nomor Program 1202

Buatlah program untuk menampilkan nilai ordinari dari tipe data enumerasi yang dibuat dengan menggunakan nama-nama saudara anda (kakak/adik)!

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

73

........................................................................................................................

........................................................................................................................ 3. Nomor Program 1203

Deklarasi tipe data enumerasi untuk menampung pengenal yang berupa nama-nama bulan. Kemudian buatlah program untuk menampilkan 1 s.d. 12 yang berasal dari nilai ordinari dari tipe data yang sudah anda buat!

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

4. Nomor Program : -

Di bawah ini adalah bagian deklarasi suatu program yang menggunakan tipe data terenumerasi : TYPE

nama_bulan = (JANUARI, FEBRUARI, MARET, APRIL, MEI, JUNI,

JULI, AGUSTUS, SEPTEMBER, OKTOBER,

NOPEMBER, DESEMBER);

VAR

month : nama_bulan; i : integer;

Tentukanlah tipe data dan nilai dari ungkapan-ungkapan berikut : ORD(JANUARI) = ...

ORD(OKTOBER) = ...

SUCC(JANUARI) = ...

PRED(DESEMBER) = ...

SUCC(PRED(MARET)) = ...

PRED(SUCC(MARET)) = ...

ORD(SUCC(JANUARI)) = ...

ORD(PRED(DESEMBER)) = ...

SUCC(SUCC(MARET)) = ...

PRED(PRED(MARET)) = ...

ORD(PRED(SUCC(MARET))) = ...

ORD(SUCC(PRED(MARET))) = ...

ORD(SUCC(SUCC(MARET))) = ...

................................................................................................................................................................................................................................................................................................................................

................................................................................................................................................................

................................................................................................................................................................

............................................................................................................................................

74

MODUL XIII

TIPE DATA (BAG. 3)

RECORD

A. TUJUAN

1. Mengenal bermacam-macam tipe data terstruktur dalam Pascal 2. Mengenal dan memahami tipe data terstruktur record

3. Mampu mengaplikasikan berbagai macam tipe data dalam Pascal

B. DASAR TEORI

Record merupakan jenis data terstruktur yang mengandung sejumlah elemen dengan setiap elemen mempunyai tipe data yang berlainan atau sama. Masing-masing elemen dalam record

dikenal dengan sebutan field. Bentuk umum deklarasi tipe data record adalah sebagai berikut : TYPE

data_record = RECORD

field1 : tipe_data1;

field2 : tipe_data2;

field3 : tipe_data3;

...

...

fieldn : tipe_datan;

END;

VAR

nama_var : data_record;

Record terdiri dari beberapa field. Untuk itu, perlu operator untuk memanggil field dalam

suatu field. Ada dua cara pemanggilan field, yaitu : 1. Menggunakan operator titik (.) yang bentuk umumnya adalah nama_var.fieldn.

2. Menggunakan statement berikut : WITH nama_var DO

BEGIN

field1;

field2;

...

...

fieldn;

END;

C. LATIHAN SOAL

1. Nomor Program 1301

a. Tulislah program berikut dan amatilah outputnya!

PROGRAM myrecord;

USES CRT;

TYPE

pohon = RECORD

daun : integer;

batang : real;

akar : string[20];

END;

VAR

mangga : pohon;

BEGIN

75

CLRSCR;

mangga.daun := 500;

mangga.batang := 60.3;

mangga.akar := ‘tunggang’;

WRITELN(‘Ini adalah data-data pohon mangga saya’);

WRITELN(‘Jumlah daun ‘,mangga.daun:8);

WRITELN(‘Diameter batan : ‘,mangga.batang:8:2);

WRITELN(‘Jenis akar : ‘,mangga.akar);

READLN;

END.

b. Pada program di atas, buatlah sebuah variabel lagi dan beri nama padi, dengan tipe data

yang sama dengan variabel mangga, yaitu pohon. Kemudian isilah nilai pada tiap field,

yaitu jumlah daun 20, diameter 2, dan jenis akar adalah serabut. ..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

2. Nomor Program 1302

Perhatikan kartu mahasiswa anda. Buatlah deklarasi tipe data record yang diberi nama ktm.

Tentukan field-field pada record tersebut dengan mengacu pada kartu mahasiswa anda, misalnya nomor induk mahasiswa, nama, jurusan, dan sebagainya. Jangan lupa untuk menentukan tipe data pada tiap-tiap field dengan benar.

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

76

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................ 3. Nomor Program 1303

a. Perhatikan kembali modul mengenai larik. Apabila sebuah tipe data larik digunakan, kita

harus mendeklarasikan terlebih dahulu dalam deklarasi TYPE. Sebuah larik memiliki data dengan tipe data tertentu, misalnya char, real, atau integer. Selain itu, larik dapat

memiliki data yang bertipe record. Contoh :

TYPE

mahasiswa = record

nim : string[7];

ipk : real;

END;

larik = array[1..15] of mahasiswa;

VAR

praktikan : larik;

Jadi, variabel praktikan adalah variabel yang berisi maksimal 15 data yang berupa record mahasiswa. Tulislah program berikut dan amati outputnya!

77

PROGRAM data_record;

USES CRT;

TYPE

mahasiswa = RECORD

nama: string[30];

nim : string[7];

ipk : real;

END;

larik : array[1..15] of mahasiswa;

VAR

mhs : larik; i, jml_mhs : integer;

BEGIN

CLRSCR;

WRITELN(‘Program Memasukkan Data Mahasiswa’);

WRITE(‘Berapa data yang akan dimasukkan (1-15)? ‘);

READLN(jml_mhs);

FOR i := 1 TO jml_mhs DO

BEGIN

WRITE(‘nama: ‘); READLN(mhs[i].nama);

WRITE(‘nim : ‘); READLN(mhs[i].nim);

WRITE(‘ipk : ‘); READLN(mhs[i].ipk);

END;

WRITELN;

WRITE(‘Data ke berapa yang ingin ditampilkan (1-15) ?);

READLN(i);

WRITELN(‘nama: ‘,mhs[i].nama);

WRITELN(‘nim : ‘,mhs[i].nim);

WRITELN(‘ipk : ‘,mhs[i].ipk);

READLN;

END.

b. Program di atas masih kurang sempurna, karena tidak bisa menghindari kesalahan, yaitu

: misalnya data yang dimasukkan ada 5, sedangkan user ingin melihat data ke-10, maka seharusnya muncul pesan :

Data ke-10 tidak bisa ditampilkan, karena data yang dimiliki hanya 5

buah.

Sekarang modifikasilah program di atas sehingga memungkinkan untuk muncul pesan tersebut. ..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

78

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

..................................................................................................................

4. Nomor Program 1304

Buatlah program untuk memasukkan data-data mahasiswa yang ingin menjadi asisten Praktikum Pemrograman 1. Gunakan record seperti pada program 1303. Syarat untuk

menjadi asisten adalah IPK minimal 2.75. Jika kurang dari itu, maka pendaftaran ditolak. Maka, buatlah fasilitas untuk meminta data (input data) dari user berupa nomor induk

mahasiswa beserta IPK. Kemudian tampilkan pesan “Dilarang Mendaftar” apabila syarat tidak terpenuhi. Contoh :

Tulislah NIM anda : 3200916001

IPK : 2.60

Maaf, anda tidak diterima, tekan enter untuk melanjutkan.

........................................................................................................................ ........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

79

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

5. Nomor Program 1305

Buatlah program dengan mengacu pada program 1303 (Gunakan perintah SAVE AS). Dari data yang dimasukkan, tampilkan hal-hal sebagai berikut

IPK tertinggi = ...

IPK terendah = ...

Nomor Induk Mahasiswa dengan IPK tertinggi = ...

Rata-rata IPK = ...

Jumlah mahasiswa dengan IPK < 2.50 = ...

Jumlah mahasiswa dengan IPK >= 2.50 = ...

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................

........................................................................................................................