Algo - D3 Adriansyah 32220084 Mi 2022
Algo - D3 Adriansyah 32220084 Mi 2022
ALGORITMA
ADRIANSYAH
32220084
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 :
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)
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);
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.
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
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.
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);
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.
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;
'); readln(jari_jari);
writeln;
write('Masukan Nilai jari jari lingkaran :
'); readln(jari_jari2);
writeln;
keliling := 2 * jari_jari *
jari_jari2;
writeln('HASIILL :
writeln;
,'π'); writeln;
WriteLn;
,'π'); 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
B.ALGORITMA
SKEMA ALGORITMA
PROBLEM:
Proses:s1 := t1*v1;
s2 := t2*v2;
s3 := t3*v3;
r := (v1-v2-v3)/(t1-t2-t3);
KAMUS DATA:
begin
SOURCE CODE
program menghitung_jarak_dan_ratarata;
uses crt;
begin clrscr;
writeln('program menghitung jarak tempuh');
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”
B.ALGORITMA
SKEMA ALGORITMA
PROBLEM:
KAMUS DATA:
Uses crt;
Constanta //tidak ada
Variable bil:integer;
ALGORITMA:
Begin
Else
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)
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:
ALGORITMA:
begin
IF (JK = 1) THEN
ELSE BEGIN
IF (JK = 2) THEN
END;
IF (JT = 1) THEN
ELSE BEGIN
IF (JK = 2) THEN
END.
SOURCE CODE
program menentukan_harga;
uses crt;
var
jk : real; jt : real;
begin
clrscr;
writeln('program harga');
writeln;
writeln('=========================');
begin
if (jk = 1) then
exit;
end;
begin
if (jk = 1) then
bp := 0/100*jt
bp := 10/100*jt
end;
begin
if (jk = 1) then
end;
begin
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>
B.ALGORITMA
SKEMA ALGORITMA
PROBLEM:
KAMUS DATA:
variabel : x : integer
ALGORITMA:
begin
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”
B.ALGORITMA
SKEMA ALGORITMA
PROBLEM:
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
kd : real;
begin
clrscr;
na := (30/100*uts)+(40/100*uas)+(20/100*tgs)+(10/16*kd);
writeln('=');
begin
if (na>100) then
B.ALGORITMA
PROBLEM:
KAMUS DATA:
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
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;
{KAMUS DATA}
uses crt;
li
{ALGORITMA}
Begin
clrscr;
Writeln('==========');
Writeln;
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
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;
{KAMUS DATA}
uses crt;
lv
var N,i,j,k,l : Bil;
{ALGORITMA}
Begin
clrscr;
Writeln('==================================');
Writeln;
Writeln;
Writeln('============');
Writeln('============');
Writeln;
k := 1;
l := 0;
FOR i := 1 to N do
begin
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;
lix
for i := 1 to n do begin
write('Bilangan ke-',i,' :');readln(x); tot := tot + x;
end;
rata := tot/n; writeln;
SOURCE CODE
Program menghitung_rata_rata;
uses crt;
var
n, x, i, tot : integer;
rata : real;
begin
clrscr;
writeln('====================');
writeln;
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('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.
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 *}
SOURCE CODE
{ ===== PROGRAM_INPUT_NILAI; ===== }
Program IPO_untuk_Akses_FILE;
{* Pendefinisian File Teks = TEXT Sederhana INTEGER *}
lxvi
Uses CRT;
Var F : FILE_TEXT;
X : DATA;
No : Nomor;
lxx
Delay(200);
End;
{Terminasi}
Gotoxy(01,No+5); 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('');
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+}
Const Mark1 =
'***'; Mark2 =
'***'; Mark3 =
999;
Var F : FILE_TEXT;
Xn : NIM; XNm:NAMA; XNl:NILAI;
No : Nomor;
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('- ');
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
');
(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
');
(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;
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
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
ciii
A.PROBLEM
PROBLEM :
KAMUS DATA:
={‘merah’,’putih’,’hitam’,’kuning’,’hijau’,'
biru','coklat','ungu','pink','cyan');
Type nomor : string;
bilangan : byte;
karakter : char;
Variable :
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
Agama : Islam
Golongan darah :B
Status : Mahasiswa
Kewarganegaraan : Imdonesia
Hobby :
BERENANG
RIWAYAT PENDIDIKAN
NO PENDIDIKAN LULUSAN
cxxi