- Materi Pembelajaran (Kuliah)
PROSEDUR
Di dalam merancang sebuah pogram dengan sistem
prosedure kita dapat menjalan kan prosedure yang kita inginkan dengan cara
memanggil nama prosedur pada blok program utama. Cobakan program d bawah ini:
program prosedur_menu;
uses wincrt;
var p,l:byte;
ls,kll:real;
pil:byte;
procedure satu;
begin
writeln ('
luas persegi panjang');
writeln
('---------------------');
writeln;
write
('inputkan nilai panjang
:');readln(p);
write ('inputkan
nilai lebar :');readln(l);
ls:=p*l;
writeln
('luas persegi panjang adalah :',ls:0:0);
end;
procedure dua;
begin
writeln
('keliling persegi panjang');
writeln
('------------------------');
writeln;
write
('inputkan nilai panjang
:');readln(p);
write
('inputkan nilai lebar
:');readln(l);
kll:=(2*p)+(2*l);
writeln('keliling persegi panjang
:',kll:0:0);
end;
{program utama}
begin
writeln('Menu Utama');
writeln('Pilihan [1/2]');readln(pil);
case pil of
1:begin
satu
end;
2:begin
dua
end;
end;
end.
Apabila
program tersebut di jalankan maka hasilnya adalah:
Dari hasil di atas dapat di
simpulkan bahwa prosedure mencari luas persegi panjang akan di jalankan apabila
kita melakukan pilihan 1, dan apabila kita pilih 2 maka yang akan di jalankan
adalah keliling persegi panjang seperti di bawah ini
- Materi Pembelajaran (Kuliah)
Pada pertemuan sebelumnya kita sudah membahas cara
membuat proscedure di dalam program dan bagaimana cara memanggil procedure itu.
Dan pada pertemuan ini kita akan lanjutakn materi sebelumnya akan tetapi
procedure yang telah kita buat bias kita jalankan secara berulang-ulang selagi
kondisi terpenuhi. Bentuk umum dari procedure yang akian kita buat adalah
sebagi berikut:
Procedure nama_procedure1;
begin
Blok
statement
End;
Procedure nama_procedure2;
Begin
Blok
statement2
End;
Begin
Variable
copnstan
Cek
kondisi variable constan
Blok
program utama
Inputkan
variable constan
End
Untuk lebih jelas lihat conoth program di bawah ini:
program prosedur_menu;
uses wincrt;
var p,l:byte;
ls,kll:real;
pil:byte;
mad:char;
procedure satu;
begin
writeln (' luas persegi
panjang');
writeln
('---------------------');
writeln;
write ('inputkan nilai
panjang :');readln(p);
write ('inputkan nilai
lebar :');readln(l);
ls:=p*l;
writeln ('luas persegi
panjang adalah :',ls:0:0);
end;
procedure dua;
begin
writeln ('keliling persegi panjang');
writeln
('------------------------');
writeln;
write ('inputkan nilai
panjang :');readln(p);
write ('inputkan nilai
lebar :');readln(l);
kll:=(2*p)+(2*l);
writeln('keliling persegi
panjang :',kll:0:0);
end;
{program utama}
begin
writeln('Menu Utama');
mad:='y';
while (mad='y') or (mad='Y') do
begin
writeln('Pilihan [1/2]');readln(pil);
case pil of
1:begin
satu
end;
2:begin
dua
end;
end;
write('ulangi[y/t]
:');readln(mad);
end;
end.
Apabila
program tersebut di jalankan maka hasilnya adalah:
Dari hasil di atas dapat di
simpulkan bahwa setelah kita panggil salah satu procedure dan apabila kondisi
variable constan terpenuhi maka kita bisa memanggil procedure lagi
- Materi Pembelajaran (Kuliah)
TIPE DATA
RECORD (Rekaman)
Seperti
halnya array(larik), record juga punya elemen, di sini elemennya disebut
"Field". Tiap elemen bisa punya type data yang berbeda. Banyaknya
field dapat bervariasi atau bisa juga tetap.
Record yang punya field yang bervariasi disebut ‘Variant Record’.
Deklarasi type data Record dapat ditetapkan di bagian deklarasi Var atau Type
Syntax :
TYPE
nmPengenal = RECORD
Field1 :
type1;
Field2 :
type2;
:
fieldn :
typen;
END;
VAR
nmRec : nmPengenal ;
Keterangan :
nmPengenal : Nama Dari Record ;
Field1,
Field2, Fieldn : Nama dari Variabel/Field yang terdapat dalam Record
Type1,
Type2, Typen : Type Dari tiap-tiap Field
yang dideklarasikan
nmRec : Nama Dari Record yang di
deklarasikan
Contoh :
TYPE
Mahasiswa = RECORD
NIM : String[8] ;
Nama : String[20] ;
Alamat : String[30] ;
Sex : Char ;
Umur : Byte ;
END;
VAR
RecMhs : Mahasiswa
;
MEMBACA & MENULIS FIELD
Dapat dilaksanakan pada seluruh record atau sebagian record.
Syntax
: nmRec.Field1 ;
Tanda titik harus ditulis
Notasi ini disebut Penandaan field (‘field designator’).
Berbeda dengan statement pemberian (assigment), maka untuk membaca dan
menulis record selalu dilakukan menurut Field yang ada, tidak dilakukan secara
keseluruhan record.
Contoh : Membaca Readln(RecMhs.NIM );
Readln(RecMhs.Nama );
Menulis Writeln(RecMhs.NIM );
Writeln(RecMhs.Nama );
Untuk lebih jelas coba pratekan contoh program
di bawah ini:
Program DenganRecord;
uses wincrt;
TYPE
Mahasiswa = RECORD
NIM :
String[8] ;
Nama :
String[20] ;
Umur :
Byte ;
END;
Var
RecMhs
: Mahasiswa ;
Begin
Clrscr
;
{Bagian
Input Data}
Writeln('NIM
Anda :'); readln( RecMhs.NIM ) ;
Writeln('Nama :'); readln( RecMhs.Nama ) ;
Writeln('Umur :'); readln( RecMhs.Umur ) ;
{Bagian Menampilkan Data yang telah
diinputkan }
Writeln('NIM
Anda :' , RecMhs.NIM ) ;
Writeln('Nama :' , RecMhs.Nama ) ;
Writeln('Umur :' , RecMhs.Umur ) ;
Readln;
End.
STATEMENT WITH
Digunakan untuk mengurangi penulisan yang berulang-ulang untuk nama
recordnya. Maka dengan menggunakan statement WITH hanya cukup sekali saja
menyebutkan nama recordnya.
Syntax : WITH
nmRecord DO
Contoh:
Program RecordDenganWithDo;
Uses wincrt;
TYPE
Mahasiswa = RECORD
NIM :
String[8] ;
Nama :
String[20] ;
Umur :
Byte ;
END;
Var
RecMhs : Mahasiswa
;
Begin
Clrscr ;
With RecMhs Do
Begin
{Bagian Input
Data}
Writeln(‘NIM Anda :’); readln(NIM ) ;
Writeln(‘Nama :’); readln(Nama ) ;
Writeln(‘Umur :’); readln(Umur ) ;
{Bagian Menampilkan Data yang telah diinputkan }
Writeln(‘NIM Anda :’ , NIM ) ;
Writeln(‘Nama :’ , Nama ) ;
Writeln(‘Umur :’ , Umur ) ;
End;
Readln;
End.
Program Record_Array;
Uses wincrt;
Type
Barang = record
Kode : String[5] ;
Nama :
String[20] ;
Jumlah : Integer ;
Harsat : Longint ;
End;
Var
RecBrg :
Array [1..40] of Barang ;
Lagi : Char;
I, J : Integer;
Begin
I:=0 ;
J := 0 ;
{ Untuk Menginputkan Data Barang}
Repeat
Inc(I) ;
Write('Kode Barang :');
readln(RecBrg[I].Kode);
Write('Nama :'); readln(RecBrg[I].Nama);
Write('Jumlah :'); readln(RecBrg[I].Jumlah);
Write('Harga satuan :');
readln(RecBrg[I].Harsat);
Write('Ada lagi [Y/T] : '); readln(lagi);
Until (lagi<>'Y')
or (lagi<>'y' ) ; {
bisa ditulis Until
Upcase(lagi)='Y' }
{ Menampilkan Data Barang
}
Write('---------------------------------------------------------------------------');
Write('No. Kode Nama Jumlah Harga');
Write('---------------------------------------------------------------------------');
For J := 1 To I Do
Begin
Write( I ) ;
Write(RecBrg[J].Kode ) ;
Write(RecBrg[J].Nama ) ;
Write(RecBrg[J].Jumlah ) ;
Write(RecBrg[J].Harsat)
;
End;
Write('---------------------------------------------------------------------------');
Readln;
End.
Tidak ada komentar:
Posting Komentar