Anda di halaman 1dari 40

PRAKTIKUM 1

PANDUAN SINGKAT DAN PETUNJUK PRAKTIKUM


Panduan Singkat
Bahasa program merupakan suatu wahana untuk menuangkan pikiran manusia
yang dapat dimengerti oleh mesin komputer sehingga bernilai guna. Suatu bahasa
program akan terikat aturan dari paradigma bahasa. Ada berbagai macam
paradigma bahasa: Prosedural, Fungsional, Deklaratif, Object Oriented,
Konkuren. Paradigma yang diajarkan dalam Matakuliah Algoritma dan
Pemrograman ini adalah paradigma prosedural.
Perlu diperhatikan perbedaan antara belajar bahasa program dengan belajar
memprogram!!! Belajar bahasa program hanya belajar tentang sintak (aturan) dari
bahasa sedangkan belajar memprogram akan tercakup beberapa hal yang
didalamnya terkandung tentang belajar bahasa program itu sendiri. Yang harus
diperhatikan oleh mahasiswa yang sedang belajar memprogram, yaitu :
Simulasi, sensibilitas terhadap masalah dan kemungkinan solusi. Kegiatan
dilakukan di kelas, melalui permainan. Contoh : Mengurutkan tinggi badan
mahasiswa dari tinggi ke pendek atau sebaliknya. Permainan dapat dilakukan
secara manual maupun dengan komputer.
Analisis masalah secara lebih formal dan membuat spesifikasi dan algoritma
dalam notasi yang ditetapkan. Mahasiswa harus menuliskan solusi
algoritmiknya dalam notasi standar di kelas. Penulisan notasi algoritmik
bertujuan untuk menyeragamkan pemahaman tentang algoritma program
yang terbebas dari sintak (aturan) penulisan bahasa program .
Menulis program, yaitu menterjemahkan notasi algoritmik ke dalam sintak
bahasa program.
Debugging dan menguji coba program. Hal ini bertujuan untuk
mendapatkan program yang benar. Program dikatakan benar jika terbebas dari
salah lojik dan sintak bahasa. Secara ideal mahasiswa hanya diberi
kesempatan untuk me-run program sebanyak 2 kali : pertama untuk
membersihkan program dari kesalahan sintak dan kedua untuk mendapatkan
program benar. Pada tahap ini diharapkan tidak terjadi kesalahan lojik jika
analisa benar.
Mengamati peristiwa eksekusi, perlu dilakukan untuk meningkatkan
kepercayaan bahwa jika analisa benar maka sisa pekerjaan menjadi mudah.
Pada pemrograman prosedural, aspek ini penting untuk memahami fenomena
eksekusi dan perubahaan nilai suatu struktur data.
Membaca program : orang akan dapat menulis dengan baik kalau sering
membaca. Hal ini juga berlaku dalam memprogram. Kegiatan yang dapat
dilakukan di kelas adalah dengan saling tukar menukar teks algoritma, dan
saling mengkritik algoritma teman. Mahasiswa harus berlatih sendiri pada
kegiatan belajar bersama.
Membuktikan kebenaran program secara formal, satu-satunya hal yang
menjamin kebenaran, tetapi kontradiktif dan sulit diterapkan dalam kehidupan
sehari-hari. Program yang hanya lima baris pembuktiannya bisa sehalaman,

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

sehingga seringkali tidak pernah diterapkan dalam aplikasi nyata. Aktifitas ini
dicakup dalam matakuliah Analisis Algoritma.

Petunjuk Praktikum
Dari pengantar dapat disimpulkan bahwa pekerjaan memprogram tidak
100 % di depan komputer (artinya mahasiswa tidak langsung memecahkan
permasalahan di komputer) melainkan ada fase sebelum di depan komputer yaitu
fase Analisa. Untuk program yang kecil anda bisa langsung memecahkan di
depan komputer namun bagaimana untuk program yang besar?
Secara
konvensional, isi fase Analisa berupa oret-oretan di kertas yang menjelaskan
tentang solusi permasalahan. Untuk itu maka ditetapkan langkah-langkahnya,
Fase I ( analisa sederhana ): Hasil proses dari fase ini adalah oretan Notasi
Algoritmik yang siap diterjemahkan ke dalam bahasa program pascal. Fase ini
dilakukan sebelum masuk ke laboratorium. Di Lab, mahasiswa hanya
diperkenankan membawa oretan Notasi Algoritmik untuk masalah yang
bersangkutan ditambah Catatan kuliah dan Buku pendukung lainnya( artinya
mahasiswa tidak diperkenankan membawa lembaran source code yang telah
tercetak untuk masalah yang bersangkutan)
Fase II ( pembuatan source code) : Meliputi penterjemahan notasi algoritmik,
debugging dan run, dan testing program. Dilakukan di dalam Lab selama
waktu yang ditentukan untuk setiap praktikum. Hasil dari fase ini adalah
Source Code yang benar dan Kasus uji.
Fase III (dokumentasi): merupakan rekaman hasil kegiatan dari setiap fase di
atas. Mahasiswa harus membuatkan laporan yang terdiri dari : Analisa
Masalah yang dilengkapi dengan Notasi Algoritmik, Source Code, Kasus
Uji, dan Kesimpulan jika perlu. Source Code dan kasus Uji harus
merupakan hasil Print-Out Komputer di Lab, sedangkan yang lainnya bebas
(boleh dengan tulisan tangan). Fase ini dilakukan di luar Lab.
Fase IV (pengumpulan laporan): Laporan diserahkan ke Assistan untuk
Pascal dalam waktu yang telah ditentukan. Pengumpulan laporan di luar waktu
yang telah ditentukan tidak akan diterima.

Peraturan Praktikum
1. Peserta praktikum menerima dan kemudian mempelajari modul praktikum.
2. Praktikan diharapkan sudah mempelajari lebih dalam materi yang diberikan
sebelum melakukan praktikum.
3. Praktikan harus menghadiri setiap sesi praktikum, tidak hadir tanpa
keterangan akan menyebabkan hak menjadi praktikan gugur (nilai E).
4. Laporan praktikum dianggap sah apabila praktikan telah melakukan
praktikum sesuai dengan materi praktikum minggu sebelumnya dan terdapat
tanda tangan dosen/asisten.
5. Isi laporan praktikum harus sesuai dengan petunjuk praktikum diatas.
6. Cover laporan praktikum berupa print out dan tidak perlu dijilid, formatnya
ada pada halaman berikutnya.
7. Cover laporan berupa printout harus dibawa pada saat praktikum agar ditanda
tangan oleh Dosen/asisten.

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Contoh cover laporan:


LAPORAN RESMI
PRAKTIKUM PEMROGRAMAN I
<judul praktikum>
PRAKTIKUM 2
VARIABEL BERINDEKS (ARRAY) DIMENSI TUNGGAL

Disusun Oleh :
TGL. PRAKTIKUM
NAMA
NIM
DOSEN

:
:
:
:

(paraf Dosen/Asisten)
-----------------------------------

LABORATORIUM KOMPUTER
JURUSAN ILMU KOMPUTER
FAKULTAS SAINS DAN TEKNIK
UNIVERSITAS NUSA CENDANA
KUPANG 2014

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 2
VARIABEL BERINDEKS (ARRAY) DIMENSI TUNGGAL
1. Tujuan :
Praktikan bisa memahami konsep tipe data array (array 1 dimensi) dan
menggunakannya dalam program pascal

2. Materi Praktikum :
Pengantar Array 1 Dimensi
Variable dengan tipe data tunggal (skalar) hanya dapat digunakan untuk menyimpan
sebuah nilai saja sehingga untuk menyimpan beberapa nilai sekaligus dalam suatu
variable dibutuhkan suatu variable khusus yang disebut dengan variable array atau
variable berindeks.
Variable berindeks atau array adalah variable yang mempunyai tipe data sejenis,
misalnya numeric atau string. Yang mampu menampung banyak nilai, dan didefinisikan
dengan sebuah nama variable berindeks.
Dari penjelasan di atas, sebuah larik (array) dapat diilustrasikan sebagai berikut :
1

..

..

X adalah data bertipe larik dengan komponen sebanyak n.


Berdasarkan jumlah dimensi indeks dalam sebuah variable array, dikenal adanya
array dimensi satu dan array dimensi banyak.
Beberapa hal penting yang harus diperhatikan bila ingin memasukkan deretan data ke
dalam variable array adalah :
a. Tipe data yang akan disimpan ke dalam variable array harus diketahui sebab
variable array numeric hanya dapat menerima data numeric dan variable array
string hanya dapat menerima data string.
b. Banyaknya data harus lebih kecil atau sama dengan jumlah subskrip (indeks) dari
array tersebut.
c. Untuk memasukkan deretan data dalam suatu variable indeks dapat digunakan
instruksi perulangan.
d. Banyaknya indeks yang ditentukan menunjukkan banyaknya ruang memori yang
dialokasikan. Oleh karena itu dalam menentukan banyaknya indeks sebaiknya
disesuaikan dengan banyaknya data sehingga tidak memboroskan pengalokasian
ruang memori.

Pendeklarasian Array 1 Dimensi


Ada 2 cara untuk mendeklarasikan larik / array dimensi tunggal yaitu :
1. Sebagai tipe data baru
Type Larik=Array[1..n] of datatype ;

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Var

x : larik ;

2. Langsung sebagai variabel


Var x : Array[1..n] of datatype ;

Mengakses Data Array 1 Dimensi


Cara mengakses data larik adalah dengan menunjukkan :
Nama_Larik[no.indeks] ;
Misal : x[1] berarti kita mengakses data larik x pada no.indeks ke-1.

Cetak Data Array 1 Dimensi


Disini ada dua cara atau model untuk mencetak array 1 dimensi :
1. Dengan cara mencetak dengan langsung memanggil indeksnya
Write(x[3])
2. Jika hendak mencetak seluruh data array. Maka kita memanggilnya dengan
looping . Mengapa dengan looping? Jika sebuah data yang dibutuhkan lebih
dari 10 atau dengan kata lain dalam jumlah yang sangat banyak tentu saja
tidak mungkin kita mencetak nya dengan mengambil data tersebut satu
persatu karena hal itu akan sangat tidak efisien.
For i:=1 to n do
Begin
Writeln(x[i])
End;

3. Kegiatan Praktikum
Pada saat praktikum, kerjakan tugas-tugas berikut ini :
a. Buatlah program pascal dalam bentuk variabel berindeks (array) dimensi
tunggal untuk menampung data nilai dari X jumlah mahasiswa. Dimana nilai
X diinputkan saat running time.
b. Buatlah program pascal dalam bentuk variabel berindeks (array) dimensi
tunggal untuk menampung N nilai kemudian dihitung rata-ratanya . Dimana
nilai N diinputkan saat running time.

4. Tugas
Buatlah program pascal untuk menentukan bilangan tertinggi dan terendah dari
N bilangan bulat yang dimasukkan melalui piranti masukan. Dimana nilai N
diinputkan saat running time

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 3
VARIABEL BERINDEKS (ARRAY) MULTIDIMENSI
1. Tujuan
Praktikan bisa memahami konsep tipe data array (array 2 dimensi) dan
menggunakannya dalam program pascal

2. Materi Praktikum
Dalam penyelesaian beberapa masalah seperti perhitungan matriks, penentuan
koordinat kartesius, penentuan koordinat vector tiga dimensi, dan sebagainya,
array berdimensi satu kurang memadai. Maka diperlukan array multidimensi.
Berikut contoh deklarasi array multidimensi :
Type
Nama_Array = Array[tipe-indeks1,tipe-indeks2,..., tipe-indeks ke n] of tipe data ;
Untuk menentukan dimensi array, perhatikan contoh berikut :
Matriks adalah suatu kumpulan bilangan yang disusun dalam bentuk baris dan
kolom sehingga berbentuk persegi panjang. Untuk mendefinisikan dimensi dari
suatu matriks maka harus memperhatikan jumlah baris dan kolom yang
merupakan ordo dari matriks tersebut. Misalnya :
Untuk matriks ordo 2X3
Matriks = Array[1..2, 1..3] of integer ;

Untuk matriks ordo 5X2


Matriks = Array[1..5, 1..2] of integer ;

3. Kegiatan Praktikum
-

Buatlah program pascal dalam bentuk variabel berindeks (array)


multidimensi untuk membuat suatu Matriks Transpose. Dimana jumlah
Baris dan Kolom Matriks diinputkan saat running time.
Buatlah program pascal dalam bentuk variabel berindeks (array)
multidimensi untuk menampilkan nilai pada diagonal utama. Dimana
jumlah Baris dan Kolom Matriks diinputkan saat running time.

4. Tugas
Buatlah program pascal dalam bentuk variabel berindeks (array) multidimensi
untuk menghitung penjumlahan dua buah matriks. Dimana jumlah Baris dan
Kolom Matriks diinputkan saat running time.

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 4
TIPE DATA REKAMAN (RECORD)
1. Tujuan
Praktikan mampu membuat program pascal dalam bentuk Record.

2. Materi Praktikum
Pengantar Record
Tipe data ini merupakan perluasan dari tipe data Array, yaitu karena pada
array masing-masing komponennya harus menggunakan tipe data yang sama,
maka pada record hal itu tidak berlaku lagi. Artinya diperbolehkan untuk
menggunakan tipe data yang berbeda pada masing-masing komponen (field) dari
record tersebut.
Dengan tipe data ini kita dapat mengumpulkan beberapa item data yang
masing-masing dapat mempunyai tipe data berbeda-beda. Masing-masing data
disebut field. Deklarasi tipe ini diawali kata record dan dikuti oleh suatu daftar
field dan diakhiri dengan kata cadangan end.
Pendeklarasian record :
Type
Nama_record = record
Field1: tipe data1 ;
Field2: tipe data2 ;

Fieldn: tipe datan ;


End ;
Contoh :
Type Barang = record
Nama : string[20] ;
Jenis : string [20]
Jumlah : integer ;
End ;
Memasukkan Data Ke Dalam Record
Untuk memberikan nilai dari masing-masing field maka kita harus
menuliskan
Nama_record.field := (nilainya);
Misalkan : dari contoh diatas kita akan mengisikan nama barang dengan Piring,
jenis barang yaitu barang pecah belah dan jumlah barang 3 lusin maka kita harus
menuliskan pada program utama
Barang.Nama := Piring ;
Barang.Jenis := Pecah belah ;
Barang.Jumlah:= 36 ;
Nilai-nilai dari field ini akan disimpan dalam record. Untuk melihat apakah benar
data yang dimasukkan telah tersimpan dalah ecord maka pada var kita
deklarasikan suatu variable misal :
X : array[1..n] of Nama_record ; dari soal di atas yaitu
X : array[1..n] of Barang ;

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Maka apabila nanti kita lakukan pemanggilan dengan mengetikkan


Write(X[i].nama);
data dari field yang tersimpan dalam record tersebut akan ditampilkan.
Adapula beberapa bentuk lain cara pemasukkan data record, diantara :
1. Tiap-tiap komponen field dari record dapat dipergunakan dengan cara
menuliskan:
Pengenal_record.pengenal_field
Contoh:
langganan.Nama := Kurniawan;
readln(langganan.Kode);
writeln(langganan.Nama);
writeln(langganan.Kode);
2. Dengan menggunakan statemen with
Kita dapat langsung menuliskan pengenal field tanpa perlu menyertakan
pengenal record-nya. Ini dapat dilakukan dengan menggunakan statemen with
yang menyebutkan pengenal record.
Contoh:
with langganan do
begin
Nama := Kurniawan;
readln(Kode);
end;
with langganan do
begin
writeln(Nama);
writeln(Kode);
end;
Tipe data record dapat juga mempunyai field berupa tipe data record yang lainnya.
Contoh:
Type
tgl = record
hari : 1..31;
bulan : 1..12;
tahun : word;
End;
almt = record
jalan : string[35];
kota : string[25];
End;
pegawai = record
nama : string[40];
tglmasuk : tgl;
alamat : almt;
end;
Var
Datapegawai : pegawai;

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

3. Kegiatan Praktikum
-

Buatlah program pascal dalam bentuk Record untuk menampilkan waktu dengan
format hh:mm:ss setelah ditambah N detik. Nilai N diinputkan saat running time.
Buatlah program pascal dalam bentuk Record untuk menampung data-data
mahasiswa, yang terdiri dari Data Nomor Mahasiswa, Nama Mahasiswa, Indeks
Prestasi Mahasiswa. Dimana jumlah Mahasiswa diinputkan saat running time.

4. Tugas
Buatlah program dalam bahasa pascal untuk memasukkan data belanja dan
menampilkannya dalam bentuk nota Belanja. Total Harga, Total belanja, Total
Bayar dan Total Kembali atau sisa didapat dengan melakukan proses perhitungan
kemudian hasilnya ditampilkan dalam bentuk seperti contoh dibawah ini.

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 5
REKURSI
1. Tujuan
Praktikan mampu membuat program pascal dalam bentuk Rekursi.

2. Materi Praktikum
Pengantar Rekursi
Rekursi merupakan suatu proses di mana sebuah prosedur memanggil dirinya
sendiri. Rekursi merupakan sebuah teknik pemrograman yang cukup tinggi dan
penting untuk diketahui. Syarat suatu prosedur dapat disebut sebagai prosedur
rekursi adalah :
Prosedur tersebut memanggil dirinya sendiri.
Terdapat anchor untuk menghentikan proses rekursi (anchor adalah
kondisi di mana suatu fungsi rekursi selesai).
Apabila suatu saat ada suatu masalah yang akan diselesaikan dengan cara
rekursi maka untuk menyelesaikan algoritma pemecahan masalah tersebut
haruslah diidentifikasi terlebih dahulu hal-hal sebagai berikut :
Kapankah langkah-langkah rekursi terjadi. Contohnya adalah dalam kasus
perhitungan faktorial secara rekursi yang akan dilaksanakan selama suatu
bilangan lebih besar dari 1.
Apakah yang berbeda dalam setiap kali pemanggilan subrutin rekursi.
Contohnya adalah dalam kasus perhitungan faktorial. Yang berbeda dalam
setiap kali pemanggilan subrutin adalah angka yang dimasukkan yang
selalu lebih kecil satu bilangan dibandingkan pada pemanggilan
sebelumnya.
Berikut ini adalah contoh penggunaan proses rekursi pada pencarian faktorial
dan bilangan Fibonacci :
Pencarian Bilangan Faktorial
Factorial merupakan proses perhitungan suatu deret bilangan dengan
menggunakan rumus :
a. Untuk n > 0
n! = 1 * 2 * 3 * 4 * * (n-2) * (n-1) * n
atau
n! = n * (n-1) * (n-2) * * 4 * 3 * 2 * 1
b. Untuk n = 0
n! = 0
Sebagai contoh :
2! = 1 * 2 = 2 * 1 = 2
5! = 1 * 2 * 3 * 4 * 5 = 5 * 4 * 3 * 2 * 1 = 120
0! = 1
Mencari Bilangan Fibonacci
Fibonacci merupakan suatu proses penyusunan deret dengan rumus sebagai
berikut :
a) Untuk n > 2 : fibo(n-1) + fibo(n-2)

10

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

b) Untuk n = 1 dan n = 2 : fibo(n) = 1


Contoh deret Fibonacci :
1 1 2 3 5 8 13

3. Kegiatan Praktikum
-

Buatlah program pascal dalam bentuk Rekursi untuk penghitungan suatu


X bilangan faktorial.
Buatlah program pascal dalam bentuk Rekursi untuk penghitungan suatu
X bilangan fibonacci.

4. Tugas
Buatlah program pascal dalam bentuk Rekursi untuk penghitungan Tribollaci,
bilangan ke N dari tribollaci adalah jumlah dari bilangan ke n-3 ditambah
bilangan ke n-2 ditambah bilangan ke n-1.
F(n) = f(n-3) + f(n-2) + f(n-1)
1 1 1 3 5 9 17 31 57 105

11

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 6
PROCEDURE
1. Tujuan
Praktikan dapat membuat program pascal dengan menggunakan prosedur

2. Materi Praktikum
Definisi Prosedur
Prosedur adalah modul program yang mengerjakan tugas/aktivitas yang
spesifik dan menghasilkan suatu efek netto . Suatu efek netto diketahui dengan
membandingkan keadaan awal dan keadaan akhir pada pelaksanaan prosedur.
Oleh karena itu, pada prosedur kita harus mendefinisikan keadaan awal sebelum
rangkaian instruksi di dalam prosedur dilaksanakan dan keadaan akhir yang
diharapkan setelah rangkaian instruksi dilaksanakan.
Struktur umum prosedur adalah sebagai berikut :
Procedure Nama_Prosedur (param_formal1:tipe_param,);
{Jika prosedur tidak memiliki parameter, tanda kurung tidak
disertakan}
var
{bagian deklarasi prosedur, sifatnya lokal}
begin
statement-1;
statement-2;

Statement-n;
end;

Struktur blok program utama beserta prosedur, adalah sebagai berikut :


Program judul_program;
var
{bagian deklarasi prosedur, sifatnya global}
Procedure Nama_Prosedur;
{Jika prosedur tidak memiliki parameter, tanda kurung tidak
disertakan}
var
{bagian deklarasi prosedur, sifatnya lokal}
begin
statement-1;
statement-2;

Statement-n;
end;
{program utama}
begin
Nama_Prosedur;
end.

12

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Kebanyakan program memerlukan pertukaran informasi antara prosedur (atau


fungsi) dan titik dimana ia dipanggil. Penggunaan parameter menawarkan
mekanisme penukaran informasi tersebut. Tiap item data ditransfer antara
parameter aktual dan parameter formal yang bersesuaian. Parameter aktual
adalah parameter yang disertakan ketika pemanggilan, sedangkan paramater
formal adalah parameter yang dideklarasikan di bagian header prosedur itu
sendiri.
Passing Parameter

Proses pengiriman data dari parameter aktual ke parameter formal


disebut dengan transfer parameter (passing parameter). Nama Parameter aktual
dan parameter formal boleh berbeda, tetapi harus memiliki tipe data yang sama
selain itu juga jumlah parameter aktual dan parameter formal harus sama. Di
Turbo Pascal, parameter dapat dikirim/ditransfer secara nilai (by value) atau
secara acuan (by reference).
Pengiriman parameter secara nilai (by value)
Jika parameter dikirim secara nilai (by value), maka parameter formal yang
terletak di dalam pendefinisan prosedur akan berisi nilai yang dikirimkan dari
parameter aktual, yang kemudian bersifat lokal di prosedur tersebut. Bila nilai
parameter formal di dalam prosedur tersebut berubah, maka tidak akan
mempengaruhi nilai parameter aktual (nilai parameter aktual tetap). Agar lebih
jelas dapat dilihat contohnya pada gambar dibawah ini:
1
2

Program PersegiPanjang;
uses crt;

3
4
5
6
7
8
9

Procedure Hitung_Luas(p,l,ls:integer);
parameter}
begin
ls:=p*l;
writeln('p = ',p);
writeln('l = ',l);
writeln('ls = ',ls);
end;

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

{===program utama===}
var
pj,lbr,luas:integer;
begin
clrscr;
writeln('Program Untuk Menghitung luas persegipanjang');
pj:=10;
lbr:=6;
luas:=0;
writeln;
Hitung_Luas(pj,lbr,luas); {Memanggil prosedur Hitung_Luas}
writeln;
writeln('pj
= ',pj);
writeln('lbr = ',lbr);
writeln('luas = ',luas);
readln;
end.

13

{judul Program Utama}

{Prosedur dengan

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Pengiriman parameter secara acuan (by reference)


Bila parameter dikirimkan secara acuan (by refence), maka perubahan-perubahan
yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai parameter
aktual di blok program utama. Jenis parameter ini dideklarasikan di dalam prosedur
dengan menggunakan kata cadangan var. Contohnya kita modifikasi program
sebelumnya dan dapat dilihat pada gambar dibawah ini:
1
2
3
4
5
6
7
8
9
10

Program PersegiPanjang
uses crt;

11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

{===program utama===}
var
pj,lbr,luas:integer;
begin
clrscr;
writeln('Program Untuk Menghitung luas persegipanjang');
pj:=10;
lbr:=6;
luas:=0;
writeln;
Hitung_Luas(pj,lbr,luas); 3 {Memanggil prosedur Hitung_Luas}
writeln;
writeln('pj
= ',pj);
writeln('lbr = ',lbr);
writeln('luas = ',luas);
readln;
end.

{judul Program Utama}

Procedure Hitung_Luas(p,l:integer; var ls:integer);


begin
ls:=p*l;
writeln('p = ',p);
writeln('l = ',l);
writeln('ls = ',ls);
end;
1

Kegiatan Praktikum
-

Buatlah program pascal dengan procedure untuk menghitung luas dan


keliling dari persegi panjang.
Buatlah program pascal dengan menggunakan procedure untuk
menampilkan mean dari bilangan ganjil antara 0 sampai N, gunakan
parameter secara nilai. nilai N dimasukan pada saat running time.

Tugas
Buatlah program pascal dengan prosedur untuk menambah suatu jam dengan
1 detik.

14

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 7
FUNCTION
1. Tujuan
Praktikan dapat membuat program pascal dengan menggunakan Fungsi

2. Materi Praktikum
Penulisan Fungsi (Function)
Apa yang dimaksud dengan fungsi?. Fungsi tidak jauh berbeda dengan
prosedur, yaitu suatu modul program terpisah dari progam utama yang diletakan
dalam blok tersendiri yang berfungsi sebagai bagian dari program. Namun fungsi
memiliki perbedaan mendasar dengan prosedur yaitu : fungsi memberikan nilai
balik (return) sedangkan prosedur tidak. Fungsi diakses dengan memanggil
namanya. Selain itu, fungsi juga dapat mengandung daftar parameter formal.
Parameter pada fungsi selalu merupakan parameter masukan. Jenis parameter
masukan pada fungsi disebabkan oleh kenyataan bahwa parameter pada fungsi
merupakan masukan yang digunakan oleh fungsi tersebut untuk menghasilkan
nilai. Cara penulisan fungsi di Turbo Pascal seperti dibawah ini :
Function Nama_Fungsi(param_formal:tipe_param,...):tipe_hasil;
var
{bagian deklarasi fungsi, sifatnya lokal}
begin
statement-1;
statement-2;

Statement-n;
Nama_Fungsi:=hasil;
end;

Berikut ini adalah struktur blok program beserta fungsinya:


Program PersegiPanjang;
uses crt;

2 Function Luas(p,l:integer ):integer;


begin
Luas:=p*l;
end;

{===program utama===}
var
pj,lbr:integer;
3
begin
clrscr;
writeln('Program Untuk Menghitung luas persegipanjang');
writeln;
write('Masukan panjang : ');readln(pj);
write('Masukan lebar
: ');readln(lbr);
write('Luasnya = ',Luas(pj,lbr));
readln;
end.

15

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Sama seperti prosedur, untuk mengakses setiap Fungsi kita harus memanggil
namanya. Fungsi juda dapat memiliki parameter, tetapi parameter yang terdapat
dalam fungsi selalu merupakan parameter masukan (input parameter). Tipe hasil
di dalam suatu fungsi merupakan tipe nilai balik (return) yang diberikan oleh
fungsi. Bila kita perhatikan listing program diatas, terdapat sebuah
Fungsi/Function dengan nama Luas yang memiliki parameter p dan l, sedangkan
tipe nilai balik (return) yang dihasilkan oleh fungsi tersebut adalah integer. Pada
contoh diatas Luas digunakan sebagai nama fungsi, dan didalam fungsi tersebut,
Luas digunakan sebagai variabel untuk menampung hasil perhitungan pada fungsi
tersebut.

3. Kegiatan Praktikum
1. Buatlah program pascal dengan menggunakan fungsi untuk menampilkan
luas sebuah lingkaran jika diketahui diameternya saja.
2. Buatlah program pascal untuk fungsi phytagoras yang menerima tiga buah
bilangan bulat a, b, c dan menentukan apakah bilangan tersebut merupakan
tripel phytagoras.

4. Tugas
Buatlah sebuah program untuk menampilkan KHS seorang mahasiswa Ilmu
Komputer. Dengan catatan:
-

16

Deklarasikan variable dengan type record dan berbentuk larik.


Sistem penilaian mengikuti penilaian lama(A,B,C,D,E)
Gunakan fungsi rekursif untuk mendapatkan SKSN.
Buatlah beberapa sub program yang diperlukan dengan menggunakan procedure.

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 8
GRAFIS 1
1. Tujuan
Mahasiswa mampu membuat program pascal dalam bentuk Grafis.

2. Materi Praktikum
Selain digunakan untuk melakukan perhitungan-perhitungan dan
menampilkan karakter-karakter di mana komputer bekerja dalam lingkungan
mode teks, komputer juga dapat dimanfaatkan untuk membuat gambar dan grafik,
baik yang diam maupun bergerak.
Di dalam Turbo Pascal, membuat gambar atau grafik dilakukan dengan
menggunakan mode grafik, yang berbeda dengan mode teks. Untuk dapat bekerja
di dalam mode grafik, harus digunakan unit graph. Unit ini merupakan unit
standar yang disediakan oleh Turbo Pascal, yang di dalamnya terdapat kumpulan
program pembantu fungsi.
Untuk dapat bekerja di dalam mode grafik, perlu ditentukan jenis driver dan
mode yang akan digunakan. Menentukan driver dapat diartikan sama dengan
memberitahu computer untuk bekerja dengan monitor tertentu, misalnya CGA
(Color Graphics Adapter), EGA (Enhanced Graphics Adapter), atau VGA (Video
Graphics Adapter).
Jika telah ditentukan drivernya, misalnya CGA, maka grafik atau gambar
yang telah dibuat hanya akan sesuai untuk monitor CGA. Kalaupun dipaksakan
dengan memakai driver yang lebih tinggi, misalnya VGA, maka gambar yang
dihasilkan tidak akan sempurna; terutama pada letak dan bentuk gambar akan
berbeda.
Untuk menghindari hal semacam itu, computer dapat diperintahkan untuk
menentukan sendiri drivernya. Perintah yang digunakan adalah detect.
Konsekuensinya, harus dihindari pemakaian koordinat dengan angka langsung.
Pada dasarnya setiap grafik terbentuk dari sekumpulan titik-titik, garis-garis,
atau lengkungan.
Membuat Titik
Untuk membuat sebuah titik, dipergunakan prosedur PutPixel.
Cara menuliskannya adalah :
PutPixel(x,y,warna);
X dan y adalah koordinat tempat titik digambar dan warna dapat dipilih
sebanyak warna-warna yang tersedia, tetapi hal ini tentu tergantung juga pada
driver dan mode yang digunakannya.

17

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Secara umum bentuk programnya dapat dilihat pada gambar berikut:


Program titik;
Uses graph,crt;
Var
gd,gm:integer;
begin
clrscr;
gd:= detect;
InitGraph(gd,gm,);
PutPixel(110,90,green)
Repeat until keypressed;
CloseGraph;
end.

Membuat Garis
Untuk membuat sebuah garis, dapat digunakan tiga buah prosedur sebagai
berikut :
1. Prosedur Line: Line (x1,y1,x2,y2);
Prosedur Line akan menggambar sebuah garis dari koordinat (x1,y1) ke
koordinat (x2,y2).
2. Prosedur LineRel : LineRel (dx,dy);
Prosedur LineRel akan menggambar sebuah garis dengan panjang relative
dari koordinat awal sepanjang koordinat (dx,dy)
3. Prosedur LineTo : LineTo (x,y);
Prosedure LineTo akan menghasilkan sebuah garis dari koordinat awal ke
koordinat (x,y)
Membuat Segiempat
Untuk membuat sebuah segiempat, dipergunakan prosedur Rectangle.
Dengan mempergunakan prosedur ini, cukup ditentukan dua buah koordinat
(x1,y1) yang berfungsi sebagai titik pada sudut kiri atas dan (x2,y2) yang
berfungsi sebagai titik pada sudut kanan bawah segiempat.
Cara menuliskannya adalah :
Rectangle (x1,y1,x2,y2);
Membuat Lingkaran
Untuk membuat suatu lingkaran, digunakan prosedur Circle. Pembuatan
lingkaran dengan prosedur ini memerlukan sebuah koordinat yang berfungsi
sebagai pusat lingkaran dan panjang jari-jarinya.
Cara menuliskannya adalah :
Circle (x,y,r);
x dan y adalah pusat lingkaran sedangkan r adalah jari-jari lingkaran.

18

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Membuat Ellips
Berbeda dengan pembuatan lingkaran, selain diperlukan koordinat (x,y)
sebagai pusat ellips, juga diperlukan sudut awal (s1) dan sudut akhir (s2), serta
jari-jari mendatar (rx) dab jari-jari tegak (ry).
Cara menuliskannya adalah :
Ellipse (x,y,s1,s2,rx,ry);

3. Kegiatan Praktikum
-

Buatlah program pascal untuk menampilkan titik, garis, kotak, persegi


panjang dan lingkaran.
Buatlah program pascal dalam bentuk Grafis untuk menampilkan sebuah
mobil mainan, gunakan kombinasi titik, garis, segi empat, lingkaran.

4. Tugas
Buatlah program pascal dalam bentuk grafis sekreatif mungkin menurut anda,
gunakan kombinasi titik, garis, segi empat, lingkaran dan ellips!

19

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 9
GRAFIS 2
1. Tujuan
Praktikan mampu membuat program pascal dalam bentuk grafis arsiran.

2. Materi Praktikum
Membuat Segiempat Diarsir
Untuk membuat segiempat yang diarsir, digunakan prosedur Bar. Koordinat
yang diperlukan sama dengan Rectangle, yaitu (x1,y1) sebagai titik pada sudut
kiri atas segiempat dan (x2,y2) sebagai titik pada sudut kanan bawah segiempat.
Cara menuliskannya adalah :
Bar (x1,y1,x2,y2);
Membuat Lingkaran Diarsir
Untuk membuat lingkaran yang diarsir, digunakan prosedur PieSlice.
Koordinat yang diperlukan adalah koordinat (x,y) yang berfungsi sebagai titik
pusatnya, s1, s2 sebagai sudut awal dan akhir, serta r sebagai jari-jarinya.
Cara menuliskannya adalah :
PieSlice (x,y,s1,s2,r);
s1 adalah sudut awal
s2 adalah sudut akhir
Membuat Ellips Diarsir
Untuk membuat ellips yang diarsir, digunakan prosedur Sector. Koordinat
yang diperlukan sama dengan pada pembuatan ellips, yaitu : (x,y) yang berfungsi
sebagai pusatnya, s1, s2 sebagai sudut awal dan akhir, serta rx, ry sebagai jari-jari
x dan y.
Cara menuliskannya adalah :
Sector (x,y,s1,s2,rx,ry);
rx adalah jari-jari mendatar.
ry adalah jari-jari tegak.

3. Kegiatan Praktikum
- Buatlah program pascal untuk menampilkan segieempat, Lingkaran dan
Elipps yang diarsir.
- Buatlah sebuah rumah sederhana beserta halaman depan menggunakan
materi grafis yang anda pelajari hari ini.

4. Tugas
Buatlah program pascal sebuah pemandangan di desa atau di kota dalam
bentuk grafis. Gunakan kombinasi materi yang ada pada Grafis 1 dan Grafis 2.

20

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 10
GRAFIS 3
1. Tujuan
Mahasiswa mampu membuat program pascal kreasi huruf dalam bentuk Grafis
yang diarsir.

2. Materi Paraktikum
Grafik pascal tidak hanya dapat digunakan untuk membuat program-program
gambar saja, akan tetapi juga dapat digunakan untuk membuat tulisan seperti
dalam mode teks.
CARA MENULISKAN HURUF
Didalam mode teks, anda menuliskan tulisan dengan prosedur write. Didalam
mode grafik prosedur tersebut tidak dapat digunakan. Prosedur yang digunakan
untuk menuliskan tulisan di dalam mode grafik adalah prosedur OutText atau
prosedur OutTextXY.
Prosedur OutText
Prosedur ini akan menuliskan tulisan pada posisi pointer yang sedang
diaktifkan. Cara menuliskannya adalah:
OutText(Ilmu Komputer)
Tulisan yang akan ditampilkan harus berada di antara tanda kutip(). Prosedur
ini akan menuliskan tulisannya pada koordinat (0,0). Agar letak tulisan sesuai
dengan keinginan, maka sebelumnya perlu diberi prosedur MoveTo untuk
memindahkan pointernya. Perhatikan program berikut:
Program huruf_grafik;
Uses Graph,Crt;
Var
xmax,ymax,gm,gd:integer;
begin
gd:= detect;
InitGraph (gd,gm,)
xmax:=GetMaxX;
ymax:=GetMaxY;
Rectangle(0,0,xmax,ymax);
MoveTo(xmax div 2,ymax div 2);
OutText(ILMU KOMPUTER);
Repeat Until KeyPressed;
CloseGraph;
end.

Prosedur OutTextXY
Berbeda dengan penggunaan prosedur OutText, penggunaan prosedur ini tidak
perlu menyertakan prosedur pemindah pinter karena koordinatnya sudah terdapat
di dalamnya. Cara penulisannya adalah:
OutTextXY(x,y,tulisan);
X dan y masing-masing adalah koordinatnya.

21

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

MENGATUR JASTIFIKASI
Yang dimaksud dengan jastifikasi adalah pengaturan posisi tulisan berdasarkan
posisi pointer. Terdapat dua macam jastifikasi, yaitu jastifikasi mendatar dan
jastifikasi tegak. Cara menuliskannya adalah sebagai berikut:
SetTextJustify(Mendatar,Tegak);
- Justifikasi Mendatar
Yang dimaksud dengan jastifikasi mendatar adalah menggeser tulisan,
secara mendatar (sesuia dengan sumbu x), sehingga pointer berada pada
posisinya. Ada tiga macam justifikasi mendatar, yaitu:
1. LeftText
2. CenterText
3. RightText
Cara menuliskannya adalah sebagai berikut:
SetTextJustify(LeftText,TopText);
SetTextJustify(CenterText,TopText);
SetTextJustify(RightText,TopText);
- Justifikasi Tegak
Yang dimaksud dengan jastifikasi tegak adalah menggeser tulisan, secara tegak
(sesuai dengan sumbu y), sehingga pointer berada pada posisinya. Ada tiga
macam justifikasi mendatar, yaitu:
1. BottonText
2. CenterText
3. TopText
Cara menuliskannya adalah sebagai berikut:
SetTextJustify(CenterText,BottonText);
SetTextJustify(CenterText,CenterText);
SetTextJustify(CenterText,TopText);
MENGATUR GAYA HURUF
Selain posisinya yang dapat digerser-geser, gaya tulisan tersebut juga
dapat diubah seperti macam hurufnya , arah penulisannya, serta besar hurufnya.
Cara menuliskannya adalah:
SetTextStyle(huruf,arah,ukuran);
Macam-macam Huruf
Macam huruf yang lain biasanya dipanggil dari disket oleh SetTextStyle.
Beberapa macam huruf yang ada adalah sebagai berikut:
Konstanta
Macam huruf
0
DeafaultFont
1
TriplexFont
2
SmallFont
3
SanSerifFont
5
GothicFont
Arah Huruf
Hanya ada dua arah tampilan huruf yang tersedia dalam pascal, yaitu secara
mendatar dan tegak.

22

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Konstanta
0
1

Arah huruf
Mendatar
Tegak

Ukuran Huruf
Ukuran huruf yang digunakan dapat juga diubah. Ukuran suatu huruf dapat
berbeda dengan yang lainnya. Untuk memperbesar ukuran huruf, anda dapat
melakukan dengan cara menentukan angka 1, 2, 3 dan seterusnya. Ukuran huruf
dapat diperbesar sampai sebesar mungkin.

3. Kegiatan Praktikum
- Buatlah program pascal untuk menampilkan nama anda tepat di tengah layar
dalam grafis.
- Buatlah program pascal untuk menampilkan nama anda secara tegak di tengah
layar dalam bentuk grafis.
- Buatlah tulisan ilkom dengan bermacam-macam jenis dan ukuran huruf pada
layar dalam bentuk grafis.

4. Tugas
Buatlah program pascal dalam bentuk grafis untuk menampilkan menara Eiffel,
gunakan kombinasi materi yang ada pada Grafis1, 2 dan 3.

23

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 11
FILE 1
1. Tujuan
Praktikan mampu membuat program dengan menggunakan perintah File
Teks.

2. Materi Praktikum
Dalam kasus-kasus pemrograman tertentu kita sering disudutkan untuk
menggunakan file sebagai media yang digunakan untuk menyimpan data-data,
baik berupa data input (untuk masukan) maupun sebagai data output (untuk
keluaran). Sebagai contoh, apabila kita menggunakan sistem operasi Microsoft
Windows maka kita akan menemukan file sistem seperti autoexec.bat, config.sys,
system.ini dan lainnya. File tersebut sebenarnya digunakan untuk menyimpan
data-data secara terpisah sehingga nilainya dapat diubah dengan mudah sesuai
dengan kebutuhan. Sebagai seorang programmer, kita tentu dituntut untuk dapat
menggunakan (mengakses) file dari dalam prograam yang kita buat. Berdasarkan
prosedur yang ada, proses pengaksesan file di dalam bahasa Pascal terdiri dari
empat tahap, yaitu :
(a)
(b)
(c)
(d)

Menghubungkan file fisik yang akan dibuka atau dibuat dengan variabel file
Membuka file
Melakukan operasi file (membaca atau menulis)
Menutup file

PROCEDURE DAN FUNCTION STANDARD UNTUK SEMUA TIPE FILE


Assign (f:file;name:string) : digunakan untuk menghubungkan nama dari
external file ke suatu variabel file.
Rewrite (f[:file; recsize:word]): digunakan untuk membuka file yang baru atau
yang belum pernah ada di disk.
Reset (f[:file; recsize:word]) : digunakan untuk membuka file yang sudah ada.
Close (f:file)
: digunakan untuk menutup file yang telah dibuka
dengan procedure standard Rewrite, Reset, atau
Append (procedure khusus untuk membuka file
teks).
Erase (f:file)
: digunakan untuk menghapus suatu external file.
Dalam penggunaanya harus didahului dengan
procedure standard Close.
Rename (f:file;newname:string): digunakan untuk mengganti nama suatu external
file.
GetDir (d:byte; var s:string) : digunakan untuk mengetahui direktori yang aktif
pada suatu drive.
ChDir (s:string)
: digunakan untuk mengubah posisi dari direktori.
MkDir (s:string)
: digunakan untuk membuat suatu direktori.
RmDir (s:string)
: digunakan untuk menghapus suatu direktori.

24

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Eof (f:file):boolean

: fungsi ini akan menghasilkan status apakah file


sudah berada di posisi akhir dari file atau tidak.

FILE TEKS
File teks merupakan file yang berisi karakter yang dibentuk dalam barisbaris dan masing-masing baris dengan end-of-line marker berupa karakter
carriage return dan karakter line feed (CR/LF). Sedangkan akhir dari file
ditunjukkan dengan karakter Ctrl-Z.
File teks sebenarnya merupakan file dengan tipe Char, tetapi mempunyai
perbedaan, yaitu nilai yang bukan tipe Char dapat direkam dan dibaca oleh file
teks. Nilai yang bukan tipe Char ini akan secara otomatis dirubah ke atau dari tipe
Char.
Prosedur dan Fungsi Standard File Teks
Append(var f:text);
: digunakan untuk membuka file yang telah
ada untuk keperluan menambah data ke
dalam file.
Write([var f:text;] v1 [v2,,vn])
: digunakan untuk merekam data ke dalam
file.
Writeln([var f:text;] v1 [v2,,vn]) : digunakan untuk merekam data ke dalam
file dan memberikan end-of-line marker.
Flush(var f:text)
: digunakan untuk segera merekam data
yang ada di dalam buffer ke dalam file teks.
Read([var f:text;] v1 [v2,,vn])
: digunakan untuk membaca satu atau lebih
nilai dari file ke dalam satu variabel atau
lebih.
Readln([var f:text;] v1 [v2,,vn]) : kegunaannya sama dengan procedure Read,
tetapi procedure ini akan menggeser
pembacaan ke awal baris berikutnya dalam
file.
Eoln[(var f:text)]:boolean
: digunakan untuk mengetahui apakah posisi
dari file berada di end-of-line marker atau
tidak.
SeekEof[(var f:text)]:boolean
: kegunaannya sama dengan Eof, yaitu
menghasilkan status akhir dari file.
SeekEoln[(var f:text)]:boolean
: kegunaannya sama dengan Eoln, yaitu
menghasilkan status akhir dari baris.
Membuat File Teks Baru
Contoh program membuat file teks baru :
uses Crt;
var
berkasText
kodeBrg
namaBrg
unitBrg
hargaBrg
lagi

:
:
:
:
:
:

Text;
String[5];
String[20];
Integer;
Real;
Char;

begin

25

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

{hubungkan dengan external file}


Assign(berkasText,'Barang.txt');
{buka file}
Rewrite(berkasText);
Lagi:='Y';
while upCase(Lagi)='Y' do
begin
clrScr;
gotoxy(5,6) ;Write('Kode Barang
gotoxy(5,8) ;Write('Nama Barang
gotoxy(5,10);Write('Unit Barang
gotoxy(5,12);Write('Harga Satuan Barang
gotoxy(27,6) ;readln(kodeBrg);
gotoxy(27,8) ;readln(namaBrg);
gotoxy(27,10);readln(unitBrg);
gotoxy(27,12);readln(hargaBrg);

:
:
:
:

');
');
');
');

{rekam di file}
Writeln(berkasText,kodeBrg:5,namaBrg:20,unitBrg,hargaBrg:10:2);
gotoxy(5,15);write('Ada data lagi (Y/T)? ');readln(lagi);
end;
{tutup file}
close(berkasText);
end.

Contoh program menampilkan semua isi file:


uses Crt;
var
berkasText
kodeBrg
namaBrg
unitBrg
hargaBrg

:
:
:
:
:

Text;
String[5];
String[20];
Integer;
Real;

begin
{hubungkan dengan external file}
Assign(berkasText,'Barang.txt');
{buka file}
Reset(berkasText);
clrScr;
While not(Eof(berkasText)) do
begin
Readln(berkasText,kodeBrg,namaBrg,unitBrg,hargaBrg);
Writeln(kodeBrg,namaBrg:22,unitBrg:7,hargaBrg:10:2);
end;
{tutup file}
close(berkasFile);
end.

26

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

3. Kegiatan Praktikum
-

Buatlah program pascal untuk menyimpan biodata anda kedalam sebuah


file
Buatlah program pascal untuk menampilkan biodata yang telah anda
simpan sebelumnya.
Buatlah program pascal untuk menambahkan nama orang tua anda
kedalam file yang telah anda simpan sebelumnya.

4. Tugas
Tambahkan pada program yang anda telah buat pada kegiatan praktikum agar
data dalam file tersebut dapat dicari, dihapus, dan diubah.

27

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 12
FILE 2
1. Tujuan
Praktikan membuat program dengan menggunakan perintah file bertipe

2. Materi Praktikum
Berbeda dengan file teks yang hanya dapat diakses secara urut, file bertipe
(typed file) disamping dapat juga diakses secara urut (sequential access), dapat
juga diakses secara acak (random access). Ini berarti komponen-komponen di
dalam file bertipe dapat dibaca atau direkam dari manapun di dalam file.
Dalam file bertipe, kita dapat menambahkan variabel terdefinisi dalam unit
standard System untuk menentukan kode akses file bertipe. Adapun kode
aksesnya adalah:
0 read only
1 write only
2 read/write (default)
Deklarasi
Var
fileData : File of tipeData;
begin

end.

tipeData dapat berupa integer, real, char, string, array, record, dan sebagainya.
Prosedur dan Fungsi Standard File Bertipe
Write (f,v1[v2,,vn])
: digunakan untuk merekam satu atau lebih
nilai ke dalam file.
Read (f,v1[v2,,v3])
: digunakan untuk membaca satu atau lebih
nilai dari file.
Seek (f; n : longint)
: digunakan untuk mengarahkan penunjuk
file ke suatu komponen tertentu, sehingga
memungkinkan kita untuk membaca
komponen atau menuliskan komponen
secara acak.
Truncate(f)
: digunakan untuk menghapus sejumlah
komponen atau record mulai dari posisi
record tertentu.
FilePos(f):longint
: digunakan untuk menghasilkan letak posisi
sekarang dari penunjuk file.
FileSize(f):longint
: digunakan untuk menghasilkan jumlah dari
komponen atau record yang sudah ada di
file. Fungsi ini harus digunakan setelah file
dibuka.

28

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Contoh program membuat file bertipe (typed file) baru :


uses crt;
type
mahasiswa
nomor :
nama :
nilai :
end;

= record
integer;
string[25];
real;

var
fileMhs : File of mahasiswa;
recordMhs : mahasiswa;
lagi : char;
begin
assign(fileMhs,'MHS.dat');
rewrite(fileMhs);
lagi:='Y';
while upcase(lagi)='Y' do
begin
clrscr;
with recordMhs do
gotoxy(5,6) ;write('Nomor Mahasiswa
gotoxy(5,8) ;write('Nama Mahasiswa
gotoxy(5,10);write('Nilai Mahasiswa

: ');
: ');
: ');

gotoxy(27,6) ;read(nomor);
gotoxy(27,8) ;read(nama);
gotoxy(27,10);read(nilai);
end;
write(fileMhs,recordMhs);
gotoxy(5,15);write('Memasukkan data lagi (Y/T)? ');
readln(lagi);
end;
close(fileMhs);
end.

Contoh program menampilkan semua data di file bertipe :


uses crt;
type
mahasiswa
nomor :
nama :
nilai :
end;

= record
integer;
string[25];
real;

var
fileMhs : File of mahasiswa;
recordMhs : mahasiswa;
begin
assign(fileMhs,'MHS.dat');
rewrite(fileMhs);

29

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

while not(Eof(fileMhs)) do
begin
read(fileMhs,recordMhs);
with recordMhs do
write(nomor:5,nama:17,nilai:10:2);
end;
close(fileMhs);
end.

3. Kegiatan Praktikum
Buatlah sebuah program pascal untuk menyimpan data mahasiswa dan
menampilkan data tertentu di file bertipe (misalnya berdasarkan NIM)

4. Tugas
Tambahkan di program yang telah anda buat pada kegiatan praktikum agar data
tersebut dapat dicari, dihapus dan diubah.

30

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 13
FILE 3
1. Tujuan
Praktikan membuat program dengan menggunakan perintah file tak bertipe

2. Materi Praktikum
File tak bertipe (untyped file) adalah channel I/O (Input/Output) level rendah
(low level I/O channel) yang digunakan untuk mengakses langsung suatu file di
disk tidak peduli bagaimana tipe dan strukturnya.
Deklarasi
FileData : File;
Karena file tak bertipe tidak memandang tipe dan struktur filenya, maka
file tak bertipe ini sifatnya kompatibel dengan file apapun dan tepat digunakan
untuk operasi-operasi mengecek keberadaan suatu file di dalam disk, menghapus
suatu file, mengganti nama dari suatu file, menyalin suatu file, dan operasi-operasi
lainnya yang tidak langsung melibatkan operasi I/O.
Prosedur dan fungsi standard yang dapat digunakan di file bertipe dapat
juga digunakan di file tak bertipe, kecuali prosedur standard Read dan Write yang
diganti dengan prosedur standard BlockRead dan BlockWrite. Kedua prosedur ini
digunakan untuk transfer data dengan kecepatan tinggi.
BlockRead(var f:file;var buf;countword[;result:word]);
BlockWrite(var f:file;var buf;countword[;result:word]);
Contoh Program mengganti nama file di disk :
uses crt;
var
fileGantiNama : file;
fileLama, fileBaru : string[139];
begin
write('Nama file yang akan diganti? ');readln(fileLama);
write('Nama file baru
? ');readln(fileBaru);
if (fileLama = '') or (fileBaru = '') then halt;
Assign(fileGantiNama,fileLama);
{$I-} Rename(fileGantiNama,fileBaru);
{$I+};
if IOResult <> 0 then
writeln('Salah, file TIDAK DITEMUKAN
ADA')
else
writeln('file telah diganti namanya');
end.

31

atau

nama

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

baru

TELAH

3. Kegiatan Praktikum
Buatlah program pascal untuk mengganti nama file di disk

4. Tugas
Diketahui file SURAT.DOC mempunyai ukuran file 100 Kbyte. Buatlah
program dengan menggunakan file tak bertipe (Untyped File) untuk menghapus
12 Byte pertama dari 100 Kbyte yang ada.

32

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 14
HUBUNGAN DENGAN DOS
1. Tujuan
Praktikan dapat membuat program pascal dan hubugannya dengan DOS

2. Materi Praktikum
Untuk berhubungan dengan DOS, pada unit standar DOS menyediakan
beberapa rutin sistem operasi serta rutin untuk penanganan file yang berguna.
Semua rutin ini tidak disediakan di Pascal standar, sehingga oleh Turbo Pascal
dipisahkan tersendiri dalam unit standar Dos ini. Rutin-rutin ini terdiri dari
beberapa prosedur standar dan fungsi standar.
PROSEDUR STANDAR UNTUK TANGGAL DAN JAM
Dengan prosedur standar ini, maka tanggal dan jam sistem dapat diambil dan
dapat dirubah. Demikian pula untuk tanggal dan jam dari suatu file.
Prosedur Getdate
Prosedur standar ini digunakan untuk mengambil tanggal sistem yang sedang
berlaku dengan sintak:
GetDate(var Year, Month, Day, DayOfWeek : word);
Jangkauan nilai yang akan didapatkan untuk Year adalah 1980..2099, Month
1..12, Day 1..31 dan DayOfWeek 0..6 (0 menunjukkan hari Minggu, 1
menunjukkan hari Senin dan seterusnya).
Prosedur Standar Setdate
Prosedur ini digunakan untuk merubah tanggal sistem dengan tanggal yang baru
dengan sintak:
SetDate(Year, Month, Day : word);
Jangkauan nilai yang dapat diberikan untuk Year adalah 1980..2099, Month
1..12, Day 1..31 dan DayOfWeek 0..6 (0 menunjukkan hari Minggu, 1
menunjukkan hari Senin dan seterusnya). Jika tanggal yang diberikan tidak sah
(diluar jangkauannya), maka akan diabaikan dan tanggal sistem tetap tidak
berubah.
Prosedur Standar Gettime
Prosedur standar ini digunakan untuk mengambil jam sistem yang sedang
berlaku dengan sintak:
GetTime(var Hour, Minute, Second, Sec100 : word);
Jangkauan nilai yang akan didapatkan untuk Hour 0.23, Minute 0.59, Second
0.59, Sect 00 (seperseratus detik) adalah 0..99.
Prosedur Standar Getftime
Prosedur standar ini digunakan untuk mengambil tanggal dan jam dari suatu
file terakhir kali file tersebut direkamkan dengan sintak:
GetFTime(var f; var Time : longint);

33

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Pada sintak f adalah file variable (dapat berupa file teks, file bertipe maupun
file tak bertipe) yang telah dihubungkan dengan external file menggunakan
prosedur standar Assign dan file harus sudah dibuka dengan prosedur standar
Reset . Hasil yang didapatkan dari prosedur standar ini adalah nilai 4 byte
(Longlnt ) pada variabel Time. Nilai variabel 4 byte ini merupakan hasil
pemampatan (packed) dari nilai-nilai Year, Month, Day, Hour, Min dan Sec .
Untuk menguraikan nilai 4 byte menjadi nilai-nilai Year, Month , Day, Hour,
Min dan Sec dapat digunakan prosedur standar UnpackTime (lihat pada prosedur
UnpackTime ). Kesalahan yang mungkin terjadi akibat prosedur standar
GetFTime adalah dengan kode salah 6 (Invalid File Handle).
Prosedur Standar Unpacktime
Prosedur standar ini digunakan untuk menguraikan (mengkonversikan) nilai 4
byte (LongInt) hasil dari prosedur standar GetFTime, FindFirst danFindNext
menjadi nilai-nilai Year, Month , Day, Hour, Min dan Sec dengan sintak:
UnpackTime(P : lon nt; var T : DateTime);
Pada sintak ini, Date Time adalah tipe record yang telah didefinisikan di unit
standar Dos sebagai berikut :
Type
DateTime = record
Year,Month,Day,Hour
Min,Sec : Word ;
end;
Prosedur Standar Packtime
Prosedur standar ini mempunyai kegunaan yang berlawanan dengan
prosedur standar UnpackTime. Prosedur standar PackTime digunakan untuk
memampatkan nilai-nilai Year, Month, Day, Hour, Min dan Sec ke dalam nilai 4
byte (Longlnt) dengan sintak:
PackTime(var T : DateTime; var P : longint);
Prosedur ini banyak digunakan pada prosedur SetFTime untuk merubah tanggal
dan jam dari suatu file.
Prosedur Standar Setftime
Prosedur ini digunakan untuk merubah tanggal dan jam dari suatu file dengan
sintak:
SetFTime(var F; Time : longint);
Pada sintak, F adalah file variable (dapat berupa file teks, file 1 berrtipe
maupun file tak bertipe) yang telah dihubungkan dengan external file
menggunakan prosedur standarAssign dan file harus sudah dibuka dengan
prosedur standar Reset .Time adalah nilai 4 byte (LongInt) yang merupakan hasil
pemampatan (packed) dari nilai-nilai Year, Month, Day, Hour, Min dan Sec.
Untuk memampatkan nilai- nilai ini dapat prosedur standar PackTime .
Kesalahan yang mungkin terjadi akibat prosedur standar SetFTime adalah
dengan kode salah 6 (Invalid File Handle).

34

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

FUNGSI STANDAR UNTUK STATUS DISK


Dua buah fungsi standar dapat digunakan untuk melihat status dart suatu disk,
yaitu fungsi standar DiskSize dan DiskFree .
Fungsi Standar Disksize
Fungsi standar ini dapat digunakan untuk mengetahui total kapasitas dari disk di
suatu disk drive dengan sintak:
DiskSize(Drive: byte) : longint;
Pada sintak, nilai 0 untuk Drive menunjukkan drive default, nilai 1 menunjukkan
drive A:, 2 drive B:, 3 drive C: dan seterusnya.
Contoh:
Uses Dos;
Var
Drive : Byte;
Begin
Write('Drive O Default, 1=A:,2=B:,3=C:,4=D:,5=E: (0/1/2/3/4/5) ? ');
ReadLn(Drive);
WriteLn;
If DiskFree(Drive) = -1 Then
Writeln('Momor drive tidak sah !!!')
Else
Begin
If Drive = 0 Then
WriteLn('Drive default:')
Else
Writeln('Drive ',Chr(64+Drive),':');
Writeln('Ukuran disk
= ',DiskSize(Drive),' bytes');
End;
End.

Fungsi Standar Diskfree


Fungsi standar ini dapat digunakan untuk mengetahui sisa kapasitas dari disk
yang belum digunakan pada suatu disk drive dengan sintak:
DiskFree(Drive: byte) : longint;

3. Kegiatan Paraktikum
(a). Buatlah program untuk menampilkan hari dan tanggal saat ini
(b). Buatlah program untuk menampilkan waktu saat ini

4. Tugas
Buat program untuk menampilkan nama hari untuk tanggal yang ditanyakan

35

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 15
MEMBUAT UNIT
1. Tujuan
Praktikan dapat membuat program dengan menggunakan unit buatan sendiri
untuk menggabungkan bebarapa program terpisah

2. Materi Praktikum
Struktur Suatu unit
Sebelum mencoba membuat sendiri suatu unit, akan diperkenalkan terlebih
dahulu bagaimana struktur suatu unit tersebut. Struktur suatu unit berbeda dengan
struktur suatu program biasa yang mempunyai beberapa perbedaan yang cukup
signifikan.
Unit <identifier berupa judul unit>
Interface
{ deklarasi secara publik, bersifat global }
Implementation
{ deklarasi secara pribadi, bersifat lokal }
{ prosedur-prosedur dan fungsi-fungsi }
Begin
{ kode-kode initialisasi }
End.

Judul Unit
Judul unit (unit header) diawali dengan kata cadangan Unitdiikuti oleh nama
unit (berupa suatu indentifier) seperti nama dari program biasa.
Contoh :
Unit Pangkat;
Bagian Penghubung
Bagian penghubung (interface section) diawali dengan kata cadangan
Interface yang diletakkan setelah judul unit dan diakhiri dengan kata cadangan
Implementation.Bagian penghubung ini digunakan untuk mendeklarasikan sesuatu
yang bersifat global yaitu yang dapat digunakan oleh program lain atau unit yang
lain. Hal yang dapat digunakan oleh bagian di Iuar unit ini disebut dengan public.
Bilamana nanti Anda menggunakan suatu unit di dalam program Anda, maka
semua konstanta, tipe data, variabel, prosedur dan fungsi yang dideklarasikan di
bagian penghubung ini akan menjadi tersedia dan dapat digunakan oleh program
Anda. Tentunya Anda masih ingat dengan konstanta-konstanta terdefmisi,
variabel- variabel terdefinisi clan tipe-tipe data terdefmisi yang disediakan oleh
unit-unit standar dan ini semua di deklarasikan di bagian penghubung di masingmasing unit standar bersangkutan, sehingga program Anda dapat
menggunalcannya. Semua konstanta, tipe data, variabel, prosedur dan fungsi yang
dideklarasikan di bagian penghubung ini dapat dideklarasikan seperti biasa kalau
Anda mendeklarasikannya di dalam program.
Contoh :
Unit Contoh;
Interface
Type

36

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

WarnaSet = (Merah, Hijau, Biru); Desimal = 0..9;


Const
Nama = 'Dian Sastro';
Var
NamaPerusahaan : String[25];
Function Mutlak(Nilai : Real) : Real;
Implementation
Function Mutlak;
Begin
If Nilai >= 0 Then Mutlak
Mutlak := -Nilai;
end;
End.

Nilai Else

Unit yang telah dibuat ini harus dikompilasi terlebih dahulu dan sebelum dapat
dipergunakan oleh program yang lain. Kalau Anda ingin mencoba unit ini,
simpanlah program unit ini dengan nama filenya CONTOH.PAS dan
kompilasilah. Untuk sementara, nama program unit ini buatlah dengan nama yang
lama dengan judul unitnya. Untuk nama program unit yang berbeda dengan judul
unitnya. Dengan deklarasi di unit tersebut, pada program Anda yang
menggunakan unit ini dapat berbentuk:
Contoh :
Program MenggunakanUnit;
Uses Contoh;
Var
Nilai : Real;
I
: Desimal;
Warna : WarnaSet;
Begin
Nilai := -5;
NamaPerusahaan :='P.T Tenang Saja';
WriteLn(Nama);
WriteLn('Nilai mutlak ',Nilai:5:2,' =',Mutlak(Niiai):5:2);
WriteLn;
For I:= 1 to 2 Do
For Warna := Merah To Biru Do
WriteLn(NamaPerusahaan);
End.

Bila program ini Anda jalankan, akan didapatkan hasil:


Dian Sastro
N l a i mutlak -5.00 = 5.00
P.T Tenang Saja
P.T Tenang Saja
P.T Tenang Saja
P.T Tenang Saja
P.T Tenang Saja
Pada program ini terlihat, bahwa:
1. Variabel I dideklarasikan dengan tipe data Desimal. Tipe data Desimal ini tidak
terlihat di program ini, tetapi telah dideklarasikan di unit Contoh.

37

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

2. Demikian juga dengan tipe data WarnaSet juga telah dideklarasikan di unit
Contoh, sehingga dapat dipergunakan di program ini.
3. Variabel NamaPerusahaan tidak dideklarasikan di program ini, tetapi dapat
dipergunakan karena telah dideklarasikan di unit Contch.
4. Konstanta Nama pada program tidak pernah dideklarasikan, tetapi mempunyai
nilai Dian Sastro', karena konstanta ini telah dideklarasikan di unit Contoh.
5. Fungsi Mutlak dapat langsung dipergunakan di dalam program untuk
memutlakkan suatu nilai real, karena juga telah dideklarasikan di unit Contoh.
Suatu unit dapat menggunakan unit yang lain dan dapat disebutkan pada bagian
penghubung ini.
Contoh :
Unit PanggilanLain;
Interface
Uses Contoh, Contoh1, Contoh2;

3. Kegiatan Praktikum
Buatlah suatu unit Faktorial yang berisi suatu fungsi untuk menghitung suatu
nilai N faktorial dan program untuk menggunakannya

4. Tugas
Buatlah suatu unit Pangkat yang berisi suatu fungsi untuk menghitung suatu
pangkat N dari X bilangan dan program untuk menggunakannya

38

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

PRAKTIKUM 16
MOUSE
1. Tujuan
Praktikan mampu membuat program untuk operasi mouse

2. Materi Praktikum
Menginstal Mouse
Supaya mouse dapat digunakan, maka program mouse driver harus
diinstall terlebih dahulu. Program mouse driver ini berada di diskette yang
diberikan bersama-sama dengan mouse yang Anda beli. Untuk Microsoft
mouse, nama dari program mouse driver ini adalah MSMOUSE.COM.
Untuk menginstall program ini dapat diketikkan namanya di prompt DOS
sebagai berikut:
A>asmouse
MSMOUSE V4.55 - Mouse installed on COM1:
A>
Memeriksa Status Mouse Sudah terinstal
Bila mouse belum diinstall, maka mouse belum dapat digunakan. Di
dalam program apakah mouse sudah diinstall atau belum dapat diketahui
dengan menggunakan interupsi nomor 33h fungsi O. Register yang harus
diisi untuk interupsi ini adalah register AH dengan nilai fungsinya, yaitu
nilai O. Register-register yang dihasilkan adalah register AX dan BX. Bila
mouse belum diinstall, maka register AX akan bernilai 0 dan bila mouse
sudah diinstall, register AX akan bernilai -1. Bila mouse sudah diinstall,
maka informasi mengenai jumlah dari tombol yang ada di mouse juga dapat
diketahui di register BX.
{ -------------------------Interrupt nomor $33 tungsi 0-----------------------}
{
Mendeteksi apakah mouse sudah diinstall atau belum
}
{ -------------------------------------------------------------------------------------------------}
(* Register diisi AX := 0; *)
(* Register hasil AX = 0
mouse belum diinstall *)
(*
AX = -1
mouse sudah diinstall
*)
(*
BX = jumlah dari tombol di mouse
*)

Uses Dos, Crt;


Var
Reg : Registers;
Begin
Reg.AX := 0;
Intr($33,Reg);
If Reg.AX = 0 Then
Writeln('Mouse belum diinstall !!!')
Else
WriteLn('Mouse sudah diinstall dengan ',Reg.AX,' tombol');
End.

Menampilkan Kursor dari Mouse

39

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA

Setelah mouse diinstall, kursor dari mouse pertarna kali akan berada di
posisi tengah-tengah layar dan dengan menggerakkan mouse di bidang datar
(misalnya di meja), maka kursor dari mouse ini juga akan bergerak-gerak. Akan
tetapi pertama kali setelah mouse diinstall,kursor dari mouse secara default
belum ditampilkan. Kursor dari mouse ini dapat ditampilkan dengan
menggunakan interupsi 33h fungsi 1 dengan mengisikan register AX dengan
nilai fungsinya.
Bentuk kursor dari mouse yang akan ditampilkan berbeda antara di mode
teks dengan di mode grafik. Di mode teks kursor dari mouse akan berbentuk
empat persegi panjang kecil seperti kursor keyboard biasa. Sedang di mode
grafik, kursor dari mouse akan berbentuk panah yang mengarah ke atas.
Menentukan Bentuk Kursor Mouse di Mode teks
Di mode teks, terdapat 2 macam bentuk dari kursor mouse yang dapat
digunakan, yaitu hardware cursor dan attribute cursor. Hardware cursor
merupakan kursor yang sama dengan kursor yang digunakan oleh keyboard.
Sedang attribute cursor merupakan kursor dari mouse yang berbeda dengan
kursor yang digunakan oleh keyboard. Kalau Anda menggunakan hardware
cursor, maka kursor yang digunakan oleh keyboard akan digunakan bersamasama dengan mouse. Sedang kalau digunakan attribute cursor, maka mouse akan
menggunakan kursor tersendiri. Pemilihan kursor yang akan digunakan ini
dapat ditentukan melalui interupsi 33h fungsi 10. Melalui interupsi 33h fungsi
10 ini juga dapat ditentukan bentuk dari kursornya dengan mengisikan
register-register sebagai berikut:
Register AX diisi dengan nomor fungsinya, yaitu nilai 10
Register BX diisi dengan:
nilai 1 untuk memilih hardware cursor
nilai 0 untuk memilih attribute cursor
Register CX diisi dengan:
garis awal untuk hardware cursor
screen mask untuk attribute cursor
Register DX diisi dengan:
garis akhir untuk hardware cursor
cursor mask untuk attribute cursor

3. Kegiatan Praktikum
-

Buatlah program untuk mengubah bentuk kursor mouse!


Buatlah program untuk mengatur besarnya gerakan kursor mouse hanya
pada area yang anda buat! Misalnya: gerakan mouse hanya terbatas pada
sebuah lingkaran yang anda buat.

4. Tugas
Tugas berupa final project berupa rangkuman praktikum 8-16. Jenis tugas akan
diiformasikan pada awal praktikum 8.

40

PANDUAN PRAKTIKUM PEMROGRAMAN 2 ILKOM UNDANA