Anda di halaman 1dari 8

Situs TOKIGuide

http://www.geocities.com/tokiguide/pascal.htm?20089

TOKI Guide
Buku Tamu

Home | Analitik | Pascal | Pemrograman | Materi Pemrograman | Download | Tentang TOKI

| Komunitas TOKI |

tokiguide@yahoo.com

Rabu, 9 April 2008 15:32:09

PASCAL
Pascal Dalam IOI, bahasa pemrograman untuk memecahkan soal-soal yang diujikan adalah menggunakan bahasa Pascal atau C/C++. Namun statistik hingga Desember 2002, menunjukkan bahwa sebagian para peserta kompetisi pemrograman memecahkan soal-soal yang diujikan dalam bahasa Pascal (Ref: Programming Challenges - Skiena - page 5). Untuk itu, kemampuan anda dalam mengerti sintaks dasar bahasa Pascal amat penting dalam seleksi TOKI tingkat kotamadya/kabupaten serta tingkat propinsi. Pada seleksi tingkat kotamadya/kabupaten dan propinsi, yang diujikan hanya pada tahap MENGERTI dan MEMAHAMI dasar bahasa Pascal. Belum pada tahap terampil menggunakan dalam pemecahan soal. Pada tahun 2003, seleksi TOKI Tingkat Propinsi mengujikan Teori Pemrograman Bahasa Pascal selama 150 menit (93 soal). Pada soal Teori Pemrograman Bahasa Pascal, yang diujikan adalah:
1. Struktur Program Pascal 2. Deklarasi (deklarasi variabel, konstanta, tipe data) 3. Tipe data (tipe data sederhana, tipe data string, tipe data terstruktur, tipe pointer) 4. Statemen terstruktur (IF-THEN, CASE, REPEAT-UNTIL, WHILE-DO, FOR, WITH) 5. Prosedur dan fungsi 6. Rekursi 7. File (file bertipe, file teks) 8. Pointer

Berikut ini adalah pembahasannya:

beberapa

contoh

soal

Pascal

beserta

Contoh soal Struktur Program Pascal


(Seleksi tingkat propinsi TOKI 2004) 87. Layout adalah: program dalam Pascal yang benar

a. program [identifier]; begin type [identifier]; var [identifier];

1 of 8

4/9/2008 3:32 PM

Situs TOKIGuide

http://www.geocities.com/tokiguide/pascal.htm?20089

[program utama]; end b. program [identifier] var [identifier] begin [program utama] end; procedure [identifier] begin end. c. begin end. d. var [identifier] begin [program utama] end; e. type [identifier] var [identifier] begin program [identifier] [program utama] end. Pembahasan: Struktur prorgam pascal yang benar adalah: program [nama_program]; uses [nama_unit]; label [nama_label]; const [nama_konstanta]; type [nama_tipe]; var [nama_variabel]; procedure satu; begin ... {statemen untuk prosedur satu} end; procedure dua; begin ... {statemen untuk prosedur satu} end; function tiga:tipedata; begin ... {statemen untuk prosedur satu} end; begin {awal program utama}

... {statemen-statemen dari program utama} end. {akhir dari prorgam utama} Dengan pengetahuan struktur program Pascal di atas, maka dapat disimpulkan struktur program Pascal yang benar adalah opsi c. Kesalahan untuk opsi d adalah bahwa akhir dari program utama

2 of 8

4/9/2008 3:32 PM

Situs TOKIGuide

http://www.geocities.com/tokiguide/pascal.htm?20089

selalu menggunakan END. (menggunakan titik) bukan END; (bukan titik koma)
...TOP...

Contoh soal deklarasi


(Seleksi tingkat propinsi TOKI 2004) 71. Deklarasi yang salah: a. const i:integer=100; b. var x:array[1..100][1..100] of byte c. type Hari=(Senin,Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu) d. var _data=record nama:string[10]; nis:string[10]; end; e. var t:array['a'..'z'] of integer

Pembahasan: Opsi a. BENAR, deklarasi tersebut merupakan deklarasi konstanta bertipe. Untuk mendeklarasikan konstanta bertipe adalah: const identifier : tipedata = nilai opsi b. SALAH. Cara mendeklarasikan tipe ada array pada bahasa Pascal adalah:

type identifier tipe_elemen

array

[tipe_indeks]

of

dimana tipe_indeks adalah sembarang tipe dan tipe_elemen harus bertipe ordinal. opsi c. BENAR, deklarasi tersebut adalah cara mendeklarasikan tipe enumerasi opsi d. BENAR, deklarasi tersebut adalah cara mendeklarasikan tipe record opsi e. BENAR, deklarasi tersebut adalah cara mendeklarasikan tipe array Jawab b. var x:array[1..100][1..100] of byte
...TOP...

Contoh soal Tipe data


(Seleksi awal TOKI 2003) 55. Untuk mengimplementasikan matriks dalam bahasa Pascal, kita pasti menggunakan data: a. b. c. d. e. record object pointer array set

3 of 8

4/9/2008 3:32 PM

Situs TOKIGuide

http://www.geocities.com/tokiguide/pascal.htm?20089

Pembahasan: Matriks adalah sekumpulan data numerik yang tersusun dalam bentuk baris dan kolom yang mempunyai tipe data sama. opsi a. record adalah sebuah tipe data terstruktur yang dapat menampung data dengan tipe data yang berbeda-beda. opsi b. object adalah tipe data terstruktur yang dapat terdiri dari tipe data yang berbeda serta header method. Yang dimaksud method dalam sebuah objek adalah kumpulan modul yang dapat mengoperasikan objek tersebut. opsi c. pointer adalah tipe data yang bersifat dinamis. opsi d. array adalah sebuah tipe data terstruktur yang mempunyai komponen dalam jumlah yang tetap dan setiap komponen mempunyai tipe data yang sama. opsi e. set adalah sebuah tipe data terstruktur yang mempunyai tipe data sama dan urutan datanya tidak diperhatikan. Jawaban: b. array
...TOP...

Contoh soal statemen terstruktur


(Seleksi awal TOKI 1997) 30. Penggalan program sbb: a:=10;b:=0; repeat b:=b+1;a:=a-b;until a>b writeln(a,b); Berapa harga a yang dicetak? a. b. c. d. 10 1 9 salah semua

Pembahasan: Statemen repeat - until adalah statemen perulangan dengan pengujian kondisi di bawah. Perulangan dijalankan hingga kondisi pada until terpenuhi. Dari soal di atas, dapat dibuat tabel untuk mempermudah perhitungan nilai a. Nilai b Nilai a 0 10 1 9 b:=b+1;a:=a-b

-- statemen pertama

dari tabel di atas, kondisi a>b telah terpenuhi, sehingga nilai akhir dari a adalah 9 Jawaban: c. 9
...TOP...

4 of 8

4/9/2008 3:32 PM

Situs TOKIGuide

http://www.geocities.com/tokiguide/pascal.htm?20089

Contoh soal Prosedur dan fungsi


(Seleksi awal TOKI 1998) 13. Manakah yang salah: a. b. c. d. e. function Gamma(I:Real):Real; function Gamma(var I:Real):Real; function Gamma(var I):Real; function Gamma(I:Real); semua deklarasi di atas benar

Pembahasan: Deklarasi function pada Pascal adalah: function identifier : type; atau function identifier (parameters) : type; Sebuah fungsi harus mempunyai nama fungsi (identifier), formal parameter (parameters) dan harus mempunyai tipe hasil (type). Pada bahasa Pascal, sebuah prosedur atau fungsi dapat terdiri dari daftar formal parameter yang cara penulisannya: (params; params; ... params). Tiap grup formal parameter harus mengikuti cara penulisan di bawah ini: identifier, identifier: type { value parameters } var identifier, identifier: type { disebut dengan variable parameters } var identifier, identifier { variable parameters tak bertipe } Dengan mengetahui format penulisan di atas, dapat diketahui bahwa opsi d salah, karena tidak mempunyai tipe hasil. Sedangkan opsi c dapat dibenarkan, karena parameter pada fungsi merupakan variabel parameter tak bertipe. Jawaban: d. function Gamma(I:Real);
...TOP...

Contoh soal Rekursi


(Seleksi awal TOKI 1997) 21. Penggalan program Pascal sbb: Function fakto(n:byte):longint begin if n=0 then fakto:=0 else fakto:=n*fakto(n-1) end; function di atas bila dipanggil dengan statemen y:=fakto(5) ; maka y berharga: a. b. c. d. 0 5 120 salah semua

5 of 8

4/9/2008 3:32 PM

Situs TOKIGuide

http://www.geocities.com/tokiguide/pascal.htm?20089

Pembahasan: Yang dimaksud dengan rekursi adalah sebuah prosedur atau fungsi yang memanggil dirinya sendiri. Pada fungsi di atas, fungsi fakto dipanggil dengan parameter n-1, sehingga jika dipanggil fakto(5), maka proses akan nampak seperti diagram berikut:

Mula-mula FAKTO(5) dipanggil sehingga menyebabkan statemen n * FAKTO(n-1) dieksekusi, yang bemilai: 5 * FAKTO(4). FAKTO(4) akan mengeksekusi statemen: 4 * FAKTO(3). FAKTO(3) akan mengeksekusi statemen: 3 * FAKTO(2). FAKTO(2) akan mengeksekusi statemen: 2 * FAKTO(1). FAKTO(1) akan mengeksekusi statemen: 1 * FAKTO(0), FAKTO(0) sendiri bemilai 0, sehingga statemen: 1 * FAKTO(0) bemilai 0, yang berarti FAKTO(1) menghasilkan nilai 0 yang dikembalikan pada FAKTO(2), 2 * FAKTO(1) -> 2 * 0 = 0. Hasil 0 ini dikembalikan pada: 3 * FAKTO(2) -> 3 * 0 = 0. Hasil 0 ini dikembalikan pada: 4 * FAKTO(3) -> 4 * 0 = 0. Hasil 0 ini dikembalikan pada: 5 * FAKTO(4) -> 5 * 0 = 0. Jawaban a. 0
...TOP...

Contoh soal File


(Seleksi Tingkat Propinsi TOKI 2004) 144. Bagaimana cara membuat sebuah file teks baru dengan fungsi standar Pascal? a. var F : Text; begin

6 of 8

4/9/2008 3:32 PM

Situs TOKIGuide

http://www.geocities.com/tokiguide/pascal.htm?20089

Assign(F, 'MYTEXT.TXT'); Reset(F); end. b. var F: Text; begin Assign(F,'MYTEXT.TXT); Rewrite(F); end. c. var F: Text; begin Rewrite(F, 'MYTEXT.TXT'); end. d. var F: Text, begin Assign(F, 'MYTEXT.TXT); Rewrite(F, 128); end. e. var F: Text' begin Assign(F,'MYTEXT.TXT'); Append(F); end. Pembahasan: Text adalah salah satu dari tipe data file. Sebuah file yang dibuka dengan tipe data text, akan mempunyai karakteristik terdiri dari suatu baris dan setiap baris diakhir dengan tanda akhir baris (end of line). Akhir dari file text adalah tanda End of file (CTRL-Z). Untuk membuat file pada Turbo Pascal adalah dengan menggunakan statemen: REWRITE, deklarasi untuk perintah REWRITE adalah: procedure Rewrite(var F: File [; Recsize: Word ] ); di mana F adalah sembarang tipe file, sedangkan Recsize adalah digunakan apabila F adalah file tidak bertipe. Jawaban: b.
...TOP...

Contoh soal Pointer


(Seleksi Tingkat Propinsi TOKI 2004) 138. Pemyataan manakah yang valid? a. b. c. d. e. var var var var var A:^Integer; A:@Integer; A:Integer^; A^:Integer; ^A:Integer;

Pembahasan: Tipe pointer adalah tipe data khusus yang bersifat dinamis. Bentuk umum dari deklarasi pointer adalah:

7 of 8

4/9/2008 3:32 PM

Situs TOKIGuide

http://www.geocities.com/tokiguide/pascal.htm?20089

type identifier = ^tipedata Tanda ^ di depan nama tipe data harus ditulis seperti apa adanya, berarti menunjukkan bahwa identifier adalah bertipe pointer. Tipedata yang digunakan bisa berupa sembarang tipe data seperti Integer, Char, Boolean ataupun Record. Jawaban: a. var A:^Integer;

...TOP...

Halaman berikut...

8 of 8

4/9/2008 3:32 PM

Anda mungkin juga menyukai