BAHAN AJAR MATA KULIAH PEMROGRAMAN 2 Tinjauan Mata Kuliah 1.1.

matakuliah Deskripsi Mata Kuliah 2 merupakan 1 matakuliah lanjutan dari Pemrograman yang mempelajari bagaimana Pemrograman

membuat program terstruktur. Matakuliah praktikum dengan menggunakan bahasa pemrograman Pascal ini mempelajari materi array, record, prosedur, fungsi, sorting, searching dan file. 1.2. Kegunaan Mata Kuliah Matakuliah Pemrograman 2 memberikan manfaat kepada mahasiswa untuk dapat memahami Dengan lebih lanjut tentang bahasa pemrograman terstruktur. menggunakan

pemrograman Pasal ini, mahasiswa bisa membuat program untuk memecahkan berbagai macam persoalan dalam kehidupan seharihari. Matakuliah Pemrograman 2 merupakan prasyarat untuk dapat mengambil matakuliah Pemrograman 3. 1.3. Tujuan Instruksional Umum Setelah menyelesaikan mata kuliah ini, mahasiswa diharapkan mampu membuat program terstruktur yang kompleks. 1.4. Susunan Bahan Ajar Bab I Bab II Bab III Bab IV Bab V Bab VI 1.5. Array Record Prosedur Fungsi Sorting Searching Petunjuk Bagi Mahasiswa

Bab VII File

1

a. Sebelum mengikuti perkuliahan hendaknya mahasiswa telah membaca bahan ajar ini dan dapat diperkaya dengan sumber acuan lainnya yang relevan pada setiap pertemuan. b. Untuk memperkaya wawasan dan pengetahuan sangat dianjurkan penelusuran literatur khususnya materi algoritma dan struktur data melalui sumber bacaan dan internet. c. Mintalah petunjuk dari dosen jika ada hal yang belum terselesaikan, baik dalam diskusi kelompok dalam diskusi kelas d. Kerjakan setiap tugas terstruktur yang diberikan pada setiap akhir kegiatan/pertemuan dengan baik. e. Perbanyaklah latihan mengerjakan soal, baik secara teori maupun langsung dipraktekan dalam komputer dengan menggunakan bahasa pemrograman Pascal. maupun

BAB I

2

ARRAY A. Pendahuluan Deskripsi Singkat Bab ini akan mengemukakan bahasan tentang definisi array, deklarasi array, mengakses elemen array, array sebagai tipe data bentukan, array konstan, array sebagai parameter, array multidimensi. Relevansi Pembahasan pada bab ini sangat penting dipahami, karena materi array ini memberikan manfaat yaitu efisiensi program. Materi array sangat berkaitan dengan materi lainnya dalam sebuah pemrograman terstruktur, karena array dapat digunakan dan dikombinasikan dengan bahasan lain dalam sebuah program. Tujuan Instruksional Khusus Mahasiswa mampu membuat program dengan menggunakan array. B. Penyajian Bagi para pemrogram, efisiensi program merupakan hal utama yang harus diperhatikan, baik itu dalam hal kecepatan jalannya program, memori yang digunakan, banyak baris kode yang dituliskan dan juga ketepatan algoritma yang digunakan. Salah satu komponen yang harus dikuasai untuk memperoleh program yang baik adalah pengetahuan tentang array. 1) Definisi Array Array (larik) adalah sebuah variabel yang dapat menyimpan lebih dari satu nilai sejenis (memilikii tipe data sama). Hal ini berbeda dengan variabel biasa yang hanya mampu menampung satu buah nilai. Setiap nilai yang disimpan di dalam array disebut

3

maka array juga akan dideklarasikan di bagian definisi tipe (di bawah kata kunci type). Nilai 10 menunjukkan banyaknya elemen array sedangkan nilai 4 merupakan ukuran dari tipe data integer (dalam 32 bit). array juga dideklarasikan di dalam bagian deklarasi variabel.1 Komponen Array (sumber :Rahardjo) Setiap elemen array di atas menyimpan nilai bertipe integer dan akan menempati alamat memori yang berbeda. Bila akan didefinisikan sebagai tipe bentukan. pendeklarasian array dilakukan dengan menggunakan kata kunci array dan tipe data yang akan disimpan di dalamnya.2 Bentuk Umum Pendeklarasian array(sumber:Rahardjo) 4 . Dalam bahasa Pascal. NamaArray : array [Indeks Awal . maka dapat dipresentasikan sebagai berikut : A[1] 1 10 A[2] 2 20 A[3] 3 30 A[4] 4 40 A[5] 5 50 A[6] 6 60 A[7] 7 70 A[8] 8 80 A[9] 9 90 A[10] 10 100 Nilai elemen array Indeks array Elemen array Gambar 1. selai itu juga harus disertai dengan batas-batas indeksnya yang diapit oleh tanda bracket ([ ]). sedangkan nilai urut yang digunakan untuk mengakses elemennya disebut dengan indeks array. Deklarasi Array Sama seperti variabel lain. . Sebagai contoh. Gambar 1.dengan elemen array. IndeksAkhir] of tipe data. yang berasal dari 10 x 4. misalkan terdapat array A yang memiliki 10 buah elemen nilai yang bertipe integer. Berikut ini bentuk umum pendeklarasian array. hal ini akan menyebabkan array tersebut memiliki ukuran 40 byte.

indeks array juga dapat bertipe karakter maupun tipe enumerasi. end.Sebagai contoh.. yaitu fungsi Low dan High. . selanjutnya kita harus mengetahui bagaimana cara untuk memanipulasi array tersebut. maka kita harus mendeklarasikannya dengan cara berikut. Berikut ini contoh-contoh kode yang dapat digunakan untuk mendeklarasikan 10 buah elemen array bertipe integer sebagai pengganti kode di atas. indeks array diulai dari satu. Pada bahasa Pascal. Var A1 : A2 : A3 : A4 : array [0 . arrat [’A’ . array [5 . tersedia dua buah fungsi yang dapat digunakan untuk mengambil indeks terendah dan tertinggi dari sebuah array. 9] of integer. . Langkah pertama yang harus dilakukan adalah mengisikan nilai ke dalam elemen-elemen array bersangkutan. 10] of integer. indeks array dapat dimulai dari bilangan berapapun. Selain itu. Dalam bahasa Pascal. ’J’] of integer. apabila kita ingin mendeklarasikan array dengan nama A yang berisi 10 buah elemen bertipe integer. . Begin terendah := Low (A). Var A : array [1 . . tertinggi : integer. terendah. array [’a’ . Var A: array [1 . Perlu diperhatikan bahwa bahasa Pascal berbeda dengan bahasa C yang indeks array-nya selalu dimulai dari nol. ’j’] of integer. Pada kode tersebut. 15] of integer. . . Perhatikan contoh kode berikut. Adapun parameter dari kedua fungsi tersebut adalah nama array yang akan dicari indeksnya. 100] of integer. 2) Mengakses Elemen Array Setelah mengetahui cara pendeklarasian array. 5 . {akan menghasilkan nilai 1} tertinggi := High (A) {akan menghasilkan nilai 100} .

100] of integer. A[100] :=100..Bentuk umum untuk pengisian elemen array adalah sebagai berikut. Apabila kita akan membuat program untuk menyimpan sekumpulan data. Begin For i:= 1 to 100 do Begin A[1] := i. NamaArray [indeks] := nilai. {mengisi elemen pertama dengan nilai 1} A[2] :=2. end. coba perhatikan contoh kasus berikut. Gambar 1. Kode tersebut akan melakukan pengisian 100 elemen array dengan nilai 1 sampai 100 sehingga kode tersebut akan lebih sederhana apabila dituliskan dengan menggunakan struktur pengulangan seperti yang terlihat pada kode berikut. Var A: array [1. ratusan atau bahkan ribuan.. {mengisi elemen keseratus dengan nilai 100} end. coba perhatikan contoh kode di bawah ini. End. mungkin akan mucul pertanyaan mengapa kita perlu mendeklarasikan array? Untuk menjawab pertanyaan tersebut. Begin A[1] :=1. apakah akan menggunakan variabel sebanyak data yang ada? Jawabannya tentu tidak. dimana jumlah dari data tersebut puluhan. {mengisi elemen kedua dengan niali 2} A[3] :=3.100] of integer. misalnya data-data hasil penelitian yang berupa bilangan. 3) Mengapa Harus Menggunakan Array Bagi seorang pemula.. karena hal tersebut 6 ... Var A: array [1.3 Bentuk Umum Pengisian Elemen Array(sumber:Rahardjo) Untuk lebih memahaminya. {mengisi elemen ketiga dengan niali 3} . i : integer.

Apabila dilihat. Hal ini tentu akan merepotkan diri kita. readln(n8).’ : ’). max] of real. maka kita hanya perlu mengganti nilai dari konstanta max di atas dengan nilai yang sesuai. n5. bagaimana bila ratusan ata bahkan ribuan? Untuk mengatasi masalah ini. 4) Array Sebagai Tipe Data Bentukan 7 . Writeln(’masukkan data ke-5 : ’). readln(n5). n9. program di atas memang masih pendek karena datanya hanya 10. n6. end. n8.merupakan hal yang sangat tidak efisien. readln(n7). Writeln(’masukkan data ke-4 : ’). Writeln(’masukkan data ke-6 : ’). Const max = 10. readln(n10). begin for i:= 1 to max do writeln(’Masukkan data ke-’. i. Writeln(’masukkan data ke-7 : ’). Berikut ini perbaikan program di atas apabila kita menampung data-datanya ke dalam sebuah array. readln(n6). Var n : array [1 . Begin Writeln(’masukkan data ke-1 : ’). End. Writeln(’masukkan data ke-8 : ’). readln(n4). . readln(n[i]). i : integer. seharusnya kita menggunakan array untuk menyimpan data-data tersebut sehingga program akan jauh lebih sederhana dan mudah dalam pengerjaannya. n3. Writeln(’masukkan data ke-9 : ’). readln(n1). asumsikan bahwa banyak data tersebut. n7. n4. Writeln(’masukkan data ke-3 : ’). Alasan seperti inilah yang menyebabkan kita perlu untuk menggunakan array. readln(n9). Var N1. Apabila ternyata data berjumlah 100 atau 1000. readln(n3). n10 : real. Writeln(’masukkan data ke-10 : ’). Sebagai contoh. Writeln(’masukkan data ke-2 : ’). readln(n2). n2.

X[2] := 2. sedangkan variabel vowel bertipe vokal. Const NamaArray : array [indexAwal . . Untuk melakukan hal tersebut. . indeksAkhir] of tipe_data = 8 . .. Vowel : vokal. variabel ini tersebut contoh juga kode dapat yang diperlukan sebagai Berikut menunjukkan penggunaan variabel-variabel tersebut.. . Setelah selesai mendefinisikan array tersebut. Vowel [1] := ’a’. Type Bilangan = array [1 . Hal ini menyebabkan array. maka kita dapat menggunakannya untuk mendeklarasikan variabel lain di dalam program. Berikut ini bentuk umum pendeklarasiannya. End. 100] of integer. artinya nilai-nilai tersebut tidak dapat diubah. 5) Array Konstan Nilai yang terkandung di dalam sebuah array dapat bernilai konstan. Vowel [2] := ’i’.Array juga dapat digunakan sebagai tipe data bentukan. Berikut ini contoh pendeklarasian variabel yang menggunakan tipe bentukan berupa array. Begin X[1[ := 1.. yaitu bagian yang diawali dengan kata kunci type.. kita harus mendeklarasikan array bersangkutan dengan kata kunci const. Vokal = array [1 . yaitu dengan cara mendeklarasikannya di bagian definisi tipe data. 5] of char. Pada ontoh di atas kita mendeklarasikan variabel dengan nama x yang bertipe Bilangan. . Var X : bilangan.

’Rabu’. seperti yang ditunjukkan oleh kode di bawah ini. . End. 9 . Gambar 1. hr. karena elemen A [2] selalu bernilai ’B’} ’X’ . namun tidak untuk diubah. Oleh karena array A di atas bersifat konstan. Function HariSekarang : string. ’B’ . var thn. Const A : array [1 . karena elemen A [1] selalu bernilai ’A’} ’W’ . maka nilai konstan yang diisikan juga haruslah berjumlah 5. A [1] A [2] A [1] A [1] A [1] := := := := := ’V’ . ’Jumat’. begin getDate(thn. 5] of char = (’A’ . karena elemen A [3] selalu bernilai ’C’} ’Y’ . Const Hari : array[0 . Berikut ini contoh program lain yang akan menunjukkan penggunaan array konstan.. {SALAH.Nila1. ’Senin’. ’D’ . ’Sabtu’). apabila kita ingin mendeklarasikan array dengan jumlah elemen 5. karena elemen A [5] selalu bernilai ’E’} Hal ini menunjukkan bahwa array konstan nilainya hanya dapat dibaca.. indeksHari : word. Program ArrayKonstan. bln. {SALAH. perhatikan contoh implementasi dari array konstan berikut ini. ’C’ . karena elemen A [4] selalu bernilai ’D’} ’Z’ .4 Bentuk Umum Pendeklarasian Array Konstan (sumber:Rahardjo) Perlu diperhatikan bahwa banyaknya nilai konstan yang dituliskan diatas harus sesuai dengan banyaknya elemen array yang didefinisikan. maka kita tidak dapat menggantikan nilainya dengan nilai lain. Perhatikan contoh kode berikut. bln. . nilai2. ’Selasa’. .6] of string[6] = (’Minggu’. Sebagai contoh. Agar lebih memahami konsepnya.). {SALAH. HariSekarang := Hari [indeksHari]. Pada contoh di atas kita membuat sebuah fungsi untuk mendapatkan nama hari sesuai dengan tanggal sekarang (hari ini). {SALAH. {SALAH. hr. ’Kamis’. ’E’). indeksHari).

write(’Masukkan nomor bulan :’). Berikut ini contoh penggunaan array yang tidak diperbolehkan oleh kompiler. ’Nopember’. end. Type Bilangan = array[1. ’Agustus’. i). ’April’. N:integer). Masukkan nomor bulan : 3 Nama bulan ke-3 adalah Maret 6) Array Sebagai Parameter Pada kasus-kasus pemrograman tertentu kita juga dituntut untuk menggunakan array sebagai parameter sebuah prosedur ataupun fungsi. Pada contoh di atas kita te. Begin For i := 1 to N do Write (’masukkan elemen array ke-’. ’Februari’. noBulan. write(’Nama bulan ke-’.ah membuat prosedur yang memiliki parameter bertipe array. readln. readln(A[i]). ’Desember’).Uses crt. var noBulan : integer. End.100] of integer. ’Oktober’. Hal ini sering kita jumpai pada saat kita akan melakukan pencarian maupun pengurutan dari sekumpulan data.100] of integer. ’September’. Var i : integer. 12] of string = (’Januari’. begin clrscr. Perlu diperhatikan bahwa array yang dilewatkan sebagai parameter ini harus dideklarasikan terlebih dahulu. {salah} 10 . readln(noBulan). Const Bulan : array [1 . dimana 1≤ N ≤ 100. ’adalah ’. ’Juli’. Contoh hasil yang akan diberikan oleh program di atas adalah sebagai berikut.. Procedure InputArray [A:array[1. . N). Bulan[noBulan]). ’Maret’. ’Juni’.. Berikut ini contoh penggunaan array di dalam sebuah prosedur. Procedure inputArray[a:bilangan. Prosedur tersebut akan digunakan untuk melakukan pengisian elemen array sebanyak N. ’Mei’.

Procedure InputArray[A:bilangan. Var i:integer. for i : 1 to N do write (’A[’. Procedure InputArray [A:array of integer. OutputArray (Arr. Var i:integer. perhatikan contoh program di bawah ini dimana kita akan menggunakan array sebagai parameter. end.Berikut ini kode yang merupakan perbaikan {benar} dari kode sebelumnya. Begin Writeln (’Memasukkan data :’). A[i]). N:integer).]type Bilangan = array [1 . count). . readln(A[i]). N:integer). max] of integer. readln(count). var Arr:bilangan. End. Begin Clrscr. count:integer. Uses crt. Untuk lebih memahaminya. begin writeln(’Menampilkan data :’). For i : 1 to N do Write(’Masukkan nilai A[’. i. Contoh hasil yang akan diberikan dari program di atas adalah sebagai berikut. Masukkan banyaknya elemen array : 3 Memasukkan data : Masukkan nilai A[1] : 10 Masukkan nilai A[2] : 20 Masukkan nilai A[3] : 30 Menampilkan data : A[1] = 10 A[2] = 20 A[3] = 30 11 . Procedure OutputArray (A:bilangan. N). Program ParamArray. Readln. Write (’Masukkan banyaknya elemen array :’). End. i. Writeln. ’] : ’). ’] = ’. Const max = 100.

Dengan kata lain. perhatikan terlebih dahulu gambar di bawah ini. 1 . NamaArray : array [1 .5. array memiliki 3 buah baris dan 4 buah kolom. . 8) Array Dua Dimensi Array dua dimensi adalah array yang memiliki dua buah elemen bertipe array. . pengalamatan memori di komputer dari array dua dimensi tetap akan dipresentasikan dengan sebuah deretan larik yang memanjang (tidak berbentuk baris dan kolom). Sebagai contoh. sehingga jumlah elemennya adalah 3x4 = 12. materi ini akan dibagi menjadi dua kelompok. Pada kenyataannya. Agar lebih mempermudah pembahasan. Pada bagian ini kita akan mempelajari bagaimana cara mendeklarasikan dan memanipulasi data yang terdapat pada array multidimensi. apabila kita akan mendeklarasikan array dua dimensi dengan 3 buah baris dan 4 buah kolom dimana setiap 12 . Array dua dimensi (sumber:Rahardjo) Pada gambar di atas. array dua dimensi memiliki dua buah subskrip. baris Kolom Gambar 1. banyakkolom] of tipe_data. banyakbaris. Pendeklarasian array dua dimensi di dalam bahasa Pascal dilakukan melalui bentuk umum di bawah ini.7) Array Multidimensi Sejauh ini kita baru membahas mengenai array berdimensi satu. yaitu array dua dimensi dan array tiga dimensi. yang biasanya dipresentasikan dengan baris dan kolom. Perlu diketahui bahwa keadaan tersebut sebenarnya hanya merupakan keadaan logik yang bertujuan untuk mempermudah pemahaman array dua dimensi. Untuk lebih memahami konsepnya.

’ . Program JumlahMatriks. {mengisikan matriks A} writeln (’Matriks A’). 1 . Di sini kita akan membuat program yang dapat menjumlahkan dua buah matriks A dan B yang masing-masing berordo 2 x 3 (memiliki 2 baris dan 3 kolom).elemennya bertipe integer. ’] = ‚). 3. maka kita dapat menuliskan kode seperti berikut. 1 . begin clrscr. readln(A[j. ’] = ‚). for j: = 1 to Jbaris do begin for k: = 1 to Jkolom do begin write(’A[’. Untuk melakukan pengaksesan terhadap elemen-elemennya. writeln. apabila kita ingin mengisikan nilai 100 ke dalam elemen yang terdapat pada baris ke-2 kolom ke-3. Sebagai contoh. . kita harus menuliskan indeks baris dan kolomnya. end. for j: = 1 to Jbaris do begin for k: = 1 to Jkolom do begin write(’B[’. writeln. 3] : = 100. writeln. ’ . 4] of integer. end. k. Array2D : array [1 . end. Var A. {mengisikan matriks B} writeln(’Matriks B’). . Const Jbaris = 2. j. j. readln(B[j. j. Type Matriks23 = array [1 . ’ . k]). Uses crt. . {melakukan penjumlahan matriks A dan B sekaligus menampilkan hasilnya ke layar} writeln(’Hail Penjumlahan’). Berikut ini contoh program yang menunjukkan penggunaan array dua dimensi. maka kita harus menuliskannya sebagai berikut. end. ’ . k : integer. writeln. k]).B. Jkolom = 3. 13 . Array2D [2. .C : Matriks23. Jbaris. Jkolom] of integer. k.

Di sini. end. 2] = 2 B[1. k]. ’] = ‚). 1] = 4 A[2. lebar dan tinggi seperti yang ditunjukkan oelh gambar berikut. end. 2] = 10 C[2.for j: = 1 to Jbaris do begin for k: = 1 to Jkolom do begin C[j. k] + B[j. k] : = A[j. 3] = 10 Array Tiga Dimensi Array tiga dimensi merupakan array yang memiliki tiga buah subskrip dan lebih kompleks apabila dibandingkan dengan array dua dimensi. j. subskrip yang ada akan dipresentasikan dengan sumbu x. 1] = 3 B[1. writeln. 1] = 4 C[1. 2] = 5 A[2. k. write(’C[’. 3] = 6 Matriks B B[1. 2] = 5 B[2. 1] = 6 B[2. readln(C[j. 2] = 4 C[1. 2] = 2 A[1. 3] = 3 A[2. readln. 1] = 1 A[1. ’ . y Gambar 1. end. 1] = 10 C[2. 3] = 1 B[2. 3] = 4 Hasil Penjumlahan C[1. y dan z atau panjang. Contoh hasil yang akan diberikan oleh program di atas adalah sebagai berikut. 3] = 4 C[2. Matriks A A[1. Array tiga dimensi (sumber : Rahardjo) 14 . ’ . k]).6.

Uses crt. Array3D : [2.1 . Gambar 1. 2. 1] : = 100. Jumlah elemen yang terdapat di dalam array tersebut adalah 2 x 3 x 4 = 24. k : integer. lebar ke-3 dan tinggi ke-1. i. Array3D : array [1 . Const xMaks = 2. zMaks] of tipe_data. maka kita akan menuliskannya seperti di bawah ini. xMaks. j. 3. 1 . begin clrscr. . zMaks = 2. 4] of integer.x z Berikut ini bentuk umum yang digunakan untuk mendeklarasikan array tiga dimensi di dalam bahasa Pascal. 1 . . zMaks] of integer. . Program AksesArray3D. . lebar 3 dan tinggi 4 elemen bertipe integer. xMaks. 1 . yMaks. . yMaks. . Type Array3D = array [1 . Berikut ini adalah contoh yang akan menunjukkan cara pengaksesan elemen di dalam array 3 dimensi. . 15 . 3.7 Bentuk Umum Pendeklarasian Array Tiga Dimensi(sumber:Rahardjo) Sebagai contoh apabila kita ingin mendeklarasikan array yang memiliki panjang 2. Sekarang apabila kita ingin mengisikan nilai 100 ke dalam elemen yang berada pada posisi panjang ke-2. NamaArray : array [1 . 1 . . 1 . . Var A: Array3D. yMaks = 2. maka kita akan melakukannya melalui kode berikut.

Penutup Array merupakan sebuah variabel yang dapat menyimpan lebih dari satu nilai yang memiliki tipe data sama. karena hal tersebut merupakan hal yang sangat tidak efisien. end. j. end. ’. 1. misalnya data-data hasil penelitian yang berupa bilangan. end. end. k] := x. A[ i. ’ ] = ’.’ . 2. writeln. Setiap nilai yang disimpan di dalam array disebut dengan elemen array. 2] = 6 A[1. 2. inc(x). k] . end. 1. 2. end. {menampilkan isi yang terdapat dalam array A} for i := 1 to xMaks do begin for j := 1 to jMaks do begin for k := 1 to zMaks do begin write(’A[ ’ . z. Hal ini berbeda dengan variabel biasa yang hanya mampu menampung satu buah nilai. readln. 1] = 3 A[2.{mengisikan nilai ke dalam array A} x := 1. ’.’ . ratusan atau bahkan ribuan. Hasil yang akan diberikan oleh program diatas adalah sebagai berikut: A[1. j. end. i. for i := 1 to xMaks do begin for j := 1 to jMaks do begin for k := 1 to zMaks do begin A[i. dimana jumlah dari data tersebut puluhan. ’ ’ ). 2] = 2 A[2. 1. sedangkan nilai urut yang digunakan untuk mengakses elemennya disebut dengan indeks array. 1] = 1 A[2. Penggunaan array 16 . 1] = 7 A[1. apakah akan menggunakan variabel sebanyak data yang ada? Jawabannya tentu tidak. 2] = 8 C. j. 1] = 5 A[1. 2] = 4 A[2. 1. 2. Apabila kita akan membuat program untuk menyimpan sekumpulan data.

Kalau tingkat kesalahan pada pembuatan program sudah kecil. dan jalankan.. Kalau program belum jalan. 2) Untuk Umpan Balik dan Tindak Lanjut menguasai materi ini. perbaiki terus sampai program tersebut benar dan jalan. const besar=10. Hapus kembali listing program yang sudah benar dan buat kembali program tersebut. 3) Jawaban a Kunci Jawaban program nilai_terbesar. i:integer. Jalankan program tersebut sampai benar. bandingkan dan tampilkan nilai terbesar. Jawab pertanyaan di atas dengan langsung membuat program di komputer. var n:array [1. (b)Buat program dengan menggunakan array konstan untuk memasukkan nomor bulan dan menampilkan nama bulan. besar] of real. 1) Pertanyaan (a)Buat program dengan menggunakan array untuk menginput 10 nilai. 17 . anda dapat melanjutkan materi berikutnya. sebaiknya anda membuat ringkasan materi tentang array dan membuat beberapa program dengan menggunakan array.dalam program akan membuat program lebih efisien dan mudah dipahami.

write('nilai tebesar :'.i. Daftar Pustaka Jurusan Informatika. Pendahuluan Deskripsi Singkat 18 . const bulan:array[1. Hibah Pengajaran PHK A1 Universitas Negeri Gorontalo Kadir. Jawaban b program nama_bulan. Pemrograman Pascal Buku 1.max:real. Yogyakarta: Andi Offset.max:2:0). 'Juli'.'Mei'..readln(nobulan).'Desember'). Bandung:Informatika BAB II RECORD A.readln(n[i]). Munir. readln. 2006. Budi. if (n[i])>max then max:=(n[i]).'September'.'April'.'Oktober'. end. var nobulan:integer.'Nopember'. 2005.'Agustus'. 2005. Abdul. Bandung: Informatika.12] of string=('Januari'. begin write('Masukkan nomor bulan :').'Juni'. 2002. Rahardjo. Rinaldi. Algoritma dan Pemrograman dalam bahasa Pascal dan C Edisi 3. nobulan. begin for i:= 1 to besar do begin write('masukkan data ke-'.':'). end.' adalah '.'Maret'. Teknik Pemrograman Pascal. write('Nama bulan ke-'.'Februari'. Bahan Ajar Pemrograman 2. readln end. bulan[nobulan]).

. penugasan antar record. deklarasi record. record dalam record. array record.1 Pendeklarasian Daftar_field_1 : tipe_1. yang masing-masing dapat berlainan tipe.. pernyataan with. daftar_field_n : tipe_n. . 19 . Tujuan Instruksional Khusus Mahasiswa mampu membuat program aplikasi dengan menggunakan record. 2) Mendeklarasikan Record Suatu tipe record dideklarasikan dengan bentuk sebagai berikut : RECORD Record Gambar 2. Penyajian 1) Definisi Record Record adalah jenis tipe data terstruktur yang berisi beberapa data. END Masing-masing daftar_field dapat berupa satu atau beberapa nama pengenal dan masing-masing dinamakan field. B. terutama dengan materi array. mengakses field. (sumber:Kadir) Daftar_field_2 : tipe_2. karena materi record ini memberikan manfaat bagi pemrogram untuk membuat program yang menggunakan data yang terdiri dari beberapa data den berlainan tipe. Materi record sangat berkaitan dengan materi lainnya dalam sebuah pemrograman terstruktur. antar field perlu dipisahkan dengan koma.Bab ini akan mengemukakan bahasan tentang definisi record. Bila daftar_field berisi lebih dari satu field . Relevansi Pembahasan pada bab ini sangat penting dipahami. Masing-masing tipe dapat berupa tipe data apa saja termasuk array.

Nama := ’Ubin TISKA 20x20’.Berikut contoh pendeklarasian record : Type RecBarang = Record Nama : String. Var Barang : RecBarang. Dengan cara seperti di atas. yaitu : Cara Mengakses Field Field dari suatu record diakses dengan bentuk : Variabel. Contoh : Writeln (Barang. field Nama dari record Barang berisi string ’Ubin TISKA 20x20’. Dengan 3) mendeklarasikan Nama. 20 . Harga : LongInt End.Nama Berarti “field Nama dari variabel record bernama Barang“.field Gambar 2.2 Mengakses Field(sumber:Kadir) Sebagai contoh : Barang. Kualitas : Char.Nama). Barang akan mengandung tiga buah field. Isi dari suatu field ditampilkan dengan menggunakan Write atau Writeln. seperti di atas. Kualitas. Harga. Merupakan perintah untuk menampilkan isi field Nama dari record Barang. Contoh penugasan nilai ke field tersebut : Barang.

diperkenankan. Harga : LongInt End. {menampilkan isi field} writeln (’Nama Barang : ’.Nama). Barang. maka penugasan : R1 := R2. R1.Kualitas). Readln End. R1. 21 .Kualitas := ’A’. {variabel bertipe record} Begin Clrscr. Pernyataan di atas merupakan penyederhanaan dari sederetan pernyataan berikut : R1. pengisian terhadap field-field serta menampilkan isi masing-masing field dapat dilihat di bawah ini.F1. dan F3. Kualitas : Char. Program Rec2. Untuk lebih jelasnya. {Penugasan nilai terhadap field-field} Barang. tulislah program berikut dan cobalah menjalankannya. Barang. Program Rec1.F3 := R2. Var Barang : RecBarang.Harga). writeln (’Kualitas : ’.F2 := R2. Uses crt. Hasil program : Nama Barang Kualitas Harga : Ubin TISKA 20x20 :A : 14000 4) Penugasan Antar Record Jika record R1 dan R2 bertipe sama dan masing-masing memiliki F1. Barang. F2. Barang.F1 := R2.F3.Contoh program yang memberikan gambaran pendeklarasian record.Nama := ’Ubin TISKA 20x20’. writeln (’Harga : ’.Harga := 14000.F2. Barang. Type RecBarang = Record Nama : String[25].

LongInt 22 . Kualitas : car. RecTanggal.Nama := ’Ubin TISKA 20x20’.Nama). String [35]. Barang.Kualitas := ’A’. Menampilkan isi field} Writeln (’Nama Barang : ’. {variabel bertipe record} Begin Clrscr. Barang1. Hasil dari program di atas : Nama Barang Kualitas Harga : Ubin TISKA 20x20 :A : 14000 5) Record Di Dalam Record Mungkin saja sebuah record berisi record. Writeln (’Harga : ’.Uses crt. Writeln (’Kualitas : ’. Bulan. RecPegawai = Record Nomor Nama TglLahir Gaji End. Tahun End. Sebagai gambaran hal ini. Barang2. Barang2 : RecBarang. {menyalin record} Barang2 := Barang1.Harga := 14000. Barang1. {penugasan nilai terhadap field-field} Barang1. Dengan adanya penugasan Barang2 := Barang1. Readln End.Harga). :Integer : : : : LongInt. perhatikan deklarasi berikut : RecTanggal = Record Tanggal. Barang. Var Barang1.Kualitas). Type RecBarang = Record Nama : string[25]. Harga : longInt End. maka semua field pada record Barang2 akan berisi recrod Barang1.

Tampak bahwa tipe record bernama RecPegawai berisi record yang lain (RecTanggal). Hal yang menarik yang perlu diperhatikan adalah cara mengakses field seperti Tanggal, Bulan dan Tahun. Notasi yang diperlukan adalah sebagai berikut.
Nama_variabel.TglLahir.Tanggal Nama_variabel.TglLahir.Bulan Nama_variabel.TglLahir.Tahun

Praktekkan program berikut, untuk mencoba pembuatan record dengan bentuk sepert di atas.
Program Rec3; Uses crt; Type RecTanggal = Record Tanggal, Bulan, Tahun : Integer End; RecPegawai = Record Nomor : LongInt; Nama : string [35]; TglLahir : RecTanggal; Gaji : longInt End; Var DataPeg : RecPegawai; {variabel betipe record} Begin Clrscr; Penugasan nilai terhadap field-fiedl} DataPeg.Nomor := 56789; DataPeg.Nama := ’Badu’; DataPeg.TglLahir.Tanggal := 24; DataPeg.TglLahir.Bulan := 12; DataPeg.TglLahir.Tahun := 1972; DataPeg.Gaji := 750000; {menampilkan isi field} Writeln (’Nama Pegawai : ’, DataPeg.Nama); Writeln (’Tanggal Lahir : ’, DataPeg.TglLahir.Tanggal, ’/’, DataPeg.TglLahir.Bulan, ’/’, DataPeg.TglLahir.Tahun); Readln End.

Hasil dari program di atas adalah sebagai berikut :

23

Nama Pegawai Tanggal Lahir

: Badu : 24 / 12 / 1972

6)

Pernyataan With

Untuk menyederhanakan notasi seperti :
DataPeg.TglLahir.Tanggal

Turbo Pascal menyediakan pernyataan WITH. Bentuk pernyataan ini adalah sebagai berikut : With nama_record do pernyataan
Gambar 2.3 Bentuk Umum Pernyataan With(sumber:Kadir)

Pada bentuk ini, field-field yang terletak pada bagian pernyataan dapat disebutkan tanpa perlu menyertakan lagi nama record dan tanda titik. Untuk lebih jelasnya, perhatikan program berikut yang merupakan alternatif lain dari program di atas.

Program Rec4; Uses crt; Type RecBarang = Record Nama : String [25]; Kualitas : Char; Harga : LongInt End; Var Barang : RecBarang; {variabel bertipe record} Begin Clrscr; {penugasan nilai terhadap field-field} With Barang do Begin Nama := ’Ubin TISKA 20x20’; Writeln (’Nama Barang : ’, Nama); Writeln (’Kualitas :’, Kualitas); Writeln (’Harga :’, Harga); End; Readln End.

24

Bila suatu record memiliki record lain, pernyataan With dapat diikuti dengan with yang lain. Sebagai contoh, program di atas ditulis menjadi :
Program Rec5; Uses crt; Type RecTanggal = Record Tanggal, Bulan, Tahun : Integer End; RecPegawai = Record Nomor : LongInt; Nama : string [35]; TglLahir : RecTanggal; Gaji : LongInt End; Var DataPeg : RecPegawai; {variabel bertipe record} Begin Clrscr; {Penugasan nilai terhadap field-field} With DataPeg do With TglLahir do Begin Nomor := 56789; Nama := ’Badu’; Tanggal := 24; Bulan := 12; Tahun := 1972; Gaji := 750000; End; {menampilkan isi field} With DataPeg do With TglLahir do Begin Writeln (’Nama Pegawai :’, DataPeg.Nama); Writeln (’Tanggal lahir :’, DataPeg.TglLahir.Tanggal, ’/’, DataPeg.TglLahir.Bulan ’/’, DataPeg.TglLahir.Tahun) End; Readln End.

Pernyataan seperti :
With DataPeg do With TglLahir do

Dapat ditulis menjadi :
With DataPeg, TglLahir do

dengan antar nama record dipisahkan oleh tanda koma.

25

Tahun) End. Type RecTanggal = Record Tanggal. 26 .TglLahir. Tahun := 1972. {variabel bertipe record} Begin Clrscr. Var DataPeg : RecPegawai. Const Jum_Maks = 20. RecPegawai = Record Nomor : LongInt. Bulan := 12. Readln End. Bulan. {menampilkan isi field} With DataPeg. Tanggal := 24. TglLahir do Begin Nomor := 56789. DataPeg. : Char. TglLahir : RecTanggal. DataPeg. DataPeg.Contoh program : Program Rec6. Gaji := 750000.Bulan ’/’. Nama := ’Badu’. Type RecBarang = Record Nama Kualitas Harga End. . Nama : string [35]. : LongInt Jum_Maks] of RecBarang. Uses crt. Tahun : Integer End. Var : String [25].Tanggal. 7) Array Record Elemen suatu array juga bisa berupa record. Gaji : LongInt End.TglLahir. ’/’.Nama). Sebagai contoh dapat dilihat di bawah ini. Writeln (’Tanggal lahir :’. {Penugasan nilai terhadap field-field} With DataPeg. TglLahir do Begin Writeln (’Nama Pegawai :’. TabelBarang = Array [ 1 . DataPeg.TglLahir. End.

TabelBarang = Array [ 1 . Harga : longInt End. Const Jum_Maks = 20. Var Indeks : Integer. Var DafBarang : TabelBarang. Write (’Jumlah Barang (Maksimum = 20) :’). Var JumBarang : Integer). Begin Clrscr. Uses Crt. JumBarang : Integer). End. Begin Clrscr. Readln (Kualitas).DafBarang : TabelBarang. Write (’Harga :’). Kualitas : char. DafBarang adalah array yang maksimum berisi 20 buah elemen bertipe record. {akhir EntriBarang} {menampilkan isi array DafBarang} Procedure InfoBarang (Var DafBarang : Tabelbarang. {jumlah maksimal jenis baramg} Type RecBarang = Record Nama : string [25]. kita perlu menggunakan notasi : DafBarang [indeks]. Untuk mengakses suatu field. For Indeks := 1 to JumBarang do With Dafbarang [indeks] do Begin Clrscr. 27 . Indeks. ’ :’). End. {array record} JumBarang : Integer. Readln (Harga). Writeln (’Data Barang ’. Write (’Kualitas :’). Jum_Maks] of RecBarang. Var Indeks : Integer. Readln (Nama). {memasukkan data barang je array DafBarang} Procedure EntriBarang (Var DafBarang : TabelBarang. Readln (JumBarang). Write (’Nama :’). {array record} Pada contoh di atas. Program Rec7. .NamaField Berikut contoh program Array Record. Writeln.

1) (a) (b) 2) Untuk Pertanyaan Buat program untuk menginput dan menampilkan data nilai mahasiswa dengan menggunakan array record Buat program mengakses record di dalam record Umpan Balik dan Tindak Lanjut menguasai materi ini. character. {Akhir InfoBarang} Begin Entribarang (DafBarang. real. C. sebaiknya anda membuat ringkasan materi tentang record dan membuat sendiri beberapa program dengan menggunakan record. JumBarang). Kualitas : 10. boolean. Penutup Record adalah salah satu tipe data terstuktur bentukan yang digunakan untuk mempresntasikan sebuah objek yang tidak dapat dipresentasikan menggunakan tipe data dasar.Writeln (’NAMA BARANG’:25. ’KUALITAS’:10. End. InfoBarang (DafBarang. Jalankan program tersebut sampai benar. For Indeks := 1 to JumBarang do With Dafbarang [Indeks] do Writeln (Nama : 25. seperti integer. Harga : 8). baik itu tipe dasar atau tipe bentukan lainnya. Jawab pertanyaan di atas dengan langsung membuat program di komputer. Operasi atau manipulasi terhadap record hanya dapat dilakukan terhadap field-field pembentuknya. Setiap field menggambarkan informasi tertentu. dan tipe setiap field sudah dikenal. Pengacuan pada setiap field dilakukan dengan record selector. Setiap record terdiri dari beberapa elemen yang disebut field. JumBarang). ’HARGA’:10). Readln End. Hapus 28 . Operasi yang dapat dilakukan terhadap field-field tersebut sama dengan operasi yang dapat dikenakan terhadap tipe pembentuknya.

writeln('-------------------------------').max] of tsiswa. end. Nilai). dan jalankan. writeln('---------------------------------------------'). write(’Nilai : ’).readln(a[i]. Kalau program belum jalan.Nama.i). writeln('memasukkan data').readln(a[i]. begin write('masukkan jumlah siswa yang akan diisikan :'). Kalau tingkat kesalahan pada pembuatan program sudah kecil.Nilai).Nama). write('Nama : '). 3) Jawaban b program arrayrecord.n:integer.readln(a[i]. Kunci Jawaban Jawaban b 29 . writeln. end. write('NIM : ').’NILAI’. Nama : string[25]. var a:tkumpulansiswa. writeln.' ' . anda dapat melanjutkan materi berikutnya.kembali listing program yang sudah benar dan buat kembali program tersebut.readln(n). tkumpulansiswa = array[1. readln end. i. for i:= 1 to n do begin writeln('Data siswa ke-'.. end. writeln. Nilai : real.' ' . writeln('NIM '. 'NAMA'). perbaiki terus sampai program tersebut benar dan jalan. const max=100. writeln('---------------------------------------------'). type tsiswa=record NIM :STRING[9]. for i:=1 to n do begin with a[i] do begin writeln(NIM:9. writeln('DAFTAR SISWA').NIM). end.

End. Teknik Pemrograman Pascal. Pemrograman Pascal Buku 1. TglLahir do Begin Nomor := 56789.TglLahir. {Penugasan nilai terhadap field-field} With DataPeg. {variabel bertipe record} Begin Clrscr.TglLahir. Hibah Pengajaran PHK A1 Universitas Negeri Gorontalo Kadir. Yogyakarta: Andi Offset. Gaji := 750000. Writeln (’Tanggal lahir :’. Uses crt.Tanggal. {menampilkan isi field} With DataPeg. 2002. Budi. Gaji : LongInt End. 2002. DataPeg. DataPeg. Munir. Rinaldi. Bulan := 12. TglLahir : RecTanggal.Nama). Bandung: Informatika. DataPeg. Daftar Pustaka Jurusan Informatika. Tahun : Integer End.Tahun) End. DataPeg.TglLahir. Bahan Ajar Pemrograman 2. RecPegawai = Record Nomor : LongInt. ’/’. Abdul. Tahun := 1972. 2005. Rahardjo. Type RecTanggal = Record Tanggal. TglLahir do Begin Writeln (’Nama Pegawai :’. 2006. Readln End.Program Record_dalam_record. Tanggal := 24. Bandung:Informatika 30 . Bulan. Nama : string [35]. Algoritma dan Pemrograman dalam bahasa Pascal dan C Edisi 2.Bulan ’/’. Nama := ’Badu’. Var DataPeg : RecPegawai.

Relevansi Pembahasan pada bab ini sangat penting dipahami. terutama pemrograman moduler. pendefinisian prosedur. Pendahuluan Bab ini akan mengemukakan bahasan tentang pemrograman moduler. Penyajian Deskripsi Singkat 31 . definisi prosedur. Tujuan Instruksional Khusus Mahasiswa mampu membuat program aplikasi dengan menggunakan prosedur B.BAB III PROSEDUR A. Materi prosedur sangat berkaitan dengan materi lainnya dalam sebuah pemrograman terstruktur. karena materi prosedur ini memberikan manfaat bagi pemrogram untuk membuat program yang menggunakan prosedur. pemanggilan prosedur.

Konsep Pemrograman Moduler Dalam membuat program besar dan kompleks. untuk aktivitas yang harus dilakukan lebih dari satu kali. si pemrogram perlu memecah program menjadi beberapa sub program yang lebih kecil. modul program cukup ditulis sekali saja. Keuntungan kedua dari modularisasi adalah kemudahan menulis dan menemukan kesalahan program. khususnya kalau program tersebut panjang atau terdiri dari puluhan. Tiap sub program kadangkala cukup independen dari program utama sehingga programnya dapat dirancang tanpa mempertimbangkan konteks tempat di mana sub program tersebut digunakan.Di sini. lalu modul tersebut dapat diakses dari bagian lain di dalam program.Di sini. Program modular menjai lebih mudah untuk dibaca dan dimengerti. Modul yang sudah ditulis dapat program seperti yang membutuhkannya. teknik termasuk (dua) pemrograman dinamakan pemrograman Beberapa bahasa pemrograman 2 menamakan modul dengan sebutan rutin. penggunaan modul program dapat mengurangi panjang program. Masalah yang akan diprogram dipecah menjadi beberapa masalah yang lebih keil. yang disebut modul dapat dirancang dipasang modular. oleh ke pemrogram lain ini selain dari orang yang Teknik Pascal mengembangkan program utama. Kemudahan menulis akan sangat berguna pada masalah besar yang dikerjakan oleh satu tim pemrogram yang beranggotakan beberapa orang. ratusan atau ribuan baris intruksi. Pertama. modularisasi menghindari penulisan teks program yang sama secara berulangkali. Setiap masalah yang lebih kecl tersebut ditulis ke dalam modul individual yang spesifik dan dikerjakan oleh orang yang berbeda. Program yang tidak modular sulit dipahami. Seluruh modul diintegrasikan menjadi satu buah program yang lengkap. Modularisasi program memberikan keuntungan. 32 . prosedur atau fungsi. Tiap sub program.

meskipun program tersebut tidak melibatkan eksekusi yang berulang dari aktivitas yang sama. Pendefinisian Prosedur Pada dasarnya. dan bagian badan (body) program yang berisi instruksi yang akan dilaksanakan. Kebanyakan program komputer dapat ditulis modular.Karena setiap modul melakukan aktivitas specsifik. struktur prosedur sama dengan struktur algoritma yang sudah dikenal. kesalahan tersebut dapat dilokalisisr pada modul yang bersangkutan. CariMaks. yaitu : bagian judul yang terdiri atas nama prosedur dan komentar yang menjelaskan yang menjelaskan spesifikasi prosedur tersebut. 33 . 1) Definisi Prosedur Prosedur adalah modul program yang mengerjakan tugas/aktivitas yang spesifik dan menghasilkan suatu efek netto . bagian deklarasi dan badan prosedur. Setiap prosedur memiliki nama yang unik. Oleh karena itu. maka apabila terdapat kesalahan di dalam program. Pemecahan program menjadi modul-modul individul umumnya dianggap sebagai praktek pemrograman yang baik. Terdapat dua jenis modul program. Nama prosedur sebaiknya diawali dengan kata kerja karena prosedur berisi suatu aktivitas. pada prosedur kita harus mendefinisikan keadaan awal sebelum rangkaian instruksi di dalam prosedur dilaksanakan dan keadaan akhir yang diharapkan setelah rangkaian instruksi dilaksanakan. yaitu ada bagian judul (header) yang berisi nama modul. misalnya HitungLuas. Tukar. pertama prosedur (procedure) dan kedua fungsi (function). bagian deklarasi. Struktur setiap modul tersebut pada hakikatnya sama dengan struktur algoritma biasa. Inisialisasi. Suatu efek netto diketahui dengan membandingkan keadaan awal dan keadaan akhir pada pelaksanaan prosedur. AktifkanMenu dan lain sebagainya.

tinggi.1 Bentuk Umum Pendefinisian Prosedur(sumber:Rahardjo) Contoh 3. Awal : sembarang} {K. Awal : sembarang} {K. berisi penjelasan tentang apa yang dilakukan prosedur ini} {K. Awal : keadaan sebelum prosedur dilaksanakan} {K. Akhir : string ’Hello World!’ tercetak} Deklarasi {tidak ada} Deskripsi Write (’[Hello World!’) Contoh 3.1 Tuliskan prosedur mencetak string ’Hello World!’. Penyelesaian Procedure CetakHalo {mencetak string ’Hello World!’ ke piranti keluaran} {K. Panjang alas dan tinggi segitiga dibaca dari dalam prosedur. Penyelesaian Procedure HitungLuasSegitiga {menghitung luas segitiga dengan rumus L=(alas x tinggi)/2 {K. Nilai L dicetak ke piranti keluaran} Deklarasi Alas. Luas segitiga dicetak ke piranti keluaran. luas : real 34 . Akhir : L berisi luas segitiga. Akhir : keadaan setelah prosedur dilaksanakan} Deklarasi {semua nama yang dipakai dalam prosedur dan hanya berlaku lokal di dalam prosedur yang didefinisikan di sini} Deskripsi {badan prosedur. berisi kumpulan instruksi} Gambar 3.2 Tuliskan prosedur untuk menghitung luas segitiga dengan rumus L=(alas x tinggi)/2.Notasi Algoritma yang digunakan untuk mendefinisikan struktur prosedur adalah : Procedure NamaProsedur {Spesifikasi prosedur.

Instruksi di dalam badan prosedur dilaksanakan. tinggi) Luas  (alas*tinggi)/2 Write (L) 2) Pemanggilan Prosedur Prosedur bukan program yang berdiri sendiri. Setelah semua instruksi selesai dilaksanakan. kendali program berpindah secara otomatis ke prosedur tersebut.3 Tuliskan contoh program utama untuk memanggil prosedur CetakHalo Penyelesaian Algoritma Halo {program utama untuk mencetak string ’Halo!’} Deklarasi 35 .emanggil namanya dan program pemanggil (program utama atau modul program lain) : NamaProsedur Gambar 2. Ini berarti.2 Pemanggilan Prosedur(sumber:Rahardjo) Ketika NamaProsedur dipanggil. Prosedur diakses dengan cara m. Prototype prosedur hanya berisi bagian judul prosedur. jadi tidak dapat dieksekusi secara langsung.Deskripsi Read (alas. instruksi-instruksi di dalam prosedur baru dapat dilaksanakan hanya bila prosedur tersebut diakses/dipanggil. kita harus mendeklarasikan prototype prosedur di dalam bagian deklarasi. Tujuan pendeklarasian prototype program adalah supaya program pemanggil “mengenal“ nama prosedur tersebut serta cara mengaksesnya. Contoh 3. kendali program berpindah secara otomatis ke instruksi sesudah pemanggilan prosedur. Di dalam program pemanggil.

Oleh sebab itu. maka instruksi-instruksi di dalamnya dikerjakan satu per satu. Penyelesaian Algoritma Luas_Segitiga {program uatama untuk menghitung luas segitiga} Deklarasi Prcedure HitungLuasSegitiga {menghitung luas segitiga dengan rumus L=(alas x tinggi)/2} Deskripsi Write(’Menghitung Luas Segitiga’) HitungLuasSegitiga Write (’Selesai’) C. Dalam dunia pemrograman.Procedure CetakHalo {mencetak string ’Halo!’ ke piranti keluaran} Deskripsi CetakHalo {panggil prosedur CetakHalo} Contoh 3. pada setiap perlu mendefinisikan awal sebelum rangkaian instruksi di dalam prosedur dilaksanakan dan keadaan 36 . prosedur adalah modul program yang mengerjakan tugas/aktivitas yang spesifik dan menghasilkan suatu efek netto. Langkah-langkah pendaftaran ulang lazim dinyatakan dalam sebuah prosedur yang dinamakan prosedur daftar ulang. Suatu efek awal netto dan diketahui dengan pada membandingkan prosedur kita keadaan keadaan keadaan akhir pelaksanaan sebuah prosedur. Ketika sebuah prosedur dilakukan. Penutup Kata prosedur sering kita dengar dalam kehidupan sehari-hari.4 Tuliskan contoh program utama untuk memanggil prosedur HitungLuasSegitiga. Seorang mahasiswa pada setiap awal semester selalu melakukan penaftaran ulang (registrasi).

readln(tinggi). Yogyakarta : Andi Ofset. Turbo Pascal. anda dapat melanjutkan materi berikutnya.readln(alas). 3) Kunci Jawaban program luas_segitiga. 2) Umpan Balik dan Tindak Lanjut Untuk ringkasan menguasai materi materi ini. Kalau program belum jalan. Hapus kembali listing program yang sudah benar dan buat kembali program tersebut.tinggi. perbaiki terus sampai benar.akhir yang diharapkan setelah rangkaian instruksi di dalam prosedur dilaksanakan. begin write('alas :'). readln end. 37 . Hibah Pengajaran PHK A1 Universitas Negeri Gorontalo Kadir. var alas. write('tinggi:'). Abdul.luas:2:0). 2002. hitungluas. Pemrograman Pascal Buku 1. 1989. Jawab pertanyaan di atas dengan langsung membuat program di komputer. Kalau tingkat kesalahan pada pembuatan program sudah kecil. procedure hitungluas. Daftar Pustaka Jogiyanto. Bahan Ajar Pemrograman 2. Yogyakarta: Andi Offset. 1) Buat prosedur. sebaiknya dan anda membuat sendiri tentang prosedur membuat Pertanyaan program perhitungan luas segitiga menggunakan beberapa program dengan menggunakan prosedur. 2006. begin writeln('menghitung luas segitiga'). Jalankan program tersebut sampai benar. Jurusan Informatika. luas:=(alas*tinggi)/2. write('luas segitiga :'. end.luas : real. dan jalankan.

sehingga 38 . Relevansi Pembahasan pada bab ini sangat penting dipahami. B. cara pemanggilan fungsi dan parameter. Budi. 2005. Rinaldi. cara mendefinisikan fungsi. Perbedaannya. Algoritma dan Pemrograman dalam bahasa Pascal dan C Edisi 3. Bandung:Informatika BAB IV FUNGSI A. Tujuan Instruksional Khusus Mahasiswa mampu membuat program dengan menggunakan fungsi. karena materi fungsi ini memberikan manfaat bagi pemrogram untuk membuat program yang menggunakan fungsi. Rahardjo. Pendahuluan Deskripsi Singkat Bab ini akan mengemukakan bahasan tentang definisi fungsi. Materi fungsi sangat berkaitan dengan materi lainnya dalam sebuah pemrograman terstruktur. pada fungsi terdapat pengembalian nilai. Teknik Pemrograman Pascal. 2005. 1) Penyajian Definisi Fungsi Definisi fungsi sebenarnya sama dengan sebuah prosedur. terutama pemrograman moduler.Munir. Bandung: Informatika.

Var Hasil : longint. .. . Begin Kali := x * y. Gambar 4. Function NamaFungsi (parameter1 : tipe_data. Kali := Hasil. 2) Pendefinisian Fungsi Berbeda dengan prosedur yang didefinisikan dengan kata kunci function. fungsi dapat langsung digunakan untuk mengisikan sebuah ekspresi.1 Bentuk Umum Pendefinisian Fungsi Berikut ini contoh pendefinisian fungsi sederhana yang akan mengalikan dua buah bilangan bulat. misalnya seperti kode di bawah ini.pada saat pemanggilan. Begin Hasil := x * y. paraneter2: tipe_data. Function Kali (x. ..{ingat baris ini} End. 39 . y : integer) : longint.) : tipe_data. y : integer) : longint. Kita juga dapat mendeklarasikan variabel lokal untuk menyimpan nilai sebelum akhirnya dikembalikan lagi ke fungsi. Berikut ini bentuk umum dari pendefinisian sebuah fungsi. Function Kali (x. const {daftar konstanta lokal} Var {daftar pendeklarasian variabel lokal} Begin {kode program yang akan ditulis} . NamaFungsi := nilai_kembalian. End.

Parameter ditempatkan di dalam tanda kurung setelah nama rutin bersangkutan. Namun bisa saja suatu fungsi tidak memiliki paramater. yang berasal dari f (1) = 2(1)2 + 5(1) – 3 = 2 + 5 – 3 = 4 Bila x=2.. Suatu fungsi umumnya mempunyai parameter. . Berikut ini contoh pemanggilan fungsi di atas. End. perhatikan fungsi matematika di bawah ini. record atau pointer. 5). Begin {memanggil fungsi Kali dan menyimpan nilainya ke dalam variabel A) A := Kali (10. Var A : longint. Setiap parameter yang dilewatkan harus memiliki tipe data tersendiri yang dapat berupa dari tipe dasar maupun bentukan seperti array. maka f akan mengembalikan nilai 15.. Untuk mengetahui arti parameter. diikuti dengan daftar parameter aktual (bila ada). 3) Pemanggilan fungsi Fungsi diakses dengan cara memanggil namanya dari program pemanggil. Oleh karena fungsi menghasilkan sebuah nilai maka pada saat pemanggilannya juga dapat ditampung ke dalam suatu variabel. yang berasal dari f (2) = 2(2)2 + 5(2) – 3 = 8 + 10 – 3 = 15 40 .End. 4) Parameter Parameter merupakan suatu nilai atau referensi yang dilewatkan ke dalam rutin tertentu dan kehadirannya akan mempengaruhi proses maupun nilai yang terdapat di dalam rutin itu sendiri. maka f akan mengembalikan nilai 4. f (x) = 2x2 + 5x – 3 Bila x=1.

2) Umpan Balik dan Tindak Lanjut Untuk menguasai materi ini. Pertanyaan sering muncul dalam pemrograman moduler adalah : apakah sebuah modul program akan dibuat sebagai prosedur atau fungsi ? Fungsi digunakan apabila modul program mengembalikan sebuah nilai. Hapus kembali listing program yang sudah benar dan buat kembali program tersebut. anda dapat melanjutkan materi berikutnya. sebaiknya anda membuat ringkasan materi tentang fungsi dan membuat sendiri beberapa program dengan menggunakan fungsi. 1) Pertanyaan Buat program perhitungan nilai faktorial menggunakan fungsi.integer. sementara prosedur digunakan apabila modul menghasilkan efek netto dari satu atau sekumpulan aksi. dan jalankan. Kalau program belum jalan. function f(n:integer). perbaiki terus sampai benar. Jalankan program tersebut sampai benar. Pemilihan apakah sebuah modul direalisasikan sebagai fungsi atau prosedur bergantung pada kebutuhan dan seni memprogram. fungsi juga merupakan sub program yang mempunyai tujuan spesifik. C. Kalau tingkat kesalahan pada pembuatan program sudah kecil. Jawab pertanyaan di atas dengan langsung membuat program di komputer. sehingga x disebut sebagai parameter dari fungsi f. var 41 . Penutup Seperti halnya prosedur. Var n : integer.Dari ilustrasi tersebut terlihat jelas bahwa hasil nilai dari fungsi f ditentukan oleh besarnya nilai x. 3) Kunci Jawaban Program faktorial.

f : integer. Daftar Pustaka Jurusan Informatika. Algoritma dan Pemrograman dalam bahasa Pascal dan C Edisi 3. Hibah Pengajaran PHK A1 Universitas Negeri Gorontalo Kadir. 2005. end. Bandung: Informatika.readln(n). Yogyakarta: Andi Offset. begin f:=1. Bahan Ajar Pemrograman 2. Munir. Pemrograman Pascal Buku 1. Budi. 2002. 2005. Abdul. end. Teknik Pemrograman Pascal. 2006. Bandung:Informatika 42 . Rahardjo. for i:=1 to n do f:=f +1.i. writeln(f). Rinaldi. begin write (’jumlah faktorial :’).

Relevansi Pengurutan akan memudahkan kita dalam mencari data dalam sebuah program. Penyajian 1) Definisi Pengurutan (Sorting) umum yang juga sering dijumpai dalam Selain pencarian. Sebagai bukti nyata. Namun terdapat 8 (delapan) metode yang umumnya banyak digunakan. pengurutan gelembung.BAB V SORTING A. pengurutan seleksi. Pengurutan sangat erat kaitannya dengan pencarian. Tujuan Instruksional Khusus Mahasiswa mampu membuat program dengan menggunakan perintah sorting. tinjaulah metode pencarian bagi dua di atas yang menuntut kita untuk melakukan pengurutan terlebih dahulu sebelum kita melakukan pencarian. Pendahuluan Deskripsi Singkat Bab ini akan membahas definisi pengurutan. B. terdapat beberapa metode untuk melakukan pengurutan data. pengurutan maksimum/minimum. Dalam pemrograman. pengurutan data merupakan salah satu permasalahan pemrograman. yaitu : 43 .

Heap Sort 6. pengurutan maksimum/minimum (maximum/minium sort) dan pengurutan seleksi (selestion sort). seperti yang tampak di bawah ini. Insertion Sort 5. Konsep dari fenomena tersebut kemudian diterapkan sebagai metode pengurutan data di dalam array.1 Array A sebelum diurutkan dengan metode gelembung Di sini kita akan mengurutkan array tersebut secara menaik.1. Sebagai contoh. Tahapan-tahapan yang harus dilakukan adalah sebagai berikut. asumsikan bahwa kita memiliki array A yang berisi lima buah elemen data. 44 . yaitu dengan mengapungkan nilai terkecil ke posisi teratas (paling kiri). Maximum/Minimum Sort 3. Quick Sort 7. 2) Pengurutan Gelembung (Bubble sort) Menurut sumber yang ada. 25 22 18 20 15 A[1] A[2] A[3] A[4] A[5] Gambar 5. Proses ini tentu akan dilakukan dengan menggunakan pertukaran antar elemen array. Dalam metode ini data dengan nilai terkecil akan diapungkan ke posisi teratas. Hal ini tentunya disebabkan karena berat jenis gelembung sabun lebih kecil dari berat jenis air. Selection Sort 4. metode ini diinspirasi oleh adanya gelembung sabun yang mengapung di atas permukaan air. hanya 3 (tiga) metode yang akan dibahas yaitu metode pengurutan gelembung (bubble sort). Bubble Sort 2. Merge Sort 8. Shell Sort Pada pembahasan ini. dan sebaliknya data dengan nilai terbesar akan berada pada posisi terbawah.

maka tukarkan nilai A[k] dengan A[k-1].Tahap 1 Mulai dari A[5] sampai A[2]. array tersebut akan menjadi seperti berikut. 15 18 20 22 25 A[1] A[2] A[3] A[4] A[5] Gambar 5. lakukan proses seperti pada tahap 1 dan 2 sehingga array akan menjadi seperti berikut.3 Hasil Pengurutan Array A tahap 2 Tahap 3 Mulai dari A[5] sampai A[4]. 15 18 20 25 22 A[1] A[2] A[3] A[4] A[5] Gambar 5. 15 18 25 22 20 A[1] A[2] A[3] A[4] A[5] Gambar 5. Apabila nilai A[k] lebih kecil.4 Hasil Pengurutan Array A tahap 3 Tahap 4 Tahap ini merupakan tahap terakhir dimana kita akan melakukan perbandingan terhadap nilai dari elemen terakhir (A5]) dengan elemen terakhir-1 (A[4]). lakukan proses seperti pada tahap 1 sehingga array akan menjadi seperti berikut.2 Hasil Pengurutan Array A tahap 1 Tahap 2 Mulai dari A[5] sampai A[3]. 15 25 22 18 20 A[1] A[2] A[3] A[4] A[5] Gambar 5. Sampai di sini.5 Hasil Pengurutan Array A tahap 4 Pada proses yang terjadi di atas tampak jelas bahwa untuk melakukan pengurutan data dengan lima buah elemen. lakukan perbandingan nilai antara A[k] dan A[k-1] dimana variabel k mewakili indeks array yang sedang aktif. kita harus 45 . Apabila nilai A[5] lebih kecil maka tukarkan nilainya dengan A[4] sehingga array A di atas akan terurut secara menaik seperti yang tampak di baeah ini.

For j:= 1 to n do begin 46 . . apabila proses di atas kita translasikan ke dalam bahasa pascal. End. k. A[k] := A[k-1]. {variabel bantu untuk melakukan pertukarannilai} begin for j:= 1 to N-1 do begin for k:= N downto j+1 do begin if A[k] < A[k-1] then begin temp := A[k]. n] of integer = (25. Var n. Untuk lebih memperjelas. Melakukan proses pengurutan data} For j:= 1 to n-1 do begin For k:= n downto j+1 do begin If A[k] < A[k-1] then begin Temp :=A[k]. Const n = 5. Uses crt. begin clrscr. End. A[j]. End. maka hasilnya adalah sebagai berikut. A : array [1 . Program UrutGelembung. j. k {variabel bantu untuk indeks pengulangan} temp : integer. End. 15). coba perhatikan implementasinya di dalam program berikut. End. Writeln (’Data setelah diurutkan’). temp : integer. For j := 1 to n do begin Writeln(’A[’. End. End. 22. Sekarang. {banyaknya elemen array} j. {menampilkan data sebelum proses pengurutan} Writeln(’Data sebelum diurutkan’).’] = ’. 20. {Menampilkan data setelah proses pengurutan} Writeln.melakukan empat tahapan. Ak-1] := temp. A[k] := A[k-1]. A[k-1] := temp. End. 18. Var j.

End. Untuk mempermudah pembahasan. kita hanya akan menggunakan metode maksimum saja dan tidak akan membahas mengenai metode minimum. Adapun tahapan-tahapan yang perlu dilalui untuk melakukan hal tersebut adalah sebagai berikut. Selanjutnya nilai tersebut akan diisolasi atau diikat dan tidak diikutkan lagi dalam proses selanjutnya. Data sebelum diurutkan 25 22 18 20 15 Data setelah diurutkan 15 18 20 22 25 3) Dengan Pengurutan Maksimum/Minimum metode ini. 25 22 18 20 15 A[1] A[2] A[3] A[4] A[5] Gambar 5. ’] = ’. j. coba perhatikan kembali array A yang terdapat pada bahasan sebelumnya. 47 .6 Array A sebelum diurutkan dengan metode Maksimum/Minimum Pada bagian ini kita akan melakukan pengurutan data di dalam array tersebut dengan menggunakan metode maksimum. Di sini. di mana kita akan melempar nilai maksimum ke bagian paling kanan array. Readln. Hasil yang akan diberikan oleh program di atas adalah sebagaii beriku. Hal ini disebabkan karena konsep yang terdapat pada metode minimum sama persis dengan metode maksimum. A[j]).Writeln(’A[’. End. elemen array dengan nilai maksimum/minimum akan disimpan ke bagian ujung array (elemen pertama maupun terakshir).

cari nilai maksimum dan tukarkan nilainya dengan elemen terakhir saat ini (A[4]) sehingga array akan akan berubah menjadi seperti di bawah ini. cari nilai maksimum dan tukarkan nilainya dengan elemen terakhir saat ini (A[3]) sehingga array akan tampak seperti di bawah ini. Untuk kasus ini nilai maksimum terdapat pada A[2] sehingga di sini benarnya terjadi 48 . 15 A[1] 22 18 20 25 A[2] A[3] A[4] A[5] Gambar 5. cari nilai maksimum antara A[1] sampai A[2] dan tukarkan nilainya dengan elemen A[2].7 Hasil Pengurutan Array A tahap 1 Sampai di sini. Tahap 4 Tahap terakhir.Tahap 1 Mulai dari A[1] sampai A[5]. 15 A[1] 18 20 22 25 A[2] A[3] A[4] A[5] Gambar 5. elemen terakhir (A[5]) tidak akan diikutkan lagi ke dalam proses atau tahap selanjutnya. elemen ke-3 (A[3]) juga tidak akan diikutkan lagi ke dalam proses selanjutnya. Tahap 3 Mulai dari A[1] sampai A[3].9 Hasil Pengurutan Array A tahap 3 Sampai di sini. 15 A[1] 20 18 2 25 A[2] A[3] A[4] A[5] Gambar 5. Tahap 2 Mulai dari A[1] sampai A[4]. cari nilai maksimum dan tukarkan nilainya dengan elemen terakhir (A[5]) sehingga array akan akan berubah menjadi seperti di bawah ini.8 Hasil Pengurutan Array A tahap 2 Sampai di sini. elemen ke-4 (A[4]) juga tidak akan diikutkan lagi ke dalam proses atau tahap selanjutnya.

Berikut ini bentuk translasi metode di atas ke dalam bahasa Pascal. imaks := 1. imaks. A[x] := A[imaks]. yaitu menukarkan nilai A[2] dengan A[2]. 4) Pengurutan Seleksi Pengurutan dengan metode seleksi ini bekerja dengan cara memilih salah satu elemen serta menganggapnya sebagai nilai terkecil. imaks := k. {mula-mula semua belum terurut} for j:= 1 to n-1 do begin maks := A[1]. x. Kemudian nilai tersebut aan dibandingkan dengan elemen-elemen pada posisi berikutnya. {tukarkan maks dengan A[x]} Temp := A[x]. begin x:= n.10 Array A sebelum diurutkan dengan metode Seleksi Tahap 1 49 . j. {banyaknya elemen array keseluruhan} {banyaknya elemen array yang belum terurut} {untuk indeks pengulangan} {untuk menyimpan nilai maksimal} {untuk menyimpan indeks dari elemen yang menyimpan nilai maksimal} {variabel bantu untuk proses pertukaran} temp : integer. maks. Berikut gambarannya. Apabila nilai yang dipilih pertama kali lebih besar dari nilai elemen pembanding maka tukarkan kedua buah nilai tersebut. A[imaks] := temp. end. end. k. marilah kita perhatikan kembali array A seperti pembahasan sebelumnya. for k:= 2 to x do begin if(A[k] > maks) then begin maks := A[k].proses yang seharusnya tidak perlu dilakukan. 25 22 18 20 15 A[1] A[2] A[3] A[4] A[5] Gambar 5. Untuk memperjels pembahasan ini. end. {ikat elemen terakshir dengan menurunkan nilai x} x := x – 1. end. Var n.

nilai minimum ditemukan pada indeks ke-4 sehingga min = 4. A[2] akan dianggap sebagai nilai terkecil. yaitu dengan cara memasukkan nilai 2 ke dalam variabel.Mula-mula. isikan min = j. tukarkan nilai A[min] dan A[1]. Tukarkan A[min] dengan A[4] sehingga array A akan tampak seperti berikut. Apabila nilai dari A[min] > A[j]. Kemudian sama seperti di atas. Tukarkan A[min] dengan A[2] sehingga array A akan tampak seperti berikut. nilai minimum ditemukan pada indeks ke-3 sehingga min = 3. 15 A[1] 18 22 20 25 A[2] A[3] A[4] A[5] Gambar 5. Setelah didapatkan nilai min. nilai min adalah 5 karena nilai terkecil tersimpan pada indeks ke-5. Setelah didapatkan nilai min. 15 18 20 22 25 50 .11 Hasil Pengurutan Array A tahap 1 Tahap 2 Mula-mula. Kemudian sama seperti di atas. Mulai dari j = min + 1 sampai n (jumlah elemen array). misalnya dengan nama min. misalnya dengan nama min. A[1] akan dianggap sebagai nilai terkecil. yaitu dengan cara memasukkan nilai 3 ke dalam variabel min. yaitu dengan cara memasukkan nilai 1 ke dalam variabel.12 Hasil Pengurutan Array A tahap 2 Tahap 3 Mula-mula. hal tersebut akan menyebabkan array A tampak menjadi seperti berikut. 15 A[1] 22 18 20 15 A[2] A[3] A[4] A[5] Gambar 5. lakukan pengulangan mulai dari j = min + 1 sampai n dan bandingkan setiap nilainya. lakukan pengulangan mulai dari j = min + 1 sampai n dan bandingkan setiap nilainya. A[3] akan dianggap sebagai nilai terkecil. Setelah pengulangan selesai. maka tukarkan A[min] dengan A[2]. Untuk kasus ini. Untuk kasus ini. Untuk kasus ini. maka tukarkan A[min] dengan A[3]. lakukan perbandingan antara A[j] dengan nilai A[min].

maka tukarkan A[min] dengan A[4]. Hapus kembali listing program yang sudah benar dan buat kembali program tersebut. Penutup 1) Pertanyaan Buat program untuk mengurutkan data mahasiswa dengan metode seleksi. 15 A[1] 18 20 22 25 A[2] A[3] A[4] A[5] Gambar 5. Kalau tingkat kesalahan pada pembuatan program sudah kecil. 3) Kunci Jawaban 51 . yaitu dengan cara memasukkan nilai 4 ke dalam variabel min. A[4] akan dianggap sebagai nilai terkecil.13 Hasil Pengurutan Array A tahap 3 Tahap 4 Mula-mula.A[1] A[2] A[3] A[4] A[5] Gambar 5. perbaiki terus sampai benar. Jawab pertanyaan di atas dengan langsung membuat program di komputer. 2) Umpan Balik dan Tindak Lanjut Untuk menguasai materi ini. Tukarkan A[min] dengan A[4] sehingga array A akan tampak seperti berikut. anda dapat melanjutkan materi berikutnya.14 Hasil Pengurutan Array A tahap 4 C. dan jalankan. Kemudian sama seperti di atas. lakukan pengulangan mulai dari j = min + 1 sampai n dan bandingkan setiap nilainya. Kalau program belum jalan. Untuk kasus ini. sebaiknya anda membuat ringkasan materi tentang sorting (pengurutan) dan membuat sendiri beberapa program dengan sorting. Setelah didapatkan nilai min. nilai minimum ditemukan pada indeks ke-4 sehingga min = 4. Jalankan program tersebut sampai benar.

2005. begin for i:= 1 to n-1 do begin imax := i. Bahan Ajar Pemrograman 2.Procedure selectionsort. TabInt[i] := temp. temp. Yogyakarta: Andi Offset. TabInt[imax] := TabInt[i]. 2002. Abdul. Munir. imax : integer. temp := TabInt[imax]. j. Budi. End. Bandung:Informatika BAB VI SEARCHING A. Rahardjo. Pendahuluan 52 . for j := i+1 to n do if TabInt[j] < TabInt[max] then imax := j. Daftar Pustaka Jurusan Informatika. End. 2006. Teknik Pemrograman Pascal. Rinaldi. Algoritma dan Pemrograman dalam bahasa Pascal dan C Edisi 3. Pemrograman Pascal Buku 1. Bandung: Informatika. Hibah Pengajaran PHK A1 Universitas Negeri Gorontalo Kadir. Var i. 2005.

metode pencarian data di dalam array diklasifikasikan menjadi dua. Penyajian (1) Definisi Pencarian (Searching) Pencarian (searching) data tertentu yang terkandung di dalam array merupakan hal yang banyak ditemukan dalam kasus-kasus pemrograman. yaitu metode pencarian beruntun (sequential search) dan metode pencarian bagi dua/pencarian biner (binary search).Deskripsi Singkat Bab ini akan membahas definisi pencarian (searching). B. Relevansi Pencarian dalam sebuah program akan sangat menguntungkan bagi pemrogram apabila akan membuat sebuah program yang mengharuskan adanya pencarian data tertentu. Dalam ilmu algoritma. baik data sudah terurut maupun yang belum terurut atau masih acak. metode pencarian beruntun. Maka dari itu. Bila dibandingkan dengan yang lainnya. metode pencarian bagi dua. Dengan pencarian. metode ini memiliki cara kerja yang relatif mudah 53 . akan membat program lebih efektif. pada bagian ini kita akan membahas mengenai cara yang seharusnya digunakan untuk melakukan hal tersebut serte pengimplementasiannya di dalam bahasa Pascal. Tujuan Instruksional Khusus Mahasiswa mampu membuat program dengan menggunakan perintah searching. 2) Metode Pencarian Beruntun Metode ini banyak digunakan karena efektif untuk melakukan pencarian dari sekumpulan data. Berikut ini penjelasannya dari kedua metode tersebut.

apabila kita memiliki array A yang memiliki indeks 1 sampai n dan kita akan mencari nilai x di dalam array tersebut. perhatikan gambar proses pencarian data berikut. Mula-mula kita akan membandingkan nilai 78 dengan elemen pertama (A[1]). Pencarian Data dengan Metode Pencarian Beruntun(sumber:Rahardjo) Pada gambar di atas. Sekarang misalkan kita akan melakukan pencarian data 78 di dalam array tersebut.Agar lebih memperjelas.untuk dipahami. 73. …5 merupakan indeks array sedangkan nilai 75. nilai A[3] sama dengan nilai yang dicari pencarian akan dihentikan. data yang dicari akan dibandingkandengan seluruh elemen array yang ada. Dalam metode ini. Sebagai contoh. Berikut ini contoh program yang akan menunjukkan implementasi dari pencarian array dengan menggunakan metode 54 . Array A 75 73 78 81 80 1 2 3 4 5 Nilai yg akan dicari Hentikan pencarian Gambar 6. Pada saat elemen ketiga. karena nilainya tidak sama maka pencarian akan dialnjutkan ke elemen berikutnya (A[2]). maka salah satu cara yang dapat digunakan adalah dengan membandingkan nilai 78 tersebut dengan seluruh elemen array (dari A[1] sampai A[5]). nilai 1.1. 2. … 80 merupakan nilai yang terkandung dalam elemen-elemen array. Hal ini bertujuan agar proses pembandingan nilai tidak dilakukan sampai indeks terakhir karena nilai yang dicari telah ditemukan. maka proses pencarian akan dihentikan. Dalam metode ini juga diterapkan bahwa apabila data ditemukan pada indeks tertentu. maka nilai x tersebut akan dibandingkan dengan nilai A[1] sampai A[n]. begitu seterusnya.

metode pencarian bagi dua ini hanya dapat digunakan untuk data-data yang telah terurut. x. 5] of integer = (75. break. Sebaliknya. readln. Adapun contoh hasil yang akan diberikan oleh program di atas adalah sebagai berikut . indeks : integer. begin clrscr. Const A : array [1 .di atas. maka dengan metode runtunan ini. 80). apabila data tidak ditemukan maka program akan mengembalikan indeks nol. indeks := 0. 3) Metode Pencarian Bagi Dua Berbeda dengan metode pencarian beruntun yang dapat digunakan untuk data belum terurut. readln(x). Program CariBeruntun. yaitu dari indeks pertama sampai indeks ke-n. ‘ditemukan pada indeks ke-‘. 73. end. Masukkan nilai yang akan dicari : 78 78 ditemukan pada indeks ke-3 Sekarang tinjaulah kasus apabila ternyat data yang dicari dalam array tidak ditemukan. Apabila data yang dicari ditemukan dalam array. for i := 1 to 5 do begin if A[i] = x then begin indeks := I. writeln (x. Sebagai contoh apabila kita memiliki array dengan n buah elemen. maka program akan menampilkan indeks dimana data tersebut berada. end. Hal ini tentu dapat dikatakan sebagai sebuah kelemahan dari metode tersebut. indeks). Var i. baik secara menaik maupun menurun. 78. end. program akan melakukan pembandingan nilai sebanyak n kali. 81. . write (‘Masukkan nilai yang akan dicari : ’). 55 . Uses crt.

maka ulangi metode pencarian tersebut untuk A[1] sampai A[k-1]. Keadaan pertama 1 12 14 0 Keadaan kedua 20 22 Nilai yang dicari 1 5 16 18 19 k1 = 7 24 25 2 6 28 29 20 22 24 25 2 6 28 29 K2 = 11 Keadaan ketiga 20 22 24 Hentikan pencarian K3 = 11 Gambar 6. periksa apakah nilai A[k] > x ataukah A[k] < x. Pencarian Data dengan Metode Pencarian Bagi Dua(sumber:Rahardjo) Pada gambar di atas. apabila A[k] lebih kecil dari x. Nilai 7 didapat dari (1+14) div 2. maka array tersebut akan dipenggal pada indeks ke-k. apabila terdapat array A yang memiliki n buah elemen dengan indeks 1 sampai n dan datanya telah terurut secara menaik.Dalam metode ini elemen array akan dibagi menjadi dua. A[n]. .2. Apabila x (nilai yang dicari) sama dengan nilai A[k] maka hentikan pencarian. sedangkan a[k] menjadi pemenggal atau pembatas antara dua bagian tersebut. Karena nilai pada indeks ke-7 (nilai 19) lebih kecil dari nilai yang 56 . hal tersebut mengakibatkan array A terbagi menjadi dua bagian. sehingga banyaknya proses pembandingan nilai dapat dikurangi. dimana k = n + 1 div 2. . A[k-1] dan A[k+1] . Sebaliknya. Mulamula (keadaan pertama). Pembatasnya adalah indeks ke-7. Perhatikan gambar berikut. Bila A[k] lebih besar dari x. yaitu dari A[1] . sedangkan bila tidak. Sebagai contoh. array terdiri dari 14 buah elemen yang sudah terurut secara menaik dengan indeks 1 sampai 14. array akan dibagi menjadi dua bagian. maka ulangi metode pencarian tersebut untuk A[k+1] sampai A[n].

15.14. {variabel status. maka proses pencarian akan dilakukan lagi untuk indeks ke-8 sampai ke-10.24.28. Program CariBagiDua. 57 . {melakukan pencarian} idxAwal := 1. end else begin if A[k] < x then begin idxAwal := k + 1. ketemu atau tidak} if ketemu then begin writeln (x.26. {mencari di bagian kanan} end else begin idxAkhir := k – 1. array akan dibagi menjadi dua pada indeks ke-9.19. maka proses pencarian pun dihentikan. {14 adalah jumlah elemen array A} ketemu := false. maka proses pencarian akan diulang untuk indeks ke-8 sampai ke-14.20. yang berasal dari (8+10) div 2.18. idxAkhir := 14. while (not ketemu) and (idxAwal<= idxAkhir) do begin k:= (idxAwal + idxAkhir) div 2. Uses crt. end.12. if A[k] = x then begin ketemu := true.29). k). Untuk lebih memperjelas pembahasan serta menunjukkan implementasinya. perhatikan contoh program di bawah ini. end. {indeks pemenggal/pembatas} x : integer.22.16. {indeks array awal} idxAkhir.dicari (nilai 22). 14] of integer = (10. {nilai yang dicari} ketemu : boolean. ditemukan atau tdak ?} begin clrscr. Var idxAwal. write (‘masukkan nilai yang akan dicari : ‘). Kali ini pembatasnya adalah indeks ke11. readln(x). Karena nilai pada indeks ke-11 (nilai 25) lebih besar dari nilai yang dicari (niali 22). {mencari di bagian kiri} end. .25. Pada keadaan kedua ini array tersebut juga akan dibagi menjadi dua. Pada keadaan ini (keadaan ketiga). {memeriksa. Const A : array [1 . yang berasal dari (8+4) div 2. {indeks array akhir} k. ‘ ditemukan pada indeks ke-‘. Karena nilai pada indeks ke-9 sama dengan nilai yang dicari.

sehingga banyaknya proses pembandingan nilai dapat dikurangi. mulai dari indeks terkecil sampai indeks terbesar yang terdefinisi. Masukkan nilai yang akan dicari : 22 22 ditemukan pada indeks ke-9 C. Penutup Pencarian (searching) dilakukan untuk menemukan nilai tertentu pada sejumlah nilai yang tersedia. Pencarian beruntun dilakukan dengan melakukan perbandingan nilai yang dicari dengan setiap elemen array. Metode pencarian bagi dua ini hanya dapat digunakan untuk data-data yang telah terurut. end. Pencarian dihentikan jika nilai yang dicari telah ditemukan atau semua elemen sudah diperiksa. 1) Pertanyaan Buat program untuk mencari nilai tertentu dengan metode pencarian beruntun. Dua diantaranya adlah pencarian beruntun dan pencarian bagi dua.end else begin writeln(x. ‘ tidak ditemukan’). Berikut contoh hasil yang akan diberikan oleh program di atas. Dalam metode ini elemen array akan dibagi menjadi dua. Mencari nilai terbesar atau terkecil adalah contoh lain dari proses beurtan terhadap array. end. readln. 2) Umpan Balik dan Tindak Lanjut 58 . Terdapat bermacammacam program pencarian yang telah dikembangkan dengan ide dasar yang berbeda. baik secara menaik maupun menurun.

Hibah Pengajaran PHK A1 Universitas Negeri Gorontalo 59 .nmax] of integer. perbaiki terus sampai benar. Const nmin = 1. 2006. ’ ditemukan pada indeks ke-’ . while ((i<n) and (TabInt[i] <> xx)) do i := i + 1. anda dapat melanjutkan materi berikutnya. Daftar Pustaka Jurusan Informatika. Hapus kembali listing program yang sudah benar dan buat kembali program tersebut. Bahan Ajar Pemrograman 2. indeks := cari1 (x). end. Kalau program belum jalan. if TabInt[i] = xx then cari1 := i else cari1 := 0. nmax = 100. dan jalankan. indeks) else write (x. begin write (’Nilai yang dicari = ’). var x : integer.. if indeks <> 0 then write (x. 3) Kunci Jawaban Program pencarian_beruntun. readln (x). end. n : integer. function cari1 (xx: integer) : integer. Kalau tingkat kesalahan pada pembuatan program sudah kecil. begin i := 1. indeks : integer. Jawab pertanyaan di atas dengan langsung membuat program di komputer. ’tidak ditemukan’). TabInt : arrint. Jalankan program tersebut sampai benar. type arrint = array [nmin. sebaiknya anda membuat ringkasan materi tentang searching (pencarian) dan membuat sendiri beberapa program dengan searching. var i : integer.Untuk menguasai materi ini.

Algoritma dan Pemrograman dalam bahasa Pascal dan C Edisi 3. Bandung: Informatika. Pemrograman Pascal Buku 1. Budi. Rinaldi. Pendahuluan 60 . Teknik Pemrograman Pascal. 2002. Rahardjo. Yogyakarta: Andi Offset. 2005. 2005. Abdul. Bandung:Informatika BAB VI FILE A. Munir.Kadir.

ini dan lainnya. proses pengaksesan file di dalam bahasa Pascal terdiri dari emapt tahap. Sebagai seorang programmer. membuka file. B. system. Penyajian Definisi File Dalam disudutkan kasus-kasus untuk pemrograman file tertentu sebagai kita media sering yang menggunakan digunakan untuk menyimpan data-data. kita tentu dituntut untuk dapat menggunakan (mengakses) file dari dalam prograam yang kita buat.sys. baik berupa data input (untuk masukan) maupun sebagai data output (untuk keluaran). apabila komputer dimatikan maka datanya tidak akan hilang. menutup file. Dengan demikian. apabila kita menggunakan sistem operasi Microsoft Windows maka kita akan menemukan file sistem seperti autoexec. yaitu : (a)Menghubungkan file fisik yang akan dibuka atau dibuat dengan variabel file (b)Membuka file 61 . config. Berdasarkan prosedur yang ada. Tujuan Instruksional Khusus Mahasiswa mampu membuat program dengan menggunakan perintah file. Relevansi Data dalam sebuah program yang telah dibuat dengan berbagai materi pada bab sebelumnya dapat disimpan untuk digunakan kembali dengan perintah file. Sebagai contoh.Deskripsi Singkat Bab ini akan membahas definisi file. variabel file. memanipulasi data dalam file. File tersebut sebenarnya digunakan untuk menyimpan data-data secara terpisah sehingga nilainya dapat diubah dengan mudah sesuai dengan kebutuhan.bat.

TXT yang terdapat di dalam direktori COBA di drive D. Sedangkan apabila file yang akan kita akses berada dalam satu direktori dengan program (file eksekusi) yang kita buat. melainkan melalui variabel file. sebenarnya kita tidak secara langsung memanipulasi file fisik tersebut. NamaVariabelFile merupakan nama variabel yang sebelumnya harus dideklarasikan terlebih dahulu. yang memeiliki bentuk umum sebagai berikut. Dengan kata lain. maka kode yang harus dituliskan adalah sebagai berikut. Sebagai contoh. maka 62 . variabel seperti ini dianggap sebagai variabel biasa yang dideklarasikan dengan tipe file tertentu.. {mendeklarasikan variabel file denagn nama F} Begin Assign (F. end.(c) Melakukan operasi file (membaca atau menulis) (d)Menutup file Variabel File Sebelum file dapat dibuka atau dibuat oleh program. Perlu diperhatikan bahwa nama file tersebut harus dituliskan secara lengkap beserta lokasi atau path-nya. Var F:TextFile. NamaFileFisik). apabila kita ingin membuka file dengan nama CONTOH. Cara yang harus dilakukan untuk dapat menghubungkan file fisik dengan variabel file adalah dengan menggunakan prosedur Assign. Variabel file merupakan peralatan logik yang digunakan sebagai perantara dalm mentransfer atau membaca data dari atau ke sebuah file fisik yang tersimpan di dalam disk.. Dalam bahasa Pascal. Procedure Assign (NamaVariabelFile. sedangkan NamaFileFisik merupakan nama file yang akan dibuka atau dibuat. kita harus menghubungkannya dengan variabel file terlebih dahulu. ’D:\COBA\CONTOH. .TXT’).

Selanjutnya yang akan dimanipulasi di dalam program adalah variabel F. Pada kode di atas. di sini kompiler akan melakukan proses pembuatan file baru sekaligus membuka file tersebut.TXT akan dihubungkan dengan variabel F. Assign (F. Membuka File Seteleh file tersebut dihubungkan dengan variabel file. Bila file yang dibuka berupa file teks. Dalam bahasa Pascal. maka file tersebut akan bersifat writeonly atau tidak dapat dibaca. terdapat tiga buah prosedur yang dapat digunakan untuk membuka file. Bentuk umum dari prosedur Rewrite adalah sebagai berikut. Reset dan Append. Artinya kita hanya perlu untuk menuliskan nama file-nya saja seperti berikut. Namun karena variabel tersbut sebenarnya menunjuk ke file fisik. yaitu Rewrite.TXT.kita tidak perlu menuliskan lokasi atau path-nya. artinya operasi yang 63 . UkuranRecord : Word]). (a) Prosedur Rewrite Prosedur ini digunakan untuk membuka file yang sama sekali belum terdapat di dalam disk.TXT’). Procedure Rewrite(NamaVariabelFile[:File. file CONTOH. maka langkah selanjutnya yang perlu dilakukan adalah membuka file. maka setiap perubahan yang terjadi di dalam variabel F tentu akan mempengaruhi isi dari file CONTOH. namun file masih dalam keadaan tertutup sehingga kita perlu membukanya terlebuh dahulu sebelum kita mengakses data yang terdapat di dalamnya. Artinya. Hal yang perlu diperhatikan di sini adaalah bahwa walaupun file tersebut sudah terhubung dengan variabel file. ’ CONTOH.

64 . Hal ini bertujuan untuk membaca isi dari file tersebut untuk kemudian dimanipilasi sesuai dengan kebutuhan.TXT dimana isinya kosong. Apabila dihilangkan. Apabila anda bereksperimen untuk membuka filee yang sudah ada sebelumnya dengan menggunakan prosedur Rewrite maka isi dari file tersebut akan ditimpa dengan isi file baru. Nilai tersebut akan digunakan sebagai ukuran record dalam transfer data. Procedure Reset (NamaVariabelFile [: file. UkuranRecord: word]). Nilai tersebut akan digunakan sebagai ukuran record dalam transfer data. (b) Prosedur Reset Prosedur ini digunakan untuk membuka file yang sebelumnya sudah ada di dalam disk. End. Berikut ini prototype dari prosedur Reset. Untuk lebih memahami penggunaan prosedur ini. maka di situ pasti akan tercipta file baru dengan nama CONTOH.diizinkan untuk file tersebut hanyalah operasi tulis. Var F : TextFile. Satu hal lagi yang perlu diperhatikan adalah bahwa etelah pemanggilan prosedur Rewrite. Jalankan program tersebut dan lihatlah drive D pada komputer anda.TXT’). UkuranRecord merupakan ekspresi yang bersifat opsional yang hanya disertakan apabila file yang dibuka merupakan file tanpa tipe. Perlu sekali untuk diperhatikan bahwa apabila file yang dibuka merupakan file teks. Begin Assign (F. Rewrite (F). fungsi EOF (end-of-file) akan selalu menghasilkan nilai true. Program ContohRewrite. perhatikan contoh program sederhana ini. maka variabel file akan bersifat read only (hanya dapat dibaca). maka UkuranRecord ini alan dianggap bernilai 128 byte. ’D:\CONTOH.

TXT akan ditampilkan di layar monitor. UkuranRecord sendiri berfungsi untuk menentukan ukuran record dalam proses transfer data. Apabila kita menggunakan prosedur Reset pada file yang belum terdapat di dalam disk maka kompiler akan menampilkan pesan kesalahan pada saat program dijalankan. Apabila nilai tersebut dihilangkan. Teks : string. While not eof (F ) do begin Readln (F. maka nilainya akan dianggap 128 byte. maka kita dapat menggunakan prosedur Reset seperti yang tampak pada kode berikut. teks) . {membaca data dari file dan mengisikannya ke variabel teks} Writeln (teks). ’D :\SAMPLE. Sekarang coba jalankan program tersebut dan akan melihat bahwa seluruh isi dari file SAMPLE. Uses crt. Sebagai contoh. Teknik Pemrograman Pascal Oleh Tahun Penerbit : Budi Raharjo : 2005 : INFORMATIKA Selanjutnya kita ingin membaca isi file tersebut dan ditampilkan di layar monitor. Program ContohReset.TXT yang disimpan di rive D dan isinya seperti berikut.TXT’). End. (c) Prosedur Append Prosedur ini digunakan untuk menambahkan isi file yang sebelumnya sudah terdapat di dalam disk. Reset (F). Begin Assign (F. kita telah memiliki file SAMPLE. Readln. Isi yang ditambahkan 65 . Var F : TextFile. menampilkan variabel teks ke layar} Close (F).UkuranRecord merupakan ekspresi yang bersifat operaional yang hanya disertakan apabila file yang dibuka merupakan file tanpa tipe.

kemudian isikan teks berikut ke dalamnya. buatlah file teks (*. Sebagai contoh. Ini adalah data yang dituliskan pada baris pertama. Untuk dapat lebih memahaminya. Begin Assign (F. Procedure Append (NamaVariabelFile: Text ) . Berikut ini bentuk umum dari prosedur Append. end.’Ini adalah data pertama yang ditambahkan’) . file tersebut disimpan dengan nama TEST.TXT pada drive D di dalan direktori COBA.TXT) dengan program teks editor yang tersedia. writeln (F.’D:\COBA\TEST.TXT’) . Ini adalah data yang dituliskan pada baris pertama. Program ContohAppend. misalnya Notepad. close(F) . {Membuka file untuk di tambah isinya} {Menambahkan data ke dalam file} writeln (F. Uses Crt. maka kita dapat melakukannya melalui kode program dibawah ini. Var F: TextFile. 66 . maka akan terjadi kesalahan pada saat program sedang berjalan (run-time). file bersifat write-only (hanya dapat ditulis) dan posisi file akan diset pada bagian akhir baris file. Selanjutnya kita ingin menamnbahkan dua buah baris data ke dalam file di atas. Namun sebagai catatan bagi Anda bahwa prosedur Append hanya dapat digunakan apabila file yang dibuka merupakan file teks. Dalam menggunakan prosedur ini kita tidak perlu memanggil prosedur Rewrite maupun reset karena prosedur Append secara otomatis akan membuka file yang telah dihubungkan dengan variabel file. Apabila anda membuka file teks yang belum ada didalam diks dengan menggunakan prosedur Append. Append (F) . Setiap pemanggila prosedur Append.’Ini adalah data kedua yang ditambahkan’) .selalu berada pada bagian akhir dari isi file yang sudah ada sebelumnya.

V2. Untuk melakukan hal tersebut tentu Anda harus memahami dengan benar cara membaca data dan menuliskan data kedalam file.’Mencoba menuliskan data ke dalam file’). Anda dapat melihat sub bab di bawah ini.Ini Ini Ini Ini adalah data yang dituliskan pada baris pertama adalah data yang dituliskan pada baris kedua adalah data pertama yang ditambahkan adalah data kedua yang ditambahkan 4) Setelah Memanipulasi Data Dalam File Anda mengerti cara untuk mengkaitkan atau menghubungkan file ke variabel file dan juga bagaimana cara membuka file tersebut maka kini saatnya Anda mengetahui bagaimana cara memanipulasi data dalam file dari program yang kita buat.. Untuk lebih memahaminya. proses penulisan data ke dalam file dapat dilakukan dengan menggunakan prosedur Write. Procedure Write (NamaVariabelFile. VI [ . Berikut ini bentuk prototipe dari prosedur Write. (a) Menulis Data ke Dalam File Dalam bahasa Pascal. (1) Menggunakan Prosedur Write Prosedur Write digunakan untuk menuliskan data kedalam file dimana posisi kursor tidak akan dipindahkan kebaris selanjutnya.. Dimana V1. Writeln maupun BlockWrite.VN] ) . Berdasarkan kode di atas. Walaupun demikian. Andajuga dapat menuliskannya secara langsung tanpa harus menyimpannya terlebih dahulu ke dalam variabel seperti yang tampak pada kode berikut. write (F.VN adalah nama variabel yang akan digunakan untuk menyimpan data yang akan dituliskan. perhatikan 67 . maka teks tersebut akan dimasukkan atau ditulis ke dalam file yang telah dihubungkan dengan variabel file F. Untuk informasi lebih detil mengenai masingmasing prosedur tersebut.

Artinya. Write (F. End.TXT ini sebelumnya sudah ada di dalam disk dimana isi dari file tersebut masih kosong. Uses crt. Berikut contoh program yang akan menunjukkan penggunaan prosedur Writeln yang digunakan untuk menuliskan data ke dalam file. Reset (F).’D:\COBA\DATA.TXT’).’D:\COBA\DATA.TXT yang terdapat pada direktori COBA di dalam drive D. Perbedaannya.TXT. Close (F). prosedur ini akan memindahkan kursor aktif ke baris selanjutnya. ’Teknik Pemrograman ’). Teknik Pemrograman Pascal (2) Menggunakan Prosedur Writeln Sebenarnya konsep dari prosedur Writeln ini sama dengan prosedur Write di atas. Close (F). 68 . ’Pascal’). Sebagai catatan bahwa file DATA. ’Teknik Pemrograman ’).TXT’). Writeln (F. Var F : TextFile. Jalankan program tersebut dan buka kembali isi dari file DATA. Write (F. Writeln (F. Var F : TextFile. ’Pascal’). Uses crt. Begin Assign (F.contoh program di bawah ini dimana kita akan melakukan penulisan terhadap file DATA. setelah melakukan prosedur Write. End. Writeln digunakan untuk menuliskan data per baris. Program ContohWrite. Program ContohWriteln. maka kita akan melihat bahwa file tersebut sekarang telah berisi teks berikut. Reset (F). Begin Assign (F.

VN adalah nama variabel yang akan digunakan untuk menyimpan data hasil proses pembacaan. Proses pembacaan data dengan prosedur Readln tentu akan membutuhkan waktu yang relatif lebih cepat apabila dibandingkan dengan prosedur Read karena dilakukan per baris. . Hal yang perlu diingat bahwa prosedur Readln hanya dapat digunakan untuk file teks saja. . Bentuk umum dari prosedur Readln adalah sebagai berikut. V2 . VN]). (1) Menggunakan Prosedur Read Pada file teks. kita dapat menggunakan prosedur Read. . 5) Menutup File 69 . hanya saja dalam prosedur Readln proses pembacan datanya tidak dilakukan per karakter melainkan per baris data. procedure Readln (NamaVariabelFile. (2) Menggunakan Prosedur Readln Cara kerja dari prosedur ini sebenarnya sama dengan prosedur Read.Apabila dijalankan. dimana V1 . Apabila digunakan pada file bertipe maka prosedur Read akan membaca per elemen data. V1[. Teknik Pemrograman Pascal (b) Membaca Data dari File Untuk membaca data dari dalam file. V2 . Readln dan BlockRead. Setelah mengeksekusi prosedur Read. prosedur ini digunakan untuk membaca data per karakter. V1[. Berikut bentuk umumnya. procedure Read (NamaVariabelFile. VN adalah nama variabel yang akandigunakan untuk menyimpan data hasil proses pembacaan. dimana V1 . maka kursor akan ditujukkan ke baris selanjutnya. . VN]).TXT berubah menjadi seperti di bawah ini. program di atas akan menyebabkan isi file DATA.

TXTbelum ada di dalam dirive D. Writeln (F. file dibedakan menjadi tiga jenis. Berikut bentuk umumnya. bahasa Pascal menyediakan prosedur Close.Setelah selesai mengakses file maka sebaiknya kita menutupnya. Writeln (F. dimana F adalah sebuah variabel file yang sebelumnya telah dibuka dengan menggunakan fungsi Reset. 6) Jenis File Dalam bahasa Pascal. ’Penerbit : INFORMATIKA Bandung’). Var F : TextFile. ’D:\CONTOH. var F : TextFile. yaitu : (a) File Teks (b) File Bertipe (c) File Tanpa Tipe (a) File Teks File teks adalah file yang menyimpan data-data dalam bentuk teks. Di sini kita mengasumsikan bahwa file CONTOH. Writeln (F. {mendeklarasikan variabel F bertipe TextFile} Untuk dapat lebih mengetahui penggunaannya di dalam program. Rewrite (F). Uses crt. Close (F). procedure close (var F). End. Writeln (F. Dalam bahasa Pascal. ’Tahun : 2005’).TXT’). Untuk keperluan ini. perhatikan contoh program berikut. Begin Assign (F. file teks ini direpresentasikan dengan tipe Text atau TextFile. Rewrite maupun Append. Berikut ini contoh kode untuk mendeklarasikan variabel yang bertipe TextFile. selanjutnya kita ingin membuat atau 70 . ’Teknik Pemrograman Pascal’). Program FileTeks. ’Oleh : Budi Raharjo’).

Nama : string [25]. Teknik Pemrograman Pascal Oleh : Budi Raharjo Tahun : 2005 Penerbit : INFORMATIKA Bandung (b) File Bertipe File bertipe adalah file yang menampung data dengan tipe data tertentu. Sekarang jalankan program tersebut dan lihatlah drive D. real dan lainnya. End. var F : file of real. Var F : file of Tsiswa. Begitu juga apabila file berisi data real. misalnya record. kita juga dapat mendefinisikan file bertipe ini dengan tipe data bentukan. var F : file of integer. Var NamaVariabelFile : file of <Tipedata> Sebagai contoh. maka kita akan menmui file baru dengan nama CONTOH. Umur : integer.TXT yang isinya adalah sebagai berikut. Berikut ini bentuk umum untuk mendeklarasikan variabel file bertipe. apabila kita akan mendeklarasikan variable file yang mengakses file yang berisi data integer amak kode yang harus dituliskan adalah sebagai berikut. Contoh penggunaan file bertipe untuk tipe record adalah sebagai berikut. Selain tipe data dasar. seperti integer. Alamat : string [30]. Type Tsiswa = Record NIM : string [8]. Kota : string [15]. 71 . maka kodenya adalah seperti berikut.menciptakan file tersebut dan mengisikan data yang berupa teks ke dalamnya.

Hal ini disebabkan karena data tersebut hanya disimpan di dalam memori komputer sehingga apabila program dihentikan maka alamat memori tempat data-data tersebut disimpan juga akan didealokasikan oleh kompiler secara otomatis. var F : FILE C. namun biasanya digunakan untuk menyimpan data-data biner (termasuk file EXE maupun COM). 72 . baik teks maupun tipe lainnya. umur atau daur hidup dari data tersebut masih tergantung pada lamanya program bersangkutan dijalankan. Untuk mengatasi kasus tersebut. File jenis ini dapat digunakan untuk menyimpan jenis data apa saja. maka kita harus mendeklarasikannya sebagai berikut. 1) (a) Pertanyaan Buat program untuk pengolahan data barang dengan menggunakan media file teks. Penutup Sejauh ini program yang kita buat masih menggunakan data yang bersifat sementara. file tanpa tipe direpresentasikan dengan tipe FILO. dalam pemrograman disediakan alat bantu untuk penyimpanan data-data hasil program yang disebut dengan file. dan ini mengakibatkan data-data yang tersimpan pun akan hilang. Secara fisik. file disimpan di dalam suatu disk seperti harddisk atau disket. Berikut bentuk umumnya. Artinya. yang selanjutnya dapat dimanipulasi isinya. Var NamaVariabelFile : FILE Sebagai contoh apabila kita ingin mendeklarasikan variabel F yang akan digunakan sebagai variabel file tanpa tipe.(c) File Tanpa Tipe Dalam bahasa Pascal.

'barang. spasi :string[5]. anda dapat melanjutkan materi berikutnya.1. Hapus kembali listing program yang sudah benar dan buat kembali program tersebut. 2) Umpan Balik dan Tindak Lanjut Untuk menguasai materi ini.5 .length(kodecari)) + kodecari. Kalau program belum jalan. Jawab pertanyaan di atas dengan langsung membuat program di komputer. write('kode barang dicari ? '). unitbrg :integer. lagi :char. while (Not Eof(berkasteks)) And (kodebrg <> kodecari) do 73 . perbaiki terus sampai benar. hargabrg:real. clrscr. reset(berkasteks). uses crt. writeln. 3) Kunci Jawaban Jawaban a program file1. namabrg :string[20].(b) Buat program untuk mengkoreksi data barang dengan menggunakan media file teks. kodecari :=copy(spasi.readln(kodecari). begin assign(berkasteks. sebaiknya anda membuat ringkasan materi tentang file dan membuat sendiri beberapa program file. Jalankan program tersebut sampai benar. dan jalankan. kodecari:string[5]. while upcase(lagi)='Y' do begin spasi := ' '.txt'). kodebrg :string[5]. Kalau tingkat kesalahan pada pembuatan program sudah kecil. lagi :='Y'. var berkasteks:text.

writeln('nama barang :'. begin lagi:='Y'. write ('koreksinya :'). write ('koreksinya :').$$$'). spasi:string[5].namabrg).hargabrg:10:2). berkasdummy :text. assign(berkasdummy. writeln('unit barang :'.unitbrg.5-length(kodecari))+kodecari. writeln('kode barang :'.kodebrg). spasi :=' '.kodebrg. writeln.kodebrg. kodebrg:string[5]. kodecari:string[5].readln(hargabrg). clrscr. writeln('unit barang :'. end. rewrite(berkasdummy). namabrg:string[20]. close(berkasteks).readln(unitbrg). reset(berkasteks). hargabrg:real. Jawaban b program koreksidata. ketemu:boolean.hargabrg). while not eof(berkasteks) do begin readln(berkasteks.namabrg.namabrg). var berkasteks.'barang.unitbrg. writeln('harga barang :Rp.unitbrg:7).Readln(berkasteks.hargabrg). while upcase(lagi) ='Y' do begin assign(berkasteks.unitbrg:7).txt'). write ('koreksinya :'). write ('koreksinya :'). writeln. write('ada data yang akan dicari [y/t] ?').'barang.1. kodecari:=copy(spasi. ketemu:=false. end else write('tidak ada data barang ini !!!'). lagi:char.namabrg.readln(lagi). unitbrg:integer.'. readln(kodecari). 74 . writeln('harga barang :'.hargabrg:10:2).readln(namabrg). uses crt. if kodebrg=kodecari then begin writeln('nama barang :'. if kodebrg = kodecari then begin ketemu:=true.readln(kodebrg). end. write('kode barang dikoreksi ?').

end. Dasar-Dasar Algoritma dan Pemrograman. Turbo Pascal. 2005. Yogyakarta: Andi Offset. write('ada lagi data yang akan dicari [Y/T] ?').kodebrg:5. 2002.unitbrg. end. Abdul. Kadir. close(berkasdummy). 2002. Abdul. Jurusan Informatika. 1989. writeln. 75 . close(berkasteks). end. 2004. Bandung:Informatika Wahid. erase(berkasteks). 2006. Budi.txt'). Teknik Pemrograman Pascal. Pemrograman Pascal Buku 1. Pemrograman Pascal Buku 2. Fathul. if not ketemu then writeln('tidak ada data barang ini !!!'). Yogyakarta : Andi. writeln(berkasdummy. Yogyakarta : Andi Ofset. Bahan Ajar Pemrograman 2. rename(berkasdummy.hargabrg:10:2). Yogyakarta: Andi Offset.readln(lagi). Rahardjo. Daftar Pustaka Jogiyanto. Hibah Pengajaran PHK A1 Universitas Negeri Gorontalo Kadir.end.namabrg:20.'barang.

Sign up to vote on this title
UsefulNot useful