Pert.12 Record

Record atau lebih mudah kita sebut sebagai tempat penyimpanan.
Bentuk Umum :
type
namarecord=record
nama variabel;
end;

Buat Tampilan sebagai berikut :

Listing Program :
program pembuatan_record;
uses crt;
procedure garis;
begin
writeln(‘==============================================’);
end;

type
reckaryawan=record
jab,nip,nama:string;
gol:integer;
gapok,tunj:real;
end;

var pegawai:reckaryawan;
total:real;

begin
clrscr;
writeln(‘ LAPORAN PERHITUNGAN GAJI KARYAWAN’);
garis;
writeln;
write(‘Masukan NIP Karyawan : ‘);readln(pegawai.nip);
write(‘Masukan Nama Karyawan : ‘);readln(pegawai.nama);
write(‘Golongan[1/2/3] : ‘);readln(pegawai.gol);
garis;
case pegawai.gol of
1:
begin
pegawai.jab:=’Staf dan Tetap’;
pegawai.gapok:=900000;
end;
2:
begin
pegawai.jab:=’Staf dan Kontrak’;
pegawai.gapok:=700000;
end;
3:
begin
pegawai.jab:=’Kontrak’;
pegawai.gapok:=500000;
end;
end;

if pegawai.jab=’Staf dan Tetap’ then
pegawai.tunj:=25/100*pegawai.gapok
else
if pegawai.jab=’Staf dan Kontrak’ then
pegawai.tunj:=10/100*pegawai.gapok
else
pegawai.tunj:=0;
total:=(pegawai.gapok)+(pegawai.tunj);

writeln(‘Jabatan Karyawan : ‘,pegawai.jab);
writeln(‘Gaji Pokok : ‘,pegawai.gapok:8:0);
writeln(‘Tunjangan : ‘,pegawai.tunj:8:0);
garis;
writeln(‘Total Gaji Karyawan : ‘,total:8:0);
readln;
end.

Coba Dikembangkan lagi…..

Pert.Tipe Data Skalar & Set

Tipe data skalar = tipe data yang urutannya sudah pasti.
Set = Kumpulan dari objeck yang mempunyai urutan yang dianggap sebagai satu kesatuan, tiap objek disebut anggota (elemen of set).
Contoh tipe data skalar :
1. Mencetak hanya satu data yang sama

uses crt;
type
day=(senin,selasa,rabu,kamis,jumat,sabtu);
var
hari:day;
begin
clrscr;
for hari:=senin to kamis do
writeln(‘Siti’);
readln;
end.

2. Mencetak dengan data yang berbeda :

uses crt;
type
buah=array[1..4]of string;
const
makanan:buah=(‘apel’,’anggur’,’pisang’,’jeruk’);
var
no:byte;
begin
clrscr;
writeln(‘No. Nama Buah’);
for no:=1 to 4 do
writeln(no,’ ‘,makanan[no]);
readln;
end.

Contoh Set union : program union;
uses crt;
type
angka=set of 0..8;
var
a,b,c:angka;
i:byte;
begin
clrscr;
a:=[0,5,8,7];b:=[1,2,3,4,6];
c:=a+b;
write(‘Himpunan Angka : ‘);
for i:=0 to 8 do
if(i in c)then write(i);
readln;
end.

Tipe dari set ada : set union, set difference, set intersection.Selamat Mencoba…Kembangkan lagi…

Pert.11 (Rekursi)

Rekursi (recursion) adalah proses dari suatu sub program baik fungsi maupun prosedure yang memanggil dirinya sendiri.

Contoh :

Program Rekursi_pascal;
uses Crt;
procedure rekursi(A:integer);
begin

if A < 10 then
begin
write(‘Pascal’);
A:=A+1;
rekursi(A);
end;
end;

var
x:integer;
begin
clrscr;
x:=3; ———> nilai X dapat kita tentukan sendiri
rekursi(x);
readln;

end.

akan menghasilkan :
pasc01.jpg

Contoh faktorial menggunakan rekursi :

Program Faktorial_pascal;
function Faktorial(a:integer):longint;
begin
if (A=1)then
Faktorial:=1
else
Faktorial:=a*faktorial(a-1);
end;
var
x:integer;
begin
writeln(‘Faktorial sequence’);
write(‘Berapa Faktorial :’);readln(x);
writeln(x,’faktorial ‘,’=’,faktorial(x));
readln;
end.

Hasil Tampilan :
pasc02.jpg

Contoh untuk indefinite dalam pascal merupakan proses rekursi yang dilakukan tanpa berhenti atau rekursi yang tidak berujung.

Program rekursi_indefinite;
procedure rekursi;
begin
write(‘Pascal’);write;
rekursi;
end;
begin
rekursi;
readln;
end.

Tampilan hasil :
pasc03.jpg

Selamat Mencoba…..

Pert.10 (pascal Procedure dan array)

Buat Tampilan sebagai berikut setelah dijalankan, disini akan menggunakan pemanggilan procedure garis dan menggunakan array.

Tampilan Input Data :
pas01.jpg

Tampilan Output Data :
pas02.jpg

Listing Program :

uses crt;

procedure garis;
begin
writeln(‘————————————————-‘);
end;

var i,j : integer;
kode:array[1..5] of integer;
nama,jabatan:array[1..5] of string;
gapok,tunj:array[1..5] of real;

begin
clrscr;
writeln(‘ PENGGAJIAN PT. OGAH MAJU’);
garis;
writeln;
write(‘Masukan jumlah data karyawan : ‘);readln(j);

for i:=1 to j do
begin
writeln(‘Data ke-‘, i);
write(‘Masukan Nama Karyawan : ‘);readln(nama[i]);
write(‘Masukan Kode Jabatan [1/2/3] : ‘);readln(kode[i]);
garis;
case kode[i] of
1:
begin
jabatan[i]:=’Direktur’;
gapok[i]:=1000000;
end;
2:
begin
jabatan[i]:=’Manajer’;
gapok[i]:=800000;
end;
3:
begin
jabatan[i]:=’Staff’;
gapok[i]:=700000;
end;
end;
if jabatan[i] = ‘Direktur’ then
tunj[i]:=20/100*gapok[i]
else
tunj[i]:=10/100*gapok[i];
end;
clrscr;
writeln(‘Informasi Gaji Karyawan’);
for i:=1 to j do
begin
garis;
writeln(‘Nama Karyawan : ‘,nama[i]);
writeln(‘Jabatan : ‘,jabatan[i]);
writeln(‘Gaji Pokok : ‘,gapok[i]:8:0);
writeln(‘Tunjangan : ‘,tunj[i]:8:0);
garis;
end;
readln;
end.

Silakan Anda Modifikasi….