Anda di halaman 1dari 129

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 mengajarkan seorang informatika untuk menjadi orang yang mandiri
,bertanggung jawab terhadap suatu masalah dan dapat bekerja dengan 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
Adriansyah
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.............................................................................................................19
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
BIODATA.....................................................................................................................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 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;
END.
SOURCE CODE
{program kasus 1;}
uses crt;
{ Kamus Data}
type
datamahasiswa = 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
{ADRIANSYAH 32220084 MI PAGI}
writeln(' ');
writeln('| PENGOLAHAN DATA ARRAY |');
writeln('|- -|');
writeln('|[1] ISI DATA |');
writeln('|[2] CETAK DATA |');
writeln('|[3] DATA TERBESAR |');
writeln('|[4] DATA TERKECIL |');
writeln('|[5] HASIL JUMLAH |');
writeln('|[6] RATA RATA |');
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 KAMUS DATA
Constanta = // TIDAK ADA
Type = REAL
Variable : A,B,C,D
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;

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> Input Sisi Siku –2 = ? <ENTER>


X
Y >> Luas Segitiga Siku-Siku = ….
>> Keliling Segitiga Siku-Siku = ….
B.ALGORITMA
PROBLEM:
o o o Judul : Program menampilkan luas dan keliling segitiga siku-siku
o Input : masukan alas dan masukan tingi

Proses : alas x tinggi / 2


Output : luas segitiga dan keliling segitiga siku-siku

KAMUS DATA:
o 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
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);
WriteLn('==============');
writeln('HASIILL : ');
WriteLn('==============');
writeln;
writeln('luas segitiga : ', 1 / 2 * a *
t); writeln;
WriteLn('==================');
WriteLn;
writeln('keliling segitiga : ',
keliling); readln;
end.
SCREENSHOOT
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
Output : luas lingkaran dan keliling lingkaran

KAMUS DATA:
Uses wincrt;
Constanta pi=3.14;
Variable r:integer
;
Luas,keliling :real;

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 Lingkaran : ', 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('masuka


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');

writeln('Jarak Tempuh ke-3 = ',s3:2:0,' km');

writeln('Rata – Rata Jarak Tempuh = ',r:6:2,' km/h');

readln;

end.

SCREENSHOOT
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
clrscr;
write ('masukan angka : '); readln (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')
else if (x=0) then
writeln('bilangan nol');
readln;
end;
end.
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;

begin
if (jk = 1) then

bp := 0/100*jt

else if (jk = 2) then

bp := 10/100*jt

end;

begin

if (jk = 1) then

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

else if (jk = 2) then

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

end;

begin

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
writeln('Harga yang harus di bayar : Rp ',jmt:2:0)
else if (jk = 2) then
writeln('Harga yang harus di bayar : Rp ',jmt:2:0);
end;
readln;
end.
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('Masukan 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
if (na >= 40) and (na < 50)then
writeln('D')
else begin
if (na >= 50) and (na < 65)then
writeln('C')
else begin
if (na >= 65) and (na < 80)then
writeln('B')
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('NILAI YANG ANDA MASUKAN SALAH')

else if(na<=0) then

writeln('Nilai 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


Output : Tercetak deret aritmatika

KAMUS DATA:

Constanta // Tidak ada uses crt;


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

xlvi
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
SOURCE 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

xlvi
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;
end.

SCREESHOOT

xlix
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 o o Judul :Program bilangan kelipatan
o Input :Bilangan kelipatan

Proses :Mencetak bilangan kelipatan


Output :Tercetak bilangan kelipatan

KAMUS DATA:
Constanta // tidak ada uses crt;
Type Bil = integer;
var kel,jumlah,hasil,barisan : Bil;

ALGORITMA:
Begin
clrscr;
Writeln('PROGRAM BILANGAN KELIPATAN'); Writeln('=======================
Writeln;

l
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
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;

li
{ALGORITMA}

Begin

clrscr;

Writeln('PROGRAM BILANGAN KELIPATAN'); Writeln('========================


Writeln;
write('Input Barisan Kelipatan : '); readln(kel); write('Input Banyaknya
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.

lii
SCREENSHOOT

liii
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
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
bilangan sebelumnya

B.ALGORITMA
PROBLEM :
o o o Judul : Program mencetak_bilangan_fibonacci
o Input : Banyak bilangan fibonacci

Proses : Mencetak bilangan fibonacci


Output : Tercetak bilangan Fibonacci

KAMUS DATA:
oo Constanta // tidak ada 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);

liv
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.
Readln;
SOURCE CODE
program mencetak_bilangan_fibonacci;

{Input : Banyak bilangan fibonacci}

{proses : Mencetak bilangan fibonacci}

{Output : Tercetak bilangan fibonacci }

{KAMUS DATA}

uses crt;

type Bil = integer;

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

lvi
Readln;

end.

SCREENSHOOT

lvii
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 o o Judul : Program menghitung_rata_rata Input : Menghitung nilai rata rata Proses: Mence
o Output: Tercetak nilai rata rata

KAMUS DATA:
o Constanta // tidak ada var
o n, x, i, tot : integer;
rata : real;

ALGORITMA:
begin clrscr;
writeln('Program Menghitung Rata-rata');
writeln('====================');

lviii
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 writeln('Rata-rata


: ',tot:6);
readkey; end. begin : ',rata:6:2);
clrscr;

writeln('Program Menghitung Rata-rata'); writeln('====================');


writeln;
write('Masukkan jumlah bilangan : ');readln(n); writeln;
writeln('Masukkan Bilangan : ');
tot := 0;

lix
for i := 1 to n do begin
write('Bilangan ke-',i,' :');readln(x); tot := tot + x;
end;
rata := tot/n; writeln;

writeln('Total Bilangan writeln('Rata-rata


: ',tot:6);
readkey; : ',rata:6:2);
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);

lx
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

lxi
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 o o Judul:program_Menghitung_akumulasi_faktorial_dan_polinom Input:Nilai N
o Proses:Mencetak nilai N
Output:tercetak nilai N

KAMUS DATA:
o type Bil = integer
o var akumu,faktor,N,polinom,no,hasil : integer

ALGORITMA
begin

lxii
clrscr;
Writeln('PROGRAM MENGHITUNG AKUMULASI,FAKTORIAL DAN
POLINOM');

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

{KAMUS DATA}
uses crt;

lxiii
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('=========');
Writeln;
no := 1;
FOR akumu := 1 to N do
begin
write(no , ' ');
no := no + 1;
end;
readln;
end.

lxiv
SCREENSHOOT

lxv
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 o o Judul:MENGINPUT NILAI RATA RATA Input:MENGINPUT NILAI Proses:MENCE
o Output:TERCETAK NILAI

KAMUS DATA:
o type Bil = integer
o var,DATA,FILE TEXT,NOMOR: integer

lxvi
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 ===== }

lxvi
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 ');
lxvi
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-Berikutnya}
lxix
No:= No+1;

lxx
Delay(200);
End;
{Terminasi}
Gotoxy(01,No+5); Writeln('--------------------');

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


Gotoxy(30,01); Writeln('PEMROSESAN
SEKUENSIAL'); Gotoxy(30,02); Writeln(' FILE TANPA
MARK-----------------------------------------');
Gotoxy(30,03); Writeln('--------------------');
Gotoxy(30,04); Writeln(' No. DATA ');
Gotoxy(30,05); Writeln(' 100 ');
Gotoxy(30,06); Writeln(' 90 ');
Gotoxy(30,07); Writeln(' 75 ');
Gotoxy(30,08); Writeln(' 55 ');
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 ');
lxx
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.

lxxi
SCREENSHOOT

lxxii
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’ dan menghitung berapa
banyaknya data dan berapa banyaknya huruf ’A’ dalam data tersebut.
>> HASIL PEMBACAAN 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‟.
>>
>> HASIL PERHITUNGAN
- Banyak huruf dalam file = ….
- Banyak huruf A ada …. buah

B.ALGORITMA
PROBLEM :
o o o Judul:PROGRAM RECORD Input: INPUT NILAI N Proses : MENCETAK NILAI N
o Output : TERCETAK NILAI

KAMUS DATA:
o type Bil = integer,STRING
o var,,FILE TEXT,NOMOR,NIM,NAMA: integer

lxxiii
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); 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
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;
lxxiv
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);

lxxv
If(IOResult<>0) Then Rewrite(F); {$i+}

lxxvi
{------------------------<<< 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. 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 >>> }


Gotoxy(42,01); Writeln(' PEMROSESAN SEKUENSIAL ');
Gotoxy(42,02); Writeln(' FILE TANPA MARK (data=<*,*,999>) ');
Gotoxy(42,03); Writeln('------------------------------------');
Gotoxy(42,04); Writeln('No. NIM NAMA NILAI');
Gotoxy(42,05); Writeln('------------------------------------');
lxxvii
lxxviii
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);W
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

lxxix
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 o o Judul: PROGRAM MATRIK Input: INPUT NILAI N Proses : MENCETAK NILAI N
o Output : 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 I'); write('Masukan banyak baris matrik I = ');readln(bar
write('Masukan banyak kolom matrik I = ');readln(kolom); for i:=1 to baris do
for j:=1 to kolom do

lxxx
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;
clrscr;
writeln('Penentuan ORDO MATRIK II');

lxxxi
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;
lxxxii
end;

lxxxiii
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
lxxxiv
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.
begin

writeln(' MENU ');


writeln('(1) Penjumlahan Matrik writeln('(2)
'); Pengurangan Matrik
writeln('(3) PerkalianMatrik ');

');
(pil);
write ('Pilihan = clrscr; ');readln
case pil of
1 : begin isimatrik;

jumlahmatrik(matrikI,matrikII); end;
2 : begin isimatrik;
kurangmatrik(matrikI,matrikII);
end;

lxxxv
3 : begin
isimatrik
;
kalimatrik(matrikI,matrikII);
end;
end;
SCREENSHOOT

lxxxvi
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 o o Judul: PROGRAM MATRIK Input: INPUT NILAI N Proses : MENCETAK NILAI N
o Output : 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 I'); write('Masukan banyak baris matrik I = ');readln(bar
write('Masukan banyak kolom matrik I = ');readln(kolom); for i:=1 to baris do
for j:=1 to kolom do

lxxxvi
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;
clrscr;

lxxxvi
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;
lxxxix
end;

xc
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
xci
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.
begin

writeln(' MENU ');


writeln('(1) Penjumlahan Matrik writeln('(2)
'); Pengurangan Matrik
writeln('(3) PerkalianMatrik ');

');
(pil);
write ('Pilihan = clrscr; ');readln
case pil of
1 : begin isimatrik;

jumlahmatrik(matrikI,matrikII); end;
2 : begin isimatrik;
kurangmatrik(matrikI,matrikII);
end;

xcii
3 : begin
isimatrik
;
kalimatrik(matrikI,matrikII);
end;
end;
SCREENSHOOT

xciii
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 o o Judul: PERKALIAN MATRIXS Input : INPUT NILAI
o Proses : MENCETAK NILAI
Output : TERCETAK NILAI

KAMUS DATA:
o type Bil = INTEGER
o 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;

xci
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;

xcv
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;

xcv
for j := 1 to n[1] do begin

xcv
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;
xcv
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;
xci
end;

c
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
SCREENSHOOT
; end.

ci
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 = ? R = ? <enter>
<enter>
N = ? <enter>
>>INPUT UKURAN MATRIKS-2 (R x N) : R = otomatis
>> Matriks-1 : Matriks -2 :

Matriks A x B : Matriks B x A :

B.ALGORTIMA
PROBLEM :
o o o Judul: PERKALIAN MATRIXS Input : INPUT NILAI
o Proses : MENCETAK NILAI
Output : TERCETAK NILAI

KAMUS DATA:
o type Bil = INTEGER
o 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;

cii
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;

ciii
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;
xcviii
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;

xcix
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('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
SCREENSHOOT
; end.

ci
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

cii
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,
2 3 4 5 5=Hijau, 6=Biru, 7=Coklat, 8=Ungu,
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,
2 3 4 5 5=Hijau, 6=Biru, 7=Coklat, 8=Ungu,
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!!!

ciii
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');

civ
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);write('?');
nowarna:=warna[w2]; gotoxy(19,13);write('?');
nowarna:=warna[w3]; gotoxy(24,13);write('?');
nowarna:=warna[w4];gotoxy(29,13);write('?');
end;
SOURCE CODE
Program Tebak_warna;
{Input :tebak t1.t2.t3.t4}
{Proses :pengulangan repeat until,traversal,instruksi if

then,randomize}
{Output :Persentase benar salah tebakan}
{---KAMUS DATA---}
uses crt; const
warna: array[1..10] of string
=('merah','putih','hitam','kuning','hijau',

cv
'biru','coklat','ungu','pink','cyan');
type nomor = string;
bilangan = byte;
karakter = char;
var nowarna :nomor;
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;

cvi
w1:=random(10);
w2:=random(10);
w3:=random(10);
w4:=random(10);
nowarna:=warna[w1]; gotoxy(14,13);write('?');
nowarna:=warna[w2]; gotoxy(19,13);write('?');
nowarna:=warna[w3]; gotoxy(24,13);write('?');
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
begin
gotoxy(34,15);
write('S');
tebak1:=false;
end;
gotoxy(19,15);
readln(t2);
if(t2=w2)then
begin
gotoxy(37,15);
score:=score+25;
write('B');
gotoxy(19,13);

cvii
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,15);
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,16);
write('S');
tebak1:=false;
end;
end;
if(tebak2=false)then
begin
gotoxy(19,16);
readln(t2);
if(t2=w2)then

cix
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,16);
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,16);
write('S');
tebak3:=false;
end;
end;

cx
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('B');
gotoxy(14,13);
write(w1);

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

cxii
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(tebak4=false) then
begin
gotoxy(29,17);
readln(t4);
if(t4=w4)then
begin
gotoxy(45,17);
score:=score+25;
write('B');
gotoxy(29,13);
write(w4);
tebak4:=true;
end else
begin
gotoxy(45,17);
write('S');
tebak4:=false;
end;
gotoxy(48,17);
write('=',score,'%');

cxiii
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)then
begin
gotoxy(19,18);
readln(t2);
if(t2=w2)then
begin
gotoxy(37,18);
score:=score+25;
write('B');
gotoxy(19,13);
write(w2);
tebak2:=true;

cxiv
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);
if(t4=w4)then
begin
gotoxy(45,18);

cxv
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,19);
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
gotoxy(34,19);
write('S');
tebak1:=false;
end;

cxvi
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;
end else

cxvi
begin
gotoxy(41,19);
write('S');
tebak3:=false;
end;
end;
if(tebak4=false) then
begin
gotoxy(29,19);
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,19);
write('S');
tebak4:=false;
end;
gotoxy(48,19);
write('=',score,'%');
end;
if(score=100)then
begin
gotoxy(29,14);
writeln('Oke,Anda berhasil menebak semua warna');
end else
if(score=0) then

cxvi
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

cxix
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

cxx
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

cxxi

Anda mungkin juga menyukai