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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Barang2.Nama).Harga := 14000. Menampilkan isi field} Writeln (’Nama Barang : ’. Readln End. Harga : longInt End. 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. LongInt 22 . RecPegawai = Record Nomor Nama TglLahir Gaji End. Writeln (’Harga : ’. Writeln (’Kualitas : ’.Harga). String [35]. RecTanggal. Tahun End. Var Barang1. Barang2 : RecBarang. Dengan adanya penugasan Barang2 := Barang1. Bulan. {penugasan nilai terhadap field-field} Barang1.Kualitas := ’A’. Barang. Barang1. Sebagai gambaran hal ini.Nama := ’Ubin TISKA 20x20’. Kualitas : car. Barang1.Kualitas). {variabel bertipe record} Begin Clrscr. perhatikan deklarasi berikut : RecTanggal = Record Tanggal.Uses crt. Type RecBarang = Record Nama : string[25]. :Integer : : : : LongInt. Barang. {menyalin record} Barang2 := Barang1. 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

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

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

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

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

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

Pendahuluan Bab ini akan mengemukakan bahasan tentang pemrograman moduler. pendefinisian prosedur. 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. Penyajian Deskripsi Singkat 31 . pemanggilan prosedur. Tujuan Instruksional Khusus Mahasiswa mampu membuat program aplikasi dengan menggunakan prosedur B.BAB III PROSEDUR A. Relevansi Pembahasan pada bab ini sangat penting dipahami. definisi prosedur. terutama pemrograman moduler.

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

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

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

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

Ketika sebuah prosedur dilakukan. Suatu efek awal netto dan diketahui dengan pada membandingkan prosedur kita keadaan keadaan keadaan akhir pelaksanaan sebuah prosedur. 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. Oleh sebab itu. Penutup Kata prosedur sering kita dengar dalam kehidupan sehari-hari.Procedure CetakHalo {mencetak string ’Halo!’ ke piranti keluaran} Deskripsi CetakHalo {panggil prosedur CetakHalo} Contoh 3. prosedur adalah modul program yang mengerjakan tugas/aktivitas yang spesifik dan menghasilkan suatu efek netto. pada setiap perlu mendefinisikan awal sebelum rangkaian instruksi di dalam prosedur dilaksanakan dan keadaan 36 . Seorang mahasiswa pada setiap awal semester selalu melakukan penaftaran ulang (registrasi). maka instruksi-instruksi di dalamnya dikerjakan satu per satu.4 Tuliskan contoh program utama untuk memanggil prosedur HitungLuasSegitiga. Langkah-langkah pendaftaran ulang lazim dinyatakan dalam sebuah prosedur yang dinamakan prosedur daftar ulang.

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

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

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

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

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

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

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

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

15 25 22 18 20 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.Tahap 1 Mulai dari A[5] sampai A[2]. 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.3 Hasil Pengurutan Array A tahap 2 Tahap 3 Mulai dari A[5] sampai A[4]. lakukan perbandingan nilai antara A[k] dan A[k-1] dimana variabel k mewakili indeks array yang sedang aktif.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 dan 2 sehingga array akan menjadi seperti berikut. Sampai di sini. array tersebut akan menjadi seperti berikut. maka tukarkan nilai A[k] dengan A[k-1]. kita harus 45 . 15 18 20 25 22 A[1] A[2] A[3] A[4] A[5] Gambar 5.2 Hasil Pengurutan Array A tahap 1 Tahap 2 Mulai dari A[5] sampai A[3].5 Hasil Pengurutan Array A tahap 4 Pada proses yang terjadi di atas tampak jelas bahwa untuk melakukan pengurutan data dengan lima buah elemen. 15 18 20 22 25 A[1] A[2] A[3] A[4] A[5] Gambar 5. lakukan proses seperti pada tahap 1 sehingga array akan menjadi seperti berikut. Apabila nilai A[k] lebih kecil.

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

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

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

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

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

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

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

Maka dari itu. yaitu metode pencarian beruntun (sequential search) dan metode pencarian bagi dua/pencarian biner (binary search). Dalam ilmu algoritma.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. baik data sudah terurut maupun yang belum terurut atau masih acak. 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. Berikut ini penjelasannya dari kedua metode tersebut. Penyajian (1) Definisi Pencarian (Searching) Pencarian (searching) data tertentu yang terkandung di dalam array merupakan hal yang banyak ditemukan dalam kasus-kasus pemrograman. metode pencarian bagi dua. Dengan pencarian. Bila dibandingkan dengan yang lainnya. metode pencarian data di dalam array diklasifikasikan menjadi dua. metode ini memiliki cara kerja yang relatif mudah 53 . metode pencarian beruntun. 2) Metode Pencarian Beruntun Metode ini banyak digunakan karena efektif untuk melakukan pencarian dari sekumpulan data. akan membat program lebih efektif.

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

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

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

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

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

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

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

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

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

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

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

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

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

Procedure Write (NamaVariabelFile. V2.’Mencoba menuliskan data ke dalam file’). (a) Menulis Data ke Dalam File Dalam bahasa Pascal.VN] ) .. Walaupun demikian. Anda dapat melihat sub bab di bawah ini. write (F.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. Andajuga dapat menuliskannya secara langsung tanpa harus menyimpannya terlebih dahulu ke dalam variabel seperti yang tampak pada kode berikut. (1) Menggunakan Prosedur Write Prosedur Write digunakan untuk menuliskan data kedalam file dimana posisi kursor tidak akan dipindahkan kebaris selanjutnya. Untuk melakukan hal tersebut tentu Anda harus memahami dengan benar cara membaca data dan menuliskan data kedalam file. Dimana V1. proses penulisan data ke dalam file dapat dilakukan dengan menggunakan prosedur Write. Berikut ini bentuk prototipe dari prosedur Write. Writeln maupun BlockWrite. Untuk informasi lebih detil mengenai masingmasing prosedur tersebut. Berdasarkan kode di atas. VI [ . perhatikan 67 .VN adalah nama variabel yang akan digunakan untuk menyimpan data yang akan dituliskan. maka teks tersebut akan dimasukkan atau ditulis ke dalam file yang telah dihubungkan dengan variabel file F.. Untuk lebih memahaminya.

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

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

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

Contoh penggunaan file bertipe untuk tipe record adalah sebagai berikut. Berikut ini bentuk umum untuk mendeklarasikan variabel file bertipe. Kota : string [15]. 71 . Var NamaVariabelFile : file of <Tipedata> Sebagai contoh. Alamat : string [30]. maka kita akan menmui file baru dengan nama CONTOH. apabila kita akan mendeklarasikan variable file yang mengakses file yang berisi data integer amak kode yang harus dituliskan adalah sebagai berikut. maka kodenya adalah seperti berikut. kita juga dapat mendefinisikan file bertipe ini dengan tipe data bentukan. Sekarang jalankan program tersebut dan lihatlah drive D. End. seperti integer. misalnya record. real dan lainnya. Var F : file of Tsiswa. var F : file of integer. Type Tsiswa = Record NIM : string [8].menciptakan file tersebut dan mengisikan data yang berupa teks ke dalamnya. Umur : integer. Nama : string [25]. var F : file of real. 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. Begitu juga apabila file berisi data real. Selain tipe data dasar.TXT yang isinya adalah sebagai berikut.

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

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

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

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

Sign up to vote on this title
UsefulNot useful