BAB VII
BAHASA PEMROGRAMAN PASCAL
Terminal
Input / Output
Proses
Keputusan
Predefined Process
Konektor
Uses crt;
Const pi=3.14159; Bagian Deklarasi
Var jarijari, keliling, luas : real;
Begin
Clrscr;
Write('Masukkan jari-jari : ');
Readln(jarijari);
Keliling := 2*pi*jarijari;
Luas := pi*sqr(jarijari); Bagian Pernyataan
Writeln('Jari-jari =',jarijari:5:2);
Writeln('Keliling =',keliling:6:3);
Writeln('Luas =',luas:6:3);
Readln;
End.
Bentuk umum :
IF kondisi THEN
Statemen 1
ELSE
Statemen 2
dimana :
kondisi : ungkapan boolen yang menghasilkan nilai benar atau salah
statemen 1, statemen 2 : pernyataan-pernyataan tunggal/majemuk. Dalam
Pascal, pernyataan majemuk adalah kumpulan dari beberapa pernyataan yang
diawali dengan kata baku BEGIN dan diakhiri oleh kata baku END, yang
dianggap sebagai sebuah pernyataan tunggal.
Maksudnya : bila kondisi bernilai TRUE (benar) maka akan dikerjakan statemen 1
dan statemen 2 dilewati, sedangkan jika kondisi bernilai FALSE (salah) maka
akan dikerjakan statemen 2 dan statemen 1 dilewati.
Untuk pernyataan IF yang berkalang (ada pernyataan IF yang lain dalam
pernyataan IF), ELSE selalu berpasangan dengan dengan IF yang terletak sebelum
dan yang paling dekat dengan ELSE tersebut, serta terletak dalam blok pernyataan
yang sama.
Program PersamaanKuadrat;
uses crt;
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 59
- jika d < 0 :
Menghitung akar-akar persamaan kuadrat
Nilai a,b,c dimasukkan dengan jeda spasi
Masukkan nilai a,b,c:1 2 6
tidak ada akar real
Catatan :
1. Di dalam IF boleh ada IF (pernyataan IF yang berkalang)
2. Jika diinginkan kondisi = FALSE tidak mengerjakan apa-apa, maka ELSE
tidak perlu dituliskan.
3. Pernyataan ELSE tidak diakhri dengan ; (titik koma) begitu pula baris
pernyataan sebelum ELSE.
Bentuk umum :
CASE ungkapan OF
Label 1 : Statemen 1
Label 2 : Statemen 1
………..
………..
………..
Label n : Statemen n
END;
dimana :
ungkapan : dapat berupa sembarang ungkapan yang memberikan hasil
integer, char, boolean atau tipe terbilang (kecuali real).
Label : konstanta yang mempunyai tipe yang sama dengan ungkapan
Statemen : pernyataan yang mengikuti berupa rangkaian instruksi yang
harus dikerjakan jika nilai konstanta dalam label sama dengan
nilai variabel
Maksudnya jika ungkapan bernilai label 1, maka dikerjakan statemen1, jika
bernilai label 2 akan dikerjakan statemen 2 dan seterusnya.
Pernyataan CASE …. OF …. boleh diikuti ELSE. Perlu diketahui, ELSE
dalam pernyataan CASE …. OF …. Hanya bersifat pilihan, dalam artian boleh
disertakan boleh tidak. Jika ELSE disertakan, pernyataan yang mengikuti ELSE
akan dieksekusi hanya bila nilai dari syarat-pemilih tidak ada dalam semua label.
Contoh 1 :
Program nilai_ujian;
uses crt;
var nama : string[25];
nim : string[8];
nilai: integer;
begin
clrscr;
write('Masukkan nama mahasiswa : ');
readln(nama);
write('Masukkan nomor induk mahasiswa : ');
readln(nim);
write('Masukkan nilai ujian : ');
readln(nilai);
writeln;
case nilai div 10 of
10,9 : writeln('Nilai huruf = A');
8 : writeln('Nilai huruf = B');
7 : writeln('Nilai huruf = C');
6 : writeln('Nilai huruf = D');
5,4,3,2,1,0 : writeln('Nilai huruf = E');
end;
readln;
end.
Contoh 2 :
Program konversi;
uses crt;
var
menit, jam, kaki, meter, fahrenheit, celcius : real;
pilihan :char;
begin
clrscr;
writeln('Pilihan konversi:');
writeln('1) Menit ke jam');
writeln('2) Kaki ke meter');
writeln('3) Derajat Fahrenheit ke Celcius');
write('pilihan ? ');
readln(pilihan);
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 62
case pilihan of
'1' : begin
write('menit= ');
readln(menit);
jam:=menit/60;
writeln('nilai ini sama dengan ',jam:4:1,'
jam');
readln;
end;
'2' : begin
write('kaki= ');
readln(kaki);
meter:=0.3048*kaki;
writeln('nilai ini sama dengan ',meter:4:1,'
meter');
readln;
end;
'3' : begin
write('Derajat Fahrenheit = ');
readln(fahrenheit);
celcius:=5/9*(fahrenheit-32);
writeln('nilai ini sama dengan ',Celcius:4
:1,' Celcius');
readln;
end;
else writeln('Tidak melakukan konversi');
end;
end.
7.5. KalanG I : For … To … Do… dan For ... Downto ... Do…
Salah satu ciri bahasa pemrograman adalah adanya perintah-perintah yang
harus dikerjakan berulang- ulang. Pengulangan ini sering disebut dengan kalang.
Dalam bahasa Pascal ada beberapa perintah untuk membuat kalang, yaitu:
FOR … TO … DO… dan FOR … DOWNTO … DO…
Bentuk umum :
FOR pengubah:=ungkapan1 TO ungkapan2 DO
Statemen;
dan
FOR pengubah:=ungkapan1 DOWNTO ungkapan2 DO
Statemen;
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 63
dimana,
pengubah : suatu pengubah yang disebut pengubah kendali, dapat berupa
pengenal dari tipe integer, char, boolean atau tipe terbilang.
ungkapan1 : nilai awal pengubah
ungkapan2 : nilai akhir pengubah
Beberapa aturan yang harus dipenuhi :
- Pengubah, ungkapan1 dan ungkapan2 harus mempunyai tipe data yang sama
- Pada kalang TO ungkapan1<ungkapan2
- Pada kalang DOWNTO ungkapan1>ungkapan2
Program jumlahKuadrat;
Uses crt;
Var jumlah, jmlkuadrat,i,n : integer;
begin
clrscr;
Write('Banyak n bilangan yang akan diproses');
readln(n);
jumlah:=0;
jmlkuadrat:=0;
for i:=1 to n do
begin
jumlah:=jumlah+i;
jmlkuadrat:=jmlkuadrat + i*i;
writeln('Jumlah ',i:2,' bilangan pertama
= ',jumlah:5);
writeln('Jumlah Kuadrat ',i:2,' bilangan pertama
= ',jmlkuadrat:5);
end;
readln;
end.
Program tulisabjad;
Uses crt;
Var karakter : char;
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 64
begin
clrscr;
for karakter:= 'z' downto 'a' do
write(karakter:2);
readln;
end.
Contoh 3 :
Program berikut adalah program untuk menghitung deret eksponensial dan
membandingkan dengan fungsi pustaka EXP.
Deret eksponensial adalah :
∞
xn x2 x3 x4 xn
ex = ∑ = 1 + x + + + + ..... + + .......
n = 0 n! 2! 3! 4! n!
Program eksponensial;
uses crt;
var eksponen, x,suku : real;
n,i : integer;
begin
clrscr;
write('Masukkan banyaknya suku(n): ');
readln(n);
write('Masukan nilai x : ');
readln(x);
eksponen:=1.0;
suku:=1.0;
for i:=1 to n do
begin
suku:=suku*x/i;
eksponen:=eksponen+suku;
end;
writeln;
writeln('Nilai deret = ',eksponen:10:6);
writeln('Nilai fungsi = ',exp(x):10:6);
readln;
end.
Contoh 4 :
Bilangan Fibonacci memiliki rumusan : Fi = Fi-1 + F i-2
Suku ke-1 merupakan penjumlahan bilangan Fibonacci suku ke-(i-1) dan suku ke-
(i-2), dengan bilangan pada suku pertama dan suku kedua didefinisikan sama
dengan satu.
Program Fibonacci;
Uses crt;
Var i,n,f,f1,f2 : integer;
begin
clrscr;
writeln('Ingin mencetak bilangan Fibonacci');
write('sampai suku ke-');
readln(n);
writeln;
writeln('Suku ke- 1 = ',1);
writeln('Suku ke- 2 = ',1);
f1 :=1; f2:=1;
for i:=3 to n do
begin
f:=f1+f2;
writeln('Suku ke- ',i:2,' = ',F:3);
f2:=f1; f1:=f;
end;
readln;
end.
WHILE kondisi DO
Statemen
dimana,
kondisi : adalah ungkapan boolean yang digunakan sebagai syarat agar
statemen dikerjakan berulang kali
statemen : adalah pernyataan tunggal atau pernyataan majemuk yang akan
diproses ulang.
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 66
Program Jumlah_Deret;
Uses crt;
Var n, jumlah, pencacah : integer;
begin
clrscr;
Writeln('Menghitung jumlah 1 + 2 + 3 + ... + n');
write('n = ? ');
readln(n);
pencacah:=1;
jumlah:=0;
while pencacah <= n do
begin
jumlah:=jumlah+pencacah;
pencacah:=pencacah + 1;
end;
writeln;
writeln('Jumlah deret = ',jumlah:5);
readln;
end.
Selain membuat kalang dengan 3 cara di atas masih ada cara lain untuk membuat
kalang, yaitu dengan perintah REPEAT …. UNTIL yang bentuk umumnya adalah
sebagai berikut :
REPEAT
…………
Statemen
………….
UNTIL kondisi
dimana,
statemen : adalah pernyataan tunggal atau pernyataan majemuk yang akan
diproses ulang.
Kondisi : adalah ungkapan boolen sebagai syarat agar pernyataan diproses
ulang.
Catatan : Salah satu statemen diantara repeat dan until harus ada yang bisa
merubah nilai kondisi sehingga kalang bisa berhenti
Program Jumlah_Deret;
Uses crt;
Var n, jumlah, pencacah : integer;
begin
clrscr;
Writeln('Menghitung jumlah 1 + 2 + 3 + ... + n');
write('n = ? ');
readln(n);
pencacah:=0;
jumlah:=0;
repeat
begin
jumlah:=jumlah+pencacah;
pencacah:=pencacah + 1;
end;
until pencacah = n+1;
writeln;
writeln('Jumlah deret = ',jumlah);
readln;
end.
∞
xn x2 x3 x4 xn
ex = ∑ = 1 + x + + + + ..... + + .......
n = 0 n! 2! 3! 4! n!
Program eksponensial;
uses crt;
var eksponen, x,suku : real;
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 68
n,i : integer;
begin
clrscr;
write('Masukkan banyaknya suku(n): ');
readln(n);
write('Masukan nilai x : ');
readln(x);
eksponen:=1.0;
suku:=1.0;
i:=1;
while i <= n do
begin
suku:=suku*x/i;
eksponen:=eksponen+suku;
i:=i+1;
end;
writeln;
writeln('Nilai deret = ',eksponen:10:6);
writeln('Nilai fungsi = ',exp(x):10:6);
readln;
end.
Contoh 4 :
Program untuk menghitung mean dan standar deviasi dari sejumlah data
masukkan non negatif dan berhenti apabila masukkan data adalah -1.
Program Mean_StdDev;
Uses crt;
Const neg=-1;
Var bilangan, total1, total2, mean, std : real;
n : integer;
begin
clrscr;
total1:=0.0;
total2:=0.0;
n:=0;
writeln('Masukkan data non negatif, dan untuk
mengakhiri masukkan angka -1');
readln(bilangan);
repeat
n:=n+1;
total1:=total1+bilangan;
total2:=total2+bilangan*bilangan;
dimana,
pemberian nama procedure : mengikuti aturan perberian nama variabel
daftar parameter formal : bersifat option, boleh ada boleh tidak. Daftar ini
hanya untuk mengontrol komunikasi informasi ke
dan dari procedure tersebut.
Ada 2 tipe parameter formal, yaitu :
1. Parameter perubah, yang mengambil nilai dari parameter aktual dan jika
nilainya berubah, maka nilai parameter aktual juga berubah.
2. Parameter nilai, yang hanya mengambil nilai dari parameter aktual yang sesuai
tanpa mengubah nilainya, meskipun nilai parameter formal ini berubah.
Dalam procedure maupun program utamanya terdapat bagian deklarasi
varibel. Variabel yang dideklarasikan pada program utama disebut variabel global,
yaitu variabel yang dapat diakses pada semua bagian program. Sedangkan pada
procedure dideklarasikan variabel lokal, yaitu variabel yang hanya bisa diakses
oleh bagian program dimana variabel tersebut dideklarasikan.
Sebuah procedure bisa memanggil procedure lain yang telah didefinikan
sebelumnya, kemudian dipanggil pada program utama.
Bentuk umum pemanggilan procedure :
Nama_procedure (daftar parameter aktual);
dimana,
Nama procedure : harus sesuai dengan nama procedure yang digunakan
pada waktu dideklarasikan.
Daftar parameter aktual : berisi nama-nama parameter yang dioperasikan pada
procedure yang dipanggil.
Parameter-parameter aktual ini harus dideklarasikan pada program utama, tidak
boleh berupa konstanta atau ungkapan. Urutan posisi, caca parameter dan tipe data
setiap parameternya harus sesuai dengan parameter formal.
Fungsi mempunyai kegunaan yang hampir sama dengan procedure dengan
sedikit perbedaan, yaitu :
• Fungsi hanya memberikan satu hasil
• Nama fungsi, selain digunakan untuk memanggil fungsi tersebut, juga
dianggap sebagai satu peubah, sehingga dapat digunakan sebagai bagian dari
ungkapan.
• Jika fungsi digunakan, fungsi selalu akan menghitung satu nilai perubah
(dalam hal ini nilai fungsi)
• Dalam fungsi tidak ada istilah parameter perubah, semua parameter dianggap
sebagai parameter nilai.
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 71
dimana,
Function : kata cadangan Pascal yang memberikan tanda bahwa deklarasi
function dimulai.
Nama : nama fungsi
Daftar parameter formal : nama parameter yang akan dioperasikan di dalam
fungsi.
Tipe hasil : tipe data dari nilai fungsi
Contoh 1 :
Program Pangkat_Rekursif;
Uses crt;
Var a,z : real;
b : integer;
Procedure pangkat(x:real; n:integer; var y:real);
Var p:real;
Begin
if n=0 then y:=1
else
if n>0 then
begin
pangkat(x,n-1,y);
y:y*x);
end
else
begin
pangkat(x,n+1,y);
y:y/x;
end;
end;
begin
clrscr;
writel('Data A: '); readln(a); writeln;
writel('Data B: '); readln(b); writeln;
while(a<>0) or (b<>0) do
begin
writeln;
write(a:5:2,' pangkat',b:3'=');
pangkat(a,b,z);
write(z:5:2);
writeln;
writeln;
write('Data A: '); readln(a); writeln;
write('Data B: '); readln(b); writeln;
end;
write('Tekan <Enter>')
readln;
end.
Contoh 2 :
Program Jumlahan;
Uses crt;
Var jum, x : integer;
function jumlah(n:integer):integer;
Var i,s : integer;
begin
s:=0;
for i:=1 to n do
s:=s+i;
jumlah:=s;
end;
begin
clrscr;
writeln('Masukkan bilangan bulat 1 ...100');
readln(x);
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 73
jum:=jumlah(x);
writeln;
writeln('jumlah',x,'suku pertama deret hitung = '
,jum:6);
readln;
end.
Contoh 3 :
Program Pangkat_Rekursif2;
Uses crt;
Var a : real;
b : integer;
begin
clrscr;
write('Data A: '); readln(a); writeln;
write('Data B: '); readln(b); writeln;
while(a<>0) or (b<>0) do
begin
writeln;
write(a:5:2,' pangkat',b:3,'=');
write(pangkat(a,b):5:2);
writeln;
writeln;
write('Data A: '); readln(a); writeln;
write('Data B: '); readln(b); writeln;
end;
write('Tekan <Enter>');
readln;
end.
ARRAY[tipe-indeks-1,…..,tipe-indeks-n] OF tipe-komponen
Jumlah tipe- indeks dapat terdiri lebih dari satu. Jika terdapat lebih dari satu tipe-
indeks, maka tipe-indeks yang satu dengan lainnya dipisahkan dengan tanda
koma. Masing- masing tipe dari tipe-indeks dapat berbeda. Perlu diketahui, tipe
dari tipe- indeks dapat berupa sembarang tipe ordinalm kecuali integer. Jadi dapat
berupa tipe cahr, boolean atau tipe skalar buatan dan juga tipe subrange. Tipe-
indeks menyatakan tipe nilai dari indeks array. Tipe-komponen menyatakan tipe
dari elemen yang terdapat dalam array dan dapat berupa sembarang tipe. Contoh
deklarasi tipe array :
TYPE
Buahcatur = (Pion, Gajah, Benteng, PerdanaMenteri, Raja);
Warna=(Putih, Hitam);
Pilihan = ARRAY [warna,1..6] of BuahCatur
Pada contoh di atas, Pilihan mengandung dua tipe indeks, dengan tipe pertama
berupa skalar buatan dan tipe kedua berupa subrange.
Contoh yang lain :
TYPE
Operator = (plus, minus, kali, bagi);
Nilai = 1..0;
Tanda = ARRAY[operator] of integer;
ArrayKar = ARRAY [char] of integer;
VAR
Jumlahtanda : tanda;
Cacahkarakter : arraykar
Vektor : ARRAY[nilai] of String[15]
Contoh pendefinisian tipe array yang salah : (tipe- indeks berupa integer tidak
diperkenankan)
Menyatakan bahwa indeks-array dari variabel x dapat berupa 1,2,3,…,8 dan isi
array bertipe real. Sedangkan
TYPE
DaftarNilai = ARRAY[1..3] OF integer;
VAR
D : DaftarNilai;
D[1]:=320;
Writeln(D[1]);
X:=D[1];
Array Multidimensi
Yang termasuk dalam array multidimensi yaitu array yang memiliki lebih
dari satu dimensi. Ciri dari tipe array ini, yakni mempunyai tipe- indeks lebih dari
satu atau tipe-komponen berupa array yang lain. Contoh array dengan tipe-
komponen berbentuk array :
VAR X : Matriks2D ;
Baris 2 *
Baris 3
Untuk mengakses setiap elemen dari X diperlukan dua buah indeks array.
Indeks-array pertama untuk menunjuk baris, indeks-array kedua untuk
menentukan kolom. Secara umum dapat dituliskan sebagai berikut :
X[ i , j]
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 78
Yang menyatakan elemen pada baris idan kolom j. Pada diagram, elemen yang
ditandai dengan * memiliki identitas X[2,3].
Untuk array berdimensi tiga, identitas dari suatu elemen array ditentukan
oleh tiga buah indeks-array. Contoh berikut menunjukkan car membuat isi
keseluruhan elemen array X bernilai nol.
for i := 1 to 3 do
for j := 1 to 5 do
X [ i , j] := 0;
Proses membuat elemen array X sama dengan nol untuk perintah di atas dimulai
dari X[1,1] kemudian X[1,2], X[1,3], X[1,4], X[2,1], X[2,2], X[2,3], X[2,4],
X[3,1], X[3,2], X[3,3], X[3,4], X[4,1], X[4,2], X[4,3] dan terakhir X[4,4]
Contoh 1 :
Program deviasi_standar;
{ untuk menghitung nilai rata-rata, }
{ varians dan deviasi standart }
uses crt;
const maksdata = 25;
type arraydata = array[1..maksdata] of real;
var
i, n : integer;
data : arraydata;
jumlah, rerata, temp, varians, standev : real;
begin
clrscr;
write('Banyak Data : ');
readln(n);
writeln;
for i:= 1 to n do
begin
write('Data ke - ',i:2,' = ');
readln(data[i]);
end;
for i:=1 to n do
jumlah:=jumlah+data[i];
rerata:=jumlah/n;
{cetak hasil}
writeln;
writeln('Cacah data = ',n:10);
writeln('Jumlah data = ',jumlah:10:4);
writeln('Nilai rata-rata = ',rerata:10:4);
writeln('Varians = ',varians:10:7);
writeln('Deviasi standart = ',standev:10:7);
readln;
end.
Contoh 2 :
Program MengurutkanDataString;
{untuk mengurutkan data menurut abjad}
uses crt;
Type MaksString = string[30];
Var
i,j,n : integer;
temp : MaksString;
data : array[1..20] of MaksString;
begin
clrscr;
write('Jumlah Data : '); readln(n);
writeln; writeln('Data Semula : ');
writeln;
for i:=1 to n do
begin
write(i:2,'. ');
readln(data[i]);
end;
{proses pengurutan}
for i:=1 to n do
for j:=1 to n do
if data[i] < data[j] then
begin
temp:=data[i];
data[i]:=data[j];
data[j]:=temp;
end;
{cetak hasil}
writeln; writeln('Data setelah diurutkan : ');
writeln;
for i:=1 to n do
writeln(i:2,'. ',data[i]);
readln;
end.
Contoh 3 :
Program Baca_dan_Cetak_Matriks;
uses crt;
var
i,j, baris, kolom : integer;
x : array[1..10,1..10] of real;
begin
clrscr;
Contoh 4 :
Program Daftar_nama;
uses crt;
type array_nama = array[1..1000] of string[30];
array_alamat = array[1..100] of string[50];
var
i,j : integer;
nm : string[30];
nama : array_nama;
alamat : array_alamat;
begin
clrscr;
writeln('Tulis nama, jika selesai beri(.) pada
nama');
writeln;
j:=0;
write('Nama : ');
readln(nm);
while nm <> '.' do
begin
j:=j+1;
nama[j]:=nm;
write('Alamat : ');
readln(alamat[j]);
writeln;
write('Nama : ');
readln(nm);
end;
writeln(' DAFTAR NAMA ALAMAT ');
writeln('---------------------------------');
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 82
Contoh :
Bulan : string[9];
Tahun : 1900..2010;
END;
Data = RECORD
NomorMhas : integer;
Nama,
Fakultas : string[20];
END;
VAR
TanggalLahir : Penanggalan;
DataMahasiswa : ARRAY [1..20] of Data
DataMahasiswa[i].NomorMhs := DataMahasiswa[i-1].NomorMhs;
DataMahasiswa[i].Nama := DataMahasiswa[i-1].Nama;
DataMahasiswa[i].Fakultas := DataMahasiswa[i-1].Fakultas;
d) NamaMahasiswa := DataMahasiswa[2].Nama;
Artinya : isi Nama dari DataMahasiswa[2] disalinkan ke variabel bukan-
record NamaMahasiswa.
Contoh 1 :
Program Perkalian_Bilangan_Kompleks;
(**************************************)
(* contoh penggunaan record *)
(* untuk pengolahan bilangan kompleks *)
(**************************************)
Uses Crt;
Type
BilanganKompleks = RECORD
Re, Im : real;
END;
Var
Kompleks1, Kompleks2,
HasilKali : BilanganKompleks;
Begin
clrscr;
writeln('Bilangan Kompleks Pertama');
Write('Riil, Imajiner ? ');
Readln(Kompleks1.Re, Kompleks1.Im);
writeln;
writeln('Bilangan Kompleks Kedua');
Write('Riil, Imajiner ? ');
Readln(Kompleks2.Re, Kompleks2.Im);
writeln;
{cetak hasil}
writeln;
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 85
writeln(Hasilkali.Re:6:2, '+',HasilKali.Im:
6:2, ' i');
writeln('Bagian Riil = ',HasilKali.Re:6:2);
writeln('Bagian Imajiner = ',HasilKali.Im:6:2);
readln;
End.
Contoh 2 :
Program Rerata_Nilai;
(***************************************************)
(* program untuk membaca nomor, nama dan nilai tes *)
(* dari sejumlah siswa, dan untuk menghitung nilai *)
(* rata-ratanya serta menampilkan hasil pengolahan *)
(* ke layar penampil yang disusun berdasarkan *)
(* nilai rata-rata yang tertinggi *)
(***************************************************)
Uses crt;
const
JumlahTes = 5;
MaksSiswa = 20;
Type
RekamanSiswa = Record
Nomor : integer;
Nama : string[20];
nilai : array[1..jumlahtes] of real;
rerata: real;
End;
ArraySiswa = Array[1..MaksSiswa] of RekamanSiswa;
Var
jumlah : 1..MaksSiswa;
i,j : integer;
totalnilai : real;
siswa : ArraySiswa;
temporer : RekamanSiswa;
Begin
Clrscr;
{pemasukan data}
write('Jumlah data : ');
readln(jumlah);
writeln;
for i:=1 to jumlah do
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 86
begin
write('Nomor siswa : ');
Readln(siswa[i].nomor);
write('Nama siswa : ');
Readln(siswa[i].nama);
write('Nilai : ');
for j := 1 to JumlahTes do
begin
write(j:2,'. ');
read(siswa[i].nilai[j]);
end;
writeln; writeln;
end;
{mencetak hasil}
writeln;
writeln('=======================================');
writeln('Nomer Nama Nilai');
writeln('Siswa Siswa rata-rata');
writeln('=======================================');
for i:= 1 to jumlah do
writeln(siswa[i].nomor:5,siswa[i].nama:20,
siswa[i].rerata:11:1);
writeln('=======================================');
readln;
readln;
end.
Diktat Dasar Komputer dan Pemrograman T. Elektro FTI UAD
Bahasa Pemrograman Pascal 87
Contoh 3 :
Program Rekaman;
uses crt;
type krs = record
nama_mhs : string[20];
no_mhs : integer;
kodefak : string[5];
end;
var
datakrs : array[1..100] of krs;
i,jum_mhs,norek : integer;
jawab : char;
begin
clrscr;
writeln('Isi rekaman berikut : ! ');
write('Ada berapa cacah rekaman ? ');
readln(jum_mhs); writeln;
for i:=1 to jum_mhs do
begin
write('Nama Mahasiswa : ');
readln(datakrs[i].nama_mhs);
write('Nomor Mahasiswa : ');
readln(datakrs[i].no_mhs);
write('Kode Fakultas : ');
readln(datakrs[i].kodefak);
writeln;
end;
jawab:='y';
while(jawab='Y') or (jawab='y') do
begin
write('Menampilkan rekaman ke berapa : ');
readln(norek);
writeln;
writeln('Nama Mahasiswa :
',datakrs[norek].nama_mhs);
writeln('Nomor Mahasiswa :
',datakrs[norek].no_mhs);
writeln('Kode Fakultas :
',datakrs[norek].kodefak);
writeln;
write('Menampilkan lagi ? (Y/N)'); readln(jawab);
end;
end.