modul lengkap
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!
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.
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!
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 = ...
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................