Anda di halaman 1dari 38

1

MODUL 1
STRUKTUR PROGRAM PASCAL,
TIPE DATA, VARIABEL, DAN KONSTANTA
A. Teori
Struktur program Pascal terdiri dari tiga bagian (Gambar 1.1), yaitu:
Judul Progr!. Judul ini sifatnya adalah optional dan tidak signifikan.
Bgi" De#lr$i. agian ini digunakan bila program akan untuk
mendefinisikan berbagai macam identifier, seperti label, konstanta, tipe,
!ariabel, prosedur dan fungsi.
Bgi" De$#ri%$i. bagian ini digunakan untuk meletakkan seluruh instruksi
program. "nstruksi#instruksi yang akan diberikan untuk diker$akan ditulis di
antara %egin& dan %'nd(. Penulisan %'nd% diakhiri dengan tanda baca titik
().*). +ang perlu diperhatikan bah,a setiap instruksi diakhiri dengan tanda baca
titik koma ()-*).
T&el 1.1. No'$i B($ P$)l
Kelo!%o# No'$i P$)l Ke'.
1. .ipe /asar Boole"
B*'e 1 byte
S(or'i"' 1 byte
+ord 0 byte
I"'eger 0 byte
Lo"gi"' 1 byte
Rel
Dou&le
E,'e"ded
2har
String
string345
Re)ord
field1: '*%e-
field0: '*%e-
. . .
field4: '*%e-
end-
0. 6perator
a. 7ritmatika - Pen$umlahan

Pengurangan
. Perkalian
/ Pembagian
Di0 8asil bagi
1
Mod Sisa bagi
b. Perbandingan 1 9ebih kecil dari
12 9ebih kecil atau sama
dengan
3 9ebih besar dari
32 9ebih besar atau sama
dengan
2 Sama dengan
c. 9ogika
13
"o'
"d
or
,or
.idak sama dengan
:. ;omentar < komentar =
(> komentar >)
1. 9ain#lain Co"$'
T*%e
True
4l$e
B. 5$il Pre%r#'i#u!
1. ?embuat deklarasi masing#masing tipe dasar dalam ahasa Pascal@
- .ipe data oolean adalah tipe data yang mempunyai dua nilai yakni benar
dan salah.
Contoh:
Var
a:boolean;
begin
a:=true;
writeln(a);
writeln(not a);
readln
end.
Jika program ini dijalankan maka hasilnya True atau alse
- .ipe data "nteger adalah tipe data yang digunakan untuk !ariable dengan
data bentuk bilangan bulat.
Contoh:
!rogram "nteger;
Var
#$%$C:"nteger;
%egin
&rite('(asukkan nilai #=)); *eadln (#);
&rite('(asukkan nilai %=)); *eadln (%);
C:=#+%;
&riteln(',asil pengurangan =)$C);
-nd.
1
- .ipe data Aeal adalah tipe data yang digunakan untuk !ariable dengan data
bentuk bilangan desimal.
2ontoh :
Var
!anjang$ lebar$ luas: real;
begin
writeln (.program menghitung luas persegi panjang.);
write (.masukkan panjang= .); read (panjang);
write (.masukkan lebar= .); read (lebar);
luas := panjang/lebar;
write (.luas persegi panjang= .$ luas:0:1);
end.
- .ipe data 2har adalah tipe data yang digunakan untuk !ariable dengan data
bentuk karakter.
Contoh:
2ses 3rt;
Var # : Char;
%egin
&rite('#44# 5-V"));
# := *eadkey;
&riteln('#44# 5-V":)$ #);
*eadln;
-nd.
- .ipe data String adalah tipe data bentukan yang merupakan deretan karakter
yang membentuk satu kata atau satu kalimat, yang biasanya diapit oleh 0
tanda kutip.
Contoh:
Var
6ata7:string89:;
6ata0:string89:;
%egin
6ata7:=)#;;a);
6ata0 :=)5e<i);
&riteln(6ata7$6ata0);
-nd.
1
0. Penelusuran kebenaran penulisan nama !ariable#!ariable.
T&el 1.6. Pe"elu$ur" Ke&e"r" N! Vri&el
N! Vri&el Be"r/Sl( Al$" Pe!&e'ul"
7"ili1 enar
Penulisan nama !ariabel
tersebut memenuhi syarat
penulisan sebuah !ariabel
yang benar, yaitu boleh
menggunakan underscout (B)
8
A"g#1 enar ;arena dia,ali oleh 8uruf
9u!ur Salah
;arena dia,al Judul ditulis
dengan menggunakan simbol
Cmur
T"ggl l(ir Salah
;arena menurut penulisan
!ariabel yang benar tidak
diperbolehkan untuk
menggunakan spasi.
.anggallahir
:l$" Salah
Penulisan nama !ariabel tidak
boleh dia,ali dengan angka,
hanya dengan huruf atau garis
ba,ah.
7lasan1
Al!'7ru!( enar
;arena dalam penulisannya
boleh menggunakan
underscout(B)
#
M, enar
;arena sesuai dengan
penulisan a,al selalu dia,ali
oleh huruf.
#
:. ?en$elaskan aturan#aturan yang digunakan dalam penulisan nama !ariable.
Ja,aban:
- Penulisan nama variabel tidak boleh terlalu panjang, maksimal 63
karakter.
- Penulisan nama variabel hanya terdiri dari huruf, angka, garis bawah
(underscout).
- Penulisan nama variabel tidak boleh diawali dengan angka, simbol,
keyword dan spasi.
1. ?embuat sebuah algoritma untuk menghitung luas sebuah lingkaran,
(menggunakan deklarasi konstanta untuk menyimpan nilai Phi).
1
Ja,aban:
!"#$%$&'
(onst
Phi)3.*+,
#uas,r-real
!&"%'P&'
.asukkan jari/jari lingkaran (r)
0itung luas lingkaran dengan rumus #)phi1r1r
2ampilkan luas lingkaran
C. 5$il Pr#'i#u!
1. 8asil running program sederhana yang berisi deklarasi masing#masing
tipe dasar sesuai tugas prepraktikum no.1
Ja,aban:
0. 8asil running program untuk tugas prepratikum no.1 (9uas 9ingkaran)@
Ja,aban:
D. Tug$ A#(ir
1
1. ?embuat algoritma dan mener$emahkan dalam ahasa Pascal untuk
menghitung keliling lingkaran:
Ja,aban:
!"#$%$&'
(onst
Phi)3.*+,
"eliling,r-real
!&"%'P&'-
3 .asukkan jari/jari lingkaran (r)
3 0itung keliling lingkaran dengan rumus ")41phi1r
3 2ampilkan keliling lingkaran
8asil Aunning Program ;eliling 9ingkaran

1
MODUL 6
PEN;ELEKSIAN KONDISI
A. Teori
Pada umumnya satu permasalahan yang komplek memerlukan suatu
penyelesaian kondisi. /engan menyeleksi suatu kondisi, maka selan$utnya dapat
ditentukan tindakan apa yang harus dilakukan, tergantung pada hasil kondisi
penyeleksian. Jadi suatu aksi hanya diker$akan apabila persyaratan atau kondisi
tertentu terpenuhi.
. Pe"*ele#$i" S'u K$u$, dengan menggunakan struktur "D#.8'4:
Pada penyeleksian satu kasus, kondisi akan diseleksi oleh statemen if.
ila kondisi bernilai benar (true), maka aksi sesudah kata then (dapat berupa
satu atau lebih aksi) akan diproses. ila kondisi bernilai salah (false), maka tidak
ada aksi yang akan diker$akan. Statemen endif adalah untuk mempertegas
bagian a,al dan bagian akhir struktur "D#.8'4.
Gambar diagram alir penyelesaian satu kasus untuk struktur "D#.8'4
ditun$ukkan dalam Gambar 0.1 dan struktur penulisan dalam bahasa pascal
dapat dilihat dari Gambar 0.0.
G!&r 6.1. Digr! Alir S'ru#'ur Pe"*ele#$i" S'u K$u$ <I48T5EN=
IF
kondisi?
Aksi
THEN
salah
benar
1
&. Pe"*ele#$i" Du K$u$, menggunakan struktur "D#.8'4#'9S':
/alam struktur "D#.8'4#'9S', aksi* akan dilaksanakan $ika kondisi
bernilai benar (true), dan $ika kondisi bernilai salah (false) maka aksi4 yang
akan dilaksanakan. Statemen else menyatakan ingkaran (negation) dari kondisi.
Gambar diagram alir penyelesaian dua kasus untuk struktur "D#.8'4#'9S'
ditun$ukkan dalam Gambar 0.: dan struktur penulisan dalam bahasa pascal
dapat dilihat dari Gambar 0.1.
G!&r 6.>. Digr! Alir S'ru#'ur I48T5EN8ELSE
). Pe"*ele#$i" Tig K$u$ 'u Le&i( <Pe"*ele#$i" Ter$r"g=
Cntuk penyeleksian tiga kasus atau lebih $uga menggunakan struktur "D#
.8'4#'9S' sebagaimana halnya permasalahan dua kasus.
Gambar diagram alir penyelesaian tiga kasus untuk struktur "D#.8'4#'9S'
ditun$ukkan dalam Gambar 0.E dan struktur penulisan dalam bahasa pascal
dapat dilihat dari Gambar 0.F.
IF
kondisi?
THEN
salah
benar
ELSE
aksi2
aksi1
1
G!&r 6.?. Digr! lir dri $'ru#'ur 'ig #$u$ I48T5EN8ELSE <'er$r"g=
d. S'ru#'ur CASE. Struktur ini dapat digunakan untuk menganalisa
penyeleksian dua kasus atau lebih dan bentuknya adalah lebih sederhana
daripada struktur "D#.8'4#'9S' yang memiliki bentuk bertingkat#tingkat.
Gambar 0.G memperlihatkan Struktur 27S'.
"ondisi*, kondisi4, H kondisi5 dapat bernilai benar atau salah. .iap kondisi
diperiksa nilai kebenarannya mulai dari kondisi pertama sampai ditemukan
kondisi yang benar. Jika kondisi ke#k benar, maka aksi ke#k dilaksanakan,
selan$utnya keluar dari struktur 27S'.
B. 5$il Pre%r#'i#u!
1. ?en$elaskan pada kondisi apa sebaiknya struktur seleksi if dan
case digunakan serta apa perbedaan dari kedua struktur tersebut.
Ja,aban:
&ebaiknya struktur seleksi if digunakan untuk menganalisa penyeleksian
dua kasus atau lebih.
Perbedaan dari kedua struktur tersebut ialah - &truktur 'f memiliki
bentuk bertingkat/tingkat, sedangkan struktur (ase memiliki bentuk
lebih sederhana.
1
0. ?embuat algoritma untuk menentukan bilangan terbesar dari
tiga buah bilangan bulat yang dimasukkan melalui piranti masukan.
Ja,aban:
eklarasi
a,b,c-integer,
eskripsi
tulis(6.asukkan bilangan ke *- 6),
terbilang(6a7),
tulis(6.asukkan bilangan ke 4- 6),
terbaca(6b7),
tulis(.asukkan bilangan ke 3- 6),
terbilang(6c7),
if a8b then
maks (terbesar) a
else 9b : a;
maks (terbesar) b
9bandingkan maks dengan c;
'f c 8 maks then
.aks (terbesar) c
endif
write (terbesar)
selesai.
:. ?embuat algoritma kon!ersi dari nilai angka men$adi nama
hari.
Ja,aban:
Program<0ari,
eklarasi
a-integer,
eskripsi
tertulis(6.asukkan $ngka yang menunjukkan hari- =),
terbilang(6a7),
case *-readln(60ari yang anda pilih- &enin7),break, 9tulis >? s@d hari
minggu;
else -write (60ari yang anda pilih tidak ada7),break,
end. 9selesai;
1
C. 5$il Pr#'i#u!
1. 8asil running program untuk prepraktikum 0@ (Program
menentukan bilangan terbesar)
0. 8asil running program untuk prepraktikum :@
Ja,aban:
1
D. Tug$ A#(ir
1. ?embuat algoritma dan
mener$emahkan ke dalam ahasa Pascal untuk mengurutkan tiga buah
bilangan bulat (dari yang terkecil ke yang terbesar) yang dimasukkan
melalui piranti masukan. (7sumsi: ketiga bilangan yang dimasukkan adalah
bilangan yang berbeda).
Ja,aban:
0asil %unning Program .engurutkan $ngka
1
MODUL >
PENGULANGAN <LOOPING=
A. Teori
.erdapat dua model struktur pengulangan, yaitu:
1. Struktur Pengulangan .anpa ;ondisi (unconditional looping). /i dalam
struktur ini, instruksi#instruksi di dalam badan pengulangan diulangi se$umlah
kali yang dispesifikasikan ($umlah pengulangan sudah diketahui sebelum
eksekusi). 2ontoh: Struktur D6A.
0. Struktur Pengulangan /engan ;ondisi (conditional looping). /i dalam
struktur ini, $umlah pengulangan tidak diketahui sebelum eksekusi program.
+ang dapat ditentukan hanya kondisi berhenti pengulangan, artinya instruksi#
instruksi di dalam badan pengulangan diulangi sampai kondisi berhenti
terpenuhi. 2ontoh: Struktur I8"9' dan Struktur A'P'7..
?acam#macam struktur pengulangan:
. S'ru#'ur 4OR
Struktur pengulangan D6A digunakan untuk mengulang statemen atau
satu blok statemen berulang kali. Jumlah pengulangan diketahui atau dapat
ditentukan sebelum eksekusi. Cntuk mencacah sudah $umlah pengulangan
diperlukan sebuah !ariabel pencacah (counter).
entuk struktur D6A ada dua macam:
?enaik (ascending)
Pada struktur D6A menaik, nilai<awal harus lebih kecil atau sama dengan
nilai<akhir. Jika nilai<awal lebih besar dari nilai<akhir, maka badan
pengulangan tidak dimasuki. Pada a,alnya, pencacah diinisialisasikan
dengan nilai<awal.
?enurun (descending)
Pada struktur D6A menurun, nilai<akhir harus lebih besar atau sama dengan
nilai<awal. Jika nilai<akhir lebih kecil dari nilai<awal, maka badan
pengulangan tidak dimasuki. Pada a,alnya, pencacah diinisialisasikan
dengan nilai<akhir.
1
&. S'ru#'ur +5ILE
Pada struktur I8"9', aksi (atau runtunan aksi) akan dilaksanakan
berulang kali selama kondisi bernilai true. Jika kondisi bernilai false, badan
pengulangan tidak akan dilaksanakan, yang berarti pengulangan selesai. +ang
harus diperhatikan adalah pengulangan harus berhenti. Pengulangan yang tidak
pernah berhenti menandakan bah,a logika pemrograman tersebut salah.
Pengulangan berhenti apabila kondisi bernilai false. 7gar kondisi suatu saat
bernilai false, maka di dalam badan pengulangan harus ada instruksi yang
mengubah nilai !ariabel kondisi.
). S'ru#'ur REPEAT
Struktur ini mendasarkan pengulangan pada kondisi boolean. $ksi di
dalam badan pengulangan diulang sampai kondisi boolean bernilai true. /engan
kata lain, $ika kondisi boolean masih false, pengulangan masih terus dilakukan.
;arena proses pengulangan suatu saat harus berhenti, maka di dalam badan
pengulangan harus ada aksi yang mengubah nilai !ariabel kondisi.
B. 5$il Pre%r#'i#u!
*. ?en$elaskan perbedaan antara struktur pengulangan D6A, I8"9' dan
A'P'7..
Ja,aban:
Aor-
Aor o ( Pengulangan 2anpa "ondisi ) Aor do merupakan struktur
pengulangan dimana aksi dilakukan sebanyak hitungan pencacah
pengulangan. Pencacah pengulangan dapat diset sesuai dengan nilai yang
ingin kita mulai.
Bhile-
Pada struktur B0'#!, aksi (atau runtunan aksi) akan dilaksanakan
berulang kali selama kondisi bernilai true. Cika kondisi bernilai false, badan
pengulangan tidak akan dilaksanakan, yang berarti pengulangan selesai.
1
%epeat-
%epeat/Dntil ( Pengulangan dengan "ondisi ) %epeat berarti ulangi dan
until berarti sampai. Cadi, repeat/until adalah struktur pengulangan
dimana aksi dilakukan hingga kondisi ( persyaratan ) berhenti terpenuhi.
4. ?embuat algoritma untuk menampilkan deret bilangan gan$il antara J
sKd 1JJ.
Ja,aban:
eklarasi
a - integer
eskripsi
Cika a)* dan a kurang dari ) *EE maka a)aF4
2ampilkan (a)
3. ?embuat algoritma untuk menampilkan deret bilangan 1, E, L, 1:, ...
(berhenti $ika melebihi :JJ).
Ja,aban:
eklarasi
a - integer
ekripsi
#akukan a)aF+
2ampilkan(a)
0ingga a83EE
+. ?embuat algoritma untuk menampilkan deret bilangan 1, 1, 0, 1, 0, :, ...
(berhenti $ika sama dengan batas nilai tertentu yang dimasukkan melalui
piranti masukan).
Ja,aban:
$lgoritma eret<Gilangan
!"#$%$&'
nilai, a, b ) 'nteger,
!&"%'P&' -
'nput (6nilai ) 6),readln(nilai),
'nput a-)*, a-H)nilai, a-)aF*,
'nput b-)*, a-8)b, b-)bF*,
Dlangi (repeat) cetak (7nilai 6),
0ingga (until) 6nilai7
&elesai (end).
1
C. 5$il Pr#'i#u!
1. 8asil running program untuk tugas prepraktikum 0 (/eret Gan$il).
Ja,aban:
0. 8asil running program untuk tugas prepraktikum : (/eret ilangan).
Ja,aban:
1
D. Tug$ A#(ir
*. ?embuat algoritma dan mener$emahkan ke dalam ahasa Pascal untuk
membuat bentuk belah ketupat dari deretan angka berdasarkan batas nilai
yang dimasukkan melalui piranti masukan.
Ja,aban:
$#IJ%'2.$ 9Gelah "etupat;
!"#$%$&'
var
s,5,i,j,k-integer,
!&"%'P&'
mulai
tulis(Kprogram angka belah ketupatK),
tulis(Kmasukkan batas- K),readln(5),
tulis(Khasil belah ketupat deretan angka- K),
mulai
gunakan for i-)* to 5 do
begin
for k-)(5/*)downto i do
begin
write(K K),
end,
for j-) * to i do
begin
write(j,K K),
end,
begin
for j-)(i/*)downto * do
write(j,K K),
end,
writeln(K K),
end,
end,
begin
for i-)(5/*)downto * do
begin
for k-)(5/*) downto i do
begin
write(K K),
end,
for j-)* to i do
begin
write(j,K K),
end,
begin
for j-)(i/*)downto * do
write(j,K K),
end,
writeln(K K),
&elesai. 9tampilkan;
1
0$&'# %D55'5I
Program $ngka Gelah "etupat :
1
MODUL :
PROSEDUR DAN 4UNGSI
A. Teori
Seringkali dalam pembuatan program yang berukuran besar, program tersebut
dapat dipecah men$adi beberapa subprogramKmodul yang lebih kecil. .iap modul
dapat dipasangkan ke program lain yang membutuhkannya. Jenis modul program
ada dua macam, yaitu Prosedur dan Dungsi.
. Pro$edur
Prosedur adalah modul program yang menger$akan akti!itas yang
spesifik dan hasilnya diperoleh dengan membandingkan keadaan a,al dan
keadaan akhir pada pelaksanaan sebuah prosedur.
Sehingga pada setiap prosedur #ed" @l harus didefinisikan
sebelum rangkaian instruksi di dalam prosedur dilaksanakan dan #ed" #(ir
yang diharapkan setelah rangkaian instruksi dilaksanakan.
Struktur prosedur terdiri dari tiga bagian (Gambar 1.1), yaitu:
o Judul
o /eklarasi
o /eskripsiKadan Prosedur
2ara memanggil prosedur: 47?7BPA6S'/CA-
;etika 47?7BPA6S'/CA dipanggil, kendali program berpindah secara
otomatis ke prosedur tersebut. "nstruksi di dalam badan prosedur dilaksanakan.
Setelah semua instruksi selesai dilaksanakan, kendali program berpindah secara
otomatis ke instruksi sesudah pemanggilan prosedur.
erdasarkan maksud penggunaannya, terdapat tiga $enis parameter formal yang
disertakan di dalam prosedur, yaitu:
Pro$edur de"g" Pr!e'er M$u#"
Parameter masukan adalah parameter yang nilainya berlaku sebagai
masukan untuk prosedur. Pada parameter masukan, nilai parameter aktual
diisikan ke dalam parameter formal yang bersesuaian.
4ilai ini digunakan di dalam badan prosedur yang bersangkutan. 4ilai yang
dinyatakan oleh parameter masukan tidak dapat dikirim dalam arah sebaliknya.
2ara memanggil prosedur: 47?7BPA6S'/CA(parameterBaktual)-
1
Pro$edur de"g" Pr!e'er M$u#"/Kelur"
Parameter masukanKkeluaran adalah parameter yang berfungsi sebagai
masukan sekaligus keluaran bagi prosedur tersebut. ila prosedur yang
mengandung parameter keluaran dipanggil, nama parameter aktual di dalam
program pemanggil menggantikan nama parameter formal yang bersesuaian di
dalam prosedur. Jadi, nama parameter aktual akan digunakan selama
pelaksanaan prosedur.
7kibat penggunaan parameter masukanKkeluaran, bila parameter actual
diubah nilainya di dalam badan prosedur, maka sesudah pemanggilan prosedur
nilai parameter aktual di titik pemanggilan $uga berubah. "ni berbeda dengan
parameter masukan, yang dalam hal ini meskipun nilai parameter aktual di
dalam badan prosedur diubah, nilai parameter aktual tersebut tidak berubah di
titik pemanggilan.
2ara memanggil prosedur: 47?7BPA6S'/CA(parameterBaktual)-
&. 4u"g$i
Dungsi $uga merupakan modul program yang mempunyai tu$uan
spesifik. Dungsi memberikanKmengembalikan (return) sebuah nilai dan tipe
tertentu (tipe dasar atau tipe bentukan). Dungsi diakses dengan memanggil
namanya. Selain itu, fungsi $uga dapat mengandung daftar parameter formal.
Parameter pada fungsi selalu merupakan parameter masukan. Jenis
parameter masukan pada fungsi disebabkan oleh kenyataan bah,a parameter
pada fungsi merupakan masukan yang digunakan oleh fungsi tersebut untuk
menghasilkan nilai.
). Vri&el Glo&l d" Lo#l
Mariabel#!ariabel yang dideklarasikan di dalam bagian /eklarasi
Prosedur ataupun Dungsi bersifat %lokal& dan hanya dapat digunakan di dalam
ProsedurKDungsi yang melingkupinya sa$a.
Sedangkan !ariabel#!ariabel yang dideklarasikan di dalam program
utama bersifat %global& dan dapat digunakan di bagian manapun di dalam
program, baik di dalam program utama maupun di dalam ProsedurKDungsi.
1
B. 5$il Pre%r#'i#u!
1. ?enentukan perbedaan dari prosedur dan fungsi serta kapan
suatu prosedur dan fungsi itu dibuat dan digunakan.
Ja,aban:
a. Perbedaan antara prosedur dan fungsi-
fungsi harus di deklarasikan dengan tipenya, sedangkan prosedur tidak.
0al ini menunjukkan bahwa pada fungsi itu sendiri dapat menampung
nilai, sedangkan prosedur tidak.
b. "apan kita harus menggunakan prosedur dan fungsi-
Aungsi lebih tepat digunakan apabila modul program mengembalikan
sebuah nilai, sementara prosedur digunakan bila modul menghasilkan
efek netto dari (satu atau) sekumpulan aksi.
0. ?embuat algoritma bentuk belah ketupat dari deretan angka
berdasarkan batas nilai yang dimasukkan melalui piranti masukan dengan
menggunakan Prosedur.
Ja,aban:
!"#$%$&'
var
n-integer,
procedure bagian<atas,
var
k,y,L-integer,
!&"%'P&'
Gegin (start)
#angkah pertama input k-)* ke n aksi,tulis (6 6)
'nput L-)* ke n/k aksi 9membuat baris kosong di depan;, tulis (6 6)
'nput y-)* ke k aksi 9membuat bagian yg terisi sebelah kiri;, tulis (6y7),
end,
'nput y-)k/* turun ke * aksi 9membuat bagian yg terisi sebelah kanan;,
tulis (6y7), end,
#angkah kedua membuat procedure bagian bawah
k-)n/* turun ke * aksi, tulis (6 6),
L-)* ke n/k aksi 9membuat bagian kosong di depan;, tulis (6 6)
y-)* to k do 9 4. membuat bagian yang terisi sebelah kiri ;, tulis(6y7)
1
y-) k/* downto * do 9 3. membuat bagian yang terisi sebelah kanan ;
begin write (y),
tertulis (K Program 2ampil Gelah "etupatK ),
tertulis (K ////////////////////////////// K),
tertulis (KK),
tulis(K.asukkan Cumlah n - K),
terbaca(n),
tertulis (KK),
terttulis (K0asilnya -K),
Gagian<$tas,
Gagian<Gawah,
tulis (KK),
tulis (KK),
( - tulis (K.asukkan lagi M (y@t)K),
baca(lagi),
case (lagi) of
KyK,KyK -goto $,
KtK,KtK -goto b,
else
tertulis,
tertulis (KPilihan hanya y@t NK),
goto c,
terbaca,
G - end,
&elesai.
:. ?embuat algoritma untuk menghitung rumus#rumus persamaaan
kuadrat ( J
0
= + + c b? a? ) berikut ini:
- Aumus diskriminan ( c a b > > 1
0
= )
- Aumus mencari akar#akar persamaan (
a
c a b b
O
> 0
> > 1
0
1
+
= -
a
c a b b
O
> 0
> > 1
0
0

= ).
Setiap rumus di$adikan sebuah fungsi tersendiri dengan parameter#parameter
yang dimasukkan dari luar fungsi.
1
Ja,aban:
$lgoritma 0itung<%umus<iskriminan
!"#$%$&'
Par
ul-char, a,b,c-integer,
function
deskriminan(a,b,c-integer)-real,
!&"%'P&' -
.enentukan fungsi rumus<, yaitu -
" ) (bQ4) R +1a1c
) sSrt(")
Aungsi ini akan mempunyai nilai balik pada variabel .
o .embuat fungsi untuk menentukan nilai<O
*
yaitu -
O* ) (/b F )@(41a)
Aungsi ini akan mempunyai nilai balik pada variabel O*.
o .embuat fungsi untuk menentukan nilai<O
4
yaitu -
O4 ) (/b R )@(41a)
Aungsi ini akan mempunyai nilai balik pada variabel O4.
.embaca nilai dari user untuk variabel a, b, dan c.
o Dntuk hasil diskriminan, memanggil fungsi rumus<.
o Dntuk nilai O
*
dan O
4
memanggil fungsi nilai<O* dan nilai<O4.
o &elesai.
C. 5$il Pr#'i#u!
1. 8asil Aunning program untuk tugas
prepraktikum0 (elah ;etupat#Prosedur).
Ja,aban:
1
0. 8asil running program untuk tugas
prepraktikum : (Persamaan ;uadrat).
Ja,aban:
D. Tug$ A#(ir
?embuat algoritma dan mener$emahkan ke dalam ahasa Pascal untuk
menghitung bilangan faktorial dengan menggunakan teknik rekursif dan non#
rekursif.
Ja,aban:
1
*. $#IJ%'%2.$<A$"2J%'$#
!"#$%$&'-
n-byte
f-longint
Procedure factorial(input n-byte,output hasil-longint)
!"#%$&'-
0asil-integer
!&"%'P&'-
'f n H) * then
0asil *
!lse
Aactorial(n/*,hasil)
!ndif
!&"%'P&'-
%ead(n)
Aactorial(n,f)
Brite(f)
4. 0asil %unning Program Aaktorial
1
MODUL ?
LARIK <ARRAY=
A. Teori
9arik adalah tipe terstruktur yang terdiri dari se$umlah elemen#elemen yang
bertipe sama. anyaknya elemen dalam suatu larik ditun$ukkan oleh suatu indeks
yang harus merupakan tipe data yang menyatakan keterurutan, misalnya integer
atau karakter (karena ia menyatakan posisi data). .iap#tiap elemen di larik dapat
diakses langsung melalui indeksnya. Suatu larik memiliki $umlah elemen yang
$umlahnya tetap, sehingga $umlah elemen larik tidak dapat diubah selama
pelaksanaan program. Gambar E.1. memperlihatkan struktur deklarasi 9arik di
dalam ahasa Pascal.
(* DEKLARASI *)
var
NaaLarik ! array"1##$%lahELeen& of Ti'eEleen(
G!&r ?.1. S'ru#'ur De#lr$i B($ P$)l U"'u# Lri#
2ara mengacu elemen larik : 4ama9arik3indeks5
9arik dapat berupa larik satu dimensi ataupun lebih dari satu dimensi. ?atriks
merupakan contoh larik yang memiliki dimensi lebih dari satu. Struktur
penyimpanan matriks di dalam memori utama yang setiap indi!idu elemennya
diakses dengan menggunakan dua buah indeks (yang biasanya dikonotasikan
dengan baris dan kolom). ;arena matriks sebenarnya adalah larik, konsep umum
dari larik $uga berlaku untuk matriks, yaitu:
;umpulan elemen yang bertipe sama, dapat dapat berupa tipe dasar (integer,
real, boolean, char, dan string), atau tipe terstruktur seperti record.
Setiap elemen data dapat diakses secara langsung $ika indeksnya (baris dan
kolom) diketahui.
?erupakan struktur data yang statik, artinya $umlah elemennya sudah
dideklarasikan terlebih dahulu di dalam bagian /';97A7S" dan tidak bisa
diubah selama pelaksanaan program
'lemen matriks diakses melalui indeks baris dan indeks kolomnya. Jika
indeks baris dinyatakan dengan i dan indeks kolom dinyatakan dengan $, maka
notasi algoritmik untuk mengakses elemen pada baris i dan kolom $ adalah
namaBmatriks3i,$5
1
B. 5$il Pre%r#'i#u!
1. ?enyebutkan dan men$elaskan keuntungan#keuntungan
penggunaan larik dan matriks.
Ja,aban:
a. "euntungan Penggunaan #arik -
#arik dapat menyimpan sejumlah data yang bertipe sama, dan data
tersebut akan disimpan sementara, untuk selanjutnya data tersebut
kita proses.
apat menghindari penggunaan nama/nama peubah yang banyak.
'nstruksi pembacaan@penulisan seluruh elemen larik cukup ditulis
satu kali saja di dalam sebuah konstruksi pengulangan.
b. "euntungan Penggunaan .atriks -
Cumlah elemennya sudah dideklarasikan terlebih dahulu dan tidak
dapat diubah selama pelaksanaan program.
Penyimpanan dan pemprosesan data secara beruntun atau berurutan.
0. ?en$elaskan kapan sebaiknya larik dan matriks digunakan.
Ja,aban:
Cika kita memiliki data dalam jumlah banyak dan ingin menyimpan serta
menggunakan data tersebut selama pelaksanaan program.
:. ?embuat algoritma untuk menentukan bilangan tertinggi dan
terendah dari se$umlah bilangan bulat yang dimasukkan melalui piranti
masukan.
Ja,aban:
$#IJ%'2.$ ma? <min
!"#$%$&'
type ray ) array T*..*EEU of real
n,b - integer
bil - ray
procedure penukaran(var a,b - real)
eklarasi -
c - real
1
eskripsi -
c V a
a V b
b V c
procedure urutan(var a-ray n- integer)
elkarasi -
b,c - integer
eskripsi -
for bV* to n/* do
for cV* to n/* do
if aTcU 8 aTcF*U then penukaran(aTcU,aTcF*U)
endif
endfor
endfor
procedure ganjil(var a-ray n- integer)
eklarasi -
S*,S4,-integer
eskripsi -
S* V(nF*) div +
S4 V(nF*) div 4
write(K5ilai .in - K,aTn/(n/*)U)
write(K"uartil .a? - K,aTS4U)
1. ?embuat algoritma untuk menghitung hasil perkalian antara
dua buah matriks
?asukan : nilai#nilai dalam dua buah matriks
;eluaran : hasil perkalian dua buah matriks
Ja,aban:
$#IJ%'2.$ perkalian<matrik
!"#$%$&' -
matrik$ - arrayT*..4, *..3U of integer
matrikG - arrayT*..3, *..4U of integer
matrik0asil - arrayT*..4, *..4U of integer
k,l,m - integer
!&"%'P&' -
9input elemen matrik $;
1
for kV* to 4 do
for mV* to 3 do
munculkan (matrik$Tk,mU)
C. 5$il Pr#'i#u!
1. 8asil Aunning program untuk tugas prepraktikum : (?aN
O ?in#;uartil).
Ja,aban:
0. 8asil Aunning program untuk tugas prepraktikum 1
(Perkalian 0 ?atriks).
Ja,aban:
1
D. Tug$ A#(ir
1. ?embuat algoritma dan
mener$emahkan dalam ahasa Pascal untuk operasi in!ers matriks sampai
ordo :.
Ja,aban:
$#IJ%'2.$
Jperasi<invers<matriks<ordo3
!"#$%$&'
var
ul-char, nomor<menu-integer,
procedure ordo3,
$,G,(,,!,A,I,0,'-real,
$et,Get,(et,et,!et,Aet,Iet,0et,'et-real,
et-real,
$',G',(',',!',A',I',0',''-real,
!&"%'P&'
$-array T*..4,*..4U of integer
G-array T*..4,*..4U of integer
(-array T*..4,*..4U of real
for iV* to 4 do
for kV* to 4 do
read ($Ti,kU)
endfor.
!nfor.
V ($T*,*U1$T4,4U)/($T*,4U1$T4,*U)
GT*,*UV$T4,4U
GT*,4UV$T*,4U1/*
GT4,*UV$T4,*U1/*
GT4,4UV$T*,*U
for iV* to 4 do
for kV* to 4 do
(Ti,kUV(*@)1(GTi,kU) ,
!ndfor.
!ndfor.
1
writeln(K0asilnya -K),
write((T*,*U-W-4,(T*,4U-W-4)
write((T4,*U-W-4,(T4,4U-W-4)
selesai.
%unning Program 'nvers Jrdo 3?3
1
MODUL A
RECORD
A. Teori
%ecord adalah elemen larik yang bertipe terstruktur. /engan menggunakan tipe
data record, beberapa item data yang masing#masing dapat mempunyai tipe data
berbeda#beda dapat dikumpulkan. ?asing#masing item data disebut dengan field.
Jadi record terdiri dari kumpulan field yang dapat berbeda tipe. iasanya suatu
record berisi beberapa field untuk sebuah subyek tertentu.
?isalnya record .abel?hs dalam Gambar F.1. adalah sebuah larik (se$umlah
1JJ elemen) yang elemennya menyatakan nilai u$ian mata kuliah (?;) yang
diambil seorang mahasis,a. /ata (field) setiap mahasis,a adalah 4"? (4omor
"nduk ?ahasis,a), nama mahasis,a, mata kuliah yang diambil, dan nilai mata
kuliah tersebut.
B. 5$il Pre%r#'i#u!
1. ?en$elaskan dan menyebutkan keuntungan#keuntungan penggunaan
record.
Ja,aban:
"euntungan record-
%ecord dapat mengumpulkan beberapa tipe data yang berbeda menjadi
satu kesatuan.
2ipe data record juga dapat memiliki field berupa tipe data record yang
lainnya.
Giasanya suatu record berisi beberapa field untuk sebuah subyek tertentu.
0. ?en$elaskan kapan sebaiknya record digunakan.
Ja,ab:
Aecord sebaiknya digunakan pada saat kita ingin menggabungkan beberapa
tipe data (field) men$adi satu kesatuan.
:. ?embuat algoritma untuk mengurutkan data berdasarkan nomor
mahasis,a (4"?) dengan urutan dari yang terkecil ke yang terbesar serta
mempunyai kemampuan untuk menampilkan $umlah total mahasis,a sesuai
dengan kriteria yang dimasukkan oleh user.
1
Ja,aban:
$#IJ%'2.$
program data<mhswa, 9nama program yang dibuat;
uses wincrt,
type
mahasiswa ) record
nama - stringT4EU,
5'. - stringT*EU,
end,
!"#$%$&'
var
mhs - array T*..*EU of mahasiswa,
bantuan - mahasiswa,
n, ?, y,jum - integer,
ul-char, 9perulangan;
!&"%'P&'
begin 9mulai;
repeat 9untuk perulangan;
tulis (Kmasukkan jumlah siswa-K),terbaca(n),
for ? -) * to n do
begin
tulis (Knama mahasiswa ke/K,?,K-K),terbaca(mhsT?U.nama),
tulis (K5'. mahasiswa ke/K,?,K-K),terbaca(mhsT?U.5'.),
end, 9akhiri program@perintah;
begin
jum-) E,
tertulis(K///////////////////////K),
tertulis(K 5'. - 5$.$ K),
tertulis(K///////////////////////K),
Gegin
tertulis(mhsT?U.5'.-W,mhsT?U.5ama-*3),
end,
tertulis(Kulangi lagi (y@t)- K),readln(ul),
end,
until (ul)KtK) or (ul)K2K), 9deklarasi untuk mengulang data;
end. 9$khiri program;
1
C. 5$il Pr#'i#u!
4. ?embuat program untuk tugas prepraktikum :.
Ja,aban:
D. Tug$ A#(ir
1. ?embuat algoritma dan mener$emahkan dalam bahasa
pascal untuk memasukkan data belan$a dan menampilkannya dalam bentuk
nota elan$a.
No' Bel"B Br"g
To#o ABADI
Jl. Ri@8ri@i No. 16> Sur&*
.anggal Pembelian : J1#11#0JJL
4ama Pembeli : +oremi Sido
7lamat : Jl. Suka#suka 4o. :01 Surabaya
No Kode
Br"g
N!
Br"g
5rg
S'u"
<R%=
Ju!l( 5rg ,
Ju!l(
<R%=
1 710: arang 7 1EJJJ 0 :JJJJ
0 20:1 arang 0JJJJ 1 0JJJJ
: 2/:1E arang 2 0EJJJ 0 EJJJJ
1 /'1EF arang / :JJJJ : LJJJJ
1
E 'DEFG arang ' :EJJJ 1 11JJJJ
T O T A L B E L A N J A <R%= ::JJJJ
Ja,aban:
$#IJ%'2.$
program nota<barang,
uses wincrt,
!"#$%$&'
notabarang- array T*..*EU of id,
a,i,j,n,bayar,sisa- longint,
b,c,d,bantuan- string,
ul-char,
!&"%'P&'
procedure
jumlah (n- integer),
begin
repeat
for i-) * to n do
begin
tulis(K.asukkan nama barang ke/ K,i,K - K),
terbaca(notabarangTiU.nama),
tulis(K.asukkan kode barang ke/ K,i,K - K),
terbaca(notabarangTiU.kode),
tulis(K.asukkan harga barang ke/ K,i,K - K),
terbaca(notabarangTiU.harga),
tulis(K.asukkan jumlah barang ke/ K,i,K - K),
terbaca(notabarangTiU.barang.jumlah),
end, 9akhiri printah smentara;
tulis(Kuang yang anda bayarkan - K), terbaca(a),
tertulis,
begin
notabarangTiU.2otal-)notabarangTiU.barang.jumlah 1
notabarangTiU.harga,
end,
bayar-)E,
tertulis(K 5J2$ G!#$5C$ G$%$5I
K),
tertulis(K2J"J $G$'7)
writeln(6Cl. %iwa/riwi no.*43 &urabaya7)
writeln(K2anggal Pembelian - K,b),
writeln(K5ama Pembeli - K,c),
writeln(K$lamat - K,d),
writeln(K................................................................K),
tertulis(K- 5o - "ode - 5ama Garang - 0arga - jumlah -
2otal 0arga -K),

tertulis(K................................................................K),
for i-)* to n do
1
begin writeln(K-K,i-3,K-K-3,notabarangTiU.kode-6,K-K-+,notabarang
TiU.nama-*E,K-K-6,notabarangTiU.harga-6,K-K-4,
notabarangTiU.barang.jumlah-W,K-K-+,notabarang
TiU.2otal->,K-K->),
bayar-)notabarangTiU.totalFbayar,
end, sisa-) a / bayar,
writeln(K................................................................K),
writeln(K-K,K2otal Pembelian (%p)K-3E,K-K-*X,bayar->,K-K->),
writeln(K-K,K2otal Gayar (%p)K-3E,K-K-*X,a->,K-K->),
writeln(K-K,K2otal "embalian (%p)K-3E,K-K-*X,sisa->,K-K->),
tertulis(K................................................................K),
write(Kproses lagi (y@t)M-K),readln(ul),
until (ul)KtK) or (ul)K2K),
end,
begin
tertulis(K.asukkan 2anggal Pembelian - K),readln(b),
tertulis(K.asukkan 5ama Pembeli - K),readln(c),
tertulis(K.asukkan $lamat Pembeli - K),readln(d),
(K.asukkan jumlah barangnya - K), readln(n),
jumlah (n),
selesai.9akhiri program;
3. %unning Program 5ota Garang.
PPPPPPPPPPPPPPPPPPPPPPPPP
1
PENUTUP
A. Ke$i!%ul"
ahasa pascal merupakan bahasa yang digunakan untuk mener$emahkan
instruksi yang diberikan oleh manusia kepada komputer. Pemrograman dengan
bahasa pascal dia,ali dengan $udul, deklarasi dan diakhiri dengan deskripsi. Judul
merupakan $enis atau tu$uan suatu program tersebut yang bersifat optional dan tidak
signifikan.
/eklarasi berupa !ariable, konstanta, tipe dll yang dibutuhkan saat membuat
program dengan bahasa pascal, kemudian deskripsi berisi inputan#inputan data
berupa koding untuk men$alankan perintah yang di instruksikan oleh manusia agar
di$alankan oleh komputer. /eskripsi mulai dengan %begin& dan di akhiri dengan
kata %end&
B. Sr"
- Cntuk kegiatan praktikum sebaiknya lebih memperhatikan ,aktu kapan
praktikum harus dimulai (tepat ,aktu).
- Iaktu pelaksanaan praktikum menurut saya sudah cukup efisien, meskipun
terdapat beberapa kendala.
- ?enurut saya untuk kegiatan praktikum sebaiknya lebih di kondisikan lagi.
1

Anda mungkin juga menyukai