• Tidak ada hasil yang ditemukan

I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-6 - Hal 21

N/A
N/A
Protected

Academic year: 2021

Membagikan "I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-6 - Hal 21"

Copied!
29
0
0

Teks penuh

(1)

I. KATA PENGANTAR

Dewasa ini sudah banyak berkembang bahasa-bahasa pemrograman tingkat tinggi yang pemakaiannya sudah sangat mudah, hanya klik dan drag saja. Namun meskipun demikian tetap saja programmer harus menuliskan kode-kode program agar objek-objek yang sudah mereka buat dapat bertingkah laku/bekerja sesuai dengan yang diinginkan. Secara singkat dapat dikatakan bahwa sebuah program pasti terdapat alur logika yang menyebabkan program tersebut dapat bekerja dengan benar. Modul algoritma dan pemrograman ini sangat penting bagi mahasiswa program studi Ilmu Komputer pada khususnya karena menjadi dasar bagi mahasiswa untuk mempelajari bahasa pemrograman.

Pada modul ini diberikan contoh-contoh kasus untuk mempermudah memahami konsep. Karena sebuah contoh dapat memberikan inspirasi pemecahan masalah yang mirip. Tetapi patut diingat bahwa sebuah masalah di dalam pemrograman, bila diberikan kepada pemrogram yang berbeda, boleh jadi mempunyai aneka ragam solusi (dalam hal ini algoritma), mulai algoritma yang kusut karena banyak sekali percabangannya, sampai pada algoritma yang kurang efisien karena banyak sekali pengulangan instruksi yang sama dalam menganalisa kasus. Dengan mempelajari modul ini diharapkan nantinya Anda dapat memecahkan masalah secara metodologis, yaitu sesuai dengan skema (model) yang benar. Ketaatan menggunakan skema niscaya akan menghasilkan algoritma yang efisien dan mudah dipahami sehingga menghasilkan program yang baik pula.

Sebagai akhir kata, semoga modul ini dapat diterima oleh para pembaca dalam mempelajari komputer, khususnya yang mempelajari mengenai bahasa penrograman Pascal serta dapat menambah wawasan bagi para pembaca dalam pembuatan program secara terstruktur.

Yogyakarta, Desember 2007

(2)

II. PENDAHULUAN

Suatu teknik yang biasa diterapkan dalam pemrograman terstruktur adalah teknik rancang atas-bawah (top-down design). Berdasarkan falsafah rancang atas-bawah, maka suatu program dipecah menjadi beberapa bagian yang lebih kecil, dengan harapan bagian-bagaian yang kecil menjadi lebih mudah dikodekan dan juga menjadi lebih mudah dipahami oleh program. Bagaian-bagian pemrograman seperti ini dikenal dengan sebutan subprogram atau subrutin.

Gambar 1. Program dibagi-bagi menjadi beberapa subprogram

Keuntungan lain dengan adanya subprogram adalah penghematan kode program. Ini terjadi jika ada beberapa bagian program yang sama dipangggil dibeberapa tempat didalam program.

Untuk membuat subroutine Pascal menyediakan dua pilihan, yaitu procedure dan fungsi. Kedua jenis subroutine ini memiliki kegunaan yang sama, yaitu melakukan tugas tertentu.

Program utama

Subprogram Subprogram

(3)

III. PROCEDURE

A.1. Tujuan Instruksional Umum

Setelah mempelajari modul ini Anda diharapkan mampu menyelesaikan permasalahan dengan memecah permasalahan dalam bentuk prosedur yang dapat dipergunakan berulang kali.

2. Tujuan Instruksional Khusus

Setelah menyelesaikan modul ini Anda diharapkan dapat :

a. menjelaskan bentuk umum dari procedure minimal untuk membangun procedure sederhana.

b. menjelaskan perbedaan cara pengiriman data dengan menggunakan parameter minimal 2 perbedaan dengan benar.

B. URAIAN MATERI

Deklarasi prosedur , terdiri dari tiga bagian: 1. Judul prosedur

2. bagian deklarasi 3. bagian pernyataan Format yang lengkap

1). Cara Mendeklarasikan Procedure

Untuk mendeklarasikan procedure dapat dilakukan dengan 2 cara, yaitu : ¬ Judul procedure tanpa parameter

Bentuk umum :

PROCEDURE namaprocedure;

PROCEDURE nama(daftar_parameter); Bagian deklarasi;

(4)

Procedure BuatKotak; Procedure Input; Procedure Output;

Penulisan judul procedure tanpa parameter diawali dengan kata PROCEDURE dan diikuti dengan nama procedure serta diakhiri dengan tanda titik koma

Contoh 1:

Dari contoh 1 terlihat denganjelas bahwa procedure tambah kali hanya berisi baris-baris program yang dapat dijalankan, dan pada procedure itu sendiri tidak ada hasil yang ditampungnya.

¬ Judul procedure dengan parameter. Bentuk umum :

PROCEDURE namaprocedure(daftar parameter); Contoh :

Procedure BuatKotak(baris,kolom : integer); Procedure Input(a,b : byte; c : real);

Program hitung; Var p,q, x, y : byte; Procedure TambahKali; Begin X := 5 ; y := 2; P := x + y; Q ;= x * y; Writeln(‘ x + y = ‘, p); Writeln(‘ x * y = ‘,q); End; Begin Write(‘x = ‘); readln(x); Write(‘Y = ‘); readln(y);

TambahKali; {untuk menjalankan procedure tambah kali} end.

Karena a dan b berbeda type dengan c maka penulisannya dipisahkan dengan titik koma (;)

(5)

2). Parameter Dalam Prosedur

Parameter dalam prosedur ada dua macam, yaitu : Parameter Lokal

Artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program yang lainnya.

Bentuk umumnya :

Contoh 2: program menggunakan parameter lokal Procedure kesatu;

Var {deklarasi parameter LOKAL} ……… ……. Begin ……… ……. End; {PROGRAM UTAMA} begin ……… ……. End. Program hitung; Procedure TambahKali; Var p,q, x, y :byte; Begin X := 5; Y := 2; P := x + y; Q ;= x * y; Writeln(‘ x + y = ‘, p); Writeln(‘ x * y = ‘,q); End; Var x, y : integer; Begin Write(‘x = ‘); readln(x); Write(‘Y = ‘); readln(y);

TambahKali; {untuk menjalankan procedure tambah kali} end.

Parameter p,q,x,y hanya dikenal di procedure TambahKali

Parameter x,y berbeda dengan parameter x,y di procedure dan hanya dikenal di program utama

(6)

Parameter Global

Artinya dapat digunakan pada modul atau unit program yang lainnya. Bentuk umumnya :

Contoh 2 : program menggunakan parameter global Var {deklarasi parameter LOKAL}

……… ……. Procedure kesatu; Begin ……… ……. End; {PROGRAM UTAMA} begin ……… ……. End. Program Prosedur1; uses crt; var a,hasil : real; Procedure jam_ke_menit; begin

writeln; write('masukan jam : '); readln(a); hasil := a * 60;

writeln(a:5:2,' jam ada : ',hasil:8:2,' menit'); end; {Program utama} begin clrscr; jam_ke_menit; readln; end.

Variabel a dan hasil akan dikenal baik di procedure maupun pada program utama

(7)

3). Parameter Formal dan Aktual

Parameter dibedakan menjadi 2:

z Parameter formal dan z Parameter actual

Parameter formal adalah parameter yang terdapat pada pendeklarasian judul subprogram, baik pada fungsi maupun prosedur. Misalnya pada pendeklarasian:

PROCEDURE Tambah(A, B : Real) : Real; A dan B disebut parameter formal.

Parameter actual adalah parameter pada pemanggilan fungsi atau prosedur. Misalnya pada:

Tambah(10, 30);

10 dan 30 adalah parameter aktual.

4). Pengiriman Parameter Pada Prosedur

Pegiriman paremeter di dalam prosedur ada dua macam :

Pengiriman secara nilai (by value)

Parameter formal di prosedur akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur. Bila nilai parameter formal di prosedur tersebut berubah, tidak akan mempengaruhi nilai parameter nyata.

Bentuk umumnya :

Procedure identifier (parameter : type); PROCEDURE Tambah(A, B : Real) : Real;

parameter formal Deklarasi procedure

Tambah(10,30)

Pemanggilan procedure

(8)

Contoh :

Procedure Hitung (A,B : ineteger);

Contoh 3 : penggunaan prosedur dengan parameter global dan pengiriman secara nilai

Hasil Run :

Jumlah pada program utama : 6 Jumlah pada procedure : 6 Jumlah baru pada procedure : 16 Jumlah baru pada programutama : 6

Pengiriman secara acuan (by reference)

Bila pengiriman parameter secara acuan, maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi

Program Prosedur2; uses crt;

var

x,y,jumlah : integer; { parameter global}

Procedure jml(x,y,jumlah : integer); {parameter nilai} begin

jumlah := x + y;

writeln('Jumlah pada procedure : ',jumlah); jumlah := jumlah + 10;

writeln('Jumlah baru pada procedure : ',jumlah); end; {Program Utama} begin clrscr; a:= 5; b:= 1; jumlah := a + b;

writeln('Jumlah pada program utama : ',jumlah);

jml(a,b,jumlah);

writeln('Jumlah baru pada program utama : ',jumlah); readln; end.

(9)

nilai parameter nyata. Biasanya pengiriman secara acuan ditandai dengan adanya kata cadangan di depan parameter formalnya

Bentuk umumnya :

Procedure identifier ( VAR parameter : type); Contoh :

Procedure Hitung ( VAR A,B : ineteger);

Contoh 4 : penggunaan prosedur dengan menggunakan parameter lokal dan pengiriman secara acuan

C. EVALUASI FORMATIF

1). Buatlah program untuk menghitung harga fungsi Y := X3 + 2X2 - 5X –2 dimana harga x dimasukkan lewat keyboard. Dan persamaan fungsi serta hasilnya dibuat dalam prosedur tersendiri.

Program Prosedur3; uses crt;

Procedure tambah(a,b : integer; var c: integer); {Parameter acuan} begin

c:= a + b; end;

{Program Utama} var

x,y,z : integer; {Parameter lokal} begin clrscr; Z := 1; x:= 2; y:= 3; tambah(x,y,z); writeln('X = ',x,' Y = ',y,' Z = ',z); readln; end. Hasil Run : X = 2 Y = 3 Z = 5

(10)

2) Tuliskan sebuah prosedur untuk menukarkan nilai dari dua variabel. Sebagai contoh, jika terdapat variabel a dan b, setelah pemanggilan prosedur ini, nilai a sama dengan b dan nilai b sama dengan a. prosedur ini menerima dua parameter bertipe real.

3) Tuliskan program untuk meminta masukan dari pengguna dua matriks berukuran m x n kemudian menjumlahkan dua matriks tersebut. Tuliskan tiga prosedur untuk meminta masukan matriks dari pengguna, menjumlahkan matriks, dan yang terakhir menampilkan matriks ke layar.

(11)

IV. FUNCTION

A.1. Tujuan Instruksional Umum

Setelah mempelajari modul ini Anda diharapkan mampu menyelesaikan permasalahan dengan memecah permasalahan dalam bentuk fungsi yang dapat dipergunakan berulang kali.

2. Tujuan Instruksional Khusus

Setelah menyelesaikan modul ini Anda diharapkan dapat :

a. menjelaskan bentuk umum dari function minimal untuk membangun function sederhana.

b. menjelaskan perbedaan penggunaan subroutine function dengan procedure minimal 2 perbedaan dengan benar.

c. menyelesaikan permasalahan dengan membangun algoritma dan mengimplementasikan dalam bentuk fungsi rekursif maksimal dalam waktu 15 menit.

B. URAIAN MATERI

1) Judul function Tanpa Parameter

Suatu fungsi yang tanpa menggunakan parameter berarti nilai balik yang akan dihasilkannya merupakan nilai yang sudah pasti. Fungsi yang tidak mempunyai parameter, maka hasil fungsi tersebut tidak dapat diatur dari modul yang menggunakannya, karena tidak ada parameter yang dikirimkan.

Bentuk umum :

Function <namaFunction> : tipedata dengan :

function kata cadangan yang harus ada.

namaFunction nama fungsi yang akan dideklarasikan. tipedata tipe data hasil dari fungsi tersebut.

(12)

Judul function selalu diawali dengankata cadangan function dan diikuti dengan nama function serta tipe datanya yang dipisahkan dengan tanda titik dua ( : ). Berikut digambarkan struktur blok program beserta function tanpa parameter.

Contoh :

2) Judul function Dengan Parameter

Parameter digunakan untuk memberikan input pada fungsi dan fungsi akan memberikan hasil balik sesuai yang diberikannya.

Bentuk deklarasi suatu fungsi dengan parameter adalah sebagai berikut:

FUNCTION nama_fungsi(daftar_parameter) : tipe;

Bagian_deklarasi; Bagian_pernyataan; Program hitung;

Var x, y : byte;

Function tambah : byte;

Begin

Tambah := x + y;

End;

Function kali : byte;

Begin kali := x * y; End; Begin Write(‘X = ‘); readln(x); Write(‘Y = ‘); readln(y); Writeln(‘x + y = ‘,tambah); Writeln(‘ x * y = ‘,kali); End.

Tambah bernilai sama dengan X + Y

Kali bernilai sama dengan X * Y Output : X = 2 Y = 3 X + Y = 5 X * Y = 6

(13)

Dalam hal ini:

z daftar_parameter dapat berisi sejumlah parameter z Bentuk dari daftar_parameter:

daf_parameter_1 : tipe_1; daf_parameter_2 : tipe_2; …; daf_parameter_n : tipe_n

z tipe menyatakan tipe dari hasil fungsi

Jika fungsi tidak memiliki parameter, tanda ( ) tidak perlu disertakan

Sama dengan prosedur, parameter dalam fungsi dapat dikirimkan secara nilai atau secara acuan. Penulisan judul fungsi yang menggunakan parameter dengan pengiriman secara nilai adalah tampak sebagai berikut :

Function Hitung (A,B : integer) : integer;

Sedangkan penulisan judul fungsi menggunakan parameter dengan pengiriman secara acuan adalah dengan menambahkan kata cadangan VAR sebagai berikut:

Function Hitung ( VAR A,B : integer) : integer;

Contoh deklarasi fungsi:

FUNCTION Tambah (A : Real; B : Real) : Real;

Contoh ini menunjukan bahwa fungsi Tambah mempunyai dua buah parameter yang masing-masing bertipe Real. Selain itu, hasil fungsi juga bertipe Real

Berhubung tipe kedua parameter sama, penulisan seperti berikut merupakan ekuivalennya:

FUNCTION Tambah (A, B : Real) : Real;

Bagian deklarasi fungsi mempunyai bentuk seperti bagian deklarasi program. Bagian deklarasi bisa mengandung bagian VAR, TYPE, CONST, LABEL dan bahkan prosedur atau fungsi. Bagian ini jika ada hanya bersifat local dan hanya bagi fungsi itu sendiri. Artinya, hanya fungsi itusendiri yang bisa memanfaatkan dan mengenalinya.

(14)

Bagian pernyataan berisi kode-kode yang akan dilaksanakan oleh fungsi sewaktu fungsi dipanggil. Untuk lebih jelasnya, perhatikan fungsi berikut terlebih dulu.

Fungsi diatas berguna untuk mendapatkan hasil penjumlahan parameter A dan B. Satu hal penting yang perlu diperhatikan disini adalah adanya pernyataan:

Tambah := A+B;

Tampak bahwa bagian kiri dari operator penugasan berupa nama fungsi. Hal seperti ini mutlak diperlukan dan tidak lain adalah untuk memberikan hasil fungsi. Artinya fungsi Tambah akan memberikan nilai berupa penjumlahan dari parameter A dan B

Untuk mencoba fungsi ini, ketik program berikut:

FUNCTION Tambah(A, B : Real) : Real; BEGIN

Tambah := A+B; END;

Program Fungsi1;

{ --- } { Contoh pembuatan fungsi yang sederhana } { --- } USES CRT;

FUNCTION Tambah(A, B : Real) : Real; BEGIN

Tambah := A + B;

END; { --- Akhir Fungsi Tambah ---} BEGIN { --- Program Utama ---}

ClrScr;

WriteLn (Tambah (10, 30)); ReadLn;

(15)

Berikut adalah hasil pengujian terhadap program diatas:

4.0000000000E+01

3) Perbedaan dan Kesamaan Antara Prosedur dan Fungsi

Perbedaan antara function dan procedure adalah sebagai berikut :

ƒ Jika anda membuat prosedur maka Anda harus mendeklarasikan dengan reserved word “procedure”, sedangkan jika Anda ingin membuat suatu function maka Anda harus mendeklarasikan dengan reserved word “Function”

ƒ Function harus dideklarasikan dengan tipenya, sedangkan procedure tidak. Hal ini menunjukkan bahwa pada function itu sendiri dapat menampung nilai, sedangkan procedure tidak.

Kesamaan antara function dan procedure adalah sebagai berikut :

ƒ Memecah sebuah program besar menjadi beberapa bagian (modul) sehingga memudahkan pembagian tugas jika program tersebut dibuat oleh lebih dari 1 orang. Selain itu juga mempermudah pengecekan kesalahan/error.

ƒ Jika terdapat perintah-perintah yang sama yang akan Anda pakai dalam suatu program, maka sebaiknya perintah-perintah tersebut dipisahkan dalam suatu modul program dengan bantuan procedure, sehingga jika Anda ingin memakainya kita hanya tinggal memanggil nama procedure tersebut.

ƒ Mempermudah proses dokumentasi.

4) Fungsi Rekursif

Rekursif adalah kemampuan suatu rutin untuk memanggil dirinya sendiri. Jadi rekursif memungkinkan Anda memanggil suatu prosedur dari dalam prosedur itu sendiri. Mengapa kita memerlukan rekursif ? karena ada beberapa kasus yang akan jauh lebih mudah diselesaikan dengan rekursi. Namun penggunaan rekursi kadang-kadang harus mengorbankan efisiensi dan kecepatan. Disamping itu, ada masalah yang sering muncul dalam rekursif, yaitu eksekusi yang tidak pernah berhenti. Akibatnya memori tumpukan akan habis dan komputer hang.

(16)

Contoh : Faktorial

Fungsi faktorial dari bilangan bulat positif n didefinisikan sebagai berikut : N ! = n. (n-1) ! jika n > 1

N ! = 1 jika n = 0 atau 1.

Sesuai dengan definisinya, Anda dapat menuliskan fungsi penghitung faktorial seperti contoh berikut :

Pada baris pertama dari fungsi diatas, nilai n dicek sama dengan 0 atau 1, jika ya , maka fungsi mengembalikan nilai 1. jika tidak, fungsi mengembalikan nilai

n * faktorial(n – 1)

Disinilah letak proses rekursif itu. Perhatikan fungsi faktorial ini memanggil sendiri tetapi dengan parameter (n-1).

C. EVALUASI FORMATIF

1). Buatlah fungsi untuk menentukan apakah suatu bilangan habis dibagi 9 atau tidak.

2) Buatlah fungsi untuk mencari FPB (Faktor Persekutuan Terbesar) dari 2 buah bilangan yang diinputkan dari keyboard.

Function faktorial (n : byte) : longint; Begin If ( n = 0) or (n = 1) then Faktorial := 1 Else Faktorial := n * faktorial (n-1); End;

(17)

EVALUASI

Pilihlah salah satu jawaban yang Anda anggap paling benar 1. Manakah yang salah dari deklarasi di bawah ini :

A. function abc(a : byte) : real; B. function xyz(x : byte) : byte; C. function klm(k,l :byte) : real; D. function stu (s : real);

E. function rsm(var b : real) : real;

2. function a : boolean; begin write(‘Hello ‘); a := false; end; function b : boolean; begin writeln(‘World!’); b := true; end; begin

if a and b then writeln(‘This program is written in Pascal’); end.

Jika option short circuit boolean evaluation diaktifkan, output dari program diatas

A. Hello world!

This program is written in Pascal B. Hello

C. Hello World D. World!

(18)

3. Uses crt; Var I,J : integer;

Function jumlah(N : integer) : integer; Var J, K : integer; Begin J := 0; For K := 1 to N do J := J + K; Jumlah := K; {baris 9} End; Begin J := 12; For I := 1 to 3 do J := J+Jumlah(I); Writeln(J); End;

Apakah keluaran dari program diatas : A. 9

B. 18 C. 12 D. 6 E. 3

4. Dari soal no 2, baris 4 program tersebut K diganti menjadi J, bagaimanakah keluaran program itu sekarang ?

A. 9 B. 18 C. 22 D. 6 E. 3

5. function Bit(B,P : byte) : Char; var M : byte;

begin

M := 1 shl P;

If (B and M) = 0 then Bit := ‘0’ Else Bit :=’1’;

(19)

Var Bil, I : Byte; Begin Readln(Bil); For I := 7 downto 0 do Write(Bit(Bil,I)); End.

Berapakah keluaran program diatas bila input nilai untuk Bil adalah 25 ? A. 00011001

B. 11001 C. 10011000 D. 10011 E. salah semua

6. Diketahui potongan fungsi sebagai berikut. Berapakah nilai Hitung(5) ? Function Hitung(k : integer) : integer;

Var Hit : integer; J : integer; Begin For J := 1 to k do Hit := Hit + J; Hitung := Hit; End; A. 0 B. 5 C. 15 D. 20

E. nilainya tidak dapat diperkirakan.

7. Bila fungsi ABC didefinisikan sebagai : Function ABC (I : integer) : integer; Var J : integer;

Begin J := 0;

While I > 0 do Begin

(20)

J := J + I mod 5; {baris 8} I := I shr 1;

End; ABC := J; End;

Berapakah hasil dari ABC (25) ? A. 10

B. 0 C. 7 D. 40

E. salah semua.

8. Berapakah nilai ABC(25) pada soal diatas apabila baris 8 pada fungsi ABC diubah menjadi : J := J + I mod 5 shl 1;

A. 10 B. 5 C. 20 D. 14 E. 0

9. Manakah yang salah dari deklarasi di bawah ini : A. procedure abc;

B. procedure abc(a : byte); C. procedure xyz(var x : integer); D. procedure klm(a,b : real) : real; E. procedure sal(a,b : real; var x : real);

10. Procedure add(x,y,result : integer); Begin Result := x +y; X := 0; Y := 0; End; Var X,y,result : integer;

(21)

Begin

Result := 0; X := 5; Y := 7;

Add(x,y,result);

Writeln(x,’ ‘,y,’ ‘,result); End;

Output program di atas : A. 5 7 12 B. 0 0 12 C. 0 0 12 D. 5 7 12 E 5 7 0

11. Lihat Program dibawah ini Var Bil : integer;

Procedure Find(B:integer; I : integer); Begin

R := round(sqrt(B)); J := 2;

While (J <= R) and (B mod J <> 0) do Begin

Inc(J);

If J <= R then

Begin

Write(J,’*’);

Find(B div J, I+1);

End

Else if I > 0 then

Writeln(B,’=’, Bil)

Else writeln(‘Bilangan prima’); End;

(22)

Begin

Write(‘Masukkan bilangan = ‘); Readln(Bil);

Find(Bil,0); End.

Bagaimana output program diatas bila inputnya = 42 ? A. 7 * 3 * 2 = 42 B. Bilangan prima C. = 42 D. 2 * 3 * 7 = 42 E. salah semua 12. Program testing; Uses crt;

Var kata : string; Bil : integer;

Procedure cek(var S : string; var L : integer); Var J : integer;

Begin J := L;

While (J < length(S)) and (S[J] = ‘ ‘) do inc(J); Delete(S,L,J - L);

L := J – L; End;

Begin

Kata := ‘saya terpisah’; Bil := 5;

Cek(kata,bil); Writeln(‘#’,kata,’#‘); End;

Apa keluaran program diatas ? A. #saya terpisah# B. #saya terpisah# C. #sayaterpisah# D. #saya#

(23)

13. Berapakah nilai Bil pada akhir eksekusi program ? A. 5 B. 1 C. 2 D. 0 E. 12

14. Apa yang terjadi bila klausa “uses crt” pada baris ke dua pada soal nomor 4 diatas dihilangkan, kemudian program dijalankan ?

A. Tidak ada keluaran apa pun yang dihasilkan

B. Program tetap berjalan seperti biasanya dan tidak ada perubahan apa-apa.

C. Semua output program tidak keluar di layar, tetapi di printer. D. Terjadi compile error

E. Terjadi runtime error

15. Penggalan program sbb :

Procedure abc(A,B,C,D,E,F : byte); Begin C := A + B; D := A – B; E := A*B; F := A div B; End;

Bila procedure abc dipanggil dengan abc(10,3,x,y,z,w) maka x,y,z, dan w masing-masing berharga : A. 13, 7, 30, 3 B. 0, 0, 0, 0 C. 13, 7, 30, 3.33 D. 0,3, 30, 3.33 E. salah semua

16. Berikut ini penggalan program Pascal : Function Abc(a,b : byte) : longint; Begin

(24)

Else Abc := a * Abc(a,b-1) End;

Bila function abc di atas dipanggil dengan x := Abc(5,3); maka x berharga : A. 15

B. 125 C. 1 D. 215

E. salah semua

17. Masih berhubungan dengan no 16, function abc dipanggil dengan x := abc(3,5) maka berharga :

A. 81 B. 15 C. 243 D. 24

E. salah semua

18. Masih berhuhungan dengan no 16, bila statement abc := a * abc(a,b-1); diganti dengan abc := a + abc(a,b-1); dan dipanggil dengan x := abc(3,4); maka berharga : A. 13 B. 12 C. 10 D. 8 E. salah semua

19. Penggalan program Pascal sbb : Type kal = string[20];

Procedure pqr(x : kal, n : byte); Begin If n > 0 then Begin Write(x[n]); Pqr(x,n-1); End; End;

(25)

Bila dipanggil procedure dengan pqr(‘TITA99’,6); maka outputnya : A. TITA99 B. 99ATIT C. TITA D. Salah semua E. 99TITA 20. Penggalan program sbb : Function xyz(n : byte) : integer; Begin

If n = 1 then xyz := n Else xyz := 1 + xyz(n-1); End;

Bila function xyz dipanggil dengan a := xyz(10); maka a berharga : A. 1

B. 9 C. 10 D. 0

E. salah semua

21. Masih berhubungan dengan soal no. 20, bila dipanggil dengan y := xyz(16); maka y berharga : A. 16 B. 1 C. > 16 D. 10 E. salah semua

22. Bila program no. 20, statement xyz := 1 + xyz(n-1); diganti dengan xyz := n + xyz(n-1); dan dipanggil dengan y := xyz(5); maka y berharga :

A. 15 B. 5 C. 1 D. > 15

E. salah semua

(26)

Begin

If n < 3 then xyz := n-1

Else xyz := xyz(n-1) + xyz(n-2); End;

Bila function xyz di atas dilengkapi dengan statemen di bawah ini maka y berharga : Y := 0; For a := 1 to 3 do y := y + xyz(a); Writeln(y); A. 2 B. 3 C. 4 D. 5 E. salah semua

24. Masih berhubungan dengan soal no 23 diatas.

Bila function xyz di atas dilengkapi dengan statemen di bawah ini,maka x berharga :

X := 0;

For j := 3 downto 1 do x := x + xyz(j+1); Writeln(x); A. 2 B. 3 C. 4 D. 5 E. salah semua

25. Penggalan program Pascal sebagai berikut : Var a, b, c : real; ... a := 123.456 b := int(a); c := sqr(b); c := sqrt(c); writeln( b, c)

(27)

maka nilai b dan c adalah berharga A. 123.0 123.0 B. 123 123 C. 0.456 456 D. 456 0.456 E. 123.0 0.456

Umpan Balik dan Tindak Lanjut

Cocokkanlah jawaban anda dengan Kunci Jawaban Evaluasi yang terdapat di bagian lampiran modul ini dan hitunglah jumlah jawaban anda yang benar. Kemudian gunakan rumus di bawah ini untuk mengetahui tingkat penguasaan anda dalam materi Modul ke-1.

Rumus :

% 100

25 ×

= Jumlah jawabananda yangbenar penguasaan

Tingkat

Arti tingkat penguasaan yang anda capai : 90% - 100% = baik sekali

80% - 89% = baik 70% - 79% = sedang - 69% = kurang

Kalau Anda mencapai tingkat penguasaan 80% atau lebih, Anda dapat meneruskan ke modul berikutnya. Bagus ! Tetapi kalau nilai Anda dibawah 80%, Anda harus mengulang Modul ke-1 terutama yang belum Anda kuasai.

(28)

BAHAN BACAAN

Brassard, Gilles, and Bratley, Paul, 1996, Fundamentals of Algorithmics,

Prentice Hall, Englewood Cliffs, New Jersey.

Budiyanto, Alex, 2003, Pengantar Algoritma dan Pemrograman, www.Ilmu Komputer.com

Jogiyanto H.M, 1995, Turbo Pascal versi 5.0, jilid 1, Andi Offset, Yogyakarta. Munir, Rinaldi, Ir, dan Lidya, Leoni, Ir., 1998, Algoritma dan Pemrograman I,

Informatika, Bandung.

Pranata, Antony, 2000, Algoritma dan Pemrograman, J & J Learning, Yogyakarta.

(29)

LAMPIRAN

KUNCI JAWABAN FORMATIF

1. D 2. C 3. B 4. C 5. A 6. E 7. A 8. C 9. D 10. E 11. E 12. C 13. B 14. B 15. E 16. B 17. C 18. A 19. B 20. C 21. A 22. A 23. A 24. C 25. A

Gambar

Gambar 1.  Program dibagi-bagi menjadi beberapa subprogram

Referensi

Dokumen terkait

(1) Jaringan pengumpul pada sistem pengolahan air limbah terpusat sebagaimana dimaksud dalam Pasal 3 ayat (2) adalah jaringan perpipaan yang terdiri dari pipa

Dalam analisa kinerja ruas jalan Bundaran PU pada kondisi normal, volume kendaraannya tetap menggunakan nilai arus total maksimum kendaraan yang melintas pada ruas jalan Bundaran PU

Telah diserahkan perkara penagihannya kepada Pengadilan Negeri atau instansi pemerintah yang menangani piutang negara; atau adanya perjanjian tertulis mengenai

Akan tetapi mempunyai beberapa perbedaan yaitu bentuk penyampaian soal yang ada diaplikasi, objek, pokok bahasan tentang pengenalan Asmaul Husna, aplikasi yang

Karena pemuda desa dan pengrajin batik tulis di Desa Jetis sudah mengetahui posisi ekonomi mereka dalam kondisi ekonomi yang terbilang menengah kebawah, yang mana

Data dalam penelitian ini berupa mengukur ranah kognitif pada soal Ujian Nasional IPA tingkat SMP/MTs tahun ajaran 2015-2016. Pada masing-masing soal UN diambil 1 paket

Penelitian ini bertujuan untuk memberkan gambaran profil soal Ujian Nasional biologi tingkat SMA tahun ajaran 2014-2016 berdasarkan perspektif Higher Order

bahwa berdasarkan pertimbangan sebagaimana dimaksud dalam huruf a dan huruf b, perlu membentuk Peraturan Daerah tentang Perubahan Kedua Atas Peraturan Daerah Nomor 5 Tahun