MODUL PEMBINAAN ALGORITMIKA
OLIMPIADE SAINS NASIONAL
BIDANG INFORMATIKA
TINGKAT SMA
GO GET GOLD
Judul Program PROGRAM nama-program;
Contoh : Menghitung perkalian dua bilangan bulat
Program Perkalian; {Judul}
Judul program sifatnya adalah optional, dan bila ditulis, harus terletak pada awal dari program dan
diakhiri dengan titik koma.
Bagian deklarasi digunakan bila di dalam program digunakan pengenal ( identifier). Identifier dapat
berupa label, konstanta, tipe, variabel, prosedur dan fungsi. Kalau suatu program menggunakan
identifier, Pascal menuntut supaya identifier tersebut diperkenalkan terlebih dahulu sebelum digunakan,
yaitu dideklarasikan terlebih dahulu pada bagian ini.
• Akhir sebuah program Pascal ditandai dengan tanda baca titik ‘ . ‘ setelah END yang paling akhir.
• Tanda titik koma ‘ ; ’ merupakan pemisah antar instruksi satu dengan lainnya.
• Beberapa statement boleh ditulis menjadi satu baris dipisahkan dengan tanda baca titk koma ’ ; ‘
• Baris komentar diletakkan diantara tanda ‘(*’ dan ’*)’ atau diantara tanda ‘{’ dan ‘}’
Contoh : Var a : real; (*nilai bilangan pertama*)
b : real; {nilai bilangan kedua}
Statement (pernyataan)
Adalah instruksi atau gabungan instruksi, yang menyebabkan komputer melakukan aksi.
Type statement dalam Pascal terdiri atas :
1. Sederhana :
- menandai sebuah item data ke sebuah variabel (assigment statement)
contoh : c := b * 4
- pemanggilan procedure dan goto statement
2. Terstruktur:
- Compound Statement
contoh : begin
read (x) ; y := x * 2; write (y) end.
- Repetitive Statement
contoh : for j := 1 to 10 do write (count);
- Conditional Statement
contoh : if x > 10 then write (a)
else write (b) ;
Komponen Dasar Program Pascal
Pola susun bahasa Pascal dibentuk dengan menggunakan komponen bahasa pemrograman yang umum,
yaitu :
1. Simbol Dasar
3. Identifier (penyebut)
1. Simbol Dasar.
Simbol dasar terdiri atas :
1. Simbol huruf, yaitu huruf A sampai dengan Z atau a sampai dengan z. (huruf besar dan
kecil).
2. Simbol angka atau digit yaitu : 0,1,2,3,4,5,6,7,8,9.
3. Simbol khusus, yaitu { } ( ) [ ]+ - * / ; := , ‘ = < > <= >= <> :
2. Reserved Word (kata pasti)
Reserved Word adalah suatu kata yang secara mutlak tidak boleh diartikan lain dan harus
digunakan sebagaimana yang telah didefinisikan atau ditentukan kegunaanya oleh bahasa Pascal.
Reserved word tidak dapat dipergunakan sebagai pengenal (identifier)
3. Identifier (sebutan/pengenal)
Identifier merupakan sebuah kata yang digunakan sebagai nama atau sebutan terhadap sesuatu
didalam program. Pemakai dapat mendefinisikan sendiri suatu nama sebagai identifier.
Identifier ini terdiri atas :
1. Identifier Standar, yaitu identifier yang telah didefinisikan oleh bahasa pascal.
Contoh dari Identifier standar ini antara lain:
abs ln arctan odb boolean pread char round chr read cos readln eof sqr eoln sqrt exp succ
Dan masih banyak lagi.
2. Identifier Non Standar; yaitu identifier yang didefinisikan oleh pemakai bahasa pascal;
misalnya;
Nama suatu program Nama suatu variabel
Nama suatu konstanta Nama suatu procedur
1. terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.
Huruf besar dan huruf kecil dianggap sama.
2. Tidak boleh mengandung blank.
3. Tidak boleh mengandung simbol-simbol khusus, kecuali garis bawah.
4. Panjangnya bebas, tetapi hanya 63 karakter pertama yang dianggap signifikan.
Contoh :
Identifier Keterangan
NasiBungkus Benar Belajar_Pascal Benar
NO2 Benar
1_dua Salah, karakter pertama harus huruf
Andi&tono Salah, tidak boleh mengandung simbol khusus Penjuanglan bar Salah, tidak boleh mengandung spasi
Ppotongan program dibawah untuk soal 1 -2
1. jika nilai a = 15, b = 4 maka keluaran dari program diatas adalah..
a. 3 , 12
—–>> 3 > 4 (False), maka perulangan dihentikan.
Jadi nilai c = 3, d = 12
2. Jika nilai a = 34, b = 11 maka keluaran dari program diatas adalah..
a. 3 , 12
b. 1 , 4
d. 6 , 23
e. 2 , 8
Pembahasan:
nilai awal a = 34, b = 11, c = 0, d = 0
kondisi a > b
—–>> 34 > 11 (True), maka
a = 34 – 11 = 23
c = 0 + 1 = 1
d = 0 + 11 = 11
—–>> 23 > 11 (True), maka
a = 23 - 11 = 12
c = 1 + 1 = 2
d = 11 + 11 = 22
—–>> 12 > 11 (True), maka
a = 12 - 11 = 1
c = 2 + 1= 3
d = 22 + 11 = 33
—–>> 1 > 11 (False), maka perulangan dihentikan.
Jadi nilai c = 3, d = 33
Pernyatan
while
do
dalam Turbo
Pacal
Pernyataan while biasa digunakan untuk melakukan pengulangan yang jumlahnya tidak diketahui didepan atau selang pencacah tidak sebesar 1 atau -1.
Bentuk pernyataan while : whilekondisido pernyataan
Pernyataan while, pengulangan terhadap pernyataan dilakukan terus selama kondidi bernilai true, akhir while terjadi jika kondisi awal bernilai false.perhatikan diagram while dibawah.
Contoh:
var
x : integer; begin
x := 1 {nilai awal}
while x <= 5 do {kondisi yang menentukan perulangan} begin
x := x + 1; {untuk menaikan nilai x} writeln (x);
end; end.
Hasil
1
2
3
4
5
Untuk soal 1 & 2
1. Berapakah output dari program diatas?
a. 112
Program diatas akan mengulang pernyataan x:=x +2*i sebanyak 10 kali dari i = 0 sampai 9.
0 = 0 + 2*0
jadi nilai x yang akan dimunculkan adalah 90.
2. Jika baris kelima (x:=x+2*i) diganti dengan x:= x + i
Berapakah output program tersebut?
1 = 0 + 1
for
to
dan
for
downto
dalam Turbo
Pacal
PERNYATAAN for to
Pernyataan FOR biasa digunakan untuk melakukan pengulangan yang jumlahnya telah diketahui
sebelumnya, dengan proses mencacah naik.
Bentuk pernyatan for : for variabel := nilai_awal TO nilai akhir do pernyataan;
berdasarkan gambar, variabel bertindak sebagai variabel pengontrol perulangan. variabel akan diisi
dengan nilai, dimulai dari nilai_awal hingga nilai_akhir untuk setiap putaran, dan untuk setiap putaran
pernyataan akan dijalankan. variabel nilai_awal dan nilai_akhir harus bertipe sama dan harus berupa
tipe ordinal dengan nilai_awal harus lebih atau sama dengan nilai_akhir
contoh program:
program for; uses Crt; var
x : integer; begin
for x := 1 to 10 do
writeln (’Saya mencoba pernyataan FOR TO’); end.
Perogram diatas akan memunculkan dilayar Saya mencoba pernyataan FOR TO sebanyak 10 tulisan.
contoh program lainnya.
Program For2;
uses wincrt;
x : integer;
tetapi jika writeln(x) diganti dengan write (x) akan menghasilkan 1 2 3 4 5 6 7 8 9 10
PERNYATAAN for downto
Pernyatan FOR DOWNTO merupakan kebalikan dari pernyataan FOR TO.
Bentuk pernyatan for : for variabel:=nilai_awal downto nilai akhir do pernyataan;
PROGRAM ForDOWNTO1;
Program Lat1; uses wincrt;
var x,y,z : integer; begin
for x := 1 to 4 do
y := 4 downto x do write(x);readln;
end.
HASIL 4444333221
Untuk soal 1 - 2
1. Apa hasil dari program di atas!
a. 125
Ini adalah contoh kasus fungsi dengan mempergunakan rekursi (fungsi yang mampu memangil dirinya
sendiri)
Nilai x awal adalah 5, nilai y awal adalah 3 maka
f(5,3) —> 5 * f(5, 3-1) = 5 * 25 = 125
f(5,2) —> 5 * f(5, 2-1) = 5 * 5 = 25
f(5,1) —> 5 * f(5,1-1) = 5 * 1 = 5
f(5,0) (proses selesai karena y =0)
Jadi yang muncul adalah 125
2. Jika writeln (f(5,3)) diganti menjadi writeln (f(4,5)), hasil dimunculkan adalah…
a. 20
Kasus ini sama seperti pada soal 1
Nilai x awal adalah 4, nilai y awal adalah 5 maka
f(4,5) —> 4 * f(4, 5-1) dengan mempergunakan hasil f( 4,4) –> 4 * 256 = 1024
f(4,4) —> 4 * f(4, 4-1) dengan mempergunakan hasil f( 4,3) –> 4 * 64 = 256
f(4,3) —> 4 * f(4,3-1) dengan mempergunakan hasil f( 4,2) –> 4 * 16 = 64
f(4,1) —> 4 * f(4,1-1) = 4 * 1 = 4
fak (4,0) (proses selesai karena y =0)
Jadi yang muncul adalah 1024
3. Manakah yang salah dari deklarasi dibawah ini
a. function info(a:byte):real;
b. function info:byte;
c. function info(a,b:byte) : real;
d. function info(a: real; b:integer):real;
e. function info(a:real);
Pembahasan
Ingat bentuk dekelarasi dari suatu fungsi
FUNCTION nama_fungsi(daftar_fungsi):tipe;
- daftar parameter berisi sejumlah parameter
- tipe menyatakan tipe dari hasil fungsi
- Jika fungsi tidak memiliki parameter, tanda () tidak perlu disertakan.
jadi jawabannya adalah e.function info(a:real);
Materi Olimpiade Komputer tentang FUNGSI dalam Turbo
Pascal
Suatu Fungsi mempunyai argumen dan parameter. Parameter ditulis didalam tanda kurung. Namun bisa
saja suatu fungsi tidak memiliki parameter, biasanya untuk fungsi standar.
Dalam Turbo Pascal terdapat fungsi-fungsi standar yang siap dipergunakan. Contohnya fungsi
matematika, seperti dibawah ini:
Random(bil) Memberikan hasil berupa bilangan acak yang nilainya lebih besar
Pemrograman Turbo Pascal, mampu membuat sendiri suatu fungsi.
Untuk pemberian judul fungsi, aturannya sama seperti pemberian pengenal (identifier).
Bentuk parameter berisi sejumlah parameter dengan bentuk
daftar_parameter(parameter_1:tipe_1;parameter_2:tipe_2;….;parameter_n:tipe_n)
tipe parameter menyatakan tipe dari parameter.
Untuk tipe dalam Fungsi menyatkan tipe dari hasil fungsi.
contoh judul fungsi: Function Kali(A : Integer; B:Integer):Integer;
dari contoh fungsi kali mempunyai 2 parameter (A dan B) yang masing-masing bertipe Integer, dengan
hasil fungsi bertipe Integer.
DEKLARASI FUNGSI
Deklarasi fungsi mempunyai bentuk seperti deklarasi program, yang mengandung Variabel, type,
konstanta bahkan prosedur atau fungsi.
Artinya fungsi kali akan memberikan nilai berupa penjumlahan dari parameter A dan B.
end; { akhir fungsi kali}
begin {Program utama} clrscr;
x:=2; y:=5; z :=x+y; writeln (z);
writeln (kali(2, 5));readln; end.
Hasil program tersebut adalah
7.0000000E+00
10
Dari program diatas, terdapat dua variabel yaitu Variabel global dan variabel lokal. variabel global
merupakan variabel umum dalam program yang dapat
dipangil oleh program dan oleh fungsi. Sedangkan variabel lokal hanya dapat diakses oleh fungsi. Hasil
7.0000000E+00 (tipe Real) didapat dari Fungsi, sedangkan nilai 10 di proleh dari penjumlahan nilai x
dan y dalam Program Utama.