P. 1
Bahan Ajar Pemrog2

Bahan Ajar Pemrog2

|Views: 333|Likes:

More info:

Published by: Shinta Anisa Putri Yasir on Mar 20, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOC, PDF, TXT or read online from Scribd
See more
See less

12/22/2013

pdf

text

original

Sections

  • BAB I
  • BAB II R E C O R D
  • BAB III P R O S E D U R
  • BAB IV F U N G S I
  • BAB V S O R T I N G
  • BAB VI FILE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Berikut ini penjelasannya dari kedua metode tersebut. 2) Metode Pencarian Beruntun Metode ini banyak digunakan karena efektif untuk melakukan pencarian dari sekumpulan data. Dalam ilmu algoritma. 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. metode pencarian bagi dua. Penyajian (1) Definisi Pencarian (Searching) Pencarian (searching) data tertentu yang terkandung di dalam array merupakan hal yang banyak ditemukan dalam kasus-kasus pemrograman. Tujuan Instruksional Khusus Mahasiswa mampu membuat program dengan menggunakan perintah searching. baik data sudah terurut maupun yang belum terurut atau masih acak. yaitu metode pencarian beruntun (sequential search) dan metode pencarian bagi dua/pencarian biner (binary search). Dengan pencarian. B. Maka dari itu. 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. metode pencarian beruntun. akan membat program lebih efektif.Deskripsi Singkat Bab ini akan membahas definisi pencarian (searching). Bila dibandingkan dengan yang lainnya.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->