Anda di halaman 1dari 38

TUGAS PRAKTIKUM

ALGORITMA II

Yang dibimbing oleh Bapak Budi Santoso S.kom, M.Kom

Febi Abdul Fadillah


201943501649
X2G

INFORMATIKA
UNIVERSITAS INDRAPRASTA PGRI

2020
File Pascal

1. Program pada Halaman 3 - Array

Program HITUNG_RATA;
{Contoh penggunaan array dalam program}
uses crt;
var
i,k, n: integer;
Jumlah : longint;
RATA : real;
A : array [0..100] of integer;
begin
{input data}
clrscr;
while A[n] <> -9 do
begin
n := n+1;
Write ('Masukkan bilangannya : '); readln(A[n]);
end; {end of while}
n := n-1;
writeln ('Banyaknya bilangan : ', n);
{Mencetak elemen array}
write ('Elemen array-nya adalah : ');
for i := 1 to n do
write (A[i],',');writeln;
{Menghitung jumlah elemen array}
for i := 1 to n do Jumlah := Jumlah + A[i];
write('Jumlah akhir =', Jumlah);

{Menghitung rata-rata}
RATA := Jumlah/n;
writeln(' dan Rata-rata = ',RATA:2:2);
writeln(' --o SELESAI o--');
readln;
end.
Output :

2. Program pada Halaman 4 – Array Record

Program Array_Record;
Uses crt;
Type mahasiswa = record
Nama : string;
NPM : string;
Nilai : integer;
end;
Var Mhs : array [1..10] of mahasiswa;
Jumlah : byte;
I,J : integer;
Procedure Input;
Begin
Writeln (' DATA MAHASISWA');
Write (' Jumlah Data : ');
Readln (Jumlah);
Writeln;
For I := 1 to Jumlah do
begin
writeln (' Data ke- ', I);
write(' Nama : '); readln (Mhs[I].Nama);
write (' NPM : '); readln (Mhs[I].NPM);
write (' Nilai : '); readln (Mhs[I].Nilai);
writeln;
end;
end;

Procedure Judul;
Begin
Clrscr;
Gotoxy(13,1); writeln(' DATA MAHASISWA ');
Writeln(' ------------------------------ ');
gotoxy(3,3); write('No ');
gotoxy(7,3); write('Nama ');
gotoxy(27,3); write('NPM ');
gotoxy(45,3); writeln('Nilai ');
Writeln(' ------------------------------- ');
end;

Procedure Tampil;
Begin

for I := 1 to Jumlah
do

begin
gotoxy(3,4 + I); write(I);
gotoxy(7,4 + I); write(Mhs[I].Nama);
gotoxy(27,4 + I); write(Mhs[I].NPM);
gotoxy(45,4 + I); write(Mhs[I].Nilai);
end; readln;
writeln(' ------------------------------- ');
end;

{program utama }
Begin
Clrscr;
Input;
Judul;
Tampil;
Readln;
end.

Output:
3. Program pada Halaman 13 - Matriks
Program Perkalian_Matriks;
uses crt;
Type
Larik = array [1..25, 1..25] of real;
Var
I,J,K : byte;
M,N,L : byte;
A,B,C : larik;

Begin
Clrscr;
Write('Baris matriks pertama ? ');
readln(M);
Write('Baris matriks pertama/baris matriks kedua ? ');
readln(N);
Write('Kolom matriks kedua ? ');
readln(L);
Writeln;

{Masukkan data matriks pertama}


Writeln('Matriks yang pertama : ');
for I := 1 to M do
begin
for J := 1 to N do
begin
write('Nilai [',I,',',J,'] ? '); readln(A[I,J]);
end;
writeln;
end;

{Masukkan data matriks kedua}


Writeln('Matriks yang kedua : ');
for I := 1 to N do
begin
for J := 1 to L do
begin
write('Nilai [',I,',',J,'] ? ');
readln(B[I,J]);
end;
writeln;
end;
{Perkalian matriks}
for I := 1 to M do
begin
for J := 1 to N do
begin
C[I,J] := 0;
For k := 1 to L do
C[I,J] := C[I,J] + A[I,K]* B[K,J];
end;
end;

{Mencetak hasil perkalian}


Clrscr;
Writeln(' Hasil dari perkalian matriks : ');
Writeln;
for I := 1 to M do
begin
for J := 1 to L do
write(C[I,J]:9:2);
writeln;
Readln;
end;
end.

Output :
4. Program pada Halaman 21 - Searching

Program binary_search;
Uses crt;

Type Tipe_larik = word;


Larik = array [1..8] of tipe_larik;

Procedure caribiner ( x : larik; cari : tipe_larik; Bawah, atas : word;


Var urutketemu : word);
Var tengah : word;

begin
if bawah > atas then urutketemu := 0
else
begin
tengah := (bawah + atas) div 2 ;
if cari = x[tengah] then
urutketemu := tengah
else
if cari < x[tengah] then
caribiner(x, cari, bawah, tengah-1, urutketemu)
else
caribiner(x, cari, tengah+1, atas, urutketemu);
end;
end;

type nama = string[20];

const
npm : larik = (1234, 1235, 1236, 1237, 1238, 1239, 1240,
1241);
nama_mhs : array [1..8] of nama = ('Arief','Ani','Budi','Citra','Dewi','Erni','Fanny','Ghana');

var
cari : word;
ketemu : word;
lagi : char;

begin
lagi := 'Y';
while upcase(lagi) = 'Y' do
begin
clrscr;
write('NPM mahasiswa yang dicari : ');
readln(cari);

writeln;
caribiner(npm, cari, 1, 8, ketemu);
if ketemu = 0 then
writeln('NPM Mahasiswa ini tidak ada')
else
begin
writeln('NPM mahasiswa : ', npm[ketemu]);
writeln('Nama mahasiswa : ', nama_mhs[ketemu]);
end;

writeln;
write('Cari yang lain lagi (Y/T) ? '); readln(lagi);
end;
end.

Output:
5. Program pada Halaman 27 – Faktorial A

Program Faktorial_A;
uses crt;
Procedure faktorial(n: byte; var hasil: longint);
Begin
If N <= 1 then hasil := 1
Else Begin
Faktorial(N-1, hasil);
Hasil := N*hasil;
End; end;
Var N : byte; F : longint;
Begin
Write('Berapa Faktorial? '); readln(N);
Faktorial(N,F); Writeln('Faktorial = ',F); readln;
End.

Output:

6. Program pada Halaman 27 – Faktorial B

Program Faktorial_B;
uses crt;
Function faktorial (N: byte): longint;
Begin
if N <= 1 then faktorial := 1
else
faktorial := N*faktorial (N-1);
end;
var N : byte;
begin
write ('Berapa faktorial? '); readln (N);
writeln ('Faktorial = ', faktorial (N)); readln;
end.
Output:

7. Program pada Halaman 28 – Fibonacci A

Program Fibonacci_A;
uses crt;
function fibonacci (n:word): word;
begin
if n < 2 then fibonacci := n
else
fibonacci := fibonacci (n-2) + fibonacci (n-1);
end;
var n : word;
begin
write ('Suku ke berapa? '); readln(n);
writeln ('Nilai suku ke ',n,' adalah ',fibonacci (n));
readln;
end.

Output:
8. Program pada Halaman 28 – Fibonacci B

Program Fibonacci_B;
uses crt;
var
fibobawah, fiboatas : integer;
i,x : integer;
Function Fibonacci (n:word):word;
Begin
If n < 2 then Fibonacci := n;
Else begin
Fibobawah := 0;
Fiboatas := 1;
For i := 2 to n do
Begin
X := fibobawah; Fiboatas := fiboatas;
End; Fibonacci := fiboatas;
End; end;
Var n : word;
Begin
Write(‘Suku ke berapa? ’);readln(n);
Writeln(‘Nilai suku ke ‘,n,’ adalah ‘,Fibonacci(n));
readln;
End.

Output:
9. Program pada Halaman 28 – Hitung Rata 1

Program HITUNG_RATA_1;
uses crt;
var
k,n,bil: integer;
jumlah: longint;
Rata: real;
a : array [0..100] of integer;

procedure Inputdata(var a: array of integer;


var i: integer);
begin
while a[i] <> -9 do begin
i := i+1;
write ('Masukkan bilangannya : '); readln(a[i]);
end;
i:= i-1;
end;

procedure cetakarray(a:array of integer; n:integer);


var i: integer;
begin
for i:= 1 to n do write(A[i],',');
end;

procedure hitungjumlah (a:array of integer; x:integer;


var total: longint);
var i : integer;
begin
for i:= 1 to x do
total := total + a[i];
end;

begin
inputdata (a,n);
writeln ('Banyaknya bilangan : ',n);
write ('Elemen arraynya adalah : ');
cetakarray(a,n);
writeln;
hitungjumlah (a,n,jumlah);
writeln('Jumlah akhir = ',jumlah);
rata := jumlah/n;
writeln ('Rata-rata = ',rata:2:2);
writeln ('--SELESAI--');
readln;
end.

Output:

10.Program pada Halaman 30 - Hitung Rata 2

Program HITUNG_RATA2;
uses crt;
{contoh Penggunaan Procedure dan array}
var k, n : integer;
Jumlah : longint;
RATA : real;
A : array[0..100]of integer;

procedure InputData;
begin
while A[n] <> -9 do begin
n := n + 1;
write('Masukkan bilangannya : ') ; readln (A[n]);
end; {end of while}
n := n-1;
end; {end of procedure}

procedure CetakArray; var i : integer;


begin
for i := 1 to n do write (A[i],' , ');
end;

procedure HitungJumlah(var Total:longint);


var i : integer;
begin
for i := 1 to n do
Total := Total + A[i];
end; {end of procedure}
begin {Program Utama}
InputData; {Panggil prosedur InputData}
writeln ('Banyaknya bilangan : ' ,n);
write (' Elemen array-nya adalah : ' );
CetakArray; {Panggil prosedur CetakArray}
writeln;
HitungJumlah(Jumlah); {Panggil HitungJumlah}
write ('Jumlah akhir = ', Jumlah);
RATA := Jumlah/n;
writeln (' dan Rata-rata = ', rata:2:2);
writeln (' --o SELESAIi o--');
readln;
end.

Output:

11.Program pada Halaman 31 – Hitung Rata 3


Program HITUNG__RATA3 ;
uses crt;

{contoh Penggunaan Function dan array}


var k, n, Maksimum, Minimum : integer;
Jumlah : longint;
RATA : real;
A :array[0..100] of integer;

procedure InputData;
begin
while A[n] <> -9 do begin
n := n + 1;
write( 'Masukkan bilangannya : '); readln(A[n]);
end; {end of while}
n := n-1;
end; {end of procedure}

procedure CetakArray;
var i: integer;
begin
for i := 1 to n do write(A[i],' , ' );
end;

function Total (B:array of integer; x:integer):longint;


var i : integer;
temp : longint;
begin
temp := 0;
for i := 1 to X do temp := temp + B[i];
Total := temp;
end; {end of function}

function MIN(B:array of integer; x:integer):integer;


var i : integer;
temp : integer;
begin
temp := B[1];
for I := 2 to x do if temp > B[i] then temp := B[i];
MIN := temp;
end; {end of function}
function MAX(D:array of integer; n:integer):integer;
var i : integer;
temp : integer;
begin
temp := D[1] ;
for i:= 2 to N do if temp < D[i] then temp := D[i];
end; {end Of function}

begin { Program Utama }


InputData;
writeln ('Banyaknya bilangan : ',n);
write('Elemen array nya adalah : ' ); CetakArray; writeln;
Jumlah := Total (A,n); write('Jumlah akhir = ',Jumlah) ;
RATA := Jumlah/n; writeln(' dan Rata rata = ',RATA:2:2);
Minimum := Min(a,n); writeln('Elemen terkecil = ',minimum) ;
Maksimum := MAX(A,n); writeln('Elemen terbesar = ',Maksimum) ;
writeln('---o SELESAI o---');
readln;
end.

Output:
12.Program pada Halaman 34 – Pengurutan Bubble

Program Urut_BUBBLE;
uses crt;
var i,j,k,temp,n : integer;
A, B, C : array [1..100] of integer;

begin
clrscr; textcolor(12);
write('Banyaknya Elemen Array : ') ; readln(n); {Input Data}
for i := 1 to n do A[i]:=random(1000);

{Cetak Array Sebelum Pengurutan}


writeln; textcolor(10);
write('Sebelum diurutkan : ');
for i := 1 to n do write(A[i],' ');
writeln; textcolor(11);
writeln('Proses Pengurutan Bubble : ');
for i := 1 to n-1 do begin
for j := n downto i+1 do begin
if A[j-1] > A[j] then begin
temp := A[j-1];
A[j-1] := A[j];
A[j] := temp;
end;
end;

{Cetak Array tiap langkah pengurutan}


writeln; write('Hasil akhir langkah ke-',i,' : ');
for k := 1 to n do write(A[k],' ');
end;

{Cetak Array Setelah Pengurutan}


writeln; writeln;
textcolor(15); write('Hasil Pengurutan Bubble : ');
for i := 1 to n do write(A[i],' ');
readln;
end.

Output:
13.Program pada Halaman 37 - Pengurutan Gravitasi

Program Urut_GRAVITASI;
uses crt;
var i,j,k,temp,n : integer;
A, B, C : array [1..100] of integer;
begin
clrscr; textcolor(12);
write('Banyaknya Elemen Array : '); readln(n);

{Input Data}
for i := 1 to n do
begin
write('Elemen ke-' ,i,': '); readln(A[i]);
end;

{Cetak Array Sebelum Pengurutan}


writeln; textcolor(15); write('Sebelum diurutkan : ');
for i := 1 to n do
write(A[i],' ');
writeln; textcolor(15);
writeln; writeln('Proses Pengurutan Gravitasi : ');
for i := 1 to n-1 do begin
for j := 1 to n-i do begin
if A[j] > A[j+1] then begin
temp := A[j+1];
A[j+1] := A[j];
A[j] := temp;
end;
end;
writeln; textcolor(i);

{Cetak Array tiap Iangkah pengurutan :}


write('Hasil akhir langkah ke-',i,' : ');
for k := 1 to n do
write(A[k],' ');
end;

{Cetak Array Setelah Pengurutan}


writeln; writeln; textcolor(11);
write('Hasil Pengurutan Gravitasi : ');
for i := 1 to n do
write(A[i],' ');
writeln; writeln; textcolor(10);
write ('Sudah terurut dengan benar khan ..?');
readln;
end.

Output:

14.Program pada Halaman 40 - Pengurutan Selection


Program Urut_SELEKSI;
uses crt;
var i,j,k,temp,imaks,n : integer ;
A,B,C : array [1..100] of integer;

begin
clrscr; textcolor(8);
write('Banyaknya Elemen Array: '); readln(n);
{InputData}
for i := 1 to n do begin
write( 'Elemen ke-' ,i, ': '); readln(A[i]);
end;
{Cetak Array Sebelum Pengurutan}
writeln; textcolor(9); write('Sebelum diurutkan : ');
for i := 1 to n do write(A[i],' ');
writeln; writeln; textcolor(6);
writeln('Proses Pengurutan Seleksi : ');
for i := 1 to n-1 do begin
imaks := i;
for j := i+1 to n do
if A[j] < A[imaks] then imaks := j;

{Tukar A[j] dengan A[imaks]}


temp := A[imaks];
A[imaks] := A[i];
A[i] := temp;
writeln; textcolor(2);
{Cetak Array tiap langkah pengurutan : }
write ( 'Hasil akhir langkah ke-' , i ,' : ' );
for k := 1 to n do
write(A[k],' ');
end;
{Cetak Array Setelah Pengurutan}
textcolor(12);
writeln;
writeln('Hasil Pengurutan Seleksi : ');
for i := 1 to n do write (A[i], ' ');
readln;
end.

Output :
15.Program pada Halaman 43 - Pengurutan Insertion

Program INSERTION_SORT;
uses crt;
var i,j,k,temp,n : integer;
A,B,C : array [1..100] of integer;
begin
clrscr; textcolor(12);
write('Banyaknya Elemen Array : '); readln(n);

{Input Data}
for i := 1 to n do
begin
write('Elemen ke-' ,i,' : ') ; readln(A[i]);
end;

{Cetak Array Sebelum Pengurutan}


writeln; textcolor(15);
write('Sebelum diurutkan : ');
for i := 1 to n do
write(A[i],' ');
writeln; textcolor(15) ; writeln;
writeln ('Proses Pengurutan Insertion : ');
for i := 2 to n do begin
temp := A[i];
j := i-1;
while (temp < A[j]) and (j > 0) do
j := j - 1;
for k := i downto j+1 do
A[k]:= A[k-1];
A[j+1]:= temp;
writeln; textcolor(i);
write('Hasil akhir langkah ke-' ,i-1,' : ');

{Cetak Array tiap langkah pengurutan}


for k := 1 to n do
write(A[k],' ');
end;

{Cetak Array Setelah Pengurutan}


writeln; writeln; textcolor(15);
write('Hasil Pengurutan Insertion : ');
for i := 1 to n do
write(A[i],' ');
writeln; writeln; textcolor(10);
write (' Sudah terurut dengan benar khan ..? ');
readln;
end.

Output:

16.Program pada Halaman 46 – Pengurutan Insertion Swap


Program INSERTION_SWAP_SORT;
uses crt;
var i,j,k,temp,n : integer;
A,B,C : array [1..100] of integer;
begin
clrscr; textcolor(4);
Write(' Banyaknya Elemen Array : '); readln(n);

{Input Data}
for i := 1 to n do
begin write( 'Elemen ke -' ,i,' :' ) ; readln(A[i]);
end;

{Cetak Array Sebelum Pengurutan}


writeln; textcolor(15);
write(' Sebelum diurutkan : ' );
for i := 1 to n do write(A[i],' ' );
writeln; writeln; textcolor(3);
writeln('Proses Pengurutan Swap_Insertion: ');
for i := 1 to n-1 do
begin j := i + 1;
while (A[j] < A[j-1]) and (j > 1) do begin
temp := A[j-1];
A[j-1]:= A[j];
A[j]:= temp;
j := j-1;
end;
writeln; textcolor(i);
write(' Hasil akhir langkah ke-',i,' : ');
{Cetak Array tiap Ian gkah pengurutan}
for k := 1 to n do Write(A[k],' ');
end;
{Cetak Array Setelah Pengurutan}
writeln; writeln; textcolor(15);
write('Hasil Pengurutan Insertion : ');
for i := 1 to n do write(A[i],' ');
readln;
end.

Output:
17.Program pada Halaman 47 – Sorting Selection

Program sorting_bubble_selection;
uses crt;
Type larik = array [1..10] of byte;
objek = object
bykdata : byte;
dataawal : larik;

procedure input;
procedure tukar (var a,b : byte);
procedure bubble (data : larik);
procedure selection (data : larik);
procedure cetak (data : larik);
end;

procedure objek.input;
var I : byte;
begin
repeat
write( 'Banyak Data [max 110] ? ');
readln (bykdata);
if (bykdata > 10) then
begin
writeln ( 'Data yang dimasukkan kebanyakan ');
readkey; writeln;
end;
until (bykdata<= 10);
for i := 1 to bykdata do
begin
write( 'Data ke-' ,i,' = '); readln (dataawal[i]);
end;
end;

procedure objek.tukar (var a, b : byte);


var temp : byte;
begin
temp := a; a := b; b:= temp;
end;

procedure objek.bubble (data : larik);


var i,j : byte;
begin
clrscr;
writeln ('bubble sort ' );
write ( 'awal : ');
cetak (data);
for i := 1 to bykdata-1 do
begin
if (data [j] > data[j+1])then
tukar(data[j], data[j+1]);
gotoxy (6, wherey);
end; readkey;
write ( ' akhir : ');
cetak(data); readkey;
end;

procedure objek.selection (data : larik);


var i, j, lok : byte;
begin
clrscr;
writeln ('selection sort'); write ('awal');
cetak (data);
for i := 1 to bykdata do
begin
lok :=i;
for j := i+1 to bykdata do
if(data[lok] > data [j] ) then
lok := j; tukar (data [i], data[lok]);
write ( 'I = ',i,' lok = ' , lok);
cetak(data);
end;
end;

procedure objek.cetak (data : larik);


var i : byte;
begin
for i := 1 to bykdata do
begin
gotoxy (i*10, wherey);
write(data[i] : 5);
end; writeln;
end;
var sort : objek;
begin
clrscr;
sort.input;
sort.bubble (sort.dataawal);
sort.selection (sort.dataawal);
readln;
end.

Output:

18.Program pada Halaman 49 – Sorting Swap Insertion

Program Sorting_swap_insertion;
uses crt;
Type larik = array [1..10] of byte;
Objek = object
Bykdata : byte;
Dataawal : larik ;
procedure input;
procedure tukar (var a,b : byte);
procedure swap_insertion (data : larik);
procedure cetak (data : larik);
end;
procedure objek.input;
var i : byte;
begin
repeat
write('Banyak Data [max 110] ? ');
readln (bykdata); if (bykdata > 10) then
begin
writeln ( 'Data yang dimasukkan kebanyakan ');
readkey;
writeln;
end;
until (bykdata <= 10); for i := 1 to bykdata do
begin
write( ' Data ke-' ,i,'= ' ); readln (dataawal[i]);
end;
end;
procedure objek.tukar (var a, b : byte); var temp : byte;
begin
temp := a; a := b; b := temp;
end;
procedure objek.swap_insertion (data : larik);
var i, j, lok : byte;
begin
clrscr; writeln ( 'swap insertion sort ');
write ( 'awal' ); cetak (data);
for i := 1 to bykdata-i do begin
write( 'I = ',i,' '); j := i+1;
begin while (data[j] < data [j-1]) and (j > 1) do
begin tukar (data[j], data [j-1]); j := j-1;
{gotoxy (6, wherey);}
{write ( 'J = ',j); }
Cetak (data);
end;
end;
writeln ( ' akhir = ');
cetak (data);
readkey;
end;
end;
procedure objek.cetak (data : larik); var i : byte;
begin
for i := 1 to bykdata do
begin
gotoxy (i*10, wherey); write(data[i] : 5);
end;
writeln;
end;
var sort : objek;
begin
clrscr;
sort.input;
sort.swap_insertion(sort.dataawal); writeln; readln;
end.

Output:

19.Program pada Halaman 55 – Merging Array

PROGRAM MERGING_ARRAY;
uses crt;
var i,j,k,m,n,y,Temp : integer;
A,B,C : array[1..100] of integer;
Procedure Cetak_array(A:array of integer; x:integer);
var i : integer;
begin
write(' Hasilnya : ');
for i:= 0 to x-1 do write(A[i], ' ');
end;
procedure sisip(var A : array of integer; x:integer);
var i,j,temp : integer;
begin
for i := 1 to x-1 do
begin
temp := A[i]; j := i;
while (temp < A[j-1]) and (j > 0) do
j := j-1;
for k := i downto j do
A[k] := A[k-1];
A[j] := temp;
end;
end;
procedure Gabung(A,B : array of integer; m,n : integer;
var C : array of integer; var x : integer);
var i, j, k, y : integer;
begin
i := 0; j := 0; k := 0;
while (i <= m) and (j <= n) do
begin
if A[i] < B[j] then
begin
C[k]:= A[i];
i := i + 1;
end
else
begin
C[k] := B[j];
j := j + 1;
end;
k := k + 1;
write('i=',i,' j=',j,' k=',k,' ');
cetak_array(C,k-1);
writeln;
end;
if i > m then
begin
for y := k-1 to m+n do
begin
C[y] := B[j];
j := j + 1;
end;
end
else
if j > n then
begin
for y := k-1 to m+n do
begin
C[y] := A[i];
i := i + 1;
end;
end;
write('Setelah penggabungan : '); cetak_array(C,y);
x := y;
end;
begin
clrscr;
randomize;
writeln(' M E R G I N G');
write('Banyaknya elemen array pertama : ');
readln(m);
write('Banyaknya elemen array kedua : ');
readln(n);
for i := 1 to m do
A[i] := random(100);
for i := 1 to n do
B[i] := random(100);
writeln( 'Sebelum Penggabungan : ');
sisip(A,m);
write(' Array pertama : ');
cetak_array(A,m); writeln;
sisip(B,n);
write(' Array kedua : ');
cetak_array(B,n); writeln;
writeln('Proses Penggabungan : ');
Gabung(A,B,m,n,C,y);
writeln;
write('Setelah penggabungan : ');
cetak_array(C,y);
readln;
end.

Output:

20.Program pada Halaman 60 – Record A

Program Type_Data_Record;

Const pi=3.14;
Type Hasil = Record
JariJari : real;
Keliling : real;
Luas : real;
End;
Var Lingkaran : Hasil;
Begin
With Lingkaran Do
Begin
Write ('Jari-Jari lingkaran? '); readln (JariJari);
Keliling := 2*PI*JariJari;
Luas := PI * sqr(JariJari);
writeln;
Writeln ('Keliling Lingkaran = ', Keliling:7:2);
Writeln('Luas Lingkaran = ', Luas:7:2);
End;
readln;
End.

Output:

21.Program pada Halaman 60 – Record B

Program data_mhs;
Type
DataMhs : Record
NPM : Integer;
Nama : String[20];
IP : Real;
End;
Var
JumlahMhs, I, J : Byte;
Mahasiswa : Array [1..50] of DataMhs;
Temp : DataMhs;
Begin
{masukkan data mahasiswa}
Write ('Jumlah Mahasiswa ? ');
Readln(JumlahMhs);
For I := 1 to JumlahMhs Do
Begin
Writeln;
With Mahasiswa[I] Do
Begin
Writeln;
Write('NPM ke ', I:2,' ? ');
Readln (NPM);
Write ('Nama Mahasiswa ke ', I:2,' ? ');
Readln (Nama);
Write ('IP Mahasiswa ke ', I:2, ' ? ');
Readln (IP);
End;
End;
{Mengurutkan data berdasarkan NPM mahasiswa dengan Bubble Sort}
For I:= 1 to JumlahMhs-1 Do
For J:= 1 to JumlahMhs-I do
If Mahasiswa[J].NPM > Mahasiswa[J+1].NPM then
Begin
Temp := Mahasiswa[J];
Mahasiswa [J] := Mahasiswa [J+1];
Mahasiswa [J+1] := Temp;
End;
{menampilkan hasil}
Writeln;
Writeln('---------------------------------------------------------');
Writeln(' NPM Nama Mahasiswa IP ');
Writeln('---------------------------------------------------------');
For I := 1 to JumlahMhs Do
Begin
With Mahasiswa[I] Do
Writeln (NPM:5, Nama:20, IP:8:2);
End;
Writeln('---------------------------------------------------------');
readln;
End.
Output:

22.Program pada Halaman 61 – Record Data Mahasiswa

Program Hal61_datamhs;Type
TglLhr = Record
Hari : 1..31;
Bulan : 1..12;
Tahun : Word;
End;
Almt = Record
Jalan : String[35];
Kota : String [25];
End;
Mhs = Record
Nama: String[25];
Alamat : Almt;
TglLahir : TglLhr;
End;
Var
DataMhs : Mhs;
Begin {masukkan data Mahasiswa}
DataMhs.Nama := 'intan';
DataMhs.Alamat.Jalan := 'Muara 2';
DataMhs.Alamat.Kota := 'Jakarta';
DataMhs.TglLahir.Hari := 19;
DataMhs.TglLahir.Bulan := 11;
DataMhs.TglLahir.Tahun := 1997;
{menampilkan hasil}
With DataMhs Do
Begin
Writeln ('Nama Mahasiswa = ', Nama);
With Alamat Do
Begin
Writeln ('Alamat = ', Jalan);
Writeln (' ',Kota);
End;
With TglLahir Do
Begin
Writeln ('Tanggal Lahir = ',Hari:2, ' -', Bulan:2, ' -', Tahun:4); readln;
End;
End;

End.

Output :
23. Program pada Halaman 64 - Fileteks

Program FileTeks;
uses crt;
var
berkasteks : text;
kodebrg : string[5];
namabrg : string[20];
unitbrg : integer;
hargabrg : real;
lagi : char;
begin
assign (BerkasTeks, 'Barang.txt'); {hubungan dengan eksternal file}
rewrite(berkasteks);
lagi := 'y';
while upcase (lagi) = 'y' do
begin
clrscr;
gotoxy(5,6); write ('kode barang : ');
gotoxy(5,8); write ('nama barang : ');
gotoxy(5,10); write ('unit barang : ');
gotoxy(5,12); write ('harga satuan barang :');
gotoxy(27,6);readln(kodebrg);
gotoxy(27,8);readln(namabrg);
gotoxy(27,10);readln(unitbrg);
gotoxy(27,12);readln(hargabrg);

writeln(berkasteks,kodebrg:5,namabrg:20,unitbrg,hargabrg:10:2);
gotoxy(5,15);
write('ada data lagi (y/t)?');
readln(lagi);
end;
close(berkasteks);
readln;
end.
Output:

Tidak bisa menampilkan hasil perogram dari sintak di atas.

Anda mungkin juga menyukai