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

sedangkan nilai urut yang digunakan untuk mengakses elemennya disebut dengan indeks array. Sebagai contoh. Nilai 10 menunjukkan banyaknya elemen array sedangkan nilai 4 merupakan ukuran dari tipe data integer (dalam 32 bit). Berikut ini bentuk umum pendeklarasian array. IndeksAkhir] of tipe data. yang berasal dari 10 x 4. 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. misalkan terdapat array A yang memiliki 10 buah elemen nilai yang bertipe integer. 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. Dalam bahasa Pascal.dengan elemen array.2 Bentuk Umum Pendeklarasian array(sumber:Rahardjo) 4 . 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. Gambar 1. maka array juga akan dideklarasikan di bagian definisi tipe (di bawah kata kunci type). Bila akan didefinisikan sebagai tipe bentukan. . NamaArray : array [Indeks Awal . Deklarasi Array Sama seperti variabel lain.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful