Anda di halaman 1dari 121

MATA KULIAH

ALGORITMA

Laporan Akhir Mahasiswa


Kinerja Manajer Stimik Dci

ADRIANSYAH
32220084

PROGRAM STUDI TEKNIK INFORMATIKA


JURUSAN TEKNIK INFORMATIKA
STMIK DCI 2022
FILOSOFI MATAKULIAH

1. Algoritma mengajarkan seorang informatika untuk berfikir dan bekerja


untuk menyelesaikan masalah sesuai tahapan.
2. Algoritma mengajarkan seorang informatika agar dapat memimpin dengan
baik.
3. Algoritma
,bertanggung mengajarkan
jawab seorang
terhadap suatu informatika
masalah untuk
dan dapat menjadi
bekerja orang
dengan yang mandiri
semangat.
4. Algoritma mengajarkan seorang informatika untuk menyelesaikan
masalah
dalam keadaan tenang.
5. Algoritma mengjarkan nuntuk pribadi agar dapat mengimplementasikan
dasar
pemrograman dan dapat berpikir logis
6. Algoritma mengajarkan untuk bisa bekerja dan mengembangkan ide ide
baru.
MOTO – KESAN – SARAN
MOTO :
“The best thing about a algoritm is even if you are wrong, you are only off by
abit.”

KESAN :
1.Saya senang belajar algoritma karena algoritma mengajarkan dasar - dasar
pemograman untuk dapat memahami bagaimana suatu program itu dapat
dibangun mulai dari yang paling sederhana hingga yang paling rumit.
2.Selama belajar algoritma saya bisa belajar untuk berfikir logis dan slalu
menimbangkan permasalahan dan berfikir dengan tenang .
3. Cara belajar nya santai
4. Cara belajar yang sangat pahami dan santai untuk berfikir

SARAN :
1. Saya sebagai mahasiswa membutuhkan bimbingan
2. Kami selaku mahasiswa berharap bisa mengajari dengan sabar, karena saya masih
beradaftasi dengan algoritma. masalah, jadi sering-sering lah berlatih.
3. Dalam notasi algoritma model yang paling efisian digunakan adalah poseudocode.
4. Untuk pelajaran praktikum inin dilakukan secara offline biar mudah di pelajari dan
di pahami.
KATA PENGANTAR
PEMBUKA : Kami senantiasa memanjatkan puji dan syukur ke hadirat Allah SWT
yang telah mengajarkan kepada manusia dengan perantaraan pena. IlmuNya meliputi
apa yang ada di bumi dan yang ada di langit dan yang ada diantaranya. Sholawat dan
salam semoga terucurah kepada junjungan dan teladan alam Nabi Muhammad SAW.
Kami berharap kelembutan dan keberkahan ilmu Allah SWT dilimpahan kepada kami
sehingga memberikan manfaat dan memberikan petunjuk menuju jalan kebenaran
yang diridhoi. Dengan karuniaNya pula, kami mengembangkan model laporan atau
jawaban kinerja manager agar dapat memberikan manfaat sesuai dengan harapan dan
tujuan.
ISI : Sajian laporan dan jawaban merupakan resume eksekutif agar sistematis,
sederhana, dan mudah dipahami dan dipelajari. Selanjutnya dapat dikembangan ke
arah yang lebih baik.
PENUTUP : Akhir kata, laporan ini dapat memberikan karakter yang baik Kami
menyadari kinerja ini tentunya tidak sempurna dan ideal, banyak kekurangan sehingga
memerlukan kritik dan penyempurnaan yang berkesinambungan. Untuk itu, kami
sangat terbuka dengan segala saran dan kritik pada buku ini agar menjadi lebih baik di
masa mendatang menyesuaikan jamannya. Harapan kami semoga karya ini dapat
memberikan manfaat sesuai dengan maksud dan tujuannya.

10,January 2023

Penyusun
Adriansya
h
DAFTAR ISI

FILOSOFI MATAKULIAH ...........................................................................................2


MOTO – KESAN – SARAN ..........................................................................................3
KATA PENGANTAR ....................................................................................................4
DAFTAR ISI ..................................................................................................................5
BAB 1 PEMBAHASAN DAN JAWABAN SOAL-1 .....................................................9
1.1 PROBLEM............................................................................................................9
1 . 2 ALGORITMA.........................................................................................................10
SOURCE CODE...........................................................................................................11
BAB 2 PEMBAHASAN DAN JAWABAN SOAL-1 ...................................................14
2.1 KASUS-1 ............................................................................................................14
SOURCE CODE .......................................................................................................15
SCREENSHOOT ......................................................................................................16
BAB 3 PEMBAHASAN DAN JAWABAN SOAL-2 ..................................................17
2.2 KASUS-2 ............................................................................................................17
SOURCE
CODE...........................................................................................................18
SCREENSHOOT..........................................................................................................1
9
BAB 4 PEMBAHASAN DAN JAWABAN SOAL-3 ..................................................20
2.3 KASUS-3 ............................................................................................................20
SOURCE CODE .......................................................................................................21
SCREENSHOOT ......................................................................................................22
BAB 5 PEMBAHASAN DAN JAWABAN SOAL-4 ..................................................23
2.4 KASUS-4 ............................................................................................................23
SOURCE CODE .......................................................................................................24
SCREENSHOOT ......................................................................................................26
BAB 6 PEMBAHASAN DAN JAWABAN SOAL-5 ..................................................27
2.5 KASUS-5 ............................................................................................................27
SOURCE CODE .......................................................................................................28
SCREENSHOOT ......................................................................................................29
BAB 7 PEMBAHASAN DAN JAWABAN SOAL-6 ..................................................30
2.6 KASUS-6 ............................................................................................................30
SOURCE CODE .......................................................................................................31
SCREENSHOOT ......................................................................................................32
BAB 8 PEMBAHASAN DAN JAWABAN SOAL-7 ..................................................33
2.7 KASUS-7 ............................................................................................................33
SOURCE CODE .......................................................................................................35
SCREENSHOOT ......................................................................................................37
BAB 9 PEMBAHASAN DAN JAWABAN SOAL-8 ...................................................38
2.8 KASUS-8 ............................................................................................................38
SOURCE CODE .......................................................................................................40
SCREENSHOOT ......................................................................................................41
BAB 10 PEMBAHASAN DAN JAWABAN SOAL-9 .................................................42
2.9 KASUS-9 ............................................................................................................42
SOURCE CODE .......................................................................................................44
SCREENSHOOT ......................................................................................................46
BAB 11 PEMBAHASAN DAN JAWABAN SOAL-10 ........................................... xlvii
2.10 KASUS-10 .................................................................................................... xlvii
SOURCE CODE .................................................................................................. xlviii
SCREESHOOT.......................................................................................
...............
xlix BAB 12 PEMBAHASAN DAN JAWABAN SOAL-11
................................................. l 2.11 KASUS-11
.......................................................................................................... l
SOURCE CODE ........................................................................................................ li
SCREENSHOOT ..................................................................................................... liii
BAB 13 PEMBAHASAN DAN JAWABAN SOAL-12 .............................................. liv
2.12 KASUS-12 ....................................................................................................... liv
SOURCE CODE ....................................................................................................... lv
SCREENSHOOT .................................................................................................... lvii
BAB 14 PEMBAHASAN DAN JAWABAN SOAL-13 ............................................ lviii
2.13 KASUS-13 ..................................................................................................... lviii
SOURCE CODE ....................................................................................................... lx
SCREENSHOOT ..................................................................................................... lxi
BAB 15 PEMBAHASAN DAN JAWABAN SOAL-14 ............................................. lxii
2.14 KASUS-14 ...................................................................................................... lxii
SOURCE CODE .................................................................................................... lxiii
SCREENSHOOT .................................................................................................... lxv
BAB 16 PEMBAHASAN DAN JAWABAN SOAL-15 ............................................ lxvi
2.15 KASUS-15 ..................................................................................................... lxvi
SOURCE CODE ................................................................................................... lxvii
SCREENSHOOT .................................................................................................. lxxii
BAB 17 PEMBAHASAN DAN JAWABAN SOAL-16 .......................................... lxxiii
2.16 KASUS-16 ................................................................................................... lxxiii
SOURCE CODE ....................................................................................................lxxv
SCREENSHOOT ................................................................................................ lxxvii
BAB 18 PEMBAHASAN DAN JAWABAN SOAL-17 ........................................ lxxviii
2.17 KASUS-17 ................................................................................................. lxxviii
SOURCE CODE .................................................................................................. lxxix
SCREENSHOOT ............................................................................................... lxxxiii
BAB 19 PEMBAHASAN DAN JAWABAN SOAL-18 .........................................lxxxiv
2.18 KASUS-18 ..................................................................................................lxxxiv
SOURCE CODE ..................................................................................................lxxxv
SCREENSHOOT ................................................................................................lxxxix
BAB 20 PEMBAHASAN DAN JAWABAN SOAL-19 ...............................................xc
2.19 KASUS-19 ........................................................................................................xc
SOURCE CODE .....................................................................................................xcii
SCREENSHOOT .................................................................................................... xcv
BAB 21 PEMBAHASAN DAN JAWABAN SOAL-20 ............................................xcvi
2.20 KASUS-20 .....................................................................................................xcvi
SOURCE CODE ..................................................................................................xcviii
SCREENSHOOT .......................................................................................................ci
SOAL-3 : KASUS GAME ........................................................................................cii
A.PROBLEM...........................................................................................................civ
SOURCE CODE .......................................................................................................cv
SCREENSHOOT ...................................................................................................cxix
PENUTUP .................................................................................................................. cxx
B I O D ATA
.................................................................................................................cxxi
BAB I
PEMBAHASAN DAN JAWABAN SOAL-1
1.1 PROBLEM
Buatkan laporan dokumen Algoritma dan Program Modular dalam bahasa Pascal
untuk membuat aplikasi simulasi Array of Record untuk pengolahan data Nilai
Indeks matakuliah Algoritma Pemrograman dengan 2 model input yaitu input
manual dari
keyboard dan input otomatis dari file teks. Pemrosesan data yang diperlukan
sebagai berikut :

1. Elemen adalah record

2.Jumlah data input kustomisasi, maksimal N = 50 agar bisa tampil di layar tanpa
scroll. Hal ini membutuhkan Setting batasan indeks terlebih dulu

3.Data yang diinput hanya NIM, NAMA, jumlah KEHADIRAN, nilai UTS, nilai UAS
dan bisa untuk simulasi data otomatis. (petunjuk : gunakan buah 3 Array/Tabel)

4.Jumlah kehadiran total yang seharusnya adalah 16 kali. Kehadiran < 50 %


maka dianggap gagal dan diberi NA (Nilai Akhir) =0. INDEKS nya = “- Hadir“

5.Rumus menghitung jika kehadiran >= 50% : NA = 40% UTS + 60%

UAS, INDEKS : 6.Model interaksi menu di samping

A :100> NA >= 85 7.Output nilai

B : 85 > NA >= 70

C : 70 > NA >= 55

D : 55 > NA >= 40

E : 40 > NA >= 0
1.2 ALGORITMA
DESKRIPSI PROBLEM
Judul : Menentukan Indeks Mutu
Input : Nilai,Uas,Uts,Kehadiran
Proses : (30/100*uts)+(40/100*uas)
+(20/100*tgs) Output : A/B/C/D/E
KAMUS DATA
Constanta = // Tidak Ada
Variable = : UTS,UAS,HDR,NA : REAL :
INTEGER
ALGORITMA
begin
writeln;
write('Jumlah Data : '); readln(N);
writeln;
for i:=1 to N do
begin
with
maha
siswa
[i] do
write('NIM : '); readln(NIM);
begin
write('Nama Mahasiswa : '); readln(NAMA);
writeln('In
write('Jumlah Kehadiran [1-16] : '); readln(KEHADIRAN);
put
Data
write('Nilai UTS : '); readln(UTS);
ke-',i)
write('Nilai : '); readln(UAS);
;
UAS writeln;
end;
END. end menu;end;
SOURCE CODE
{program kasus 1;}
uses crt;

{ Kamus Data}
type
datamahas
iswa =
record
NIM: string[15];
NAMA: string[30];
KEHADIRAN: integer;
UTS: integer;
UAS:
integer; NA:
real;
INDEKS:
string[2];
end;
{ALGORTIMA}
var
N,i,j,no,cek : integer;

mahasiswa : array[1..15] of datamahasiswa;


dummy : datamahasiswa;
ratanilai, nilai_tinggi, nilai_kecil, temp :
real;
{Algoritma}
procedure menu;
begin
{AD
RIAN
writeln('|[1] ISI DATA |');
SYA
writeln('|[2] CETAK DATA |');
H
3222 DATA TERBESAR
writeln('|[3] |');
0084
writeln('|[4]
MI DATA TERKECIL |');
PAGI
writeln('|[5] HASIL JUMLAH |');
}
writeln('|[6] RATA RATA |');
writeln('
writeln('|- -|');
writeln('|[0] Selesai |');

writeln('|

|'); writeln;
write('>>> Pilih Menu Nomor = '); readln(no);
end;

procedure isi_data;
begin
writeln;
write('Jumlah Data : '); readln(N);
writeln;
for i:=1 to N do
begin
with mahasiswa[i] do
begin
writeln('Input Data ke-',i);

write('NIM : '); readln(NIM);


write('Nama Mahasiswa : '); readln(NAMA);
write('Jumlah Kehadiran [1-16] : '); readln(KEHADIRAN);
write('Nilai UTS : '); readln(UTS);

write('Nilai UAS : '); readln(UAS);

writeln;
end;
end;
menu;
end;
SCREENSHOOT
BAB II
PEMBAHASAN DAN JAWABAN SOAL-1
2.1 KASUS-1
A. PROBLEM :
Buatlah algoritma dan program Pascal yang dapat menerima input 3 buah bilangan
Real sekaligus, kemudian menampilkan hasil perhitungan yang berupa penjumlahan
dan perkalian ketiga bilangan tersebut.

Input bilangan ke-1 = ? <ENTER>


Input bilangan ke-2 = ?
<ENTER> Input bilangan ke-3
= ? <ENTER>
>> hasil : … + … + …. = ….
>> hasil : … x … x …. = ….

B.ALGORITMA :
DESKRIPSI PROBLEM
Judul : MENCARI
BILANGAN REAL
Input : Masukkan Nilai
A&B
Proses : PERKALIAN & TAMBAHAN
Output : TERCETAK BILANGAN REAL
Type = REAL
KAMUS DATA
Variabl : A,B,C,D
Constanta = // TIDAK ADA
e
ALGORITMA

begin
clrscr
;
write('Masukkan Nilai A = ');readln(a);
write('Masukkan nilai B = ');readln(b);
c:=
A+B;
d:= A*B;
write('Hasil tambahan = ',c:1:2);
write('Hasil perkalian = ',d:2:3);
readln;
end.
END.
SOURCE CODE

{program tipe_data_real;}
uses crt;
{KAMUS_DATA}
var
a,b,c,d : real;
begin
clrscr;
write('Masukkan Nilai A =
');readln(a); write('Masukkan nilai B =
');readln(b); c:= A+B;
d:= A*B;
write('Hasil tambahan =
',c:1:2); write('Hasil perkalian =
',d:2:3); readln;
end.
SCREENSHOOT
BAB III
PEMBAHASAN DAN JAWABAN SOAL-2
2.2 KASUS-2
A.PROBLEM
Buatlah algoritma dan program Pascal yang dapat menampilkan hasil perhitungan
untuk menentukan Luas (LS) dan Keliling (KS) Segitiga Sama Sisi dengan panjang sisi
(S) berjenis real yang diinput dari keyboard.

Input Panjang Sisi = ? <ENTER>


>> Luas Segitiga Sama Sisi =
>> Keliling Segitiga Sama Sisi =

B.ALGORTIMA
DESKRIPSI PROBLEM
Judul : Program mencari_luas_dan_keliling
Input : kata “Panjang sisi?’”
Proses : meng input luas segitiga dan keliling segitiga
Output : terinput hasil luas segitiga dan keliling
segitiga
KAMUS DATA
Program sgitiga_sama_sisi
used CRT;
Type SkopeHitungan -
Real;
Var: S,Luas,
keliling,SkopeHitungan.
ALGORITMA
Begin
Output(input panjang sisi-7');
readln(S) Luas-½*S*√((S² - ½S)²)
Keliling 3*SOutputln('luas segitiga sama sisi-',Luas)Outputln('keliling segitiga
sama sisi-', keliling) End.
SOURCE CODE
program segitiga_sama_sisi;
uses crt;
var // Alas: Integer;
tinggi: Integer;
luas: Integer;
keliling: Integer;

begin
writeln('program mencari luas dan keliling segitiga sama sisi');
writeln;
write('masukan alas segitiga : ');
readln(alas);
writeln;
write('masukan tinggi segitiga : ');
readln(tinggi);
writeln;
keliling:= 3*alas;
writeln('hasi : ');
writeln;
writeln('luas segitiga : ',1/2*tinggi*alas);
writeln;
writeln('keliling segitiga : ',keliling);
readln;
end.
SCREENSHOOT
BAB IV
PEMBAHASAN DAN JAWABAN SOAL-3
2.3 KASUS-3
A.PROBLEM
Buatlah algoritma dan program Pascal yang dapat menampilkan hasil perhitungan
untuk menentukan Luas (LSS) dan Keliling (KSS) Segitiga Siku-Siku dengan panjang
sisi siku-sikunya X dan Y berjenis real yang diinput dari keyboard.

Input Sisi Siku –1 = ? <ENTER>


X Input Sisi Siku –2 = ? <ENTER>

Y >> Luas Segitiga Siku-Siku =


….
B.ALGORITMA >> Keliling Segitiga Siku-Siku =
….
PROBLEM:
o Judul : Program menampilkan luas dan keliling segitiga siku-
siku
o Input : masukan alas dan masukan tingi
Proses : alas x tinggi / 2
o
: luas segitiga dan keliling segitiga siku-siku
o
Outpu
KAMUS DATA:
o t
Constata // tidak ada
o Variable a, t: Integer: Luas, keliling, sm: real;
ALGORITMA:
Write(‘Masukan Alas : ‘); ReadLn(a);
Write(‘Masukan Tinggi : ‘); ReadLn(t);
Sm:= SQRT(SQR(a)+SQR(t)) ;
Luas:=(a*t)/2;
Keliling :=a+t+sm;
Writeln (‘Sisi
Miringnya
adalah :’,sm:2:2);
Writeln (‘Kelilingnya adalah
:’,Keliling:2:2); Writeln (‘Luasnya adalah
:’,Luas:2:2); Writeln (‘Sisi Miringnya
adalah :’,sm:2:2);
Writeln (‘Kelilingnya adalah
:’,Keliling:2:2); Writeln (‘Luasnya adalah
:’,Luas:2:2); End.

SOURCE CODE
program segitiga_siku_siku;
uses crt;
var // a: Integer;
b: Integer;
t: Integer;
luas: Integer;
keliling: Integer;
begin
clrscr;

WriteLn
;
writeln('Luas dan keliling segitiga siku
siku'); WriteLn(' -');
writeln;
write('masukan alas segitiga :
'); readln(a);
writeln;
write('masukan tinggi segitiga :
'); readln(t);
writeln;
writeln('input unutuk
keliling'); WriteLn;
Write('Masukan Nilai bidang miring :
'); Readln(b);
keliling:= a + b + t;
WriteLn('==============');
writeln('HASIILL : ');
WriteLn('==============')
;
writeln;
writeln('luas segitiga : ', 1 / 2 * a *
t); writeln;
WriteLn('==================');
WriteLn;
writeln('keliling segitiga : ',
keliling); readln;
SCREENSHOOT
end.
BAB V
PEMBAHASAN DAN JAWABAN SOAL-4
2.4 KASUS-4
A.PROBLEM
Membuat AGORITMA dan PROGRAM PASCAL yang dapat menampilkan hasil
perhitungan untuk menentukan Luas (LL) dan Keliling (KL) Lingkaran dengan
diameter D berjenis real yang diinput dari keyboard.

Input Diameter Lingkaran = ? <ENTER>

D >> Luas Lingkaran = ….


>> Keliling Lingkaran = ….

B.ALGORITMA
PROBLEM:
Judul : menampilkan hasil perhitungan untuk menentukan luas dan
keliling Input : masukan dimeter lingkaran
Proses : pi*r*r = 2*pi*r
: luas lingkaran dan keliling lingkaran
Outpu
t DATA:
KAMUS
Uses wincrt;
Constant pi=3.14
a ;
Variable r:integer
;
Luas,keliling :re
al;
ALGORITMA :
Writeln (‘hitung keliling dan luas lingkaran’);
Write (‘diameter : ‘); readln (r);
Luas := Pi * r*r ;
Keliling :=2* PI * r;
Writeln (‘luas : ‘,luas:2:2);
Writeln (‘keliling : ‘,keliling:2:2);
END

SOURCE CODE

program Lingkaran;

uses crt;

{KAMUS DATA}

var

jari_jari: Integer;

jari_jari2: Integer;

luas: Integer;

keliling: Integer;

{ALGORITMA}

begin

clrscr;

WriteLn

writeln('program mencari luas dan keliling Lingkaran');

writeln;

write('Masukan Nilai jari jari lingkaran : ');

readln(jari_jari);

writeln;
write('Masukan Nilai jari jari lingkaran : ');

readln(jari_jari2)

; writeln;

luas :=
jari_jari *
jari_jari2;

keliling := 2 * jari_jari *

jari_jari2; writeln('HASIILL : ');

WriteLn('

'); writeln;

writeln('luas
Lingkaran : ',
luas ,'π');

writeln

WriteLn

writeln
('keliling
Lingkara
n : ',
keliling ,
'π');

readln;

end.
SCREENSHOOT
BAB VI
PEMBAHASAN DAN JAWABAN SOAL-5
2.5 KASUS-5
A.PROBLEM
Buatlah algoritma dan program Pascal yang dapat menampilkan hasil perhitungan
untuk menentukan 3 jenis Jarak Tempuh (S1, S2, S3) dan Rata-rata Jarak Tempuhnya,
dengan masukan dari keyboard berupa Kecepatan (V1, V2, V3) dan Waktu Tempuh
(T1, T2, T3) yang berjenis real

Input Kecepatan ke-1 = ? <ENTER> Waktu Tempuh ke-1 = ? <ENTER>


Input Kecepatan ke-2 = ? <ENTER> Waktu Tempuh ke-2 = ? <ENTER>
Input Kecepatan ke-3 = ? <ENTER> Waktu Tempuh ke-3 = ? <ENTER>

>Jarak Tempuh -1 = …. >Jarak Tempuh -2 = …. >Jarak Tempuh -3 =


….

B.ALGORITMA SKEMA ALGORITMA


PROBLEM:

Judul: Perhitungan jarak tempuh dan rata-rata

Input: V1,V2,V3 dan T1,T2,T3

Proses:s1 := t1*v1;
s2 := t2*v2;
s3 :=
t3*v3;

r := (v1-v2-
v3)/(t1-t2-
t3);

Output :
Tercetak nilai
jarak tempuh dan
rata-rata

KAMUS DATA:

o Constanta: //tidak ada

o Variable: v1,v2,v3 : real;


t1,t2,t3 : real;
s1,s2,s3 : real;
r : real;
ALGORITMA:

begin

write('Masukan kecepatan pertama : ');readln(v1);


write('masukan kecepatan kedua :
');readln(v2); write('masukan kecepatan ketiga :
');readln(v3); write('masukan waktu tempuh ke 1 :
');readln(t1); write('masukan waktu tempuh ke 2 :
');readln(t2); write('masukan waktu tempuh ke 3 :
');readln(t3); writeln('Jarak Tempuh ke-1= ',s1:2:0,'
km'); writeln('Jarak Tempuh ke-2= ',s2:2:0,' km');
writeln('Jarak Tempuh ke-3= ',s3:2:0,' km');
writeln('Rata – Rata Jarak Tempuh = ',r:6:2,'
km/h'); end.

SOURCE CODE
program menghitung_jarak_dan_ratarata;
uses crt;

var // v1,v2,v3 : real;

t1,t2,t3 : real;

s1,s2,s3 :

real;

r : real;

begin

clrscr;

writeln('program menghitung jarak tempuh');

write('Masukan kecepatan pertama : ');readln(v1);

write('masukan kecepatan kedua : ');readln(v2);

write('masukan kecepatan ketiga : ');readln(v3);

write('masukan waktu tempuh ke 1 : ');readln(t1);

write('masukan waktu tempuh ke 2 :

');readln(t2);
write('masukan waktu tempuh ke 3 : ');readln(t3);

writeln;

writeln('HASIL :');

WRITELN;

s1 := t1*v1; s2 := t2*v2;

s3 := t3*v3;

r := (v1-v2-v3)/(t1-t2-
t3);

writeln('Jarak Tempuh
ke-1

= ',s1:2:0,' km');

writeln('Jarak Tempuh ke-2 = ',s2:2:0,' km/h');

readln;
km'); writeln('Jarak Tempuh ke-3 =

end.',s3:2:0,' km');

SCREENSHOOT writeln('Rata – Rata Jarak Tempuh =


',r:6:2,'
BAB VII
PEMBAHASAN DAN JAWABAN SOAL-6
2.6 KASUS-6
A.PROBLEM
Buatlah algoritma dan program Pascal yang dapat menerima masukan sebuah bilangan
integer(X)lalu menampilkan hasil analisis yang berupa apakah “Bilangan Genap
Positif ”, “Bilangan Genap Negatif”, “Bilangan Ganjil Positif”, “Bilangan Ganjil
Negatif” , atau “nol”

Input bilangan Integer = ? <ENTER>

>> hasil analisis : X ….

B.ALGORITMA
SKEMA ALGORITMA

PROBLEM:

 Judul : menentukan bilangan genap atau ganjil


 Input : masukan bilangan integer
 Proses : bilangan genap atau ganjil
 Output : bilangan genap / ganjil

KAMUS DATA:

 Uses crt;
 Constanta //tidak ada
 Variable bil:integer;
ALGORITMA:

Begin

Writeln (‘masukan angka: ‘);readln(bil);

If bil mod 2 = 0 then

Writeln (‘bilangan genap’)

Else

Writeln (‘bilangan
ganjil’);

EnD.
SOURCE CODE
program ganji lgenap_positif negativ_nol;
uses crt;
var
x :
Integer;

begin
clrs
cr;
writ
e
('ma
suka
n
angk
a :
');
read
ln
(x);
if (x > 0) and (x mod 2= 0) then
writeln ('bilangan genap positif')
else if (x < 0) and (x mod 2= 0) then
writeln ('bilangan genap negatif')
else if (x > 0) and (x mod 1 = 0) then
writeln ('bilangan ganjil positif')
else if (x < 0) and (x mod 1 = 0) then
writeln ('bilangan ganjil negatif')
SCREENSHOOT
BAB VIII
PEMBAHASAN DAN JAWABAN SOAL-7
2.7 KASUS-7
A.PROBLEM
Buatlah algoritma dan program Pascal yang dapat menentukan transaksi pembayaran
dengan masukan “Jumlah Pembelian dalam Rp.” dan “Jenis Konsumen dengan angka 1
atau 2 (1. Pelangan; 2. Non-pelanggan)”. Dengan ketentuan jika Konsumen adalah
pelanggan maka dapat potongan 10% dan non-pelanggan tidak dapat potongan. Dan
jika jumlah transaksi per 1 juta akan mendapat cashback 30 ribu untuk pelanggan dan
15 ribu untuk non-pelanggan. Jadi jika transaksi 2 juta maka cashback 60 ribu dan 30
ribu, dan seterusnya. (CATATAN : output Hari, Tanggal, dan Waktu diambil dari sistem
komputer)

>> Dicatat pada tanggal : …… / ……/…. (tgl/bln/thn)


>> Waktu transaksi jam : ……: ……: …. (jam:menit;detik)

Input Jumlah transaksi Rp. =? <ENTER>


>> Jumlah Transaksi Rp. ……….
>> Potongan transaksi Rp. ………
>> Jumlah yang harus dibayar sebesar Rp. ………
>>
Uang pembayaran Rp ………… <ENTER>

B.ALGORITMA
SKEMA ALGORITMA
PROBLEM:

o Judul:transaksi pembayaran
o Input:jumlah pembeli,jenis konsumen
o Proses:if then-if else then
o Output:

KAMUS DATA:

constanta:// tidak ada

variabel: jt,jk,potong,jumlah : real

ALGORITMA:

begin

IF (JK = 1) THEN

WRITELN('BESAR POTONGAN RP. ',POTONGAN:2:0)

ELSE BEGIN

IF (JK = 2) THEN

WRITELN('BESAR POTONGAN RP.',POTONGAN:2:0);

END;

IF (JT = 1) THEN

WRITELN(‘JUMLAH YANG HARUS DIBAYAR RP.',POTONGAN:2:0)

ELSE BEGIN

IF (JK = 2) THEN

WRITELN(JUMLAH YANG HARUS DIBAYAR RP.',POTONGAN:2:0);

END.
SOURCE CODE

program menentukan_harga;

uses crt;

var

jk : real; jt : real;

jmt : real;

bp :real;

begin

clrscr;

writeln('program harga');

write('masukan jumlah transaksi : Rp');readln(jt);

write('masukan Jenis konsumen 1/2 :

');readln(jk); writeln;

writeln('=========================');

begin

if (jk = 1) then

writeln('Jenis konsumen : non-pelanggan')

else if(jk = 2) then

writeln('jenis konsumen : pelanggan')

else if (jk >=3) then

writeln('kode anda tidak terbaca');

exit;

end;

be
gin
if (jk = 1) then

bp := 0/100*jt

else if (jk = 2) then

bp := 10/100*jt

end;

begin

if
(j
k
=
1)
th
en

writeln('besar potongan : Rp ',bp:2:0)

else if (jk = 2) then

writeln('besar potongan : Rp
',bp:2:0);

en
d;

b
e
g
i
n

writeln(' jumlah transaksi : Rp',jt);

end;

begin

if (jk = 1)
then jmt := jt-
bp

else if (jk = 2)
then jmt := jt - bp;
end;
begin
if (jk = 1) then
SCREENSHOOT
BAB IX
PEMBAHASAN DAN JAWABAN SOAL-8
2.8 KASUS-8
A.PROBLEM
Buatlah algoritma dan program Pascal yang dapat menerima masukan sebuah bilangan
integer(X)antar 0 s/d 9 lalu menampilkan tulisan teks bilangan tersebut, dengan
ketentuan :-Jika X> 9 atau X < 0 maka ditampilkan “Salah entri : ketik bilangan
0 ..9”- Jika X = 0 maka ditampilkan “nol”; -Jika X = 1 maka ditampilkan “satu”; -Jika
X = 2 maka ditampilkan “dua”; - dan seterusnya sampai jika X = 9 maka ditampilkan
“sembilan”

Input bilangan integer [ 0 ..9] = ? <ENTER>

>> hasil : X adalah ….

B.ALGORITMA
SKEMA ALGORITMA

PROBLEM:

o Judul : menampilkan tulisan teks bilangan


o Input : x = 0-9
o Proses : if then-else
Output : hasil x = nol;satu,:sembilan

KAMUS DATA:

constanta: // tidak ada

variabel : x :

integer

ALGORITMA:

begin

write('Masukan bilangan/angka 0-9 :


');readln(x); write('>> Hasil : NOL <<')
else begin
if ( x = 1) then
write('>> Hasil : SATU <<')
else begin
if ( x = 2) then
write('>> Hasil : DUA <<')
else begin
if ( x = 3) then
write('>> Hasil : TIGA <<')
else begin
if ( x = 4) then
write('>> Hasil : EMPAT <<')
else begin
if ( x = 5) then
write('>> Hasil : LIMA <<')
else begin
if ( x = 6) then
write('>> Hasil : ENAM
<<') else begin
if ( x = 7) then
write('>> Hasil : TUJUH
<<') else begin
if ( x = 8) then
write('>> Hasil : DELAPAN
<<') else begin
if ( x = 9) then
write('>> Hasil : SEMBILAN
<<') else begin
if ( x < 0) then
write('>> Error, No Entry
<<') else begin
if (x > 9) then
write('>> Error, No Entry <<')
end;
SOURCE CODE
program menscan_nilai_input;
uses crt;
var
x : integer;
begin
clrscr;
Write('Masukan input : ');readln(x);
writeln('Hasil di temukan : ');
if (x>9) then
writeln('hasil input ',x,' salah entri masukan 0...9')
else if (x<0) then
writeln('hasil input ',x,' salah entri masukan 0...9')
else if (x=0) then
writeln('Hasil input ',x,' adalah : Nol')
else if (x=1) then
writeln('hasil input ',x,' adalah : satu')
else if (x=2) then
writeln('hasil input ',x,' adalah : dua')
else if (x=3) then
writeln('Hasil input ',x,' adalah : Tiga')
else if (x=4) then
writeln('hasil input ',x,' adalah : Empat')
else if (x=5) then
writeln('hasil input ',x,' adalah : Lima')
else if (x=6) then
writeln('Hasil input ',x,' adalah : Enam')
else if (x=7) then
writeln('hasil input ',x,' adalah : Tujuh')
else if (x=8) then
writeln('hasil input ',x,' adalah : Delapan')
else if (x=9) then
writeln('hasil input ',x,' adalah :
Sembilan');
readln;
end.

SCREENSHOOT
BAB X
PEMBAHASAN DAN JAWABAN SOAL-9
2.9 KASUS-9
A.PROBLEM
Buatlah algoritma dan program Pascal yang menentukan NILAI AKHIR (NA) dan Nilai
INDEK MUTU (IM) suatu matakuliah dengan 4 variabel nilai yaitu nilai UTS, UAS,
TUGAS, dan KEHADIRAN masing-masing skala 0 - 100, dengan ketentuan sebagai
berikut :
•NA = 30% UTS + 40% UAS + 20% TUGAS + 10% KEHADIRAN.

•Jumlah KEHADIRAN maksimum 16, jadi jika kehadiran =10 maka nilai KEHADIRAN
dihitung (10/16) x 100
Ketentuan konversi NA ke IM dirumuskan sebagai berikut :
-Jika NA> 100 atau NA < 0 maka ditampilkan “Salah nilai”
-Jika NA< = 100 atau NA > 80 maka ditampilkan IM = “nilai A”
-Jika NA< = 80 atau NA > 65 maka ditampilkan IM = “nilai B”
-Jika NA< = 65 atau NA > 50 maka ditampilkan IM = “nilai C”
-Jika NA< = 50 atau NA > 40 maka ditampilkan IM = “nilai D”
-Jika NA< 40 maka ditampilkan IM = “nilai E”

Input Nilai UTS (0 – 100) =? <ENTER>


Input Nilai UAS (0 – 100) =? <ENTER>
Input Nilai TUGAS (0 – 100) =? <ENTER>

>> hasil Perhitungan :


NILAI AKHIR = ….
NILAI INDEKS MUTU =
….

B.ALGORITMA SKEMA ALGORITMA

PROBLEM:

 Judul : menentukan Indeks Mutu


 Input : nilai UTS,UAS,Tugas,kehadiran
 Proses: na := (30/100*uts)+(40/100*uas)+(20/100*tgs)
 Output: IM : A/B/C/D/E
KAMUS DATA:

 CONSTANTA : // TIDAK ADA

 VARIABEL : uts,uas,tgs,hdr,na : Real : INTEGER

ALGORITMA:

BEGIN
while (i < 1) do
begin
write('Masuka
n nilai UTS

:
');readln(uts);
if (uts > -1) and (uts < 101) then i := 1
else writeln('Error,(Masukan nilai 1-
100)');
end;

begin
Write('Masukan nilai UAS :
');readln(uas); if (uas > -1) and (uas <
101)then i := 1
else writeln('Error,(Masukan nilai 1-
100)'); end;
begin
Write('Masukan nilai Tugas :
');readln(tgs); if (tgs > -1) and (tgs <
101)then i := 1 else writeln('Error,
(Masukan nilai 1-100)');
end;
na := (30/100*uts)+(40/100*uas)
+(20/100*tgs); writeln('>> Nilai akhir :
',na:2:0,' <<');
begin
if (na >= 0) and (na <
40)then writeln('E')
else
begin
i
f
(na
>=
40)
and
(na
<
else begin
if (na >= 80) and (na <= 100)then
writeln('A')
end.

SOURCE CODE
program menentukan_nilai_akhir_semester;

uses crt;

var

na : real; tgs : real;

uts : real;uas :

real; kd : real;

begin

clrscr;

writeln('program menentukan Nilai akhir');

write('Masukan Nilai Uts :

');readln(uts);

write('Masukan Nilai Uas : ');readln(uas);

write('Masukan Nilai Tugas : ');readln(tgs);

write('masukan kehadiran : ' );readln(kd);

na := (30/100*uts)+(40/100*uas)+(20/100*tgs)+(10/16*kd);

writeln(' Nilai akhir : ',na:2:0);

writeln('=');

begin

if (na>100)
then

writeln('NILA
I YANG ANDA
MASUKAN
SALAH')
ELSE IF (na<=100) and (na>=80) THEN

Writeln('NILAI IM ANDA A')

else if (na<80) and (na>=65) then

writeln('NILAI IM ANDA B')

else if (na<65) and (na>=50) then

writeln('NILAI IM ANDA C')

else if (na<50) and (na>=40) then

writeln('NILAI IM ANDA D')

else if(na<40) then

writeln('NILAI IM ANDA E');

end
SCREENSHOOT
BAB XI
PEMBAHASAN DAN JAWABAN SOAL-10
2.10 KASUS-10
A.PROBLEM
Buatlah algoritma dan program Pascal yang bisa mencetak bilangan dari AWAL
sampai dengan AKHIR, AWAl < AKHIR. Dimana AWAl dan AKHIR diinput
dari keyboard. Sehingga menjadi deret aritmetika dengan pertumbuhan +1.
Dilustrasikan pada gambar di bawah.
Input AWAL = ? <enter> contoh = 3
Input AKHIR = ? <enter> contoh = 24
>> Hasil PROSES :
3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16, 17, 18, 19, 20, 21, 22,
23, 24
B.ALGORITMA
PROBLEM:

Judul : Program deret aritmatika


Input : Deret aritmatika
Proses : Mencetak deret aritmatika
: Tercetak deret aritmatika
Outpu
t DATA:
KAMUS

Constanta // Tidak ada


uses crt;
type Bil = integer;
var
awal,akhir,deret,angka
: Bil;

47
ALGORITMA:
Begin
Clrscr
;
Writeln('PROGRAM DERET ARITMATIKA ');
Writeln('=========================');
writeln;
Write('Input Awal : '); readln(awal);
Write('Input Akhir : '); readln(akhir);
Writeln;
Writeln('==========');
Writeln(' HASIL ');
Writeln('==========')
;
Writeln;
FOR deret := awal To akhir Do
SOURCE
END. CODE
program Deret_Aritmatika;
{Input : Deret aritmatika}
{Proses : Mencetak deret aritmatik}
{Output : Tercetak deret aritmatika}

{KAMUS DATA}
uses crt;
type Bil = integer;
var awal,akhir,deret,angka : Bil;

{ALGORITMA}
Begin

48
Clrscr;
Writeln('PROGRAM DERET ARITMATIKA ');

Writeln('=========================');
writeln;
Write('Input Awal : '); readln(awal);
Write('Input Akhir : '); readln(akhir);
Writeln;
Writeln('==========');
Writeln(' HASIL
');
Writeln('==========');
Writeln;
FOR deret := awal To akhir Do
begin
Write(awal , ' ');
angka := awal + 1;
awal := angka;
end;
readln;
SCREESHOOT
end.

49
BAB XII
PEMBAHASAN DAN JAWABAN SOAL-11
2.11 KASUS-11
A.PROBLEM
Buatlah algoritma dan program Pascal yang dapat mencetak sejumlah
barisan bilangan yang merupakan kelipatan dari bilangan tertentu misal N.
Input Barisan Kelipatan N = ? <enter> contoh = 3
Input Banyaknya barisan yang dicetak = ? <enter> contoh = 15
>> Hasil PROSES :
3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45

B.ALGORITMA
PROBLEM :
o Judul :Program bilangan kelipatan
o Input :Bilangan kelipatan
oProses :Mencetak bilangan kelipatan
o :Tercetak bilangan kelipatan
Outpu
KAMUS DATA:
t // tidak ada
Constanta
uses crt;
Type Bil = integer;
var
kel,jumlah,hasil,baris
an : Bil;

ALGORITMA :
Begin
clrscr;
Writeln('PROGRAM BILANGAN KELIPATAN');
Writeln('===========================');
50
Writeln;
write('Input Barisan Kelipatan : '); readln(kel);
write('Input Banyaknya barisan yang dicetak : '); readln(barisan);
writeln;
Writeln('==========');
Writeln(' HASIL ');
Writeln('==========')
;
Writeln;
FOR jumlah := kel To barisan Do
begin
write(kel , ' ');
hasil := kel + kel;
kel := hasil;
end;
readln;
end.
SOURCE CODE
program bilangan_kelipatan;

{Input : Bilangan Kelipatan}

{Proses : Mencetak Bilangan Kelipatan}

{Output : Tercetak Bilangan Kelipatan}

{KAMUS DATA}

uses crt;

Type Bil = integer;

var kel,jumlah,hasil,barisan : Bil;

51
{ALGORITMA}

Begin

clrscr;

Writeln('PROGRAM BILANGAN KELIPATAN');

Writeln('===========================');

Writeln;

write('Input Barisan Kelipatan : '); readln(kel);

write('Input Banyaknya barisan yang dicetak :

');
readln(barisan);

writeln;

Writeln('==========');

Writeln(' HASIL

');

Writeln('==========');

Writeln;

FOR jumlah := kel To barisan Do

begin

write(kel , ' ');

hasil := kel + kel;

kel := hasil;

end;

readln;

end.

52
SCREENSHOOT

53
BAB XIII
PEMBAHASAN DAN JAWABAN SOAL-12
2.12 KASUS-12
A.PROBLEM
Buatlah algoritma dan program Pascal yang dapat mencetak sejumlah barisan
bilangan FIBONACCI tertentu misal sebanyak N. Bilangan Fibonacci
adalah bilangan yang nilainya merupakan penjumlahan 2 buah bilangan
sebelumnya
Input Banyaknya barisan Fibonacci yang dicetak = ? <enter> contoh = 15
>> Hasil PROSES :
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987

B.ALGORITMA
PROBLEM :
o Judul : Program mencetak_bilangan_fibonacci
o Input : Banyak bilangan fibonacci
Proses
o : Mencetak bilangan fibonacci
o : Tercetak bilangan Fibonacci
Outpu
KAMUS DATA:
o t
Constanta // tidak ada
o Type Bil = integer;
o Var N,i,j,k,l : Bil;
ALGORITMA:
Begin

clrscr;
Writeln('PROGRAM SISTEM BILANGAN FIBONACCI');
Writeln('==================================');
Writeln;
Write('Input banyaknya barisan Fibonacci yang dicetak : ');
readln(N); 54
Writeln;
Writeln('============')
;
Writeln(' HASIL ');
Writeln('============')
;
Writeln
; k :=
1;
l := 0;
FOR i := 1 to N do
begin
write(k , ' ');
j := k + l;
l := k;
k := j;
end;
readln
; end.
SOURCE CODE
program
Readln; mencetak_bilangan_fibonacci;
{Input
end. : Banyak bilangan fibonacci}

{proses : Mencetak bilangan fibonacci}

{Output : Tercetak bilangan fibonacci }

{KAMUS DATA}

uses crt;

type Bil = integer;

55
var N,i,j,k,l : Bil;

{ALGORITMA}

Begin

clrscr;

Writeln('PROGRAM SISTEM BILANGAN FIBONACCI');

Writeln('==================================');
Writeln;

Write('Input banyaknya barisan Fibonacci yang dicetak :


'); readln(N);

Writeln;

Writeln('============');

Writeln(' HASIL

');

Writeln('============');

Writeln;

k := 1;

l := 0;

FOR i := 1 to N do

begin

write(k , ' ');

j := k + l;

l := k;

k := j;

end;

readln;

end. 56
Readln;

end.

SCREENSHOOT

57
BAB XIV
PEMBAHASAN DAN JAWABAN SOAL-13
2.13 KASUS-13
A.PROBLEM
Buatlah algoritma dan program Pascal yang dapat mencetak rata-rata
dari serangkaian bilangan sebanyak tertentu yang diinput dari keyboard
Input Banyaknya Bilangan, N = ? <ENTER>
Input Bilangan ke-1 = ? <enter>
Input Bilangan ke-2 = ? <enter>
:
Input Bilangan ke-N = ? <enter>
>>
>> Rata-rata bilangan = ...

B.ALGORITMA
PROBLEM :
o Judul :
Program
menghitun
g_rata_rat
a
o Input :
Menghitu
ng nilai
rata rata
o Proses:
Mencetak
nilai rata
rata
oOutput: Tercetak nilai rata rata
KAMUS DATA:
o Constanta // tidak ada
o var
n, x, i, tot : integer; 58
rata : real;
ALGORITMA:
begin
writeln;
write('Masukkan jumlah bilangan : ');readln(n);
writeln;
writeln('Masukkan Bilangan : ');
tot := 0;

for i := 1 to n do
begin
write('Bilangan ke-',i,' :');readln(x);
tot := tot + x;
end;
rata := tot/n;
writeln;
writeln('Total Bilangan : ',tot:6);
writeln('Rata-rata :
',rata:6:2);
read
key;
end.
begi
n
writeln('Program Menghitung Rata-rata');
clrscr
writeln('====================');
;
writeln;
write('Masukkan jumlah bilangan : ');readln(n);
writeln;
writeln('Masukkan Bilangan : ');
tot := 0;
59
for i := 1 to n do
begin
write('Bilangan ke-',i,' :');readln(x);
tot := tot + x;
end;
rata := tot/n;
writeln;
writeln('Total Bilangan : ',tot:6);
writeln('Rata-rata :
',rata:6:2);
read
key;
end.
SOURCE CODE
Program menghitung_rata_rata;

uses crt;

var

n, x, i, tot : integer;

rata : real;

begin

clrscr;

writeln('Program Menghitung Rata-rata');

writeln('====================');
writeln;

write('Masukkan jumlah bilangan :


');readln(n);
60
writeln;

writeln('Masukkan Bilangan : ');

tot := 0;

for i := 1 to n do

begin

write('Bilangan ke-',i,' :');readln(x);

tot := tot + x;

end;

rata := tot/n;

writeln;

writeln('Total Bilangan : ',tot:6);

writeln('Rata-rata :

',rata:6:2);
readkey;

end.

SCREENSHOOT

61
BAB XV
PEMBAHASAN DAN JAWABAN SOAL-14
2.14 KASUS-14
A.PROBLEM
Buatlah algoritma dan program Pascal yang dapat menghitung
akumulasi, faktorial, dan polinom tertentu dengan kriteria dan ilustrasi
program sbb :
a) Y = Akumulasi = 1 + 2 + 3 + 4 + … + N
b) Y = Faktorial = N! = 1 * 2 * 3 * … * N
c) Y = Polinom = X + 3X4 + 5X6 + 7X8 + … + …X(N)
>> AKUMULASI & FAKTORIAL
Input N = ? <enter>
>> Hasil Akumulasi = 1 + 2 + 3 + … + N = ….
>> Hasil Faktorial = 1 x 2 x 3 x … x N = ….
>>
>> POLINOM Y
Input X = ? <enter>
Input N = ?
<enter>
>> Hasil Polinom
Y = ….
B.ALGORTIMA
PROBLEM :
o Judul:prog
ram_Men
ghitung_a
kumulasi_
faktorial_
dan_polin
om
o Input:Nila
iN
o Proses:Me
ncetak
nilai N
oOutput:tercetak nilai N 62
KAMUS DATA:
o type Bil = integer
ovar akumu,faktor,N,polinom,no,hasil : integer
clrscr;
Writeln('PROGRAM MENGHITUNG AKUMULASI,FAKTORIAL DAN
POLINOM');

Writeln('===============================================
===
=');
Writeln;
Write('Input N : ');
readln(N); Writeln;
Writeln('=========');
Writeln(' HASIL ');
Writeln('=========')
;
Writel
n; no :=
1;
FOR akumu := 1 to N
do begin
write(no , ' ');
no := no + 1;
end;
SOURCE CODE
readln; Menghitung_akumulasi_faktorial_dan_polinom;
program
{input :Nilai N}
end.
{Proses : Mencetak Nilai N}
{Output : Tercetak Nilai N}

{KAMUS DATA}
uses crt;

63
type Bil = integer;
var akumu,faktor,N,polinom,no,hasil : integer;

{ALGORITMA}
begin
clrscr;
Writeln('PROGRAM MENGHITUNG AKUMULASI,FAKTORIAL DAN
POLINOM');

Writeln('==========================================
=========')
;
Writeln;
Write('Input N : ');
readln(N); Writeln;
Writeln('=========');
Writeln(' HASIL
');
Writeln('=========');
Writel
n;
no := 1;
FOR akumu := 1 to N
do begin
write(no , '
'); no := no +
1;
end;
readln;
end.

64
SCREENSHOOT

65
BAB XVI
PEMBAHASAN DAN JAWABAN SOAL-15
2.15 KASUS-15
A.PROBLEM
Diketahui file teks integer bernama ’FileInt.Txt’ berisi data 100, 90, 75, 55,
49,
80, 70, 65, 55, 68, 98, 90, 100, 25, 35, 45, 65, 75, 85, 100. (buatkan terlebih
dulu)Buatlah algoritma dan program Pascal yang dapat menampilkan isi
data dari file ’FileInt.Txt’dan hitunglah rata-rata dari data tersebut.
>> HASIL PEMBACAAN DATA
100, 90, 75, 55, 49, 80, 70, 65, 55, 68, 98, 90, 100, 25, 35, 45, 65, 75, 85, 100.
>>
>> HASIL PERHITUNGAN RATA-RATA = ….

B.ALGORITMA
PROBLEM :
o Judul:ME
NGINPUT
NILAI
RATA
RATA
o Input:ME
NGINPUT
NILAI
o Proses:M
ENCETA
K NILAI
oOutput:TERCETAK NILAI
KAMUS DATA:
o type Bil = integer
o var,DATA,FILE
TEXT,NOMOR: integer

66
ALGORITMA:
{* Pendefinisian File Teks = TEXT Sederhana INTEGER *}
{* Memahami konsep MARK pada isi file teks *}
{* Operasi : Input-Proses-output *}

{ ===== KAMUS DATA ===== }


Uses CRT;

Const Mark = 999;

Type FILE_TEXT = TEXT; {Contoh data Integer}


DATA = Integer;
Nomor = Integer;

Var F : FILE_TEXT;
X : DATA;
No : Nomor;

SOURCE CODE
{ ===== PROGRAM_INPUT_NILAI; ===== }
Program IPO_untuk_Akses_FILE;
{* Pendefinisian File Teks = TEXT Sederhana INTEGER *}
{* Memahami konsep MARK pada isi file teks *}
{* Operasi : Input-Proses-output *}

{ ===== KAMUS DATA ===== }


67
Uses CRT;

Const Mark = 999;

Type FILE_TEXT = TEXT; {Contoh data Integer}


DATA = Integer;
Nomor = Integer;

Var F : FILE_TEXT;
X : DATA;
No : Nomor;

{ ===== ALGORITMA UTAMA ===== }


BEGIN
ClrScr;
{------------------------<<< Check Keberadaan/Pembuatan File >>> }
Assign(F,'FData1.txt');
{$i-}
Reset(F);
If(IOResult<>0) Then Rewrite(F);
{$i+}

{-------------------------<<< Pemrosesan FILE-TEKS dengan MARK >>> }


Gotoxy(01,01); Writeln('PEMROSESAN SEKUENSIAL');
Gotoxy(01,02); Writeln('FILE DENGAN MARK=999 ');
Gotoxy(01,03); Writeln('---------------------');
Gotoxy(01,04); Writeln(' No. DATA ');
68
Gotoxy(01,05); Writeln(' 100 ');
Gotoxy(01,06); Writeln(' 90 ');
Gotoxy(01,07); Writeln(' 75 ');
Gotoxy(01,08); Writeln(' 55 ');
Gotoxy(01,09); Writeln(' 49 ');
Gotoxy(01,10); Writeln(' 80 ');
Gotoxy(01,11); Writeln(' 70 ');
Gotoxy(01,12); Writeln(' 65 ');
Gotoxy(01,13); Writeln(' 55 ');
Gotoxy(01,14); Writeln(' 68 ');
Gotoxy(01,15); Writeln(' 98 ');
Gotoxy(01,16); Writeln(' 90 ');
Gotoxy(01,17); Writeln(' 100 ');
Gotoxy(01,18); Writeln(' 25 ');
Gotoxy(01,19); Writeln(' 35 ');
Gotoxy(01,20); Writeln(' 45 ');
Gotoxy(01,21); Writeln(' 65 ');
Gotoxy(01,22); Writeln(' 75 ');
Gotoxy(01,23); Writeln(' 85 ');
Gotoxy(01,24); Writeln(' 100
Gotoxy(01,25 ; Writeln('---------------------');
No := 1; { Inisialisasi }
Read(F,X); { Akses Elemen-1 }
While Not (X = Mark) Do Begin
Gotoxy(01,No+5);
Writeln(No:3,' ',X:6); {Proses
Elemen}
Read(F,X); {Elemen-
lxix
Berikutnya} No:= No+1;
Delay(200)
; End;
{Terminasi
}
Gotoxy(01,
No+5);
Writeln('------
---------------')
;

{-------------------------<<< Pemrosesan FILE-TEKS TANPA MARK


>>> } Gotoxy(30,01); Writeln('PEMROSESAN SEKUENSIAL');
Gotoxy(30,05); Writeln(' 100 ');
Gotoxy(30,02); Writeln('
Gotoxy(30,06); Writeln(' 90 ');
FILE TANPA MARK '); Gotoxy(30,03);
Gotoxy(30,07); Writeln(' 75 ');
Writeln('---------------------');
Gotoxy(30,08); Writeln(' 55 ');
Gotoxy(30,04); Writeln(' No. DATA ');
Gotoxy(30,09); Writeln(' 49 ');
Gotoxy(30,10); Writeln(' 80 ');
Gotoxy(30,11); Writeln(' 70 ');
Gotoxy(30,12); Writeln(' 65 ');
Gotoxy(30,13); Writeln(' 55 ');
Gotoxy(30,14); Writeln(' 68 ');
Gotoxy(30,15); Writeln(' 98 ');
Gotoxy(30,16); Writeln(' 90 ');
Gotoxy(30,17); Writeln(' 100 ');
Gotoxy(30,18); Writeln(' 25 ');
Gotoxy(30,19); Writeln(' 35 ');
Gotoxy(30,20); Writeln(' 45 ');
Gotoxy(30,21); Writeln(' 65 ');
70
Gotoxy(30,22); Writeln(' 75 ');
Gotoxy(30,23); Writeln(' 85 ');
Gotoxy(30,24); Writeln(' 100 ');
Gotoxy(30,25); Writeln('---------------------');

RESET(F); { Menggunakan file yang sama untuk latihan ini}


No := 1; { Inisialisasi }
While Not EOF(F) Do Begin
Read(F,X); {Elemen}
Gotoxy(30,No+5); Writeln(No:3,' ',X:6); {Proses Elemen}
No:= No+1;
Delay(200)
; End;
{Terminasi
}
Gotoxy(30,
No+5);
Writeln('------
---------------')
;

Gotoxy(01,No+5+2); Writeln; Write('Selesai....! <Enter> to


continue..'); Readln;
END.

71
SCREENSHOOT

72
BAB XVII
PEMBAHASAN DAN JAWABAN SOAL-16
2.16 KASUS-16
A.PROBLEM
Diketahui file teks huruf bernama ’FileChr.Txt’
berisi data ’A’, ’C’, ’B’, ’F’, ’Z’, ’X’, ’A’, ’B’, ’D’, ’E’, ’F’, ’C’, ’A’,
’B’,’A’,’G’, ’A’, ’H’, ’A’, ’P’, ’A’,
’B’,’A’,’G’ . (buatkan terlebih dulu) Buatlah
algoritma dan program Pascal
yang dapat menampilkan isi data dari file ’FileChr.Txt’
>> HASIL PEMBACAAN DATA
dan menghitung berapa banyaknya data dan berapa banyaknya huruf ’A’
‟A‟, ‟C‟, ‟B‟, ‟F‟, ‟Z‟, ‟X‟, ‟A‟, ‟B‟, ‟D‟, ‟E‟, ‟F‟, ‟C‟, ‟A‟, ‟B‟,‟A‟,‟G‟, ‟A‟,
dalam data tersebut.
‟H‟, ‟A‟, ‟P‟, ‟A‟, ‟B‟,‟A‟,‟G‟.
>>
>> HASIL PERHITUNGAN
- Banyak huruf dalam file = ….
- Banyak huruf A ada …. buah

B.ALGORITMA
PROBLEM :
o Judul:PRO
GRAM
RECORD
o Input :
INPUT
NILAI N
o Proses :
MENCET
AK
NILAI N
oOutput : TERCETAK NILAI
KAMUS DATA:
o type Bil = integer,STRING
o var,,FILE
TEXT,NOMOR,NIM,NAM
A: integer 73
ALGORITMA
BEGIN
ClrScr;
{------------------------<<< Check Keberadaan/Pembuatan File >>> }
Assign(F,'FData2.txt');
{$i-}
Reset(F);
If(IOResult<>0) Then Rewrite(F);
{$i+}

{-------------------------<<< Pemrosesan FILE-TEKS SEKUENSIAL ');


Gotoxy(01,02); Writeln(' FILE DENGAN MARK=<*,*,999>
');
Gotoxy(01,03); Writeln('- -');
Gotoxy(01,04); Writeln('No. NIM NAMA
NILAI');
Gotoxy(01,05);Readln(F,XNm);
Readln(F,Xn); Writeln('- Readln(F,XNl); { Akses Elemen-1 }
-'); No
While := 1;
NOT ( (Xn='***') AND{(XNm='***')
Inisialisasi }AND (XNl=999) ) Do Begin
dengan MARK >>> }
Gotoxy(01,01); Writeln(' PEMROSESAN
Gotoxy(01,No+5);Writeln(No); {Proses}
Gotoxy(07,No+5);Writeln(Xn);
Gotoxy(17,No+5);Writeln(XNm);
Gotoxy(35,No+5);Writeln(XNl);
Readln(F,Xn); Readln(F,XNm); Readln(F,XNl); {Elemen-Berikutnya}
No:= No+1;
Delay(200); End;
74
SOURCE CODE

{ ===== KAMUS DATA ===== }


Uses CRT;

Const Mark1 = '***';


Mark2 = '***';
Mark3 = 999;

Type FILE_TEXT = TEXT; {Contoh data model Record}


NIM = String[8];
NAMA = String[30];
NILAI = Integer;
Nomor = Integer;

Var F : FILE_TEXT;
Xn : NIM; XNm:NAMA;
XNl:NILAI;
No : Nomor;

{ ===== ALGORITMA UTAMA ===== }


BEGIN
ClrScr;
{------------------------<<< Check Keberadaan/Pembuatan File >>> }
Assign(F,'FData2.txt');
{$i-}
Reset(F);
If(IOResult<>0) Then Rewrite(F); {$i+}
75
{-------------------------<<< Pemrosesan FILE-TEKS dengan MARK >>> }
Gotoxy(01,01); Writeln(' PEMROSESAN SEKUENSIAL ');
Gotoxy(01,02); FILE DENGAN MARK=<*,*,999>
Writeln('
Gotoxy(01,03); Writeln('- '); -');
Gotoxy(01,04); Writeln('No. NIM NAMA
NILAI');
Gotoxy(01,05); Writeln('-
-'); No := 1; { Inisialisasi }
Readln(F,Xn); Readln(F,XNm); Readln(F,XNl); { Akses Elemen-1 }
While NOT ( (Xn='***') AND (XNm='***') AND (XNl=999) ) Do Begin
Gotoxy(01,No+5);Writeln(No); {Proses}
Gotoxy(07,No+5);Writeln(Xn);
Gotoxy(17,No+5);Writeln(XNm)
;
Gotoxy(35,No+5);Writeln(XNl);
Readln(F,Xn); Readln(F,XNm); Readln(F,XNl); {Elemen-Berikutnya}
No:= No+1;
Delay(200)
; End;
{Terminasi
}
Gotoxy(01,
No+5);
Writeln('-

');

{-------------------------<<< Pemrosesan FILE-TEKS TANPA MARK


76
>>> } Gotoxy(42,01); Writeln('
PEMROSESAN SEKUENSIAL ');
Gotoxy(42,02); Writeln('FILE TANPA MARK (data=<*,*,999>) ');
RESET(F);
No := 1; { Inisialisasi
} While NOT
EOF(F) Do Begin
Readln(F,Xn); Readln(F,XNm);
Readln(F,XNl); { Akses Elemen-1 }
Gotoxy(42,No+5);Writeln(No); {Proses}
Gotoxy(42+07,No+5);Writeln(Xn);
Gotoxy(42+17,No+5);Writeln(XNm);
Gotoxy(42+35,No+5);Writeln(XNl);
No:= No+1;
Delay(200)
; End;
{Terminasi
}
Gotoxy(42,
No+5);
Writeln('-

');

Gotoxy(01,No+5+2); Writeln; Write('Selesai....! <Enter> to


continue..'); Readln;
END.

SCREENSHOOT

77
BAB XVIII
PEMBAHASAN DAN JAWABAN SOAL-17
2.17 KASUS-17
A.PROBLEM
Buatlah algoritma dan program Pascal yang bisa
menampilkan matriks (N x N) berikut ini secara otomatis
INPUT MATRIKS (N x N), N ganjil, N = ? <enter> contoh = 5
>> Matriks Segitiga Atas Matriks Segitiga Bawah
1 2 3 4 5 5 5 5 5 5
1 3 4 5 4 4 4 4 4
1 4 5 3 3 3 3 3
1 5 2 2 2 2 2
1 1 1 1 1 1

B.ALGORITMA
PROBLEM :
o Judul:
PROGRA
M
MATRIK
o Input :
INPUT
NILAI N
o Proses :
MENCET
AK
NILAI N
oOutput : TERCETAK NILAI
KAMUS DATA:
o type Bil = ARRAY
o var: atrikI,matrikII : data,baris,kolom,pil : integer;procedure isimatrik
var i,j : integer;
ALGORITMA
writeln('Penentuan ORDO MATRIK 78
I');
write('Masukan banyak baris matrik I = ');readln(baris);
write('Masukan banyak kolom matrik I = ');readln(kolom);
for i:=1 to baris do
begin
gotoxy(j*10,i*5);
readln(matrikI[i,j])
; end;
SOURCE CODE

program matrik;
uses crt;
{Kamus
Data}
type data =
array[1..10,1..
10] of integer;
var matrikI,matrikII : data;
baris,kolom,pil : integer;
procedure isimatrik;
var i,j : integer;
{ALGORITMA}
begin
writeln('Penentuan ORDO MATRIK I');
write('Masukan banyak baris matrik I = ');readln(baris);
write('Masukan banyak kolom matrik I = ');readln(kolom);
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
readln(matrikI[i,j])
;
end; 79
clrscr
;
writel
write('Masukan banyak baris matrik II = ');readln(baris);
write('Masukan banyak kolom matrik II = ');readln(kolom);
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
readln(matrikII[i,j])
; end;
end;
procedure jumlahmatrik(m1,m2 : data);
var hasil : data;
i,j : integer;
begin
for i:=1 to
baris do
for j:=1 to kolom do
begin hasil[i,j]:=m1[i,j]
+m2[i,j]; end;
clrscr;
writeln('Hasil Penjumlahan
MATRIK'); for i:=1 to baris do
for j:=1 to kolom
do begin
gotoxy(j*10,i*5);
write(hasil[i,j]);
end;
end;
80
procedure kurangmatrik(m1,m2 : data);
var hasil : data;
i,j : integer;
begin
for i:=1 to
baris do
for j:=1 to kolom
do begin
hasil[i,j]:=m1[i,j]-
m2[i,j]; end;
clrscr;
writeln('Hasil Penjumlahan
MATRIK'); for i:=1 to baris do
for j:=1 to kolom
do begin
gotoxy(j*10,i*5);
write(hasil[i,j]);
end;
end;
{procedure kalimatrik(m1,m2 : data);}
var hasil : data;
i,j,z : integer;
begin
for i:=1 to
baris do
for j:=1 to kolom
do begin
hasil[i,j]:=0;
lxxxi
for z:=1 to baris do
hasil[i,j]:=hasil[i,j]+matrikI[i,z]*matrikII[z,j];
end;
clrscr;
writeln('Hasil Penjumlahan MATRIK');
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
write(hasil[i,j]);
end;
end.
begi
nwriteln(' MENU ');
writeln('(1) Penjumlahan Matrik ');
writeln('(2) Pengurangan ');
Matrik writeln('(3) Perkalian ');
Matrik('Pilihan =
write ');readln (pil);
clrscr;
case pil of
1 : begin
isimatrik;
jumlahmatrik(matrikI,matrikII)
; end;
2 : begin
isimatrik
;
kurangmatrik(matrikI,matrikII)
82
; end;
3 : begin
isimatrik
;
kalimatrik(matrikI,matrikII)
; end;
end;
SCREENSHOOT
end.

83
BAB XIX
PEMBAHASAN DAN JAWABAN SOAL-18
2.18 KASUS-18
A.PROBLEM
Buatlah algoritma dan program Pascal yang bisa menampilkan menginput
matriks ukuran N x M dengan perpindahan kursor dari kiri ke kanan , sbb :
INPUT MATRIKS (N x M)
N = ? <enter> M = ? <enter> contoh = 3 dan 5
>> Input :

B.ALGORITMA
PROBLEM :
o Judul:
PROGRA
M
MATRIK
o Input :
INPUT
NILAI N
o Proses :
MENCET
AK
NILAI N
oOutput : TERCETAK NILAI
KAMUS DATA:
o type Bil = ARRAY
o var: atrikI,matrikII : data,baris,kolom,pil : integer;procedure isimatrik
var i,j : integer;
ALGORITMA
writeln('Penentuan ORDO MATRIK 84
I');
write('Masukan banyak baris matrik I = ');readln(baris);
write('Masukan banyak kolom matrik I = ');readln(kolom);
for i:=1 to baris do
begin
gotoxy(j*10,i*5);
readln(matrikI[i,j])
; end;
SOURCE CODE

program matrik;
uses crt;
{Kamus
Data}
type data =
array[1..10,1..
10] of integer;
var matrikI,matrikII : data;
baris,kolom,pil : integer;
procedure isimatrik;
var i,j : integer;
{ALGORITMA}
begin
writeln('Penentuan ORDO MATRIK I');
write('Masukan banyak baris matrik I = ');readln(baris);
write('Masukan banyak kolom matrik I = ');readln(kolom);
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
readln(matrikI[i,j])
;
end; 85
clrscr
;
writel
write('Masukan banyak baris matrik II = ');readln(baris);
write('Masukan banyak kolom matrik II = ');readln(kolom);
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
readln(matrikII[i,j])
; end;
end;
procedure jumlahmatrik(m1,m2 : data);
var hasil : data;
i,j : integer;
begin
for i:=1 to
baris do
for j:=1 to kolom do
begin hasil[i,j]:=m1[i,j]
+m2[i,j]; end;
clrscr;
writeln('Hasil Penjumlahan
MATRIK'); for i:=1 to baris do
for j:=1 to kolom
do begin
gotoxy(j*10,i*5);
write(hasil[i,j]);
end;
end;
86
procedure kurangmatrik(m1,m2 : data);
var hasil : data;
i,j : integer;
begin
for i:=1 to
baris do
for j:=1 to kolom
do begin
hasil[i,j]:=m1[i,j]-
m2[i,j]; end;
clrscr;
writeln('Hasil Penjumlahan
MATRIK'); for i:=1 to baris do
for j:=1 to kolom
do begin
gotoxy(j*10,i*5);
write(hasil[i,j]);
end;
end;
{procedure kalimatrik(m1,m2 : data);}
var hasil : data;
i,j,z : integer;
begin
for i:=1 to
baris do
for j:=1 to kolom
do begin
hasil[i,j]:=0;
lxxxvii
for z:=1 to baris do
hasil[i,j]:=hasil[i,j]+matrikI[i,z]*matrikII[z,j];
end;
clrscr;
writeln('Hasil Penjumlahan MATRIK');
for i:=1 to baris do
for j:=1 to kolom do
begin
gotoxy(j*10,i*5);
write(hasil[i,j]);
end;
end.
begi
nwriteln(' MENU ');
writeln('(1) Penjumlahan Matrik ');
writeln('(2) Pengurangan ');
Matrik writeln('(3) Perkalian ');
Matrik('Pilihan =
write ');readln (pil);
clrscr;
case pil of
1 : begin
isimatrik;
jumlahmatrik(matrikI,matrikII)
; end;
2 : begin
isimatrik
;
kurangmatrik(matrikI,matrikII)
88
; end;
3 : begin
isimatrik
;
kalimatrik(matrikI,matrikII)
; end;
end;
SCREENSHOOT
end.

89
BAB XX
PEMBAHASAN DAN JAWABAN SOAL-19
2.19 KASUS-19
A.PROBLEM
Buatlah algoritma dan program Pascal penjumlahan dan pengurangan dua
matriks (N x M) dengan data otomatis menggunakan ilustrasi berikut :
INPUT UKURAN MATRIKS (N x M) : N = ? <enter> M = ? <enter>
>> Matriks A : Matriks B :

Matriks A + B : Matriks A - B :

B.ALGORITMA
PROBLEM :
o Judul:
PERKALI
AN
MATRIXS
o Input :
INPUT
NILAI
o Proses :
o MENCET
var: m1 :array[1..20, 1..20] of longint; m2 :array[1..20, 1..20] of
longintAK m3 :array[1..20, 1..20] of longint; n :array[1..2] of integer;
NILAI
m :array[1..2] of
oOutput
integer;
: TERCETAK NILAI
KAMUS DATA:
o type Bil = INTEGER 90
ALGORITMA
clrscr;
for k := 1 to 2 do begin;
write('banyak baris matriks ke-', k, ' : ');
readln(m[k]);
write('banyak kolom matriks ke-', k, ' : ');
readln(n[k]);
end;
if (n[1] <> m[2]) then
writeln('tidak bisa dikalikan!')
else begin
writeln('matriks pertama : ');
y := 6;
for i := 1 to m[1] do begin
x := 8;
for j := 1 to n[1] do begin
gotoxy(x,y);
readln(m1[i,j]);
x := x + 8;
end;

91
SOURCE CODE
program perkalian_matriks;
uses crt;
var
m1 :array[1..20, 1..20] of longint;
m2 :array[1..20, 1..20] of longint;
m3 :array[1..20, 1..20] of longint;
n :array[1..2] of integer;
m :array[1..2] of integer;

i, j, x, y, k,L :
integer;
begin
clrscr;
for k := 1 to 2 do begin;
write('banyak baris matriks ke-', k, ' : ');
readln(m[k]);
write('banyak kolom matriks ke-', k, ' : ');
readln(n[k]);
end;
if (n[1] <> m[2]) then
writeln('tidak bisa dikalikan!')
else begin
writeln('matriks pertama : ');
y := 6;
for i := 1 to m[1] do begin
x := 8;
for j := 1 to n[1] do begin
92
gotoxy(x,y);
readln(m1[i,j]);
x := x + 8;
end;
y := y + 1;
end;

writeln('matriks kedua : ');


y := y + 1;
for i := 1 to m[2] do begin
x := 8;
for j := 1 to n[2] do begin
gotoxy(x,y);
readln(m2[i,j]);
X := X + 8;
end;
y := y + 1;

end;

writeln('proses perkalian');
y := y + 1;
for i := 1 to m[1] do begin
x := 2;
for j := 1 to n[2] do begin
m3[i,j] := 0;
for l := i to n[1] do
begin; 93
m3[i,j] := m3[i,j] + (m1[i,l] * m2[l,j]);
gotoxy(x,y);
write(m1[i,l], ' . ', m2[l,j]);
if l < n[1] then begin
write(' + ');
end;
x := x + 12;
end;
x := x + 15;
end;
y := y + 1;
end;

y := y + 1;
for i := 1 to m[1] do begin
x := 2;
for j := 1 to n[2] do begin
for l := 1 to n[1] do begin;
gotoxy(x,y);
write(m1[i,l] * m2[l,j]);
if l < n[1] then begin
write(' + ');
end;
x := x + 12;

end;
94
x := x + 15;

end;
y := y + 1;

end;

writeln;
writeln('perkalian matriks : ');
for i := 1 to m[1] do begin
for j := 1 to n[2] do
write(m3[i,j]:8);
writeln;
end;
end;

readln;
end.
SCREENSHOOT

95
BAB XXI
PEMBAHASAN DAN JAWABAN SOAL-20
2.20 KASUS-20
A.PROBLEM
Buatlah algoritma dan program Pascal perkalian dua matriks (N x M)
dengan data otomatis menggunakan ilustrasi berikut
>>INPUT UKURAN MATRIKS-1 (M x R) : M = ? <enter> R = ? <enter>
>>INPUT UKURAN MATRIKS-2 (R x N) : R = otomatis N = ? <enter>
>> Matriks-1 : Matriks -2 :

Matriks A x B : Matriks B x A :

B.ALGORTIMA
PROBLEM :
o Judul:
PERKALI
AN
MATRIXS
o Input :
INPUT
NILAI
o Proses :
o MENCET
var: m1 :array[1..20, 1..20] of longint; m2 :array[1..20, 1..20] of
longintAK m3 :array[1..20, 1..20] of longint; n :array[1..2] of integer;
NILAI
m :array[1..2] of
oOutput : TERCETAK NILAI
integer;
KAMUS DATA:
o type Bil = INTEGER

96
ALGORITMA
clrscr;
for k := 1 to 2 do begin;
write('banyak baris matriks ke-', k, ' : ');
readln(m[k]);
write('banyak kolom matriks ke-', k, ' : ');
readln(n[k]);
end;
if (n[1] <> m[2]) then
writeln('tidak bisa dikalikan!')
else begin
writeln('matriks pertama : ');
y := 6;
for i := 1 to m[1] do begin
x := 8;
for j := 1 to n[1] do begin
gotoxy(x,y);
readln(m1[i,j]);
x := x + 8;
end;

97
SOURCE CODE
program perkalian_matriks;
uses crt;
var
m1
:
arr
ay[
1..
20,
1..
20
]
of
i, j, x, y, k,L :
lon integer;
begingin
t; clrscr;
m2
for k:array[1..20, 1..20] of longint;
:= 1 to 2 do begin;
m3 write('banyak
:array[1..20, baris
1..20]matriks
of longint;
ke-', k, ' : ');
n :array[1..2] of integer;
readln(m[k]);
m :array[1..2] ofkolom
write('banyak integer;
matriks ke-', k, ' : ');
readln(n[k]);
end;
if (n[1] <> m[2]) then
writeln('tidak bisa dikalikan!')
else begin
writeln('matriks pertama : ');
y := 6;
for i := 1 to m[1] do begin
x := 8;
xcvii
i
for j := 1 to n[1] do begin
gotoxy(x,y);
readln(m1[i,j]);
x := x + 8;
end;
y := y + 1;
end;

writeln('matriks kedua : ');


y := y + 1;
for i := 1 to m[2] do begin
x := 8;
for j := 1 to n[2] do begin
gotoxy(x,y);
readln(m2[i,j]);
X := X + 8;
end;
y := y + 1;

end;

writeln('proses perkalian');
y := y + 1;
for i := 1 to m[1] do begin
x := 2;
for j := 1 to n[2] do begin
m3[i,j] := 0;
xci
x
for l := i to n[1] do begin;
m3[i,j] := m3[i,j] + (m1[i,l] * m2[l,j]);
gotoxy(x,y);
write(m1[i,l], ' . ', m2[l,j]);
if l < n[1] then begin
write(' + ');
end;
x := x + 12;
end;
x := x + 15;
end;
y := y + 1;
end;

y := y + 1;
for i := 1 to m[1] do begin
x := 2;
for j := 1 to n[2] do begin
for l := 1 to n[1] do begin;
gotoxy(x,y);
write(m1[i,l] * m2[l,j]);
if l < n[1] then begin
write(' + ');
end;
x := x + 12;

c
end;
x := x + 15;

end;
y := y + 1;

end;

writeln;
writeln
('perkal
ian
matriks
: ');
for i := 1 to m[1] do begin
for j := 1 to n[2] do
write(m3[i,j]:8);
writeln;
end;
end;

SCREENSHOOT
re
adln;
end.

10
1
SOAL-3 : KASUS GAME

Buatkan program Pascal yang dapat menebak 4 warna dengan skenario dan
ketentuan berikut :
(1) Mula-mula program akan membuat 4 warna secara berurutan secara
random dan disembunyikan. Misalkan W1. W2, W3, dan W4.
(Warna-warna W mungkin sama mungkin tidak). Warna-warna yang
digunakan 10 warna dikodekan sebagai berikut :
1=Merah, 2= Putih, 3=Hitam,4=kuning, 5=Hijau, 6=Biru, 7=Coklat,
8=Ungu, 9=Pink, 10=cyan

(2) Program menciptakan area sebanyak 4 buah untuk menginput


tebakan (T1, T2, T3, dan T4) dari penebak/pemain dan diberi
kesempatan 5 kali peluang menebak.
Tebakan yang dianggap benar adalah tebakan yang warna dan
urutannya cocok denganwarna yang disembunyikan.
(3) Program akan merespon setiap jawaban (4 buah tebakan sekaligus)
sebagai berikut :
- jika 4 tebakannya benar maka komputer akan menghentikan
program dengan memberikanpesan : ”100% benar” dan ”Oke,
Anda berhasil menebak semua warna ”
- Jika hanya sebagian yang benar maka komputer akan
memberi kesempatan menebak lagisampai semuanya benar
dengan memberi pesan :
o ”25 % OK” jika yang benar hanya 1, ”50 % OK ” jika
yang benar hanya 2, dan ”75% OK ”jika yang benar hanya
3.
oMemberikan tanda (menulis warna yang tebakannya benar)
pada langkah selanjutnya,sehingga yang sudah benar tidak
perlu ditebak lagi.
Program akan mengulangi langkah (2) dan (3) sampai dengan jumlah
tebakan
yang diijinkan (misalnya 5 X menebak) sudah habis

10
2
Ilustrasi : Tampilan awal GAME:
1=Merah, 2= Putih, 3=Hitam, 4=kuning,
5=Hijau, 6=Biru, 7=Coklat, 8=Ungu,
   
9=Pink, 10=cyan ( misal  = 2 3 4 5 )
Tebakan-1 : ? <enter> ? <enter> ? <enter> ? <enter> -
Tebakan-2 : ... ... .. ..
Tebakan-3 : ... ... .. ..
Tebakan-4 : ... ... .. ..
Tebakan-5 : ... ... .. ..

Komentar

Input ke-1 :
1=Merah, 2= Putih, 3=Hitam, 4=kuning,
5=Hijau, 6=Biru, 7=Coklat, 8=Ungu,
   
9=Pink, 10=cyan ( misal  = 2 3 4 5 )
Tebakan-1 : 1<enter> 3 <enter> 6 <enter> 9 <enter> 25 %benar
Tebakan-2 : ... ... .. ..
Tebakan-3 : ... ... .. ..
Tebakan-4 : ... ... .. ..
Tebakan-5 : ... ... .. ..

Komentar

Input ke-2/3/4 : (Behasil)


1=Merah, 2= Putih, 3=Hitam, 4=kuning,
5=Hijau, 6=Biru, 7=Coklat, 8=Ungu,
2 3 4 5
9=Pink, 10=cyan ( misal  = 2 3 4 5 )
Tebakan-1 : 1 3 6 9 25 %benar
Tebakan-2 : 2<enter> 3 <enter> 7 <enter> 8 <enter> 50 %benar
Tebakan-3 : 2<enter> 3 <enter> 8 <enter> 9 <enter> 50 %benar
Tebakan-4 : 2<enter> 3 <enter> 4 <enter> 5 <enter> 100 %benar
Tebakan-5 : ... ... .. ..

HOREE ANDA BERHASIL MENEBAK ….!!!

Input ke-2/3/4/5 : (Gagal)


1=Merah, 2= Putih, 3=Hitam, 4=kuning,
5=Hijau, 6=Biru, 7=Coklat, 8=Ungu,
2 3 4 5
9=Pink, 10=cyan ( misal  = 2 3 4 5 )
Tebakan-1 : 1 3 6 9 25 %benar
Tebakan-2 : 2<enter> 3 <enter> 7 <enter> 8 <enter> 50 %benar
Tebakan-3 : 2<enter> 3 <enter> 8 <enter> 9 <enter> 50 %benar
Tebakan-4 : 2<enter> 3 <enter> 9 <enter> 10<enter> 50 %benar
Tebakan-5 : 2<enter> 3 <enter> 10<enter> 5 <enter> 75 %benar

MAAF TEBAKAN ANDA : GAGAL!!!

10
3
A.PROBLEM
PROBLEM :

 Judul : Program tebak warna


 Input : Tebak t1,t2,t3,t4
 Proses: Pengulangan repeat until,traversal,instruksi,if
then,randomize
 Output: Tercetak persentase benar salah tebakan

KAMUS DATA:

 Constanta // warna : array[1…10] of string

={‘merah’,’putih’,’hitam’,’kuning’,’hijau’,'
biru','coklat','ungu','pink','cyan');
 Type nomor : string;

bilangan : byte;
karakter : char;
 Variable :

 var no warna :nomor;

o score,t1,t2,t3,t4,y,w1,w2,w3,w4 :byte;

o x,ulang :karakter;

o tebak1,tebak2,tebak3,tebak4 :boolean;

ALGORITMA:

BEGIN;
gotoxy(60,2); writeln('1=merah');
gotoxy(60,3); writeln('2=putih');
gotoxy(60,4); writeln('3=hitam');
gotoxy(60,5); writeln('4=kuning');
gotoxy(60,6); writeln('5=hijau');
gotoxy(60,7); writeln('6=biru');
gotoxy(60,8); writeln('7=coklat');

10
4
gotoxy(60,9); writeln('8=ungu');
gotoxy(60,10);writeln('9=pink');
gotoxy(60,11);writeln('10=cyan');
gotoxy(2,15); writeln('tebakan-1:');
gotoxy(2,16); writeln('tebakan-2:');
gotoxy(2,17); writeln('tebakan-3:');
gotoxy(2,18); writeln('tebakan-4:');
gotoxy(2,19); writeln('tebakan-5:');
gotoxy(2,20); writeln('Komentar');
score:=0;
for y:=1 to 4 do
begin
randomize;
w1:=random(10);

w2:=random(10);

w3:=random(10);

w4:=random(10);
nowarna:=warna[
w1];
gotoxy(14,13);w
rite('?');
nowarna:=warna[
w2];
{Input :tebak t1.t2.t3.t4}
gotoxy(19,13);w
{Proses :pengulangan repeat until,traversal,instruksi if
rite('?');
then,randomize}
nowarna:=warna[
{Output w3];
:Persentase benar salah tebakan}
gotoxy(24,13);w
{---KAMUS rite('?');
DATA---}
uses crt;nowarna:=warna[
const w4];gotoxy(29,1
3);write('?');
warna:
end;
array[1..
10] of
SOURCE
string CODE 10
Program Tebak_warna; 5
=('merah'
,'putih',
'hitam','
kuning','
hijau',
'biru','coklat','ungu','pink','cyan');
type nomor = string;
bilangan = byte;
karakter =
char; :nomor;
var nowarna
score,t1,t2,t3,t4,y,w1,w2,w3,w4 :byte;
x,ulang :karakter;
tebak1,tebak2,tebak3,tebak4 :boolean;
{---ALGORITMA---}
begin
repeat
clrscr;
gotoxy(60,2); writeln('1=merah');
gotoxy(60,3); writeln('2=putih');
gotoxy(60,4); writeln('3=hitam');
gotoxy(60,5); writeln('4=kuning');
gotoxy(60,6); writeln('5=hijau');
gotoxy(60,7); writeln('6=biru');
gotoxy(60,8); writeln('7=coklat');
gotoxy(60,9); writeln('8=ungu');
gotoxy(60,10);writeln('9=pink');
gotoxy(60,11);writeln('10=cyan');
gotoxy(2,15); writeln('tebakan-1:');
gotoxy(2,16); writeln('tebakan-2:');
gotoxy(2,17); writeln('tebakan-3:');
gotoxy(2,18); writeln('tebakan-4:');
gotoxy(2,19); writeln('tebakan-5:');
gotoxy(2,20); writeln('Komentar');
score:=0;
for y:=1 to 4 do
begin
randomize;

10
6
w1:=random(10);

w2:=random(10);

w3:=random(10);

w4:=random(10);
nowarna:=warna[
w1];
gotoxy(14,13);w
rite('?');
nowarna:=warna[
w2];
gotoxy(19,13);w
rite('?');
nowarna:=warna[
w3];
gotoxy(24,13);w
rite('?');
nowarna:=warna[w4];gotoxy(29,13);write('?');
end;
gotoxy(14,15);
readln(t1);{//I}
if(t1=w1)then{//P}
begin
gotoxy(34,15
);
score:=score+25;
write('B');
gotoxy(14,
13);
write(w1);
tebak1:=true;
end
else
gotoxy(19,13);
begin
gotoxy(34, cvii
15);
write('S');
tebak1:=false;
end;
write(w2);
tebak2:=true;
end else
begin
gotoxy(37,15);
write('S');
tebak2:=false;
end;
gotoxy(24,15);
readln(t3);
if(t3=w3)then
begin
gotoxy(41,15);
score:=score+25;
write('B');
gotoxy(24,13);
write(w3);
tebak3:=true;
end else
begin
gotoxy(41,15);
write('S');
tebak3:=false;
end;
gotoxy(29,15);
readln(t4);
if(t4=w4)then
begin
gotoxy(45,
15);
score:=score+25;
write('B');
gotoxy(29,13);
write(w4);

cviii
tebak4:=true;
end else
begin
gotoxy(45,1
5);
write('S');
tebak4:=false;
end;
gotoxy(48,15);write('=',score,'%');
{//Percobaan Ke-2}
if(tebak1=false)
then begin
gotoxy(14,16);
readln(t1)
;
if(t1=w1)then
begin
gotoxy(34,16)
;
score:=score+25;
write('B');
gotoxy(14,13);
write(w1);
tebak1:=true;
end
else
begin
gotoxy(34,1
6);
write('S');
tebak1:=false;
end;
end;
if(t2=w2)then
if(tebak2=false)then
cix
begin
gotoxy(19,1
6);
readln(t2);
begin
gotoxy(37,16);
score:=score+25;
write('B');
gotoxy(19,13);
write(w2);
tebak2:=true;
end else
begin
gotoxy(37,16);
write('S');
tebak2:=false;
end;
end;
if(tebak3=false)
then begin
gotoxy(24,1
6);
readln(t3);
if(t3=w3)then
begin
gotoxy(41,16)
;
score:=score+25;
write('B');
gotoxy(24,13);
write(w3);
tebak3:=true;
end
else
begin
gotoxy(41,1

end; 6);
write('S');
cx
tebak3:=false;
end;
if(tebak4=false) then
begin
gotoxy(29,16);
readln(t4);
if(t4=w4)then
begin
gotoxy(45,16);
score:=score+25;
write('B');
gotoxy(29,13);
write(w4);
tebak4:=true;
end else
begin
gotoxy(45,16
);
write('S');
tebak4:=false;
end;
gotoxy(48,16);
write('=',score,'%');
end;
{//Percobaan ke-3}
if(tebak1=false)
then begin
gotoxy(14,17);
readln(t1)
;
if(t1=w1)then
begin
gotoxy(34,17)
;
score:=score+25;
write(w1);
write('B');
cxi
gotoxy(14,13);
tebak1:=true;
end else
begin
gotoxy(34,1
7);
write('S');
tebak1:=false;
end;
end;
if(tebak2=false)t
hen begin
gotoxy(19,1
7);
readln(t2);
if(t2=w2)t
hen begin
gotoxy(37,17)
;
score:=score+25;
write('B');

gotoxy(19,13);
write(w2);
tebak2:=true;
end
else
begin
gotoxy(37,1
7);
write('S');
tebak2:=false;
end;
end;
begin
if(tebak3=false)
cxii
then begin
gotoxy(24,17
);
readln(t3);
gotoxy(41,17);
score:=score+25;
write('B');
gotoxy(24,13);
write(w3);
tebak3:=true;
end else
begin
gotoxy(41,17
);
write('S');
tebak3:=false;
end;
end;
if(t
ebak4=f
alse)
then
begi
n
gotoxy(29,1
7);
readln(t4);
if(t4=w4)then
begin
gotoxy(45,17)
;
score:=score+25;
write('B');
gotoxy(29,13);
write(w4);
tebak4:=true;
end
else
write('=',score,'%');
begin
gotoxy(45,1
cxiii
7);
write('S');
tebak4:=false;
end;
{//Percobaan ke-4}
if(tebak1=false) then
begin
gotoxy(14,18);
readln(t1);
if(t1=w1)then
begin
gotoxy(34,18);
score:=score+25;
write('B');
gotoxy(14,13);
write(w1);
tebak1:=true;
end else
begin
gotoxy(34,18);
write('S');
tebak1:=false;
end;
end;
if(tebak2=false)t
hen begin
gotoxy(19,1
8);
readln(t2);
if(t2=w2)t
hen begin
gotoxy(37,18)
;
score:=score+25;
write('B');
tebak2:=true;
gotoxy(19,13);
cxiv
write(w2);
end else
begin
gotoxy(37,18);
write('S');
tebak2:=false;
end;
end;
if(tebak3=false)
then begin
gotoxy(24,18
);
readln(t3);
if(t3=w3)then
begin
gotoxy(41,18);

score:=score+25;
write('B');
gotoxy(24,13
); write(w3);
tebak3:=true;
end else
begin
gotoxy(41,18
);
write('S');
tebak3:=false;
end;
end;
if(tebak4=false)
then begin
gotoxy(29,18);
readln(t4)
gotoxy(45,18);
;
cxv
if(t4=w4)then
begin
score:=score+25;
write('B');
gotoxy(29,13);
write(w4);
tebak4:=true;
end else
begin
gotoxy(45,18);
write('S');
tebak4:=false;
end;
gotoxy(48,18);
write('=',score,'%');
end;
{//Percobaan ke-5}
if(tebak1=false)
then begin
gotoxy(14,1
9);
readln(t1);
if(t1=w1)then
begin
gotoxy(34,19)
;
score:=score+25;
write('B');
gotoxy(14,13);
write(w1);
tebak1:=true;
end
else
begin

end; gotoxy(34,1
9);
cxvi
write('S');
tebak1:=false;
end;
if(tebak2=false)then
begin
gotoxy(19,19);
readln(t2);
if(t2=w2)then
begin
gotoxy(37,19);
score:=score+25;
write('B');
gotoxy(19,13);
write(w2);
tebak2:=true;
end else
begin
gotoxy(37,19);
write('S');
tebak2:=false;
end;
end;
if(tebak3=false)
then begin
gotoxy(24,19
);
readln(t3);
if(t3=w3)then
begin
gotoxy(41,19);

score:=score+25;
write('B');
gotoxy(24,13);
write(w3);
tebak3:=true;
cxvii
end else
begin
gotoxy(41,19);
write('S');
tebak3:=false;
end;
end;
if(tebak4=false)
then begin
gotoxy(29,1
9);
readln(t4);
if(t4=w4)then
begin
gotoxy(45,19)
;
score:=score+25;
write('B');

gotoxy(29,13);
write(w4);

tebak4:=true;
end
else
begin
gotoxy(45,1
9);
write('S');
tebak4:=false;
end;
gotoxy(48,19);
write('=',score,'%');
end;
if(score=100)t cxviii
hen begin
gotoxy(29,1
4);
writeln('Oke,Anda berhasil menebak semua warna');
begin
gotoxy(29,20); writeln('MAAF TEBAKAN ANDA: GAGAL!!!');
end;
gotoxy(19,20);
writeln(score,'% OK');
gotoxy(19,21);
write('Mau main lagi?(y/t)');
read(ulang);
until(ulang='T')or(ulang='t');
readln;
end.

SCREENSHOOT

119
PENUTUP
Assalamualaikum wr,wb
Dengan selesainya laporan tengah semester dan ujian akhir semester tahun
ajaran 2022, kami ucapkan terima kasih kepada semua pihak yang telah
membatu dalam membuat laporan, terutama kepada bapak dosen yang telah
membatu dan membimbing saya selama mata kuliah belajar, dan kepada orang
tua yang selalu memberi dukungan dan motivasi untuk semangat dan
menjalankan dengan ikhlas.
Saya mengucapkan terima kasih kepada semua orang yang telah membantu
saya dalam menyelesaikan laporan manager tengah semester dan ujian akhir
semester.
Saya sadar bahwa laporan ini masih kurang sempurna karena itu saya
mengharapkan kritik dan saran dari bapak selaku dosen pengampu algoritma,
serta bimbingan yang lebih membangun lagi. Untuk itu juga saya meminta
maaf apabila ada kesalahan kata kata dan pengetikan karena kami masih
dalam tahap pembelajaran.
Laporan ini di buat berdasarkan materi yang telah di terima selama mata kuliah
dilaksanakan.
Wassalamualaikum wr, wb

120
BIODATA

Nama : ADRIANSYAH

Tempat,tanggal lahir : 16 NOVEMBER TASIKMALAYA

Jenis kelamin : LAKI LAKI

Agama : Islam

Golongan darah :B

Status : Mahasiswa

Kewarganegaraan : Imdonesia

Hobby : BERENANG

Cita – cita : PROGRAMMER

Alamat : Kp. Pasir jaya, rt/rw 004/006, Kel.


Sukajaya, Kec.Purbaratu, Kota Tasikmalaya, Prov. Jawa barat

RIWAYAT PENDIDIKAN
NO PENDIDIKAN LULUSAN

1 SD NEGERI PASIRJAYA 2016


2 MTS MU’MIN MASHUM 2019
3 SMK NEGERI 4 2022
PENGALAMAN TERAKHIR
NO PENGALAMAN TEMPAT TAHUN
1 PRAKTEK KERJA DUTA LAPTOP 2021
LAPANGAN

121

Anda mungkin juga menyukai