• Tidak ada hasil yang ditemukan

MODUL PEMBINAAN ALGORITMIKA OLIMPIADE SA

N/A
N/A
Protected

Academic year: 2018

Membagikan "MODUL PEMBINAAN ALGORITMIKA OLIMPIADE SA"

Copied!
18
0
0

Teks penuh

(1)

MODUL PEMBINAAN ALGORITMIKA

OLIMPIADE SAINS NASIONAL

BIDANG INFORMATIKA

TINGKAT SMA

GO GET GOLD

(2)

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.

(3)

• 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

(4)

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

(5)

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

(6)

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

(7)

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:

(8)

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

(9)

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?

(10)

1 = 0 + 1

(11)

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;

(12)

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;

(13)

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

(14)

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

(15)

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

(16)

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.

(17)

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.

(18)

Referensi

Dokumen terkait

Deklarasi method bernama sisipDataUrut yang tidak mengembalikan nilai dan bersifat public serta memiliki parameter data bertipe integer. Instansiasi objek bernama x dari kelas Node

Analisis hasil akan dilakukan dengan cara komparasi hasil simulasi dari penerapan elemen fisik terhadap parameter akustika ruang dari masing-masing fungsi. Nilai

Fungsi keanggotaan kuva beta terdiri dari 3 parameter yaitu a, b dan c. Parameter c biasanya bernilai positif dan terletak di pusat kurva. Representasi kurva Beta Contoh 2.16.

Maksud dari penjumlahan bertipe int adalah apabila fungsi penjumlahan ini dipanggil maka fungsi ini akan memberikan sebuah nilai integer kepada statement yang

a) Call by value akan menyalin nilai dari parameter aktual ke parameter formal.. b) Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari datanya. c)

Tambahkan variable dengan nama nilai3 yang bertipe data integer dan diberi nilai awal 100 kemudian lakukan pembagian yang disimpan pada variable hasil

Bila 100 mL contoh larutan jenuh masing masing garam Pb berikut ini, manakah yang mengandung konsentrasi ion Pb 2+ (aq) paling tinggiA. Berikut ini, manakah pernyataan yang

Contoh: int a=50; double b=40.5; String konfersi_a =String.valueOfa; // konfersi dari integer ke string String konfersi_b =String.valueOfb; //konfersi dari double ke string int