Anda di halaman 1dari 17

Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

Modul Praktikum II

INPUT DATA

TUJUAN PRAKTIKUM
1. Mengenal Statemen dasar I/O dalam Pascal
2. Memahami tentang penulisan struktur program input-output dalam pascal.
3. Memahami fungsi-fungsi input dan output pada pascal.
4. Memahami fungsi-fungsi tambahan pada pascal

INPUT

Seperti Anda ketahui sebelumnya, hampir semua program komputer mengambil input dari user.
Jika Anda tidak tahu bagaimana untuk mengambil input maka Anda tidak akan menjadi seorang
programmer.

Pascal memiliki dua fungsi utama untuk mengambil input dari user :

a. Read

read (variabel);

Ini membaca semua karakter diketik, sampai pengguna menekan enter, memasukkan nilai
ke dalam variabel. Jika variabel bertipe integer, sedangkan type yang diberikan user string yang
kemudian kesalahan akan terjadi. Jika type variabel didefinisikan adalah string kemudian “read”
hanya akan mengambil X karakter pertama dari baris dan menempatkan mereka ke dalam string,
di mana X adalah ukuran string. Read tidak memindahkan kursor ke baris berikutnya setelah
masukan.

b. readln

Sintaks:

readln (variabel);

Modul Praktikum Algoritma dan Pemrograman 1


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

Penjelasan:

Ini persis sama dengan read kecuali syantaks ini mampu memindahkan kursor ke baris
berikutnya setelah pengguna menekan enter.

OUTPUT :

Perintah output dalam pascal sangat mirip dengan sintaks perintah masukan.

a. write

Sintaks:

write (variabel);

write (variabel: f)

write (variabel riil: f: d);

f = lebar field

d = jumlah tempat desimal

Penjelasan:

Perintah write menampilkan string karakter pada layar. Ketika lebar field disertakan, tulisan yang
benar write ('Hello': 10); akan menghasilkan output sebagai berikut ...

00000Hello

(0 = spasi)

Perhatikan bahwa 'Halo' yang benar-blok dalam bidang sepuluh karakter, ruang yang tersisa
datang sebelum 'Hello' ditambahkan dengan “0”.

Modul Praktikum Algoritma dan Pemrograman 2


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

Saat menulis bilangan real, Anda harus menentukan lebar lapangan dan jumlah tempat desimal
yang ditampilkan, jika pascal akan menulis ke layar dalam bentuk standar (ini tidak baik).
Sebuah lapangan lebar nol hanya akan menulis nyata seperti jika Anda tidak ditentukan lebar
lapangan.

Jika Anda ingin menulis kombinasi hal, memisahkan dengan koma. misalnya

write ('Halo', nama, ', berat badan Anda, berat badan: 00:02,'. kg ');

Di atas akan menulis sesuatu seperti ini ... Hello Joe Bob, berat badan Anda 76,54 kg.

Catatan: Perintah menulis tidak memindahkan kursor ke baris berikutnya setelah eksekusi.

b. writeln

Sintaks:

writeln (variabel);

writeln (variabel: f)

writeln (variabel riil: f: d);

f = lebar lapangan d = jumlah tempat desimal

Penjelasan:

Perintah writeln adalah persis sama dengan menulis perintah kecuali kenyataan bahwa itu
menggerakkan kursor ke baris berikutnya setelah eksekusi.

CATATAN: Semua perintah di atas juga digunakan saat membaca dan menulis ke file. Ini akan
dibahas kemudian.

Contoh Program;

{Ini adalah contoh program untuk input dan output}

Modul Praktikum Algoritma dan Pemrograman 3


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

uses CRT;

var Nama: string [30];

begin

clrscr; {Ini membersihkan layar}

write ('Siapa nama Anda?'); {Menulis pertanyaan tanpa moveing


kursor ke baris berikutnya}

readln (nama); {mengambil input dari user}

writeln ('Hello', nama); {output Hello joebob}

sementara tidak keypressed lakukan, {menunggu kunci untuk


ditekan}

end.

c. Dilatasi

Fungsi : Mengalikan dua buah angka yang dimasukan dengan angka tertentu.

uses crt;

var absis,ordinat,pengali:integer;

procedure dilat(a,b,peng:integer);

var c,d:integer;

begin

c:=a*peng;

d:=b*peng;

writeln('(',c,',',d,')');

end;

Modul Praktikum Algoritma dan Pemrograman 4


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

begin

writeln('Kordinat Awal');

write('Absis : ');readln(absis);

write('Ordinat : ');readln(ordinat);

writeln;

write('masukan faktor pengali ');readln(pengali);

write('Kordinat (',absis,',',ordinat,') setelah didilatasikan


terhadap faktor ',pengali,' menjadi ');

dilat(absis,ordinat,pengali);

readln;

end.

Mencari Penyelesaian Fungsi Kuadrat

Fungsi : Mengitung nilai persamaan kuadrat bila nilai x diketahui

Hint: Masukan nilai a,b,c dan nilai x.

uses crt;

var x,y,z,s:integer;

function fungsi(a,b,c,x:integer):integer;

begin

fungsi:=a*(x*x)-b*x+c;

end;

begin

write('masukan a : ');readln(x);

write('masukan b : ');readln(y);

Modul Praktikum Algoritma dan Pemrograman 5


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

write('masukan c : ');readln(z);

write('masukan x : ');readln(s);

writeln('f(x)=',x,'(x^',x,'2)-',y,'x+',z);

writeln('f(',s,') =',fungsi(x,y,z,s));

readln;

end.

Menghitung Waktu Gerhana

Fungsi : Menghitung tanggal gerhana pada bulan tertentu dengan rumus yang sudah ada.

Hint: Sebenarnya intinya hanya membuat prosedur yang menampilkan jumlah hari dalam bulan
tertentu..waktu gerhana ini sebagai tambahan saja.

uses crt;

var b,ha,ger:integer;

bul:string;

procedure maks(s:integer);

var y,k:integer;

begin

case s of

1,3,5,7,8,10,12:ha:=31;

4,6,9,11:ha:=30;

2:begin

write('masukan tahun ');readln(y);

Modul Praktikum Algoritma dan Pemrograman 6


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

k:=y mod 4;

if k=0 then

ha:=28

else ha:=29;

end;

else writeln('Bulan salah!!!');readln;exit;

end;

end;

procedure hitung(bee:integer);

begin

ger:=bee-(2*b);

end;

begin

write('masukan bulan ke- :');readln(b);

maks(b);

hitung(ha);

write('Gerhana bulan ');

case b of

1 : WRITE('Januari');

2:WRITE('Februari');

3:WRITE('Maret');

4:WRITE('April');

5:WRITE('Mei');

6:WRITE('Juni');

7:write('Juli');
Modul Praktikum Algoritma dan Pemrograman 7
Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

8:WRITE('Agustus');

9:write('September');

10:write('Oktober');

11:WRITE('November');

12:WRITE('Desember');

end;

writeln(' terjadi pada hari ke-',ger);

readln;

end.

Penjumlah Pecahan

Fungsi : Menjumlahkan 2 buah pecahan.

Hint: Tinggal masukan saja penyebut dan pembilang.

uses crt;

var pemi,pemII,penyi,penyII:integer;

j,k:integer;

function pemb(a,c:integer):integer;

begin

j:=penyii;

k:=penyi;

pemb:=a*j+k*c;

end;

function peny(b,d:integer):integer;
Modul Praktikum Algoritma dan Pemrograman 8
Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

begin

peny:=b*d;

end;

begin

writeln('Pecahan 1 ');

write('Pembilang i :');readln(pemi);

write('Penyebut i :');readln(penyI);

writeln;

write('Pecahan 2 ');

write('Pembilang ii :');readln(pemII);

write('Penyebut II: ');readln(penyII);

writeln;

writeln('maka hasil dari pertambahan


',pemi,'/',penyI,'+',pemii,'/',penyII,' adalah
',pemb(pemi,pemii),'/',peny(penyi,penyii));

readln;

end.

Record

Sebuah record merupakan koleksi satuan data yang heterogen, yakni terdiri dari berbagai

type. Satuan data tersebut sering disebut sebagai field dari record. Field dipanggil

dengan menggunakan namanya masing-masing. Suatu field dapat terdiri atas beberapa subfield.

Sebuah record disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan

tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang

berbeda-beda tipenya (di banding array). Contoh , sebuah record dengan empat buah field.
Modul Praktikum Algoritma dan Pemrograman 9
Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

Deklarasi record
Type
Variable = record
…field = type data
…field = type data
…field = type data

End.

STATEMENT “WITH”

Selain cara yang telah disebutkan diatas, untuk memproses suatu record dapat

digunakan statement WITH. Dengan statement ini penulisannya akan lebih sederhana. Bentuk

Umum penulisan statement WITH ini adalah :

WITH nama_record DO statement


Perhatikan deklarasi dibawah ini :

TYPE x = RECORD

No : integer;

Kode : char;

Juml : integer;

Harga : real;

END;

VAR p,q : x;

Untuk membaca variabel p dan q di atas dengan memanfaatkan statement WITH bentuknya menjadi :

WITH p,q DO read (no, kode, juml, harga);

Bandingkan jika digunakan cara sebelumnya :


Read(p.no, p.kode, p.juml,p.harga,q.no,q.kode,q.juml,q.harga);

Pernyataan seperti :
Data.npm :=‘22297566’
Modul Praktikum Algoritma dan Pemrograman 10
Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

Data.Nama:=‘Abdul Kadir’

Data.Fakultas:=‘Teknik’

Dapat diganti dengan :


WITH Data Do
Begin
npm :=‘22297566’
Nama:=‘Abdul Kadir’
Fakultas:=‘Teknik’
end;

Contoh program record sederhana:

Type
Hasil = record
Jari-jari = real;
Keliling = real;
Luas = real;
End.
Var
Lingkaran = hasil;
Begin
Write (jari-jari lingkaran?); real readln (lingkaran.jari-jari);
Lingkaran.keliling :=2 * Pi * lingkaran.jari-jari;
Lingkaran.luas := Pi * sqr (lingkaran jari-jari);
Writeln;
Writeln (‘keliling lingkaran =’, lingkaran.keliling:7:2);
Writeln (‘luas lingkaran =’, lingkaran luas :7:2);
End.

program record;
uses crt;
type
TSiswa = record
nim : string[8];
Modul Praktikum Algoritma dan Pemrograman 11
Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

nama : string[25];
agama : string[10];
ktp : string[25];
end;
var
s : TSiswa;
umur,ts,tl : integer;
begin
clrscr;
write (’Masukkan tahun sekarang: ‘); readln (ts);
writeln (’Isikan data anda dalam Form ini’);
write (’NIM : ‘); readln (s.nim);
write (’NAMA : ‘); readln (s.nama);
write (’TAHUN LAHIR : ‘); readln (tl);
umur := (ts-tl);
write (’AGAMA : ‘);readln (s.agama);
write (’NO.KTP : ‘); readln (s.ktp);
writeln;
writeln (’Berikut ini informasi yang anda berikan: ‘);
writeln (’NIM : ‘, s.nim);
writeln (’NAMA : ‘, s.nama);
writeln (’Umur : ‘,umur);
writeln (’AGAMA : ‘, s.agama);
writeln (’NO.KTP : ‘, s.ktp);
READLN;
end.

Statemen-statemen untuk perhitungan aritmatik

a. ABS(fungsi)
Memberikan nilai mutlak dari suatu argumen.
Sintaks: ABS(x);

b. ARCTAN(fungsi)
Memberikan nilai dari fungsi arctangent dari perhitungan goniometri.
Sintaks: ARCTAN(x);
Dimana x dapat bertipe real atau integer dan akan menghasil kan nilai bertipe real.

Modul Praktikum Algoritma dan Pemrograman 12


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

c. COS(fungsi)
Memberikan nilai dari fungsi Cosinus.
Sintaks: COS(x);

d. EXP(fungsi)
Menghitung nilai pangkat dari bilangan e (bilangan alam),
yaitu sebesar x.
Sintaks: EXP(x);
x dapat bertipe real atau integer dan akan menghasilkan nilai bertipe real.

e. FRAC(fungsi)
Untuk mendapatkan nilai pecahan dari suatu bilangan.
Sintaks: FRAC(x);
Tipe dari x sama seperti yang diatas.

f. INT(fungsi)
Memberikan nilai integer (bilangan bulat) dari suatu variabel dengan membuang bilangan
di belakang koma.
Sintaks: INT(X);

g. LN(fungsi)
Digunakan untuk menghitung nilai logaritma alam (natural logarithm) dari nilai x.
Sintaks: LN(x);
h. SIN(fungsi)
Memberikan nilai dari fungsi Sinus.
Sintaks: SIN(x);

i. SQR(fungsi)
Digunakan untuk menghitung nilai pangkat kuadrat dari suatu bilangan.
Sintaks: SQR(x);
Tipe dari x bisa berupa real maupun integer. Dan hasilnya akan sama dengan tipe
dari x.

j. SQRT(fungsi)
Digunakan untuk menghitung nilai akar dari suatu bilangan.

Sintaks: SQRT(x);
Contoh :
PROGRAM Aritmatik; USES
CRT;
VAR x : REAL;
BEGIN
CLRSCR;
WRITE('masukkan nilai dari X = ');
READLN(x);
IF x<0 THEN x:=ABS(x);

Modul Praktikum Algoritma dan Pemrograman 13


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

WRITELN('Nilai X = ',x:5:2);
WRITELN('Nilai eksponentialnya =
',EXP(x):9:3); WRITELN('Nilai logaritma
alamnya = ',LN(x):9:3); WRITELN('Nilai
integernya = ',INT(x):5:2); WRITELN('Nilai
fraksionalnya = ',FRAC(x):5:2);
WRITELN('Nilai X dipangkatkan =
',SQRT(x):9:3); WRITELN('Nilai X diakarkan =
',SQRT(x):9:3); WRITE('Nilai X jika
dimasukkan dalam '); WRITELN('fungsi
SIN,COS,TANGEN : '); WRITELN('- Sinus =
',SIN(x):9:3);
WRITELN('- Cosinus = ',COS(x):9:3);
WRITELN('- Tangen = ',ARCTAN(x):9:3);
END.
Hasilnya :
masukkan nilai dari X = -2.5
Nilai X = 2.50
Nilai eksponensialnya = 12,182
Nilai logarima alamnya = 0,196
Nilai integernya = 2.00
Nilai fraksionalnya = 0.50
Nilai X dipangkatkan = 6.250
Nilai X diakarkan = 1.581

Nilai X jika dimasukkan dalam fungsi SIN,COS,TANGEN :


- Sinus = 0.598
- Cosinus = -0.801
- Tangen = 1.190

Statemen-statemen untuk transfer nilai dari suatu variable

a. CHR(fungsi)
Merubah nilai dari byte ke bentuk karakter yang sesuai dengan kode ASCII.
Sintaks: CHR(x); Keterangan :
x bertipe byte

contoh : WRITELN(CHR(61);
hasilnya : a

b. ORD(fungsi)
Merubah nilai suatu variabel dari bentuk karakter ke bentuk longint.
Sintaks: ORD(X);

Modul Praktikum Algoritma dan Pemrograman 14


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

Keterangan : x bertipe char


contoh : WRITELN(ORD('B');
hasilnya : 42

c. ROUND(fungsi)
Membulatkan data tipe real ke data tipe longint.
Sintaks: ROUND(X);
Keterangan : Jika nilai pecahan < 0,5 maka dibulatkan kebawah.
Jika nilai pecahan > 0,5 maka dibulatkan keatas.
contoh : WRITELN('10/3 dibulatkan = ',ROUND(10/3));
hasilnya : 10/3 dibulatkan = 3

d. TRUNC(fungsi)
Membulatkan kebawah data tipe real ke data tipe longint.
Sintaks: TRUNC(X);
contoh :
WRITELN('20/3 dibulatkan kebawah = ',TRUNC(20/3));
hasilnya : 20/3 dibulatkan kebawah = 6

Statemen-statemen untuk memanipulasi data

a. PRED(fungsi)
Memberikan nilai sebelum nilai argumen dalam urutannya dalam ASCII.
Sintaks: PRED(x);

b. SUCC(fungsi)
Memberikan nilai sesudah nilai argumen dalam urutannya dalam ASCII.
Sintaks: SUCC(x);

c. INC(fungsi)
Menambah (increments) nilai suatu variabel.
Sintaks: INC(x,i); {i >= 1}

d. DEC(fungsi)
Mengurangi (decrements) nilai suatu variabel.
Sintaks: DEC(x,i); {i >=1}
Contoh :

PROGRAM Mani_data; USES CRT;


TYPE
hari = (hr0,hr1,hr2,hr3,hr4,hr5,hr6,hr7) VAR
urutanhr : hari; CONST
namahr : ARRAY[hr1..hr7] OF STRING[6]=

Modul Praktikum Algoritma dan Pemrograman 15


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

('Senin','Selasa','Rabu','Kamis',
'Jumat','Sabtu','Minggu');
BEGIN
WRITELN('DAFTAR NAMA HARI');
urutanhr := hr0;
WHILE Urutanhr < hr7 DO BEGIN
urutanhr := SUCC(urutanhr);
WRITE('hari ke ,ORD(Urutanhr):2,' adalah ');
WRITELN(namahr[urutanhr]);
END;
END.

Hasilnya adalah :
DAFTAR NAMA HARI hari ke 1 adalah Senin hari ke 2 adalah Selasa hari ke 3
adalah Rabu hari ke 4 adalah Kamis hari ke 5 adalah Jumat hari ke 6 adalah Sabtu
hari ke 7 adalah Minggu

Statemen-statemen tambahan (warna,suara dan window)


a. TEXTCOLOR(prosedur)
Untuk mengatur warna dari karakter-karakter di layar.
Sintaks: TEXTCOLOR(color : Byte);
Catatan : untuk pilihan warna lihat pada buku Turbo Pascal.

b. TEXTBACKGROUND(prosedur)
Untuk mengatur warna latar belakang dari karakter-karakter dilayar.
Sintaks: TEXTBACKGROUND(Color : Byte);

c. WINDOW(prosedur)
Untuk membuat suatu jendela (window) yang terletak pada layar.
Sintaks: WINDOW(x1,x2,y1,y2 : Byte);
x1,x2 = kordinat kiri atas dengan nilai maksimal sesuai dengan mode layar.

y1,y2 = kordinat kanan bawah dgn nilai maksimal sesuai dengan mode layar.

d. TEXTMODE(prosedur)
Untuk mengatur lebar layar, 80 kolom atau 40 kolom.
Sintaks: TEXTMODE(Mode: Byte);
Default = C80

e. SOUND(prosedur)
Untuk mengaktifkan suara(beep) pada internal speaker.
Sintaks: SOUND(Hz : word);
Untuk mengnonaktifkannya, gunakan statemen NOSOUND.

Contoh :

Modul Praktikum Algoritma dan Pemrograman 16


Institut Teknologi Padang @2013 – Fakultas Teknologi Industri

PROGRAM Layar2; USES CRT;


BEGIN
CLRSCR; WINDOW(5,5,20,75); TEXTBACKGROUND(RED);
TEXTCOLOR(YELLOW); SOUND(220);
GOTOXY(10,7);
WRITELN('Laboratorium Komputer'); GOTOXY(11,7);
WRITELN('Manejemen Informatika'); NOSOUND;
END.

Modul Praktikum Algoritma dan Pemrograman 17

Anda mungkin juga menyukai