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…..

Iklan

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….

pert.10 (Procedure Pascal)

Dalam pascal kita mengenal yang namanya procedure, procedur yang dimaksud dalam pascal menurut Dwi Sanjaya dalam buku struktur data diplanet pascal, procedure berguna untuk mengumpulkan statment-statment yang dapat dijalankan menjadi satu dalam suatu block dan untuk menjalankannya kembali hanya dengan menuliskan nama procedure yang menampungnya. jadi kita ga perlu banyak buat listing hanya tinggal panggil nama procedurenya saja saat kita membutuhkannya.

Berikut contoh latihan1 program hitung_tanpa_parameter; ———-> parameter = nilai
var
p,q,x,y:byte;

procedure tambahkali;
begin
p:=x+y;
q:=x*y;
writeln(‘X+Y=’,p);
writeln(‘X*Y=’,q);
end;
begin
write(‘X=’);readln(x);
write(‘Y=’);readln(y);
tambahkali;
readln;
end.

Latihan 2 program hitung_dengan_parameter;
var
p,q,x,y:byte;

procedure tambahkali(a,b:byte);
begin
p:=a+b;
q:=a*b;
writeln(‘X+Y=’,p);
writeln(‘X*Y=’,q);
end;
begin
write(‘X=’);readln(x);
write(‘Y=’);readln(y);
tambahkali(x,y);
readln;
end.

Setelah kamu buat latihan diatas, coba kamu buat contoh latihan untuk menghitung luas segitiga dan keliling segitiga :

Tampilan Layar
Masukan Nilai Alas : (input)
Masukan Nilai Tinggi : (input)
———————-
Luas Segitiga adalah : (output)
Keliling segitiga adalah : (output)

Selamat Mencoba…….
Kunci Jawaban :
program hitung_segitiga;
var
l,k:real;a,t:byte;
procedure hitung(alas,tinggi:byte);
begin
l:=(alas*tinggi);
k:=1/2*(alas*tinggi);
writeln(‘Luas segitiga=’,l:4:0);
writeln(‘Keliling segitiga=’,k:4:0);
end;
begin
write(‘Nilai Alas=’);readln(a);
write(‘Nilai Tinggi=’);readln(t);
hitung(a,t);
readln;
end.

Oke …. Sekarang silakan buat lebih kreatif lagi..

Pert.9 pascal (Latihan Array)

Buat Tampilan Berikut Ini :
1. Tampilan Layar Utama

pas11.jpg

2. Tampilan Layar Laporan
pas21.jpg

Listing Program :

program array_nilai;
uses crt;
var
i,j,data:integer;
nama:array[1..20] of string;
tugas,quiz,uts,uas:array[1..20]of real;
rata:array[1..20]of real;
total:real;
begin
clrscr;
write(‘ Masukan jumlah data siswa :’);readln(data);
for i:=1 to data do
begin
writeln(‘ Data siswa ke-‘,i,’:’);
write(‘ Masukan nama siswa :’);readln(nama[i]);
write(‘ Nilai Tugas :’);readln(tugas[i]);
write(‘ Nilai Quiz :’);readln(quiz[i]);
write(‘ Nilai UTS :’);readln(uts[i]);
write(‘ Nilai UAS :’);readln(uas[i]);
end;
clrscr;
begin
writeln(‘ Daftar Nama dan Nilai siswa’);
writeln(‘ =========================================’);
writeln;
writeln(‘No. Nama Tugas Quiz UTS UAS Rata-rata ‘);
writeln(‘————————————————————————-‘);

for i:=1 to data do
begin
gotoxy(2,6+i);write(i);
gotoxy(5,6+i);write(nama[i]);
gotoxy(16,6+i);write(tugas[i]:3:2);
gotoxy(25,6+i);write(quiz[i]:3:2);
gotoxy(34,6+i);write(uts[i]:3:2);
gotoxy(42,6+i);write(uas[i]:3:2);
rata[i]:=(tugas[i]+quiz[i]+uts[i]+uas[i])/4;
gotoxy(49,6+i);write(rata[i]:3:2);
end;
gotoxy(3,8+i);
writeln;
writeln(‘——————————————————–‘);
total:=total[i]/data;
gotoxy(4,10+i);writeln(‘Total Rata-Rata Keseluruhan :’,total:2:2);
end;
readln;
end.

Selamat Mencoba….