Modul Algoritma Pemrograman
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
Penulis
Modul Ke-5 - Hal 1
Modul Algoritma Pemrograman
II. PENDAHULUAN Setiap perubah pada tipe dat terstruktur bisa menyimpan lebih dari sebuah nilai data, masing-masing nilai data tersebut disebut sebagai dengan komponen / elemen. Karakteristik tipe data terstruktur ditentukan berdasarkan cara penstrukturan dan tipe masing-masing komponen. Jika komponennua juga bertipe terstruktur, tipe data terstruktur yang dihasilkan mempunyai lebih dari sebuah tingkat penstrukturan. Tingkat penstrukturan bisa tak terbatas. Ukuran tipe terstruktur dalam Turbo Pascal maksimum 65520 byte yaitu sebesar memori segmen data.
III. TIPE LARIK (ARRAY) A.1. Tujuan Instruksional Umum Setelah mempelajari modul ini Anda diharapkan mampu menyelesaikan permasalahan dengan membangun algoritma dan mengimplementasikan menggunakan tipe data terstruktur array
2. Tujuan Instruksional Khusus Setelah menyelesaikan modul ini Anda diharapkan dapat : a. mendeklarasikan tipe data array minimal untuk array satu dimensi untuk menyelesaikan masalah sederhana. b. menjelaskan menyelesaikan
pengertian masalah
Array
dan
perhitungan,
penggunaannya penyimpanan
data,
untuk dan
sebagainya dalam waktu maksimal 15 menit. c.
menjelaskan
penggunaan
array
2
dimensi
untuk
membantu
menyelesaikan permasalahan maksimal dalam waktu 15 menit. d. menjelaskan penggunaan array multidimensi untuk membantu menyelesaikan permasalahan maksimal dalam waktu 20 menit.
Modul Ke-5 - Hal 2
Modul Algoritma Pemrograman
B. URAIAN MATERI Array adalah suatu tipe data terstruktur yang terdapat dalam memori yang terdiri dari sejumlah elemen (tempat) yang mempunyai tipe data yang sama dan merupakan gabungan dari beberapa variabel sejenis serta memiliki jumlah komponen yang jumlahnya tetap. Array ( biasa juga disebut larik) merupakan tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bersifat sama. Bagian yang menyusun array biasa dinamakan elemen array. Masing-masing elemen dapat diakses tersendiri, melalui indeks array, seperti terlihat pada gambar 5.1. Elemen-elemen dari array tersusun secara sequential dalam memori komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun banyak dimensi.
Elemen-elemen array
1
2
3
4
5
Indeks array
ARRAY DaftarMusik
Gambar 5.1. Struktur Array
1). Array Berdimensi Satu Array berdimensi satu dapat digambarkan sebagai kotak panjang yang terdiri atas beberapa kotak kecil sperti terlihat pada Gambar 5.1. Dalam gambar tersebut, array memiliki 5 buah elemen. Untuk
membentuk
array
seperti
pada
gambar
5.1,
diperlukan
pendeklarasian sebagai berikut:
Modul Ke-5 - Hal 3
Modul Algoritma Pemrograman
CONST MAKS_ELEMEN = 5; VAR X : Array [1 .. MAKS_ELEMEN] OF BYTE;
Pada contoh ini, X dapat menampung 5 buah elemen bertipe Byte. Yang menjadi kata-kata kunci pendeklarasian array adalah kata cadang ARRAY. Banyaknya komponen dalam suatu larik ditunjukkan oleh suatu indeks yang disebut dengan tipe indeks (index type). Tiap-tiap komponen larik dapat diakses dengan menunjukkan nilai indeksnya. Bentuk umum : Var nama : array[index] of tipe dengan : var, array, of
kata cadangan yang harus ada.
nama
nama larik yang akan dideklarasikan.
index
batas
yang
akan
ada
pada
larik
yg
akan
dideklarasikan(cacah elemnya). tipe
tipe larik.
Array dapat bertipe data sederhana seperti byte, word, integer, real, bolean, char, string dan tipe data scalar atau subrange. Beberapa contoh pendeklarasian tipe array: VAR TableNilai
: Array [1..5] OF Integer;
TableHuruf : Array [1..26] OF Char; Pada contoh diatas: z
Tipe TablelNilai berisi 5 buah elemen (dengan indeks berkisar antara 1 sampai 5) dan masing-masing bertipe Integer.
z
TabelHuruf adalah tipe yang berisi 26 elemen dengan masing-masing elemen bertipe Char.
Modul Ke-5 - Hal 4
Modul Algoritma Pemrograman
a)
Inisialisasi Array Berdimensi Satu Suatu array dapat diberi nilai awal saat dideklarasikan. Hal ini dikerjakan pada bagian CONST, berkedudukan sebagai konstanta bertipe. Sebagai contoh: TYPE TipeHari = (Senin, Selasa, Rabui, Kamis, Jumat, Sabtu); CONST NamaHari : Array OF [TipeHari] = (‘Senin’, ‘Selasa’,’Rabu’,’Kamis’, ’jumat’,’Sabtu’,’Minggu’);
Pada contoh diatas, NamaHari di definisikan sebagai array dan sekaligus diberi nilai. Contoh program berikut menunjukan cara untuk mengakses isi NamaHari. Contoh 1: Uses crt; Type
Kalimat = array[1..3] of string;
Contoh 2: Diketahui himpunan n buah data yang merupakan nilai n orang siswa dalam suatu mata pelajaran. Akan ditentukan berapa rata-rata kelas dan berapa orang siswa mempunyai nilai diatas rata-rata kelas. program empatbelas; uses crt; var i,n,nilatas : integer; nom,nama : array[1..10] of string; nilai : array[1..10] of real; jum, rata : real; begin clrscr; write('Banyak data mahasiswa : ');readln(n); for i:= 1 to n do begin write('Nomor mahasiswa : ');readln(nom[i]);
Modul Ke-5 - Hal 5
Modul Algoritma Pemrograman
write('Nama mahasiswa : ');readln(nama[i]); write('Nilai : ');readln(nil[i]); end; clrscr; writeln('':10,'Daftar Nilai Mahasiswa'); writeln('----------------------------------------------------------------'); writeln('| no | nomor | nama mahasiswa | Nilai |'); writeln('| | mahasiswa | | |'); writeln('----------------------------------------------------------------'); jum := 0; for i:= 1 to n do begin jum := jum + nil[I]; write('|',i:3,'|',nom[i],'':10-length(nom[i]),'':5,'|',nama[i],'':26length(nama[i])); writeln('|',nilai:15:2, '':26,'|'); end; writeln('-----------------------------------------------------------------'); rata := jum /n; nilatas:=0; For I:=1 to n do Begin If nil(I) > rata then nilatas := nilatas+ 1; End; Writeln(‘ Rata-rata kelas : ‘,rata:7:2); Writeln(‘Jumlah mahasiswa yang mendapat nilai diatas rata-rata : ‘,nilatas); readln end.
b)
Array Sebagai Tabel Pencarian dan Perhitungan Deklarasi array tidak memberikan nilai pada elemen arraynya. Tugas ini dilakukan oleh program. elemen-elemen array dapat diberikan nilai dalam 3 cara pokok yang berbeda : 1. nilai diberikan ke lemen-elemen dapat berupa konstanta 2. elemen-elemen array dapat digunakan untuk menampung hasil peritungan.
Modul Ke-5 - Hal 6
Modul Algoritma Pemrograman
3. elemen-elemen array dapat digunakan untuk menyimpan nilai dari item data yang dimasukkan oleh pemakai atau membaca dari beberapa sumber lain. Contoh : Type TipeArray = array[1..10] of integer; Var X, y : TipeArray; I, j
: integer;
Elemen-elemen dari array x dan y dapat ditunjukkan dengan subskrip konstanta integer. Perhatikan pernyataan berikut ini yaitu memberikan nilai 3 ke elemen pertama pada x dan nilai -2 ke lemen ke-3 pada y : X[1] := 3; Y[3] := x[1] – 5; Elemen-elemen array x
dan y dapat ditunjukkan dengan subskrip
variabel integer. Perhatikan pernyataan ini yaitu memberikan nilai 3 ke elemen pertama pada x dan nilai -2 ke elemen ke tiga pada y : I := 1; X[1] := 3; J := 3 Y[J] := x[I] – 5
Demikian juga sembarang ekspresi dengan nilai integer dapat digunakan sebagai subskrip, yang ditunjukkan pada pernyataan berikut ini : J := 2; X[J -1] := 3; Y[J+1] := X[J-1] – 5;
J-1 bernilai 1 berarti X[1] diberi nilai 3, dengan cara yang sama J+1 = 3, sehingga Y[3] diberi nilai -2
Modul Ke-5 - Hal 7
Modul Algoritma Pemrograman
c)
Array Sebagai Penyimpan Data Ketika ada multi item data yang diproses oleh program dan dibutuhkan untuk menyimpan semua item tersebut ke dalam memori pada waktu yang bersamaan, maka sangatlah tepat menggunakan array untuk menyimpan data tersebut. Memori yang digunakan harus mencukupi untuk menyimpan data tersebut. Pada saat anda membuat array untuk menyimpan data anda harus mengetahui jumlah elemen maksimum yang mungkin terjadi. Pada saat array digunakan untuk menyimpan data, maka dimungkinkan untuk membagi program ke dalam dua bagian yang terpisah. Bagian pertama adalah bagian data yang membaca dan menyimpan ke dalam array. Bagian kedua adalah bagian memproses data, khusus pada awalnya degan elemen data pertama dan dilanjutkan sampai akhir. Contoh : Membaca dan menyimpan
daftar
dari nama customer. Kita
asumsikan nama-nama tersebut tidak akan lebih dari 200 nama, tetapi jumlah pasti akan berubah-ubah. Const Batas = 200; Type Tipenama = string[20]; Tipearray = array[1..batas] of tipenama; Var Daftar : tipearray; Nama : tipenama; N, indek : integer; begin N:=0; Write(‘Masukkan nama customer (Stop untuk berhenti) : ‘); Readln(nama); While (nama < > ‘Stop’) and (N < batas) do Begin N := n +1; Daftar[n] := nama; Write(‘Masukkan nama customer (Stop untuk berhenti) : ‘); Readln(nama); End; End.
Modul Ke-5 - Hal 8
Modul Algoritma Pemrograman
2) Array Berdimensi Dua Sejauh ini struktur yang telah dibahas merupakan array yang bekerja dengan daftar linear yang dikases dengan satu subskrip, yang disebut array satu dimensi. Array satu dimensi sebagai item-item kolom tunggal yang semua itemnya bertipe sama. Kadang-kadang kita perlu membuat struktur yang lebih kompleks yang mempunyai dua dimensi yaitu berupa baris dan kolom. Bentuk umum : Var nama : array[index1,index2] of tipe dengan : var, array, of kata cadangan yang harus ada. nama
nama larik yang akan dideklarasikan.
Index1
batas pertama yang akan ada pada larik yg akan dideklarasikan(cacah elemen pada baris).
Index2
batas ke dua yang akan ada pada larik yg akan dideklarasikan(cacah elemen pada kolom).
tipe
tipe larik.
Sebagai contoh, andaikata kita akan menyimpan 3 tes untuk 100 mahasiswa kita dapat membuat tabel sebagai berikut : Test 1
Test 2
Test 3
Mahasiswa 1 Mahasiswa 2 Mahasiswa 3 Subskrip pertama mewakili jumlah mahasiswa dan subskrip kedua mewakili jumlah tes. Jika nama arraynya TestMhs, maka TestMhs[1,2] berarti mengandung nilai untuk mahasiswa pertama, tes yang ke dua. TestMhs[3,1] mengandung nilai untuk mahasiswa ke tiga test yang pertama. Struktur ini dapat dideklarasikan : Type arrayDuaDimensiReal = array[1..100, 1..3] of real; var TestMhs : arrayDuaDimensiReal;
Modul Ke-5 - Hal 9
Modul Algoritma Pemrograman
Memproses elemen array dua dimensi digunakan dua subskrip. Contoh seandainya Anda ingin membuat array dua dimensi dengan ukuran maksimum 100 baris dan 10 kolom. Dalam kasus tertentu anda dapat menggunakan sembarang bilangan pada baris (sampai 100) dan sembarang bilangan pada kolom (sampai 10). Struktur ini dapat dibuat dengan segmen program berikut ini : Const MakBaris = 100; MakKolom = 10; Type TipeArray = array[1..MakBaris,1..MakKolom] of Real; Var A
: TipeArray;
N, M, indekBaris,indekKolom : integer;
Dua variabel N dan M mewakili jumlah baris dan jumlah kolom yang digunakan untuk menyimpan data. Dengan segmen program ini, kita dapat menulis prosedur untuk memuat data ke dalam array. Pemakai pertama kali memasukkan nilai untuk N dan M dan kemudian memasukkan dalam setiap posisi pada array tersebut, pada saat yang berbeda. Contoh Prosedur tersebut adalah : Write(‘Masukkan jumlah Baris dan Kolom’); Readln(N,M); {prosedur memasukkan data urut baris} for indekBaris :=1 to N do for indekKolom := 1 to M do begin write(‘Masukkan nilai utk elemen dlm baris ‘,indekkolom); readln(A[indekBaris,indekKolom]);
‘,indekBaris,’
Kolom
d
3) Array Dengan Tiga Atau Lebih Dimensi Bentuk umum : Var nama : array[index1,index2,...,indexn] of tipe dengan :
Modul Ke-5 - Hal 10
Modul Algoritma Pemrograman
var, array, of kata cadangan yang harus ada. nama
nama larik yang akan dideklarasikan.
Index1
batas pertama yang akan ada pada larik yg akan dideklarasikan
Index2
batas ke dua yang akan ada pada larik yg akan dideklarasikan
Indexn
batas ke n yang akan ada pada larik yg akan dideklarasikan
tipe
tipe larik.
Contoh 3: Menghitung rata-rata per periode jika diketahui Gp : menunjukkan periode tes, Sn : jumlah mahasiswa dan Tn : jumlah tes. Const N = 100; Type Var
Begin
End.
RealArray3D = array[1..6,1..N,1..3] of Real; TingkatanMhs : RealArray3D; Gp, Sn, Tn : integer; Rata,tottingkat: real; Tottingkat := 0; For Gp := 1 to 6 do For Sn := 1 to 3 do Tottingkat : tottingkat + tingkatanMhs[Gp,Sn,Tn]; Rata := tottingkat / (6*3*N);
C. EVALUASI FORMATIF 1). Tuliskan segmen program Pascal yang mendeklarasikan array yang tepat untuk pernyataan berikut : program yang memerlukan dua tabel nama propinsi di Indonesia. Tabel pertama memuat karakter yang merupakan singkatan nama propinsi, dan tabel kedua memuat nama propinsi lengkap. 2). Lengkapi Contoh 3, sehingga dapat mencetak nilai tes dan rata-ratanya. 3). Diketahui himpunan n buah data yang merupakan nilai n orang siswa dalam suatu mata pelajaran. Akan ditentukan berapa rata-rata kelas dan berapa orang siswa mempunyai nilai diatas rata-rata kelas.
Modul Ke-5 - Hal 11
Modul Algoritma Pemrograman
IV. TIPE HIMPUNAN A.1. Tujuan Instruksional Umum Setelah mempelajari modul ini Anda diharapkan mampu menyelesaikan permasalahan dengan membangun algoritma dan mengimplementasikan menggunakan tipe data himpunan
2. Tujuan Instruksional Khusus Setelah menyelesaikan modul ini Anda diharapkan dapat : a.
menuliskan deklarasi tipe data himpunan dengan benar untuk membangun program sederhana dalam waktu maksimal 5 menit.
b.
menjelaskan pengertian tipe data himpunan dan penggunaannya untuk menyelesaikan masalah dalam waktu minimal 15 menit.
B. URAIAN MATERI Set merupakan tipe data terstruktur yang terdiri dari elemen yang disebut Anggota set. Anggota set ini tidak memiliki urutan dan tidak boleh ada dua anggota set yang sama. Sebuah set dalam Pascal hanya dapat memuat maksimal 255 anggota dan hanya mempunyai satu tipe. Bentuk Umum : Type
= set of ; Contoh : Type Karakter = set of char; Tanggal = set of 1..31; Hari = set of (Senin, Selasa, Rabu, Kamis, Jumat,Sabtu, Minggu); Var Kar : karakter; tgl : tanggal; smg ; hari; nilai-nilai dalam suatu set dapat dituliskan dengan beberapa cara, yaitu disebutkan satu persatu(enumerasi), atau dituliskan dalam rentang tertentu. 1). Notasi Set Enumerasi Elemen-elemen yang terdapat dalam set dinyatakan satu persatu.
Modul Ke-5 - Hal 12
Modul Algoritma Pemrograman
Contoh : Angka := [1,2,3,4,5]; Huruf := [ ‘A’, ‘B’, ‘C’]; 2). Notasi Set Rentang Elemen-elemen yang dinyatakan secara rentang berdasarkan tipe dasar set tersebut. Contoh : Angka := [1..6]; Huruf := [ ‘A’.. ‘C’,’G’...’Z’];
Pascal
menyediakan
operator
hubungan
yang
dapat
digunakan
untuk
mengetahui (tes) keanggotaan himpunan. Contoh operator In yang berarti termasuk sebagai anggota. ‘a’ in [‘a’,’b’,’c’] adalah true. Contoh 1 : ( X >= 1 ) and ( X <= 10 ) hubungan ini true(benar) ketika x dalam jangkauan 1..10 sehingga dapat ditulis: X in [1..10];
Contoh 2 : program untuk menentukan huruf yang tidak di inputkan dari himpunan huruf. Program Huruf_Kapital; Uses crt; Type HurufKapital = ‘A’ . . ‘Z’; var kar = char; InputKar = set of HurufKapital; Begin inputKar := []; repeat write(‘Inputkan huruf : ‘); readln(Kar); if upcase(Kar) in [‘A’ ... ‘Z’] then inputKar := InputKar + [Kar]; until not (Kar in [‘A’ . . ‘Z’]); writeln(‘Huruf yg belum dimasukkan : ‘); for Kar := ‘A’ to ‘Z’ do if not(Kar in InputKar) then write(Kar :2); end.
Hasil Run : Inputkan huruf : S Inputkan huruf : A Inputkan huruf : L Inputkan huruf : B Inputkan huruf : I Inputkan huruf : E Inputkan huruf : N Inputkan huruf : G Inputkan huruf : M Inputkan huruf : U Inputkan huruf : * Huruf yg belum dimasukkan : CDFGJKOPQRTVWXYZ
Modul Ke-5 - Hal 13
Modul Algoritma Pemrograman
C. EVALUASI FORMATIF 1). Andaikata y merupakan tipe integer dan mempunyai nilai 10. setiap kondisi berikut ini true atau false ? a. y in [1..10]; b. y in [0..5,8..12]; c. not ( y in [1..5]) d. ( y in [1..5] nd (y in [8..12]) 2).
Tulis versi yang lebih sederhana pada setiap kondisi berikut ini. Asumsi y adalah tipe integer, bulan adalah tipenamabulan dan karakter merupakan tipe char; a. (y = 2) or (y=4) or (y=6) b. (bulan=Maret) or (bulan = April) or (bulan = mei);
Modul Ke-5 - Hal 14
Modul Algoritma Pemrograman
V. TIPE REKAMAN (RECORD) A.1. Tujuan Instruksional Umum Setelah mempelajari modul ini Anda diharapkan mampu menyelesaikan permasalahan dengan membangun algoritma dan mengimplementasikan menggunakan tipe data terstruktur rekaman (record)
2. Tujuan Instruksional Khusus Setelah menyelesaikan modul ini Anda diharapkan dapat : a.
menuliskan deklarasi record untuk membangun program sederhana maksimal dalam waktu 5 menit.
b.
menjelaskan
pengertian
record
dan
penggunaannya
untuk
menyelesaikan masalah dalam waktu minimal 15 menit.
B. URAIAN MATERI Seperti pada larik, rekaman (record) adalah kumpulan data. Perbedaan antara larik dengan rekaman adalah bahwa dalam larik semua elemennya harus bertipe sama, tetapi dalam rekaman setiap elemen dapat mempunyai tipe data yang berbeda satu sama lainnya. Untuk mendeklarasikan rekaman selalu diawali dengan nama record tanda sama dengan (=) dan kata kunci record serta diakhiri oleh kata kunci end. Field-field dari record tersebut diletakkan diantara kata kunci record dan end. Bentuk umum : type pengenal1 = record medan1 : tipe1; medan2 : tipe2; . medann : tipen; end;
dimana : pengenal
pengenal
yang
menunjukkan
tipe
data
yang
akan
dideklarasikan. medan
nama medan yang akan digunakan.
tipe
sembarang tipe data yang telah dideklarasikan sebelumnya.
Modul Ke-5 - Hal 15
Modul Algoritma Pemrograman
Contoh : Type TipeKalender = record Tgl : 1..31; Bln : 1..12; Thn : 1900 .. 2000; End; TipeSiswa = record Nama : string[25]; alamat : string[35]; klas : 1..6; kelamin : (L,P); end;
untuk menggunakan atau memberikan nilai pada variabel bertipe rekaman dilakukan dengan menyebutkan nama variabel rekaman diikuti tanda titik dan variabel di dalam rekaman. Sebagai contoh : var Kalender : TipeKalender; Siswa : TipeSiswa;
Anda dapat menuliskan pernyataan berikut : Kalender.tgl Kalender.bln Siswa.nama
:= 30; := 10; := ‘salsabila’;
Atau dapat juga menggunakan kata kunci with - do With kalender do Tgl := 30; Bln := 10;
Contoh : Type
Var
Mahasiswa = record; Nama : string[25]; NIM : string[10]; IPK : real; End; Mhs : mahasiswa;
Modul Ke-5 - Hal 16
Modul Algoritma Pemrograman
Begin Write(‘Nama : ‘); readln(mhs.nama); Write(‘NIM : ‘); readln(mhs.nim); Write(‘IPK : ‘); readln(mhs.ipk); Writeln; Writeln(‘Nama Anda : ‘,mhs.nama); Writeln(‘NIM Anda : ‘,mhs.nim); Writeln(IPK Anda : ‘,mhs.IPK); End.
Run : Nama NIM IPK
: Salsabila : 9107512 : 3.78
Run : Nama Anda : Salsabila NIM Anda : 9107512 IPK Anda : 3.78
C. EVALUASI FORMATIF 1. Buatlah program untuk mencatat data-data karyawan suatu perusahaan yang terdiri dari field jumlah karyawan, nama, gaji/bulan, serta statusnya(belum menikah, menikah, atau duda/janda). Jika sudah menikah tanya berapa anaknya. Tampilkan seluruh data yang dicatat dalam sebuah tabel.
Modul Ke-5 - Hal 17
Modul Algoritma Pemrograman
EVALUASI Pilihlah salah satu jawaban yang Anda anggap paling benar 1. Bagaimana cara mendefinisikan konstanta yang berupa array berukuran 3 x 3 A. const A[3,3] = ((1,2,3), (2,3,4), (3,4,5)); B. const A : array[3,3]=(1,2,3, 2,3,4, 3,4,5); C. const A : array[1..3,1..3] of byte = (1,2,3),(2,3,4), (3,4,5); D. const A : array[1..3,1..3] of byte = (1,2,3 2,3,4 3,4,5); E. const array[3,3] A = (1,2,3,2,3,4,3,4,5);
2. Cara menukar dua elemen array yang benar adalah : Var data
: array[1..64] of byte;
I, ,J, K : byte;
A. K := J; J := I; I := K; B. K := data[J]; data[J] := data[I]; data[I] := K; C. Data[K] := J; J := I; I := data[K]; D. Data[J] := K; data[I] := data[J]; K := data[I]; E. [tidak ada yang benar] 3. Type Data : record Name : string; Value : integer; End; Begin Data.name := “; Data.value := 0; With data do begin Name := ‘MaxInt’; Value := 32767; end; Writeln(data.name,’ ‘,data.value,’ ‘,data.value,’ ‘,data.name); End;
Modul Ke-5 - Hal 18
Modul Algoritma Pemrograman
Output program di atas : A. MaxInt 32767 0 B. MaxInt 0 32767 C. MaxInt 32767 32767 MaxInt D. 32767 0 MaxInt E. program error (duplicate identifier)
4.
Dengan bantuan deklarasi berikut : type P =(magenta, Kuning, Sian); S = set of char; R = array[1..3] of byte; Tentukan manakah yang tidak benar : A. type A = array[True . . False] of string; B. type B = array[p] of string; C. type C = array[Magenta . . Sian] of string[7]; D. type D = array[-6. . 6] of R; E. type E = array[1..20] of S;
5. Misalkan menu adalah sebuah variabel bertipe record dengan anggota (field) sebagai berikut : - nama bertipe string - harga bertipe real; - PPN bertipe boolean;
Perintah manakah yang tidak benar ? A. with menu do nama :=’Salsabila’; B. menu.harga := menu.harga *1.20 C. menu.PPN := menu.harga > 15000; D. with menu do if PPN then harga := harga *1.15; E. if menu.PPN then menu.harga := harga *1.15;
6. Dengan deklarasi sebagai berikut : type warna = (Merah, Kuning, Hijau, Biru); var W : warna;
Modul Ke-5 - Hal 19
Modul Algoritma Pemrograman
Perintah manakah yang tidak benar ? A. if W in (warna) then writeln(‘Ada’); B. W:= Merah; W := W + Kuning; C. W := [Merah]; D. W := Hijau; Dec(W); E. W := “Merah”;
7.
Perhatikan source code dibawah ini : const matrik : array[1..3] of char = (‘A’,’*’,’B’); begin writeln(matrik[1]); write(matrik[2]); writeln(matrik[3] + matrik[1]); end; output program diatas setelah dieksekusi adalah : A. A * BA B. A *BA C. A * B+A D. Terjadi compiler error E. Tidak ada jawaban yang benar
8. Penggalan program dideklarasikan sbb : Type ari = array[1..5] of byte; Var x : ari; I,,j : byte; ……………………….. for I := 1 to 5 do x[I] := 10 div I; J := 0; for I := 5 downto 1 do j := J + X[I]; writeln(J);
Modul Ke-5 - Hal 20
Modul Algoritma Pemrograman
output yang dicetak dari penggalan program di atas adalah : A. 5 B. 22 C. 22.8 D. salah semua E. 5.22
9. Masih berhubungan dengan soal no. 8 diatas. Bila array diubah dari 5 menjadi 10, begitu juga pada for I := 1 to 10 do dan for I := 10 downto 1 do, maka outputnya : A. 28.3 B. 28 C. 27 D. salah semua E. 27.3
10. Penggalan program Pascal sbb : Type seminggu = (senin, selasa, rabu, kamis, jum’at, sabtu, minggu); Hari = set of minggu; Var har, hur, hor : hari; …………………… har := [senin . . rabu]; hur := [senin, kamis, jum’at, sabtu]; hor := har * hur; sehingga isi dari hor adalah : A. [selasa] B. [rabu] C. [senin] D. [sabtu] E. salah semua
11. Berdasarkan soal no 10. diatas, apa isi dari hor bila statement hor := har * hur diganti dengan hor := har – hur A. [senin, selasa, rabu] B. [selasa, rabu] C. [kamis,jumat, sabtu]
Modul Ke-5 - Hal 21
Modul Algoritma Pemrograman
D. [kamis, jumat] E. salah semua.
12. berdasarkan soal no. 10, apa isi dari hor bila statement hor := har * hur diganti dengan hor := har + hur A. [senin,selasa,rabu] B. [senin,selasa,rabu,kamis,jumat,sabtu]; C. [kamis,jumat,sabtu] D. [selasa,rabu,kamis] E. salah semua
13. Manakah yang benar dari deklarasi di bawah ini : A. type rek = record nosiswa : string[10]; nama : string[30]; nilai : byte; end; B. type rek : record nosiswa : string[10]; nama : string[30]; nilai : byte; end; C. type rek = record nosiswa = string[10]; nama = string[30]; nilai = byte; end; D. type rek : record nosiswa = string[10]; nama = string[30]; nilai = byte; end; E. salah semua
Modul Ke-5 - Hal 22
Modul Algoritma Pemrograman
14. Masih berdasarkan no 13. diatas. Setelah mendeklarasikan type selanjutnya deklarasi var manakah yang benar ? A. var reksis : rek; B. var reksis = rek; C. var reksis := rek; D. var rek : reksis; E. var rek = reksis;
15. Berdasarkan soal no 13, untuk mendeklarasikan record berada di dalam array adalah sbb : A. var arek := array[1..10] of rek; B. var arek = array[1..10] of rek; C. var arek : array[1..10] of rek; D. var arek := array(1..10) of rek; E. var arek : array(1..10) of rek;
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 :
Tingkat penguasaan =
Jumlah jawaban anda yang benar × 100% 15
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.
Modul Ke-5 - Hal 23
Modul Algoritma Pemrograman
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.
Modul Ke-5 - Hal 24
Modul Algoritma Pemrograman
LAMPIRAN
KUNCI JAWABAN FORMATIF 1.
C
2.
B
3.
C
4.
E
5.
E
6.
E
7.
B
8.
B
9.
C
10. C 11. B 12. B 13. A 14. A 15. C
Modul Ke-5 - Hal 25