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

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

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

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

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

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

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

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

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

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

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

readln(C[j. ’] = ‚). 2] = 2 B[1. end. Di sini. 1] = 10 C[2. 3] = 3 A[2. y dan z atau panjang. Contoh hasil yang akan diberikan oleh program di atas adalah sebagai berikut. 1] = 3 B[1. k. k]). ’ . 1] = 1 A[1. 1] = 4 A[2. 2] = 5 B[2.6. 1] = 6 B[2. 3] = 6 Matriks B B[1. lebar dan tinggi seperti yang ditunjukkan oelh gambar berikut. k] + B[j. 2] = 4 C[1. 1] = 4 C[1. 3] = 4 C[2. readln. end. writeln. subskrip yang ada akan dipresentasikan dengan sumbu x. end. 3] = 1 B[2. 3] = 4 Hasil Penjumlahan C[1. write(’C[’. 2] = 2 A[1. Matriks A A[1. k]. 2] = 5 A[2. 2] = 10 C[2.for j: = 1 to Jbaris do begin for k: = 1 to Jkolom do begin C[j. y Gambar 1. ’ . 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. Array tiga dimensi (sumber : Rahardjo) 14 . k] : = A[j.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Writeln(’A[’. Di sini. Hal ini disebabkan karena konsep yang terdapat pada metode minimum sama persis dengan metode maksimum. End.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. kita hanya akan menggunakan metode maksimum saja dan tidak akan membahas mengenai metode minimum. Untuk mempermudah pembahasan. 47 . di mana kita akan melempar nilai maksimum ke bagian paling kanan array. elemen array dengan nilai maksimum/minimum akan disimpan ke bagian ujung array (elemen pertama maupun terakshir). 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. ’] = ’. Hasil yang akan diberikan oleh program di atas adalah sebagaii beriku. j. A[j]). 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. Readln. End. 25 22 18 20 15 A[1] A[2] A[3] A[4] A[5] Gambar 5.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful