• Tidak ada hasil yang ditemukan

I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-5 - Hal 1

N/A
N/A
Protected

Academic year: 2021

Membagikan "I. KATA PENGANTAR. Modul Algoritma Pemrograman. Modul Ke-5 - Hal 1"

Copied!
25
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

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 pengertian Array dan penggunaannya untuk menyelesaikan masalah perhitungan, penyimpanan data, 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.

(3)

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.

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 Elemen-elemen array 2 4 3 5 1 ARRAY DaftarMusik Indeks array

(4)

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:

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.

CONST

MAKS_ELEMEN = 5;

VAR

X : Array [1 .. MAKS_ELEMEN] OF BYTE;

VAR

TableNilai : Array [1..5] OF Integer; TableHuruf : Array [1..26] OF Char;

(5)

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:

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 TYPE

TipeHari = (Senin, Selasa, Rabui, Kamis, Jumat, Sabtu); CONST

NamaHari : Array OF [TipeHari]

= (‘Senin’, ‘Selasa’,’Rabu’,’Kamis’,

(6)

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],'':26-length(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.

(7)

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

(8)

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;

(9)

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

(10)

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 :

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 :

3) Array Dengan Tiga Atau Lebih Dimensi

Bentuk umum :

Var nama : array[index1,index2,...,indexn] of tipe dengan :

Const

MakBaris = 100;

MakKolom = 10;

Type

TipeArray = array[1..MakBaris,1..MakKolom] of Real; Var

A : TipeArray;

N, M, indekBaris,indekKolom : integer;

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 ‘,indekBaris,’ Kolom ‘,indekkolom);

readln(A[indekBaris,indekKolom]); d

(11)

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.

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

Const

N = 100; Type

RealArray3D = array[1..6,1..N,1..3] of Real; Var TingkatanMhs : RealArray3D; Gp, Sn, Tn : integer; Rata,tottingkat: real; Begin 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);

(12)

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

<namatipe> = set of <tipedata>; 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

(13)

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

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 : C D F G J K O P Q R T V W X Y Z

(14)

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)

(15)

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.

(16)

Contoh :

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 := 30;

Kalender.bln := 10;

Siswa.nama := ‘salsabila’;

Atau dapat juga menggunakan kata kunci with - do With kalender do Tgl := 30; Bln := 10; Contoh : Type Mahasiswa = record; Nama : string[25]; NIM : string[10]; IPK : real; End; Var Mhs : mahasiswa; 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;

(17)

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.

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.

Run :

Nama : Salsabila NIM : 9107512 IPK : 3.78

Run :

Nama Anda : Salsabila NIM Anda : 9107512 IPK Anda : 3.78

(18)

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;

(19)

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;

(20)

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);

(21)

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]

(22)

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;

(23)

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 :

% 100

15 ×

= 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%,

(24)

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.

(25)

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

Gambar

Gambar 5.1.  Struktur Array

Referensi

Dokumen terkait

Dengan demikian dari pemberian umpan balik untuk meningkatkan motivasi belajar siswa pada materi Menghargai Jasa dan Peran Tokoh Perjuangan dalam Mempersiapkan Kemerdekaan

Hasil optimisasi disini dibagi dalam dua kasus yakni yang pertama pada cabang keluaran yaitu dititik G, laju alir gas yang keluar dari titik tersebut dibuat

Otitis media akut dapat dise#a#kan invasi virus Campak ke dalam telin$a ten$a!% Gendan$ telin$a #iasana !peremia pada fase prodormal dan stadium erupsi% 4ika terjadi invasi

Peneliti tersebut kemudian membandingkan efek antimikroba senyawa “X” dengan beberapa senyawa antimikroba lainnya pada uji plate  Kirby-Bauer dan hasil percobaan ditampilkan pada

Maka, penelitian akan dilaksanakan di Puskesmas Pandanaran yang belum memenuhi target capaian indikator SPM mengenai implementasi standar pelayanan minimal penderita

Penelitian ini bertujuan untuk: 1) Mengetahui tingkat kebisingan lalu lintas dan sebarannya di sepanjang Jalan Cik Di Tiro;2) Mengetahui hubungan antara jumlah

Pada penelitian ini, penulis ingin menganalisis evaluasi jaringan Fiber to the Curb (FTTC) menggunakan teknologi 10-Gigabit Capable Passive Optical Network (XGPON) dari

3) Remove the remaining protective strip and firmly press the wall plate onto the surface for 5 seconds. 4) Leave the wall plate for 24 hours before sliding the selected