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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.