CatatanKuliah.

com

Matakuliah: Bahasa Pemograman Pascal

TRANSPARANSI MATA KULIAH

BAHASA PEMROGRAMAN

PASCAL

Universitas Sebelas Maret Surakarta

Page :

1

CatatanKuliah.com

Matakuliah: Bahasa Pemograman Pascal

Daftar Isi
Bahasa pemrograman Generasi & Tingkatan bahasa komputer Compiler dan Intepreter Tipe Pemrograman ALGORITMA Aturan Penulisan Teks Algoritma Diagram Alir (Flow chart) Sequential, Selection/Branching Structure Repetition/Looping Pseudocode Sejarah PASCAL Struktur Bahasa PASCAL Dasar Bahasa PASCAL Jenis identifier Deklarasi Variable Deklarasi Konstanta Tipe Data Operator PERINTAH INPUT – OUTPUT STRUKTUR KONTROL PROGRAM SUB PROGRAM Jangkauan Variabel Parameter Nilai (pass by value) Parameter Variabel (pass by reference) Function Rekursi dan Iterasi ARRAY Array Satu Dimensi Array Multidimensi Operasi pada Array Mencari Nilai Tertentu pada Array Mencari Harga Maksimum pada Array Mencari Harga Minimum pada Array Matrik RECORD (REKAMAN) Array dari Record Sorting Data Bubble Sort Shell Sort Quick Sort FILE Operasi pada file teks Error pada Pembacaan File 3 4 6 7 9 10 11 12 13 15 15 16 17 18 18 19 19 27 30 33 43 46 49 50 51 52 52 53 54 55 55 56 56 57 59 61 62 63 63 64 65 66 68

Page :

2

CatatanKuliah.com

Matakuliah: Bahasa Pemograman Pascal

Pengenalan Komputer Proses transformasi data berbantukan komputer

Gambar 1. diagram tansformasi data
Penggunaan komputer Kelebihan 1. 2. 3. 4. Kecepatan Konsistensi Kapasitas Reusability Kelemahan 1. Hanya menjalankan instruksi

Bahasa (language) Adalah suatu sistim untuk berkomunikasi. Bahasa tertulis menggunakan simbol (yaitu huruf) untuk membentuk kata. Dalam ilmu komputer,bahasa manusia disebut bahasa alamiah (natural languages), dimana komputer tidak bisa memahaminya, sehingga diperlukan suatu bahasa komputer. Bahasa pemrograman (programming language) Komputer mengerjakan transformasi data berdasarkan kumpulan perintah - program - yang telah dibuat oleh pemrogram. Kumpulan perintah ini harus dimengerti oleh komputer, berstruktur tertentu (syntax) dan bermakna. Bahasa pemrograman merupakan notasi untuk memberikan secara tepat program komputer. Berbeda dengan bahasa alamiah, mis. Bahasa Indonesia, Inggris dsb. yang merupakan bahasa alamiah(natural language), sintaks dan semantik bahasa pemrograman (komputer) ditentukan secara kaku, sehingga bahasa pemrograman juga disebut sebagai bahasa formal (formal language). Jadi, dalam bahasa pemrograman yang digunakan sebagai alat komunikasi untuk memberikan perintah kepada komputer tidak berlaku kebebasan berekspresi seperti laiknya dalam bahasa alamiah. Pemrograman dalam pengertian luas meliputi seluruh kegiatan yang tercakup dalam pembuatan program, termasuk analisis kebutuhan (requirement's analysis) dan keseluruhan tahapan dalam perencanaan (planning) , perancangan (design) dan pewujudannya (implementation).

Page :

3

Abstraksi bahasa ini adalah kumpulan kombinasi kode biner "0" dan "1" yang sangat tidak alamiah bagi kebanyakan orang . Tingkatan bahasa komputer 1.kecuali insinyur pembuat mesin komputer.Bahasa Mesin (machine language) Bahasa mesin merupakan representasi tertulis machine code (kode mesin).Proses data oleh komputer berdasarkan perintah bahasa rakitan adalah cepat. perencanaan dan perancangan program dengan pemrogram (programmer) yang bertugas membuat kode program dan menguji kebenaran program. sehingga pelaksanaan proses sangat cepat. .CatatanKuliah. Karena tidak alamiah bagi kebanyakan orang.Bahasa Assembly (assembly language) Bahasa rakitan (assembly language) merupakan notasi untuk menyajikan bahasa mesin yang lebih mudah dibaca dan dipahami oleh manusia. Bahasa ini bersifat khusus untuk mesin tertentu dan "dimengerti" langsung oleh mesin. dsb. dimana high-level programming languages dekat pada bahasa manusia. Bahasa Tingkat Rendah (low-level language) Merupakan bahasa assembly atau bahasa mesin. Lebih dekat ke mesin (hardware). yaitu kode operasi suatu mesin tertentu. pindahkan ke register AX nilai 1111. PASCAL. Meski demikian masih merepotkan-bahkan bagi kebanyakan pemrogram. IV: 4 GL (fourth-generation language): SQL Gambar 2. Bahasa mesin kelompok komputer tertentu berlainan dengan bahasa mesin kelompok komputer yang lain. bahasa mesin juga disebut bahasa tingkat rendah. . pemrograman merupakan pengkodean (coding atau program writing = penulisan program) dan pengujiannya (testing) berdasarkan rancangan tertentu. Pemahaman yang lebih sempit ini sering digunakan dalam pembuatan programprogram terapan komersial yang membedakan antara system analyst yang bertanggung jawab dalam menganalisa kebutuhan. Bahasa ini sudah menggunakan simbol alpabet yang bermakna (mnemonic). Generasi bahasa pemrograman: • • • • Generasi Generasi Generasi Generasi I: machine language II: assembly language : Asssembler III: high-level programming language: C. Contoh “MOV AX 1111”. karena masih harus Page : 4 .com Matakuliah: Bahasa Pemograman Pascal Dalam pengertian yang lebih sempit.

C BASIC. Algol. Pada generasi bahasa pemrograman terakhir sekarang ini. Cara interpretasi memudahkan dalam pembuatan program secara interaktif dan cara kompilasi menjadikan eksekusi program lebih cepat. BASIC. h 46) Jenis Program Data terstruktur Proyek cepat Eksekusi cepat Kalkulasi matematika Menggunakan memori dinamis Lingkungan bermemori terbatas Program real-time Manipulasi string Program mudah dikelola BASIC Assembler. Bahasa tingkat tinggi bersifat portable. C. FORTRAN. tulis. Program yang dibuat menggunakan bahasa tingkat tinggi pada suatu mesin komputer bersistem operasi tertentu. sebelum bisa dijalankan program harus terlebih dahulu di-compile. Assembler. Kalaupun ada perbaikan sifatnya kecil sekali. kemudian setelah tidak ada kesalahan keseluruhan program dikompilasi. FORTRAN C C. FORTRAN Page : 5 . dsb. C BASIC. Contoh: Assembler. (Mc. LISP. Pertama program dikembangkan interaktif. C /C++. BASIC PASCAL. Fourth-Generation Language (4GL) Lebih dekat ke bahasa manusia dibandingkan dengan high-level programming languages.CatatanKuliah. ADA. Biasanya dipakai untuk mengakses database. kelebihan utama dari bahasa ini adalah mudah untuk di baca. Bahasa Pemrograman untuk tujuan tertentu. 2. C++. PASCAL Bahasa Terburuk Assembler. kedua cara interpretasi dan kompilasi digabungkan dalam satu lingkungan pengembangan terpadu (IDE = integrated development environment). Bahasa rakitan juga bersifat khusus untuk mesin tertentu. PASCAL PASCAL. maupun diperbaharui. dan Pascal. Intrepreter Language PASCAL BASIC FORTRAN BASIC.com Matakuliah: Bahasa Pemograman Pascal mengingat-ingat tempat penyimpanan data. Assembler BASIC. Assembler. hampir 100% bisa digunakan pada berbagai mesin dengan aneka sistem operasi. Bahasa Tingkat Tinggi (high-level language) Adalah bahasa pemrograman yang dekat dengan bahasa manusia. ADA Bahasa Terbaik ADA. COBOL. 3. Connell. C FORTRAN PASCAL. C ADA. Contoh perintah pada bahasa SQL: FIND ALL RECORDS WHERE NAME IS "JOHN" Bahasa Pemrograman untuk tujuan tertentu Tabel 2. Contoh bahasa program seperti ini adalah Visual BASIC yang berbasis BASIC dan Delphi yang berbasis PASCAL. Contoh Ada.

source code tersebut diubah menjadi object code (bahasa assembly) 3.5 1:3 1 : 3.5 Rasio Compiler dan Intepreter Compiler Adalah suatu program yang menterjemahkan bahasa program (source code) ke dalam bahasa objek (object code). h 46) Bahasa Assembler ADA Quick / Turbo / Basic C FORTRAN PASCAL 1: 1 1 : 4. Tetapi. proses kompilasi program komputer Tahapan Kompilasi: 1. 2. Connell. Gambar 3.CatatanKuliah. Rasio pernyataan bahasa tingkat tinggi dengan kode bahasa rakitan yang setara. dan bersifat independen. Pertama source code ( program yang ditulis) dibaca ke memory komputer. object code dihubungkan dengan library yang dibutuhkan untuk membentuk file yang bisa di eksekusi.5 1:5 1 : 2. Compiler memerlukan waktu untuk membuat suatu program yang dapat dieksekusi oleh komputer. Keuntungan dari Interpreter adalah Page : 6 .com Matakuliah: Bahasa Pemograman Pascal Tabel 2. Interpreter menganalisis dan mengeksekusi setiap baris dari program tanpa melihat program secara keseluruhan. Compiler menggabungkan keseluruhan bahasa program dikumpulkan kemudian disusun kembali. (Mc. Interpreter berbeda dengan compiler. program yang diproduksi oleh Compiler bisa berjalan lebih cepat dibandingkan dengan yang diproduksi oleh Interpreter.

Membagi program menjadi sub-program 2. masukan (input) yang diperlukan danprosesproses utama yang diperlukan untuk transformasi data. Pemrograman terstruktur Pemrograman terstruktur adalah cara pemrosesan data yang terstuktur. b.. Setiap modul hanya mempunyai satu masukan dan keluaran 2.Memudahkan pembacaan. Bahasa pemrograman prosedural – terstruktur Bahasa pemrograman prosedural adalah bahasa pemrograman yang mendukung pembuatan program sebagai kumpulan prosedur.urut (sequence) Page : 7 . Rancangan (design) terstruktur: 1. pengujian. Gunakan pengkodean terstruktur: IF . dan g. Prosedur-prosedur ini dapat saling memanggil dan dipanggil dari manapun dalam program dan dapat menggunakan parameter yang berbedabeda untuk setiap pemanggilan. 2. 2. kategori dan penyelesaian masalah dimulai dari bagian yang utama kemudian dibagi menjadi bagian yang lebih kecil. dari modul utama ke sub-sub modul. Gaya penulisan program terstruktur:Menggunakan indentasi sehingga jelas struktur dan kontrol program. Dalam perencanaan dan perancangan dari atas ke bawah. Setiap modul dalam proses rancangan atas ke bawah biasanya dibatasi dalam isi maupun batasan-batasan berikut: 1. pemahaman.CatatanKuliah. e. Gunakan nama-nama bermakna (mnemonic names). Tentukan keluaran (output) yang diminta. Bahasa pemrograman terstruktur adalah pemrograman yang mendukung abstraksi data. Tahapan rancangan atas ke bawah dalam pemrograman: 1. Gunakan sub-program untuk proses-proses sejenis yang sering digunakan.com Matakuliah: Bahasa Pemograman Pascal dalam eksekusi yang bisa dilakukan dengan segera. 3. THEN. Membagi proses utama ke dalam modul-modul fungsional. pengkodean terstruktur dan kontrol program terstruktur. f. Prosedur adalah bagian dari program untuk melakukan operasi-operasi yang sudah ditentukan dengan menggunakan parameter tertentu. Prinsip pemrograman terstruktur: a.. DO . Runtun . untuk alasan ini interpreter digunakan pada saat pembuatan program berskala besar. Hindarkan penggunaan perintah GO TO bila tidak diperlukan.. Cocok untuk sistem yang banyak mempunyai fungsi independen. 3. Setiap modul hanya mewakili satu fungsi program. Rancangan cara ini memudahkan penulisan. penelusuran kesalahan dan pembuatan koreksi. Buat dokumentasi yang akurat dan berarti. d.. Buat algoritma msing-masing modul. Terstruktur dalam: analisa. cara dan penulisan program. Kontrol program terstruktur: 1. Menekankan fungsionalitas. Bagi program ke dalam modul-modul logika yang sejenis. Gunakan rancangan pendekatan dari atas ke bawah (top down design). Tipe Pemrograman 1. WHILE dan lain-lainnya. koreksi dan dokumentasi program. Tanpa melalui tahap kompilasi. c.

model adalah suatu gambaran sederhana dari sistim yang kita buat. Rancangan algoritma Pembuatan urutan instruksi yang akan ditulis pada program ( dijelaskan lebih lanjut) 4. Dengan pembuatan model akan terlihat dengan jelas hubungan antara objek-objek dalam sistim yang akan kita bangun.com Matakuliah: Bahasa Pemograman Pascal 2. Contoh: untuk membuat program luas_lingkaran kita membuat model matematis c = a x b 3. Pengembangan Model Pembuatan model dari sistim yang akan kita bangun.Menentukan hal-hal yang diperlukan oleh sistim . Tahap pengembangan program 1. Pengulangan (repetition . Pilihan (selection) 3. Batasan Masalah Merencanakan sistim dan spesifikasi program: Siapa yang akan menggunakan program dan untuk apa? dengan cara: . Dokumentasi Pembuatan catatan pada program terutama pada modul-modul yang rumit. kesalahan saat eksekusi (runtime error) kesalahan logika program (program berjalan tapi menghasilkan output yang salah.Pengumpulan data.fatal error). 6. Uji dan Validasi Pengujian terhadap program : seperti kesalahan penulisan (syntax error) .Menentukan tujuan dan hasil yang akan dicapai .CatatanKuliah. Pemrograman Implementasi algoritma ke dalam program (algoritma sendiri dalam komputer adalah merupakan program).loop) Gambar 4. 5. biasanya model dibuat dalam bentuk rumus matematik. Untuk penyelesaian aritmatik. Contoh: Sistim Pengembangan Software Life Cycle Page : 8 . 2.

Kebenaran algoritma.Efisien dalam penggunaan piranti memori dan penyimpanan lainnya. Pembuatan algoritma harus selalu dikaitkan dengan: a. Setiap langkahinstruksi mengerjakan suatu tindakan aksi.Flexible untuk dikembangkan lebih lanjut . f. Bersih dari kesalahan sistem ataupun lojik d. yakni bila program selesai maka hasilnya juga benar b.lama dan jumlah . Secara umum. Algoritma .CatatanKuliah.com Matakuliah: Bahasa Pemograman Pascal Gambar 5. maka algoritma akan selalu berhenti dengan memberikan hasil yang benar pula. Flexible dan portable: .Portable untuk digunakan pada berbagai sistem dan mesin c.waktu proses dan penggunaan memori. Tepat sasaran: memenuhi spesifikasi pekerjaan dan bekerja sesuai tujuan b. Murah: . Page : 9 . e. algoritma: "kumpulan urutan perintah yang menentukan operasi-operasi tertentu yang diperlukan untuk menyelesaikan suatu masalah ataupun mengerjakansuatu tugas". pemeliharaan dan pengembangan. Sistim Pengembangan Software Life Cycle ALGORITMA Perencanaan dan perancangan program komputer juga disebut pembuatan algoritma.Cepat waktu pelaksanaannya. Bila suatu aksi dilaksanakan. Algoritma merupakan pemberian (description) pelaksanaan suatu proses. Algoritma merupakan urutan langkah instruksi yang logis. bercirikan: a. .dan tentu program yang baik. Didokumentasi dengan baik untuk pengoperasian.Sebuah proses dikerjakan oleh pemroses mengikuti algoritma yang sudah dibuat. Bila data yang digunakan benar. Kompleksitas . maka operasi atau sejumlah operasi yang bersesuaian dengan aksi itu dikerjakan oleh pemroses.

N terurut membesar Aturan Penulisan Teks Algoritma Tidak ada notasi yang baku dalam penulisan teks algoritma. Bagian penjelasan diawali dan diakhiri dengan simbol { dan }. Algoritma bukanlah program yang harus mengikuti aturan-aturan tertentu.com Matakuliah: Bahasa Pemograman Pascal Hasil atau pengaruh suatu aksi diamati dengan membandingkan keadaan sebelum (t0) dan sesudah suatu aksi dikerjakan (t1). Bagian kepala algoritma. menghitung luasnya. Algoritma NAMA_ALGORITMA { Penjelasan tentang algoritma yang menguraikan secara singkat hal-hal yang dilakukan oleh algoritma } DEKLARASI { Semua nama yang digunakan. yaitu: a. konstanta. Hal-hal yang bersifat teknis ini baru dipikirkan waktu penulisan program. Algoritma menerima masukan jejari lingkaran. tipe.. tulis nilai X dan Y.CatatanKuliah. Setiap bagian disertai dengan penjelasan atau dokumentasi tentang maksud pembuatan teks. dan c. Algoritma adalah bebas bahasa pemrograman. Meski demikian. Kepala algoritma: Algoritma Luas_Lingkaran { Menghitung luas lingkaran dengan ukuran jejari tertentu. variabel. Misal. konstanta. variabel. t0: kumpulan data ke 1 . dituliskan dalam algoritma sebagai write(X. seperti dicetak dalam satu baris X dan Y. sifat atau identitas lainnya yang melekat dengan suatu proses. dan menyajikan hasilnya ke piranti keluaran } Perhatian.Y) ini hanya memerintahkan penyajian nilai X ke piranti keluaran (output). b. N belum terurut membesar Algoritma PENGURUTAN DATA t1: kumpulan data ke 1 . Perhatikan dalam notasi write(X. Bagian deskripsi algoritma. Bagian deklarasi. algoritma dituliskan mendekati gaya bahasa pemrograman umumnya. Dalam notasi itu juga tidak memasalahkan format ataupun bentuk-bentuk tampilan lainnya.. dalam menulis nama-nama dalam algoritma harus mempunyai makna yang mencerminkan proses. meliputi nama-nama: tipe.Y). suatu teks algoritma disusun dalam tiga bagian. Juga nama sub-program dinyatkan di sini } DESKRIPSI { Semua langkah atau aksi algoritma dituliskan di sini } Contoh: 1). sub-program dan lain-lainnya. pemakaian pemisah antara X dan Y menggunakan koma atau spasi. Teks Algoritma Mengikuti alur konsep pemrograman prosedural. Nama-nama yang bermakna disebut Page : 10 .

CatatanKuliah.Parameter A dan B sudah terdefinisi nilainya. { input jejari lingkaran bilangan riil } l_Lingkaran : real. 2) Deklarasi algoritma: DEKLARASI { nama konstanta } const PHI = 3. } baca(R). Diagram Alir (Flow chart) Merupakan bentuk grafis/visual dari algoritma Bentuk umum dari simbolsimbol dalam diagram alir: Simbol untuk mulai (start) atau akhir (end) program Simbol untuk pembacaan (read) data atau penulisan hasil (write) pada layar Simbol untuk suatu proses terhadap data pada program Simbol untuk suatu pernyataan pilihan (optional) pada program. tulis(l_Lingkaran). { Baca data jejari lingkaran R. A berisi nilai B dan B berisi nilai A } 3) Deskripsi algoritma: Bagian ini merupakan bagian inti algoritma yang berisikan uraian langkah-langkah penyelesaian suatu masalah. Setiap langkah algoritma dibaca dari atas ke bawah.Jika R <= 0 tulis pesan data salah. { Nilai phi = 22/7 } { nama peubah } var R : real. Konektor.com Matakuliah: Bahasa Pemograman Pascal mnemonic. selain itu hitung luas lingkaran. { luas lingkaran bilangan riil } { nama sub program } procedure TUKAR(input/output A:integer. Sub program komentar Page : 11 . Tampilkan luas lingkaran.Setelah pertukaran.14. Simbol untuk penghubung antar aktifitas. Urutan penulisan menentukan urutan pelaksanaan perintah. Simbol untuk memutus aktivitas karena keterbatasan media kertas. input/output B:integer) { Mempertukarkan nilai A dan B. E. jika R <= 0 then tulis("Data salah !") selain itu l_Lingkaran = PHI x R x R.

CatatanKuliah.com Matakuliah: Bahasa Pemograman Pascal Contoh pemakaian flowchart: -Sequential (berurutan) perhitungan volume dan luas permukaan silinder Selection/Branching Structure (Struktur pemilihan) Page : 12 .

com Matakuliah: Bahasa Pemograman Pascal Repetition/Looping Structure(Struktur pengulangan) Page : 13 .CatatanKuliah.

com Matakuliah: Bahasa Pemograman Pascal Kombinasi Page : 14 .CatatanKuliah.

PASCAL mempunyai ciri-ciri sebagai berikut: 1. Page : 15 . Pascal juga merupakan teaching language (banyak dipakai untuk pengajaran tentang konsep pemrograman). Sejarah PASCAL Merupakan pengembangan dari bahasa ALGOL 60. pernyataan end. END. begin pernyataan. tidak seperti misalnya FORTRAN.CatatanKuliah.com Matakuliah: Bahasa Pemograman Pascal Pseudocode adalah penulisan algoritma menggunakan gaya bahasa pemrograman pemrograman tertentu. Tahun 1960. yaitu programmer diberi keleluasaan untuk mendefinisikan data sendiri. pernyataanpernyataan yang ditulis lebih awal akan dieksekusi lebih dahulu. 2. Berurutan Susunan dari kode-kode dalam teks Pascal harus ditulis secara urut dari atas. bahasa pemrograman untuk sains komputasi. suatu pernyataan yang menyangkut suatu variabel di dalam program. { output } tulis(l_Lingkaran). yang merupakan anggota grup yang membuat ALGOL. Tahun 1971. Kelebihan yang lain adalah penulisan kode Pascal yang luwes. Oleh karena itu. beberapa ahli komputer bekerja untuk mengembangkan bahasa ALGOL. Bentuk dasar program Pascal adalah seperti berikut: program TITLE . Contoh deskripsi algoritma di atas bila ditulis menggunkan gaya bahasa PASCAL akan berbentuk: BEGIN { mulai } { input } read(R). yang memerlukan programmer untuk menulis kode dengan format tertentu. maka variable itu harus terdefinisi dahulu sebelumnya. salah satunya adalah Dr. { selesai } BAHASA PASCAL 1. dia menerbitkan suatu spesifikasi untuk highly-structured language (bahasa tinggi yang terstruktur) yang menyerupai ALGOL. { proses } jika R <= 0 then tulis("Data salah !") selain itu l_Lingkaran = PHI x R x R. Dia menamainya dengan PASCAL (seorang filsuf dan ahli matematika dari Perancis) Pascal bersifat data oriented. PASCAL sebagai bahasa terstruktur Sebagai bahasa terstruktur. Bisa dibaca lebih lanjut pada bagian sub-program. Niklaus Wirth dari Swiss Federal Institute of Technology (ETH-Zurich). Hal ini terutama menyangkut pada pemanggilan sub-program oleh sub-program yang lain.

Deklarasi tipe data (TYPE) b. Pascal dimanfaatkan untuk pengembangan DELPHI (berasal dari nama suatu kota di masa Yunani kuno). Y } Z := X + Y.com Matakuliah: Bahasa Pemograman Pascal 2. Sedangkan untuk bagian deklarasi menyesuaikan dengan isi dari program itu sendiri. 4. Bagian Program Utama Perintah-perintah. Deklarasi label (LABEL) e. dengan pintu keluaran yang satu pula (satu disini maksudnya bukan dua baris perintah output tapi suatu paket perintah yang dirangkai dengan begin . Deklarasi variabel (VAR) c. diantaranya: USCD PASCAL. Deklarasi sub-program (PROCEDURE dan FUNCTION) 3. seperti pada blok program utama. Dengan semakin berkembangnya teknologi dalam komputasi. { Perintah menjumlahkan X dan Y serta menyimpan hasilnya ke Z} END. { Deklarasi variabel X. { Perintah memberikan nilai 50 pada var. X } Y := 25. Teks Pascal setidaknya memiliki bagian Judul Program. Bakuan PASCAL Dibakukan oleh ISO pada tahun 1983 dan dikembangkan dalam beberapa versi.Y dan Z sebagai bilangan bulat } BEGIN { Program Utama Mulai } X := 50. Pascal memberikan pembatas yang jelas pada tiap-tiap blok. struktur kontrol (pengulangan/ pemilihan). Writeln ( ‘ program selesai’).. bagian Deklarasi. Y. sub-program. TURBO PASCAL dll. Satu pintu masuk dan satu pintu keluar pada blok pemilihan dan pengulangan. { Menjumlahkan dua bilangan yang nilainya diberikan dalam perintah} var X. Struktur Bahasa PASCAL secara umum Pascal mempunyai struktur sebagai berikut: 1. dll. MS PASCAL. Contoh di atas juga mengilustrasikan pintu masuk tunggal pada suatu blok pemilihan yaitu suatu test logika X>0. Contoh program PASCAL: program TAMBAH_00. Bagian Deklarasi a.CatatanKuliah. Pemakaian kata kunci begin untuk mengawali operasi pada blok dan end untuk menutupnya memudahkan programmer menyusun programnya dengan mudah. Z: integer. end. 3. Bagian Judul Program 2. { Akhir Program Utama } Page : 16 . dan Bagian Program Utama yang berupa perintah-perintah. Seperti contoh: If X>0 then begin Write ( ‘ bilangan positif’). suatu bahasa pemrograman visual yang menonjolkan pada efek grafis dan orientasi pada objek-objek yang siap dipakai. { Perintah memberikan nilai 25 pada var. Deklarasi konstanta (CONST) d. Blok dengan batas-batas yang jelas. 3. karena memiliki Visual Component Library (VCL). end.

c. d. . nilai X dan Y dibaca dari default input. Y. Menyimpan data ke dalam memori dengan struktur data yang sesuai. d. pada berbagai versi Pascal umumnya antara 32 .garis bawah) b. { Membaca nilai X lewat key-board } read(Y). Menyajikan atau mengirimkan hasil olahan data ke default output (monitor. program TAMBAH_01. Panjang nama.63.CatatanKuliah. { Membaca nilai Y lewat key-board } Z := X + Y.* / | \ = < > [ ] . c. Constant. Beberapa perintah dilaksanakan dengan persyaratan tertentu. Sub-program (procedure dan function). Memproses data dengan instruksi yang tepat. Nama identifier harus dimulai dengan karakter huruf alfabet: a sampai z. Dalam mengolah data diperlukan pengelolaan instruksi terstruktur: a. A sampai Z atau karakter '_' (underscore . Mendapatkan data dengan membaca data dari default input (key board. { Deklarasi variabel X. Ketentuan penulisan identifier a. b. Nama-nama ini digunakan untuk pemakaian dan pemanggilan dalam program. Label. c. b. .com Matakuliah: Bahasa Pemograman Pascal Pada contoh ini nilai X dan Y tidak bisa sembarang. { Akhir Program Utama } Dasar Bahasa PASCAL Unsur-unsur Pemrograman a. Type. file atau tujuan lainnya). Beberapa perintah dilaksanakan berulang dengan jumlah pengulangan tertentu. : ( ) ^ @ { } $ # ~ ! % & ` " ' dan ? Contoh penulisan: Penulisan yang benar: X _PQR Beta Sudut_Alpha luasLingkaran Penulisan yang salah: 3D sisi-Kanan B# Page : 17 . nama: Variable. Tidak boleh menggunakan karakter istimewa: + . karena didefiniskan tertentu. Beberapa instruksi dikelompokkan dalam satu blok atau model yang mengerjakan tugas tertentu. Identifier Digunakan untuk nama: Program. { Menyajikan Z ke layar monitor } END..Y dan Z sebagai bilangan bulat } BEGIN { Program Utama Mulai } read(X). { Menjumlahlan dua buah bilangan yang dibaca dari default input } var X. Z: integer. { Menjumlahkan X dan Y serta menyimpan hasilnya ke Z } write(Z). file atau sumber data lainnya). 9) atau kombinasi alphanumerik (huruf-numerik). Karakter berikutnya boleh karakter numerik (0 . Agar nilai X dan Y bisa bebas ditentukan.

Dinamai Identifier Standar karena suatu kompiler tidak harus memilikinya. dengan syarat nama tersebut tidak sama dengan identifier standar dan reserved word yang akan dibahas lebih lanjut.com Matakuliah: Bahasa Pemograman Pascal Jenis identifier a. Identifier Standar (Baku) Merupakan identifier yang didefinisikan oleh pembuat kompiler Pascal. Identifier umum Merupakan identifier yang didefinisikan sendiri oleh pemrogram.5 memiliki suatu unit untuk memproses output yaitu wincrt. fungsi atau unit yang sudah siap pakai.5). masing-masing kompiler dimungkinkan mempunyai identifier yang berbeda untuk suatu tugas yang hampir sama. Misalnya Turbo Pascal versi DOS menggunakan crt untuk melakukan fungsi yang sama dengan wincrt (TPW 1. b. R : real. gotoxy. and array begin case const div do downto else end file for forward function goto if in label mod nil not of or packed procedure program record repeat set then to type until var while with Deklarasi Variable: Mendeklarasikan varibel adalah: a. var i. j. j dan k sebagai integer} namaMHS. alamatMHS : char. Biasanya pembuat kompiler menyediakan suatu library yang sudah ada didalam kompiler. Memberikan nama variabel sebagai identitas pengenal b. yaitu yang sudah didefinisikan dan digunakan oleh bahasa PASCAL sendiri (Kita tidak bisa menamai identifier kita dengan ini). Pemrogram mempunyai kebebasan untuk menentukan nama identifiernya.{Variabel i. T : boolean. C : char. yang dengan mudah bisa dipakai oleh programmer di dalam menuliskan kode-kode programnya. k : integer. {Nama dan alamat mahasiswa } Page : 18 . Misalnya Turbo Pascal Windows 1. Beberapa identifier yang sejenis bisa dideklarasikan bersamaan. Identifier "reserved word". Hal ini untuk mencegah kesalahan yang bisa timbul akibat tumpang tindih identifier dalam program. Menentukan tipe data variabel Contoh deklarasi variabel: var K : integer. Beberapa Identifier Standar yang dimiliki oleh kompiler-kompiler Pascal antara lain: abs arctan boolean char cos dispose eof eoln exp false input integer ln maxint new odd ord output pack page pred read readln real reset rewrite round sin sqr sqrt succ text true trunc write writeln c.CatatanKuliah. Library berisi berbagai procedure.

CatatanKuliah. char (alphanumerik dan tanda baca). ukuran dalam memori dan rentang nilainya. tabel 1 menunjukkan jenis data. meliputi: integer (bilangan bulat). Tipe Data Bilangan Integer Tipe Data Byte Shortint integer Word Longint Ukuran Tempat 1 byte 1 byte 2 bytes 2 bytes 4 bytes Rentang Nilai 0 s/d +255 -28 s/d +127 -32768 s/d 32767 0 s/d 65535 2147483648 s/d 2147483647 Contoh bilangan integer adalah: 34 6458 -90 0 1112 Penggolongan tipe data integer tersebut dimaksudkan untuk membatasi alokasi memori yang dibutuhkan misalkan untuk suatu perhitungan dari suatu variabel bilangan diperkirakan nilai maksimumnya 32767 kita cukup mendeklarasikan variabel bilangan sebagai integer (2 byte). Memberikan nama konstanta sebagai identitas pengenal b. Tipe Data Sederhana merupakan tipe data dasar yang sering dipakai oleh program. {char } Tipe Data Tipe data yang disediakan oleh PASCAL meliputi: 1. real (bilangan pecahan). tabel 1. daripada sebagai longint(4 byte). -MaxInt bernilai 32. pemrogram bisa menggunakannya di dalam programnya tanpa harus terlebih dahulu mendefinisikannya. {integer } ExitCommand = 'Q'. terbagi atas beberapa kategori seperti terlihat dalam tabel 1. dan boolean (logika). Pascal menyediakan konstanta untuk bilangan Integer yaitu: MaxInt and MaxLongInt. Untuk data integer dan real masing-masing terbagi menjadi beberapa kategori a. Menentukan nilai konstanta Contoh deklarasi konstanta: const MaximumSize = 100.com Matakuliah: Bahasa Pemograman Pascal Deklarasi Konstanta: Mendeklarasikan konstanta adalah: a. Di dalam kompilernya.767 Page : 19 . Bilangan Integer merupakan tipe data berupa bilangan bulat.

com Matakuliah: Bahasa Pemograman Pascal -MaxLongint bernilai 2.9 x 10-39 s/d 1. d. Bilangan Real Tipe Data real single double extended comp Ukuran Tempat 6 bytes 4 bytes 8 bytes 10 bytes 8 bytes Rentang Nilai 2. WordBool.147. contoh: Program display_maxint. sedangkan WordBool dan LongBool dipakai untuk menulis program yang sesuai dengan lingkungan Windows. Yang perlu diingat bahwa dalam menuliskannya harus dengan memakai tanda kutip tunggal. tabel 2. Jenis data ini memerlukan alokasi memori sebesar 1(satu) byte untuk masingmasing data. memiliki 266 macam yang terdapat dalam tabel ASCII (American Standard Code for Information Interchange).0 35.4 x 1038 5.5213e2. uses wincrt.7 x 10308 3.55 0. Contoh: 'a' 'B' '+'.2x 1018 c. dimana E merupakan simbol perpangkatan 10. Tipe Data Boolean merupakan tipe data logika. dapat dituliskan secara biasa atau model scientific . Char tipe data ini menyimpan karakter yang diketikkan dari keyboard. Turbo Pascal for Windows memiliki tiga macam jenis ini yaitu: Boolean.997E+11.5 x 1045 s/d 3.0 x 10-324 s/d 1. Bilangan Real Bilangan real atau nyata merupakan jenis bilangan pecahan.7 x1038 1.265 -3. Tipe Data Boolean Tipe Data Boolean Ukuran Tempat 1 byte Page : 20 . yang berisi dua kemungkinan nilai: TRUE (benar) atau FALSE (salah).13 mempunyai nilai sama dengan 4.483.2x 1018 s/d 9. Tabel 2. Contoh bilangan real: 34. begin writeln (maxint) end. Jadi 452.CatatanKuliah.647.4 x 10-4932 s/d 1. dan LongBool. Tipe boolean memakai memori paling kecil. Hasilnya: 32.1 x 104932 -9. dsb.767 b. Penggolongan tipe data bilangan real dapat dilihat pada tabel 2.

karena ukuran string menyesuaikan dengan defaultnya. Tipe Data String String merupakan suatu data yang menyimpan array (larik). kemudian kata[2]. end. writeln(s). end. Karakter nol merupakan karakter yang menyatakan panjang string. dan file perlu dijelaskan dalam bab yang lain karena agak banyak hal-hal yang perlu dibahas. record. Maka kata[1] merupakan karakter pertama dari string.CatatanKuliah. dan file. dst. Sehingga ord(s[0]) menyatakan panjang dari string tersebut. Uses wincrt. atau var kata: string. begin s:='Hello'.com Matakuliah: Bahasa Pemograman Pascal WordBool Longbool 2 byte 3 byte Sebagai bilangan ordinal boolean true mempunyai nilai 1(satu). Panjang string juga bisa dinyatakan sebagai length(s). String adalah tipe data jenis array. Tipe Data Terstruktur tipe ini terdiri atas : array. begin writeln(ord(true)). a. record. Ukuran Tempat untuk tipe data ini adalah 2 s/d 256 byte. Misalkan var kata: string [20]. sebagai contoh 'ABCDEF' merupakan sebuah konstanta string yang berisikan 6 byte karakter. var s : string. Bila ukuran string tidak didefinisikan maka akan banyak memakan ruang. dengan jumlah elemen 1 s/d 255. Page : 21 . Sedangkan untuk array.2. sedangkan false nilainya adalah 0(nol). Contoh: Program hal_string.ord(s[0])). set. Hasilnya: 1 0 3. Contoh: Program display_bool. karena string merupakan array dari karakter. String dideklarasikan dengan string [ konstanta ] atau string. writeln(ord(false)). writeln('panjang dari string adalah: '. uses wincrt. tetapi karena string memiliki kekhasan tersendiri sebagai array dari karakter maka penulis perlu memberikan penjelasan tersendiri. merupakan elemen kedua.

3).banyaknya) Contoh : st:=copy(s. end. Syntax : length(s) Contoh : n:=length(s). Syntax : val(strvar. { kosong} jika banyaknya string yang akan diekstrak lebih besar dari s. numvar variabel numerik ( bisa integer atau real. Syntax : Pos(substr. var s : string. Sebaliknya. Contoh : program konversiangka. konversi berhasil.dari. n akan sama dengan 11. -Copy : mengkopi suatu ekstrak karakter dari sebuah string.numvar. { n:=5.CatatanKuliah. hal ini akan menunjukan posisi dimana pada strvar yang menyebabkan kegagalan. -Val : mengkonversi string ke numerik.4). st adalah 'are'.com Matakuliah: Bahasa Pemograman Pascal routines pada Pascal untuk manipulasi string : -Length : menghasilkan panjang string.15.e) else writeln('itu adalah : '.r.'Who are you ?'). e : integer.10).strvar) Page : 22 . readln(s). Misal s:='Who are you ?'. Misal s:='pemrograman'. maka hasilnya 0. st hasilnya adalah 'you ?' -Pos : menghasilkan posisi dari suatu substring dari suatu string. Syntax : str(numvar. Jika errorcode adalah 0. } Jika substring tidak ditemukan. val(s. begin write('masukkan angka : '). catatan: bila indek lebih bear dari panjang string maka hasilnya akan kosong: Contoh : st:=copy(s. r : real.9. dan errorcode adalah variabel integer yang menyimpan error code (kode kesalahan). -Str : mengkonversi numerik ke string. mengekstrak 3 karakter dari s. uses wincrt. dimulai dari karakter kelima.e).5. maka hasilnya adalah bagian yang tersisa dari string.errorcode) strvar adalah variabel string yang akan dikonversi. Contoh : st:=copy(s.r:4:3). Syntax : copy(s. if e<>0 then writeln('salah pada posisi : '.s) Contoh : n:=pos('are'.

str(i. Syntax : insert(asal.s2. Page : 23 ..6).s2). writeln(s2). writeln('itu adalah: '. var s1. var s : string..'ver.com Matakuliah: Bahasa Pemograman Pascal Contoh : program konversiangka_1.n). akan menjadi 'Borland Pascal ver..indek) Contoh : program sisip . var s : string. delete(s. st akan menjadi 'ABCDEF' st:=concat('Borland '.s). uses wincrt. insert(s1.. begin s:='saya seorang insinyur'.0'). end. i : integer. Contoh : program hapus. -Concat : Menggabungkan dua atau lebih string. s2:='saya bekerja'.CatatanKuliah.6.s).target.3).'Pascal '. begin s1:='tidak '. readln(i). uses wincrt.i. Syntax : delete(s.sn) Contoh : st:=concat(s1. 7. '. begin write('masukkan angka: ').'7.0' -Insert : Menyisipkan suatu string ke dalam string yang lain. {saya tidak bekerja } end. Jikas1='ABC' dan s2='DEF'. s2 : string. Jika hasilnya lebih dari 255 maka akan terpotong menjadi 255. uses wincrt. -Delete : menghapus n karakter dari string s berawal dari indek i.s2. Syntax : concat(s1.

4.. var semua_hari : set of hari. jum. Sat). rab. contoh: A = { 1. CharSet = set of Char. Digits = set of 0. sel.com Matakuliah: Bahasa Pemograman Pascal writeln(s). Contoh: Program contoh_set.'Z'.'=').c). const EvenDigits: Digits = [0. type hari = (ahad. Syntax : fillchar(s. Contoh : program isikarakter. -Fillchar : mengisi string s dengan karakter c sampai s sama dengan n-1 panjang karakternya. 8]. Letters = set of 'A'. Vowels: Letters = ['A'. var s : string. Fri. hari_ini : hari. b. kam. Hati-hati : s[0] akan tertumpuki. Days = set of Day.9. Tue.jum. 2. Wed.. 'Y']. end. untuk menormalkannnya. Uses wincrt. sen. 'E'. Thu. tetapi kita bisa melakukan operasi yang lain dengan data yang ada pada set (mis.n. 'U'. relasional). 'O'. Tipe Data Set Sebuah set merupakan suatu himpunan yang berisi nilai (anggota). 4. Set dalam pemrograman sangat mirip dengan himpunan dalam ilmu matematika. 5 } Syntax: set of contoh: type Digits = set of 0. begin fillchar(s. 2. s[0]:=chr(50). 'I'... Mon. type Day = (Sun. set merupakan Tipe data yang khusus untuk Pascal. jangan lupa menambahkan s[0]:=chr(n-1). 3. Kita tidak bisa menulis atau membaca isi dari set. uses wincrt. hari_kerja : set of sen .9. { 'saya sang insinyur'} end.51. 6. Sab). begin Page : 24 .CatatanKuliah.

. end.'). uses wincrt.' merupakan huruf kecil. if Ch in ['a'. Contoh di atas merupakan deklarasi variabel p sebagai pointer dari integer. Ada dua macam pointer: -typed(tertentu): merupakan pointer yang menunjuk pada tipe data tertentu pada variable. { hal ini sama dengan m:=12. Dengan menambahkan tanda caret (^) di depan nama tipe data variabel yang dideklarasikan: contoh : program contoh_pointer1. Contoh deklarasi pointer: var p : ^integer. var p : ^integer.CatatanKuliah. -Tipe Data Pointer pointer merupakan variabel khusus yang berisi suatu address (alamat) di lokasi lain didalam memory. { p sekarang menunjuk ke n } Page : 25 . kita bisa menulis. if hari_ini in hari_kerja then writeln('HARI INI HARI KERJA') else writeln('HARI LIBUR'). if (Ch >= 'a') and (Ch <= 'z') then Writeln( Ch. } p:=@n. atau. mis. Ch adalah tipe Char. begin m:=10. n:=15. kita bisa menulis .com Matakuliah: Bahasa Pemograman Pascal hari_ini:=sen. m. Misalnya. n : integer.' merupakan huruf kecil. dengan notasi set. -generic(umum): merupakan pointer yang tidak menunjuk pada tipe data tertentu pada variable. Suatu variabel yang points(menunjuk) ke sesuatu sehingga disebut pointer.'z'] then Writeln( Ch. Salah satu manfaat dari penggunaan tipe data set adalah untuk mengecek apakah suatu nilai muncul dalam suatu range tertentu. untuk mementukan apakah suatu karakter berupa lower case letter (huruf kecil). { p sekarang menunjuk ke m } p^:=12. p:=@m.').

name:='Saddam'. dispose(p). Dalam membuat program. tidak memerlukan alokasi memori. end.position:='S'. begin new(p). Typed pointer menggunakan "new" untuk menampung memori dan "dispose" untuk melepasnya. Type Pemployee = ^Temployee. Generic Pointer adalah pointer tanpa tipe data tertentu. uses wincrt.' '. Temployee = record Name : string[10]. Generic Page : 26 . Deklarasi: Var P : pointer.com Matakuliah: Bahasa Pemograman Pascal p^=m. pointer berkaitan dengan tipe data khusus. p^.'. { m = 12.. Pernyataan new(p). yang mana Static variable ini dibatasi oleh kapasitas 64KB untuk tiap module. n = 12 } end.position. generic pointer tidak sama dengan typed pointer. Variable dengan cara ini dinamakan dengan dynamic variable. Sehingga kita perlu memecahkan program kebeberapa unit. Salah satu teknik yang dipakai untuk mengatasi persoalan ini adalah seperti program berikut. mengakses p^ sama dengan mengakses m.salary:=3000. p^. n = '. p^.end blok.). var p : pemployee. Ketika p menunjuk ke m ( p:=@m.n). end.p^.' '. Biasanya. Dipergunakan sebagai buffer sementara (tidak permanen). { { hal ini sama dengan n:=m.m. kita bisa melihat meskipun p tidak menunjuk pada suatu variable tetapi dapat diisi dengan nilai. Pada blok begin.. Salary : longint. Setelah itu kita bisa melakukan apapun pada variabel tersebut sampai kita membuangnya dari memori dengan memakai perintah dispose(p).salary).name. Yang berarti dalam program utama kita hanya bisa menggunakan hanya 64KB dan tiap unit Pascal hanya bisa memakai 64KB. sedangkan generic pointer tidak. Program contoh_pointer2. Untuk itu pointer sangat bagus karena sifatnya yang dinamis. Sehingga kita bisa melepasnya untuk suatu saat tidak diperlukan.. writeln(p^. dalam penggunaan pointer kita memerlukan alokasi memori tertentu: Ketika kita mendeklarasikan variabel pointer dalam "var" sehingga merupakan suatu static variable. Position : char.CatatanKuliah. } writeln('m = '. Tetapi.p^.

2 (hasil: 7) * 2 (hasil: 18) 9 / 2 (hasil: 4. real Integer. sedangkan tipe umum (generic pointer) Pascal tidak bisa. integer integer.8192). program Pascal mengetahui ukuran dari memori yang harus dilaokasikan. Set Tabel 2. integer Tipe Hasil Operasi Integer. real Integer. { Release it. Program contoh_pointer2. Var P : pointer. Pada pointer dengan tipe tertentu. Operator Beberapa operator yang disediakan oleh PASCAL: 1. real Integer. Sehingga dengan getmem kita perlu untuk menentukan berapa besar memori yang akan kita alokasikan. Relasional 4. Begin Getmem(p. karena Pascal tidak mengetahui variabel apa yang akan dipakai. Aritmatika 2. real integer integer Contoh : + 2 (hasil: 11) . real integer. uses wincrt.CatatanKuliah.5) div 2 (hasil: 4) mod 2 (hasil: 1) Tabel 3. 8192 bytes } end. Operator Aritmatika PASCAL Operator + * / div mod 9 9 9 9 9 Operasi Penjumlahan Pengurangan Perkalian Pembagian Pembagian Sisa pembagian Tipe Operand Integer. real Integer.com Matakuliah: Bahasa Pemograman Pascal pointer menggunakan "getmem" untuk mendapatkan memori dan "freemem" untuk melepasnya. 4. Ukuran terbesar adalah 65532 bytes (hampir 64K). real Integer. real Integer. Operator Boolean PASCAL Operator not and or xor negasi logika ‘and’ logika ‘or’ logika ‘xor’ Operasi Tipe Operand boolean boolean boolean boolean Tipe Hasil Operasi boolean boolean boolean boolean Page : 27 . { Reserve 8192 bytes }{ We use it then } freemem(p. Boolean 3.8192).

pointer dan set tipe sederhana. Operator Relasional Operator = <> < > <= >= Operasi Sama dengan Tidak sama dengan Lebih kecil dari Lebih besar dari Lebih kecil atau = Lebih besar atau = Tipe Operand tipe sederhana. string Tipe Hasil Operasi boolean boolean boolean boolean boolean boolean Contoh: Misal suatu variable A:=9 dan B:=2. set Set. string tipe sederhana. Operasi Relasional pada Set Ada empat perbandingan relasional yang diperkenankan pada set. string tipe sederhana. set Set. string. set Set. A >= B (hasil: TRUE) A < B (hasil: FALSE) A > B (hasil: TRUE) 4.com Matakuliah: Bahasa Pemograman Pascal Contoh: A dan B suatu variabel boolean A TRUE FALSE A TRUE TRUE FALSE FALSE FALSE TRUE B TRUE FALSE TRUE FALSE A and B TRUE FALSE FALSE FALSE A or B TRUE TRUE TRUE FALSE A xor B FALSE TRUE TRUE FALSE not (A) Tabel 3. string. A = B : mempunyai hasil True jika A dan B memiliki anggota- Page : 28 . pointer dan set tipe sederhana. string tipe sederhana. A <= B (hasil: FALSE) A <> B (hasil: TRUE). set Tipe Hasil Operasi boolean boolean boolean boolean Misal A dan B adalah merupakan dua buah set. maka: A = B (hasil: FALSE).CatatanKuliah. Operasi pada Set a. Tabel 4. Operator Relasional pada set Operator = <> <= >= Operasi Sama dengan Tidak sama dengan Lebih kecil atau = Lebih besar atau = Tipe Operand Set.

Fri. Beberapa fungsi matematik standar yang disediakan oleh PASCAL Nama Fungsi abs Deskripsi absolute value Tipe Argumen real/integer Tipe Hasil Operasi real/integer Page : 29 .Fri].4*a*c Contoh: Bila dideklarasikan var i. Tue] dan B berisi [Sun.Sat] dan B berisi [Mon.CatatanKuliah. yang merupakan anggota kedua set. Contoh: Jika A berisi [Sun.Tue]. Fri] menghasilkan [Mon. i + j adalah ekspresi aritmatik (menghasilkan suatu bilangan integer) i < j adalah ekspresi boolean (menghasilkan logika TRUE atau FALSE) 6. Tue. Operasi Logika pada Set Ada tiga operasi logika pada set. Mon. Mon. Tue. Fri] = [Tue.4ac Ekspresi PASCAL •a+b •x*(y+z) • b * b . A <= B : menunjukkan bahwa A adalah subset dari B.atau Difference: [Sun.. Thu]. * atau Intersection: [Sun. Wed] . Fri] menghasilkan [Sun. 5. j: integer. Tue. Mon. Tue. Wed. Mon. Tue. b. Fungsi Matematik Standar dalam PASCAL Tabel 6. A >= B : menunjukkan bahwa A adalah superset dari B. Ekspresi Merupakan kombinasi antara operator dan operand. A <> B: mempunyai hasil True jika A dan B memiliki anggota-anggota yang tidak sama. yang merupakan anggota adari set pertama yang bukan anggota set yang kedua. Mon. Contoh: [Sun. Tue. Wed] * [Mon. Wed]. Fri] menghasilkan [Sun. Tabel 5. Tue.com Matakuliah: Bahasa Pemograman Pascal anggota yang sama. Thu. Sun]. maka A adalah merupakan superset dari B dan ekspresi menghasilkan nilai True. Operator Logika pada set Operator + * Operasi Union Difference Intersection Tipe Operand Set Set Set Tipe Hasil Operasi Set Set Set Misal: + atau Union: [Sun. Contoh: Jika A berisi [Sun. Ekspresi matematik yang terjadi dalam dunia nyata diterjemahkan kedalam bahasa Pascal dengan sedikit perubahan tanda. Tue. maka. Thu. Fri]. maka A adalah merupakan subset dari B dan ekspresi menghasilkan nilai True. Tue..[Mon. Contoh: Ekspresi matematika •a+b •x(y+z) • b2 . Mon. Wed. . Wed] + [Mon.

END. {Program SELESAI} 2. Contoh: program luas_PersegiPanjan_00. {Mendeklarasikan variable panjang.OUTPUT 1. Merupakan cara tersederhana untuk "menempatkan" (assign) data ke memori. Perintah Input (read atau readln) Perintah digunakan untuk membaca data dari default input .1416). SYNTAX read(x). lebar dan luas persegi panjang sebagai integer} BEGIN {Program MULAI} panjangPSP := 25. Assignment Komputer bisa mengolah dan menampilkan sesuatu yang ada di dalam memori.6) (hasil: 11) Trunc(10.com Matakuliah: Bahasa Pemograman Pascal arctan cos sin exp ln round sqr sqrt trunc arctan (radian) cosine (radian) sin (radian) fungsi Perpangkatan e ln Pembulatan terdekat kuadrat Akar kuadrat Pembulatan ke bawah Real/integer real/integer real/integer real/integer real/integer real real/integer real/integer real/integer real real real real real integer real/integer real integer Contoh : Abs(-11) (hasil: 11) Round(10. lebarPSP. lebarPSP := 20. PERINTAH INPUT . atau readln(x). var panjangPSP. {Program untuk menghitung luas bangun empat persegi panjang} uses wincrt.keyboard. luasPSP : integer.CatatanKuliah. Contoh: Page : 30 .6) (hasil: 10) Sqrt(4) (hasil: 2) Sqr(4) (hasil: 16) Untuk fungsi trigonometri: x = sin phi menjadi x:=sin (3. luasPSP := panjangPSP * lebarPSP.

var panjangPSP. lebar dan luas persegi panjang sebagai integer. SYNTAX Write(x). { Menghitung luas persegi panjang. } luasPSP := panjangPSP * lebarPSP. umurMHS : integer.key-board. } BEGIN { Program MULAI } {Membaca dari data panjang dan lebar persegi panjang. 3. { Mendeklarasikan variable panjang. Contoh: write('TES'). Setelah menyajikan ke layar. } Page : 31 .com Matakuliah: Bahasa Pemograman Pascal program luas_PersegiPanjang_00. harus diikuti dengan Enter} END.umurMHS. statusMHS: boolean. luasPSP :integer. {setelah mengisi semua variabel . default input unit dan default format dengan memberikan pentunjuk ke pemakai tanpa ganti baris. atau writeln(x). var nimMHS : character. Perintah Output (write atau writeln ) Perintah digunakan untuk menyajikan data ke default output . write('Leabar = '). Setelah membaca data kursor pindah ke baris baru. luasPSP : integer.CatatanKuliah. { Membaca data sekaligus menggunakan perintah read } uses wincrt. readln(lebarPSP). { Program SELESAI } Perintah read atau readln dapat digunakan untuk membaca data lebih dari satu sekaligus dengan berbagai format. lebarPSP. Perintah ini akan menampilkan teks TES ke layar monitor pada posisi kursor sebelum perintah write dilaksanakan. { Menyajikan hasil hitungan luas persegi panjang ke unit default output dan default format.statusMHS). } BEGIN { Program MULAI } { Membaca dari data panjang dan lebar persegi panjang. writeln('TES').{Menghitung luas persegi panjang} END. } uses wincrt. {Program untuk menghitung luas bangun empat persegi panjang. lebar dan luas persegi panjang sebagai integer. Perintah ini akan menampilkan teks string TES ke layar monitor pada posisi kursor sebelum perintah write dilaksanakan. lebarPSP. default input unit dan default format tanpa ganti baris} read(panjangPSP). readln(lebarPSP). readln(panjangPSP). input dibaca dari keyboard dan output ditampilkan ke layar monitor } uses wincrt. BEGIN readln(nimMHS. { Program untuk menghitung luas bangun empat persegi panjang. Setelah menyajikan ke layar. program luas_PersegiPanjan_01.Setelah menyajikan kursor pindah ke baris baru. kursor pindah ke ujung teks TES pada baris yang sama. kursor pindah ke awal baris berikutnya.(pengisian variabel pertama dan kedua dipisahkan dengan spasi) luasPSP:=panjangPSP*lebarPSP. Contoh: program bacaCampuran. { Mendeklarasikan variable panjang. } write('Panjang = '). var panjangPSP.

d = maksimum tempat yang disediakan untuk angka desimal. Sajian format ini mengatur tampilan rata kanan (right justified) Contoh: Bila R = 123.CatatanKuliah. maka: Perintah: Ditampilkan di monitor: writeln(R:6:2). Format Penyajian Tipe Data Real Perintah digunakan untuk menyajikan data ke unit default output .monitor dengan userdefined format. Format Penyajian Tipe Data Integer dan String Perintah digunakan untuk menyajikan data ke unit default output . A. luasPSP). maka: Perintah: Ditampilkan di monitor: writeln(N:5). R.monitor dengan userdefined format. 12. ____5 writeln(N*10:5). n harus lebih besar dari banyak karakter atau digit yang terkandung di dalam A. SYNTAX Write(R:n:d). default format Page : 32 . Format Penyajian Data a. luasPSP). atau writeln(B:n).35 Bilangan dengan tipe real bila ditampilkan menggunakan default format akan disajikan menggunakan format floating point. Contoh perintah penyajian writeln('Luas = '. 4. _ _ __500 b. SYNTAX Write(A:n). END. B = ekspresi yang akan disajikan nilainya n = maksimum tempat yang disediakan.45 writeln(S:6:2).355.45 dan S = 12. atau writeln(E). bisa dikerjakan dengan perintah: writeln('Luas = '.com Matakuliah: Bahasa Pemograman Pascal writeln('Luas = '. Sajian format ini mengatur tampilan rata kanan (right justified) Contoh: Bila N adalah bilangan bulat bernilai 5. _ _ _ _50 writeln(N*100:5). panjangPSP * lebarPSP). 123. Untuk contoh nilai R dan S di atas. E = ekspresi yang akan disajikan nilainya n = maksimum tempat yang disediakan untuk angka termasuk tanda titik sebagai tanda pemisah desimal. { Program SELESAI } Catatan: Argumen perintah writeln boleh berupa ekspresi.

pengaturan interaksi pengguna dengan komputer menggunakan tampilan-tampilan teks yang posisinya diatur dalam komposisi baris dan kolom. do While .12). X menyatakan kolom dan Y menyatakan baris. write('Lebar = '). yaitu: 1.. gotoXY(25.10). END. { Contoh penggunaan perintah gotoXY untuk pengaturan tampilan.OPK).ABC ). } uses winCRT.. luasPSP. Perintah untuk menyajikan tampilan ke printer SYNTAX Write(LST. dan CLrEOL. write('Masukkan data persegi panjang : '). {Melakukan operasi matematika} kelilingPSP := 2 * (panjangPSP + lebarPSP). SYNTAX GotoXY(X.14). 4.. Dalam lingkungan pemrograman yang beorientasi teks. 2. PASCAL menyediakan beberapa konstruksi perintah untuk melakukan proses-proses itu. atau writeln(LST. read(panjangPSP). SYNTAX ClrScr. Penempatan Kursor di Layar monitor komputer umumnya dibagi dalam 80 kolom dan 25 baris dengan kolom ke 1 dan baris ke 1 terletak di pojok kiri atas. to . gotoXY(25. suatu proses bisa berupa proses berurutan dari awal hingga selesai. pilihan berdasarkan kondisi tertentu atau pengulangan bedasarkan batasan tertentu pula. { Membuat tampilan untuk output mulai kolom ke 25 baris ke 14 layar. masih dilengkapi dengan perintah penghapusan seluruh layar dan penghapusan dari posisi kursor hingga akhir baris..2345E2 S 1. Struktur Pengulangan Secara alamiah.15). write('Keleling = '. Untuk PASCAL versi tertentu. read(lebarPSP).. luasPSP:8:2).2355E1 c. var panjangPSP.11). do Repeat . lebarPSP. { Membersihkan tampilan keseluruhan layar } {Membuat tampilan untuk meminta masukan data mulai kolom ke 25 baris ke 10 layar} gotoXY(25.. luasPSP := panjangPSP * lebarPSP. write('Panjang = '). write('Luas = '.CatatanKuliah. gotoXY(25. For . BEGIN clrScr. d. until goto Page : 33 . kelilingPSP:8:2).Y). Contoh: program contohGOTO_XY. 3. STRUKTUR KONTROL PROGRAM 1..com Matakuliah: Bahasa Pemograman Pascal sajiannya adalah: R 1. } gotoXY(25. kelilingPSP: real..

Akan Menghasilkan : mari membuat program mari membuat program mari membuat program mari membuat program mari membuat program sebanyak lima baris. Contoh: Misalkan i adalah suatu variabel dalam integer For i:=5 downto 1 do Page : 34 . for variabel:= <awal> to <akhir> do begin : : pernyataan : : end. end.CatatanKuliah. Apabila kita akan melakukan pengulangan secara ‘cacah mundur’ kita bisa memakai kata kunci ‘downto’ SYNTAX for variabel:= <awal> downto <akhir> do begin : : perintah. <akhir> : menyatakan kondisi akhir nilai variabel kendali pengulangan. kemudian berhenti. Struktur FOR < KONDISI > DO Digunakan bila jumlah pengulangan sudah diketahui atau sudah tertentu. <awal> : menyatakan kondisi awal nilai variabel kendali pengulangan.com Matakuliah: Bahasa Pemograman Pascal Beberapa kemungkinan proses pengulangan adalah jumlah pengulangan sudah tertentu atau ditentukan dalam program atau jumlah pengulangan tidak tentu tergantung banyak data yang harus diproses atau kenginan pemakai. Keterangan: Variabel : merupakan nama variabel yang digunakan sebagai kendali pengulangan. <perintah>: merupakan instruksi(-instruksi) yang perlu dilakukan. a. : : end. Contoh: Misalkan i adalah suatu variabel dalam integer For i:=1 to 5 do begin writeln(‘mari membuat program’).

m. jumlahOHB := jumlahOHB + ongkosHPM.rerataOHM:7:2). jumlahOHB.3 hingga 4 kali.com Matakuliah: Bahasa Pemograman Pascal begin writeln(‘mari membuat program’).000 3 175. Rumus penyelesaian: rerataOHM = SUM( ongkosHPM[i] )/m. m : integer.3 2. Di akhir bulan ia menghitung total pengeluarannya selama sebulan dan menghitung rerata pengeluarannya per minggu selama bulan itu.ongkos hidup minggu ke i.jumlahOHB:7:2). rerataOHM : real. var ongkosHPM. m = 4.2 2. Ulangi 2.CatatanKuliah. Bila sebulan dianggap 4 minggu.2 dan 2. end. buat program komputer untuk menghitung pengeluaran Tertib seperti itu. Tambahkan ongkosHPM ke jumlahOHB. jumlahOHB = jumlahOHB + ongkosHPM. end.0. Algoritma: 2. writeln('Rerata ongkos hidup per minggu =Rp '.5 Kosongkan variabel penjumlah (accumulator) jumlahOHB . i.' : ').) ke 1 170. rerataOHM := jumlahOHB/m. writeln('Total ongkos hidup per bulan = Rp '. { Nilai awal penjumlah } m := 4. i.000 4 180.4 2. begin jumlahOHB := 0. selalu mencatat pengeluarannya per-minggu di luar sewa kamar selama satu bulan.000 Penyelesaian: 1. seorang mahasiswa yang mendapatkan kiriman biaya hidup bulanan dengan jumlah agak pas-pasan.000 2 175. end. program hitung_rerataOHB. 2. i = 1 . Page : 35 . Baca data ongkosHPM .total ongkos hidup perbulan.. { Jumlah minggu dalam sebulan dianggap 4 } for i := 1 to m do begin write('Data minggu ke : '. Akan Menghasilkan : mari membuat program mari membuat program mari membuat program mari membuat program mari membuat program Contoh: Setiap akhir minggu Melly. uses winCRT. Minggu Pengeluaran (Rp. rerataOHM = jumlahOHB / 4.1 2. readln(ongkosHPM).

Frequency. Logika dari pengulangan ini adalah seperti di bawah ini: sedangkan sintax-nya adalah sebagai berikut: SYNTAX While <ekspresi boolean> do begin : : perintah. m : integer. const PI = 3.jumlahOHB:7:2). Inductance : real.rerataOHM:7:2). Contoh a. rerataOHM := jumlahOHB/m.. Contoh b. writeln('Rerata ongkos hidup per minggu =Rp '. jumlahOHB := jumlahOHB + ongkosHPM. uses winCRT. i:=1.com Matakuliah: Bahasa Pemograman Pascal Latihan: kembangkan program ini hingga bisa mencatat pengeluaran maksimum dan minimum serta minggu pengeluarannya. while i<= m do {ekspresi boolean yang akan dilaksanakan apabila i<4 sampai i=4} begin write('Data minggu ke : '. b.' : '). Page : 36 . jumlahOHB. end. Struktur WHILE <Ekspresi Boolean> DO <Statement> Perintah-perintah akan dilaksanakan apabila ekspresi boolean dalam keadan benar. { kontrol dari loop} end. uses wincrt. : : end. (modifikasi untuk contoh for. yang nilainya harus berubah sehingga pada akhirnya program akan keluar dari loop. rerataOHM : real. readln(ongkosHPM). m := 4. var ongkosHPM.CatatanKuliah. program WHILE_DEMO . writeln('Total ongkos hidup per bulan = Rp '.0..14. Di dalam loop ada nilai yang mengontrol loop. i. Proses pengulangan juga boleh berada di dalam suatu kontrol proses pengulangan pula. var XL. i:=i+1. begin Inductance := 1. i. Proses seperti ini disebut proses bersarang.0. begin jumlahOHB := 0. do): program hitung_rerataOHB.

XL). dimana <label> merupakan tipe integer dengn maksimum 4 digit.... uses wincrt.until diperlakukan oleh PASCAL sebagai sebuah blok.00 end end. end.. Frequency. Frequency := 100.end karena pernyataan di antara repeat.' hertz = '. writeln('XL at '. var XL.. akan terjadi paling tidak akan terjadi satu kali eksekusi statemen... kita tidak perlu menggunakan begin.00.0. Logika dari struktur ini adalah seperti berikut: sedangkan sintax-nya adalah sebagai berikut: repeat : : perintah. Frequency := Frequency + 100.do.00 do begin XL := 2 * PI * Frequency * Inductance.00 .com Matakuliah: Bahasa Pemograman Pascal Frequency := 100. contoh: program REPEAT_UNTIL_DEMO . c.. Label dan Goto Pernyataan goto mentransfer program ke lokasi lain yang dinyatakan dengan label..Frequency.. const PI = 3. writeln('XL at '. Inductance : real .00 . XL ).14.CatatanKuliah. dalam hal ini. while Frequency < 1000.00. tetapi dengan pernyataan repeat. Penulisan Goto: goto <label> Page : 37 . begin Inductance := 1. : : until <ekspresi boolean>.' hertz = '. Struktur REPEAT. 4. Frequency := Frequency + 100. Label juga harus dideklarasikan seperti variabel lainnya.Frequency. UNTIL Pernyataan repeat. Repeat XL := 2 * PI * Frequency * Inductance.until hampir sama dengan pernyataan while. until Frequency = 1000.

write(' nilai konvergensi: '). if abs(x1-x0)>e then goto 100. function y(x:double): double.x1 : double. writeln(' range awal (x0. donewincrt Page : 38 . write(' x0 = '). writeln.yy:double. m : integer. begin {main program} writeln. writeln. bisect.x0.y(x)). program bisection. writeln. begin m:=0.m). if yy*y0<0 then x1:=x. if yy*y0>0 then x0:=x.x). writeln. writeln(' nilai x = '. yy:=y(x). m:=m+1. read(x1).x. 300. 200: end. 200. write(' x1 = '). procedure bisect. {program mencari akar persamaan metode setengah interval} uses wincrt. penulisan pemakaian Label: SYNTAX < label >: Contoh: 100: Contoh. x:=(x0+x1)/2. label 100.CatatanKuliah. 100: y0:=y(x0). readkey. read(e). writeln. read(x0). var e. Penulisan Label : label <daftar label> Contoh deklarasi Label: label 100. begin y := 1+5*x+10*x*x+10*x*x*x+5*x*x*x*x+x*x*x*x*x end.com Matakuliah: Bahasa Pemograman Pascal Contoh goto: goto 100. {pemanggilan routine bisection } writeln. writeln(' nilai y = '. 200.x1):'). var y0. if yy*y0=0 then goto 200. writeln(' jumlah iterasi: '.

jika dengan ELSE: if <Ekspresi Boolean> then begin : : end {perhatikan tanda semicolon ‘ . if <Ekspresi Boolean> then begin : : end. Selamat!') else writeln('Maaf. Tebakan anda salah. IF..CatatanKuliah. uses wincrt. ELSE Pernyataan IF biasanya diikuti dengan pernyataan ELSE. readln(tebakan).') Page : 39 . Struktur Pemilihan a. Contoh program IF_ELSE_DEMO. 2. tebakan : integer.THEN. if angka = tebakan then writeln('Tebakan anda benar. yang akan dikerjakan bila kondisi pernyataan IF menghasilkan kondisi FALSE.. begin number := 2. writeln('Tebak angka antara 1 dan 10'). ‘ dihilangkan} else begin : : end.com Matakuliah: Bahasa Pemograman Pascal end. Atau . var angka.

com Matakuliah: Bahasa Pemograman Pascal end.. c. if A >= B then begin if A >= C then writeln( A.' adalah terbesar') else writeln( C. dengan syarat kita tidak melupakan blok begin. B. OR dan NOT diperlukan apabila kita ingin mengeksekusi blok program yang memerlukan lebih dari satu kondisi.end untuk membatasinya.CatatanKuliah. dan NOT) Kata kunci AND.' adalah terbesar') else writeln( C. uses wincrt. Pernyataan AND Pernyataan AND akan dieksekusi jika kedua kondisi dalam keadaan TRUE. C ). b. Nested IF (IF tersarang) Pernyataan IF dapat dimasukkan kedalam pernyataan IF yang lain . begin writeln('Masukkan tiga angka dengan spasi'). var A. OR. readln( A. if <Ekspresi Bool_1> and <Ekspresi Bool_2> then begin : : end Page : 40 .' adalah terbesar') end.' adalah terbesar') end else if B >= C then writeln( B. c. if <Ekspresi Boolean> then begin : if <Ekspresi Boolean> then begin : : end : end else Contoh Program IF_ELSE_DEMO_2. C : integer.1. B. Kombinasi dari Ekspresi Boolean (AND..

uses wincrt. Pernyataan OR Pernyataan OR akan dieksekusi bila salah satu kondisi dalam keadaan TRUE. write ('Masukkan nilai j = '). readln (j). readln(i). c. j: integer. readln (j). end. Pernyataan NOT NOT menggantikan TRUE ke FALSE dan sebaliknya (vice versa) if not <Ekspresi Boolean> then begin : : end Contoh program if_NOT. if <Ekspresi Bool_1> or <Ekspresi Bool_2> then begin : : end Contoh program if_OR. if (i>3) and (j>4) then begin writeln('Hal ini terjadi jika i>3 dan j>4'). readln(i). uses wincrt. write ('Masukkan nilai j = '). readln(i). j : integer. c.com Matakuliah: Bahasa Pemograman Pascal contoh: program if_and. end. end. var i.3. uses wincrt. begin write('Masukkan nilai i = '). end. var i: integer.2.CatatanKuliah. Page : 41 . var i. if (i>3) or (j>4) then begin writeln('Yeah !!'). begin write('Masukkan nilai i = '). begin write('Masukkan nilai i = ').

CASE variable OF : perintah. : end atau CASE variable OF : perintah. else invalid_operator := 1 end. end..number2 else invalid_operator = 1.number2. end. Contoh b. OF Pernyataan CASE dipergunakan apabila kita menulis program yang memerlukan banyak pernyataan IF.com Matakuliah: Bahasa Pemograman Pascal if not(i>3) then begin writeln('Yeah !!'). number1. '/' : result:= number1 / number2. Page : 42 . : else perintah. begin invalid_operator := FALSE. Ganti program dibawah ini dengan pernyataan IF ELSE dengan CASE program SARANG. '+' : result:= number1 + number2.. operator : char. '-' : result:= number1 . end Contoh a. CASE . if operator = '*' then result := number1 * number2 else if operator = '/' then result := number1 / number2 else if operator = '+' then result := number1 + number2 else if operator = '-' b result := number1 . number2. result : real..CatatanKuliah.. uses wincrt. writeln('Enter two numbers and an operator in the format').ELSE.. sehingga program akan tampak lebih jelas untuk dibaca. d.THEN. digantikan dengan CASE : case operator of '*' : result:= number1 * number2. var invalid_operator : boolean.. writeln(' number1 operator number2').

' '. operator : char. Program dibagi menjadi beberapa bagian kecil.number2 else invalid_operator := TRUE.result:5:2) end. readln(number2). writeln('Enter two numbers and an operator in the format').' '. if invalid_operator then writeln('Invalid operator') else writeln(number1:4:2.number2:4:2. writeln(' number1 operator number2'). number2. Tiap bagian disebut module. begin invalid_operator := FALSE. Pemrograman Modular Modular programming adalah merupakan suatu teknik untuk menulis program yang berukuran besar. var invalid_operator : boolean. case operator of '*': result := number1 * number2.' '. readln(number1). readln(operator). if operator = '*' then result := number1 * number2 else if operator = '/' then result := number1 / number2 else if operator = '+' then result := number1 + number2 else if operator = '-' then result := number1 .CatatanKuliah. Jawab: program PROG_TWELVE . number1. '/': result := number1 / number2.' is ' .number2.operator. readln(operator). else invalid_operator := TRUE end. yang melakukan suatu tugas tertentu. if invalid_operator then writeln('Invalid operator') else writeln(number1:4:2.' '. '+': result := number1 + number2.' is ' . Contoh : • Menampilkan menu pilihan • Menghitung nilai rata-rata • Mensortir data Page : 43 . readln(number2).operator. result : real.result:5:2) end. SUB PROGRAM 1.number2:4:2. '-': result := number1 .com Matakuliah: Bahasa Pemograman Pascal readln(number1).

Setiap procedure mempunyai nama. yang dikelompokkan dengan kata kunci begin dan end . writeln(' 1: Edit file teks'). contoh berikut adalah program untuk menampilkan menu: Contoh b. procedure (module) tersebut terdiri atas beberapa pernyataan (statements). b) Procedure Kompleks menerima nilai yang diproses ketika dieksekusi. writeln(' 4: Kopi file teks’). begin writeln('Pilihan Menu'). Procedure mendukung desain program terstruktur. Contoh a. begin : pernyataan : end. writeln(' 3: Simpan file teks). begin Page : 44 . ketika dieksekusi menghasilkan suatu nilai. writeln(' 1: Edit file teks').CatatanKuliah. PROCEDURE DISPLAY_MENU. Procedure Sederhana Procedure sederhana dipakai untuk menampilkan pilihan menu. a. dengan membolehkan membuat module secara terpisah. writeln(' 5: Cetak file teks’) end.com Matakuliah: Bahasa Pemograman Pascal Pascal mengenal module sebagai: 1. program PROC1 . end. begin writeln('Pilihan Menu'). writeln(' 3: Simpan file teks). uses wincrt. dsb. writeln(' 2: buka file teks '). 2. PROCEDURE (terbagi menjadi dua) a) Procedure Sederhana tidak menerima argumen (nilai atau data) ketika dieksekusi. PROCEDURE DISPLAY_MENU. writeln(' 4: Kopi file teks’). Seperti contoh berikut: SYNTAX PROCEDURE NAMA. FUNCTION : Function. writeln(' 5: Cetak file teks’) end. writeln(' 2: buka file teks ').

hasil : real.jarak:5:2. begin {program utama} tampilan_judul. tampilkan_hasil end. Contoh d. angka_1. write('Masukkan waktu dalam jam : ‘). end.dan kecepatan adalah berlaku untuk semua procedure sehingga disebut variabel GLOBAL. begin write('Masukkan kecepatan dalam km/jam: '). hitung_jarak. masukkan_data. program SIMPLE_PROCEDURE. uses wincrt.' km. writeln('kembali dari prosedur') end. procedure tampilan_judul. Page : 45 . readln(kecepatan).CatatanKuliah. procedure hitung_jarak. begin writeln('Menghitung jarak tempuh berdasar pada'). Contoh c. var waktu. readln(time) end. uses wincrt. begin writeln('jarak yang ditempuh adalah '. jarak.') end. DISPLAY_MENU. angka_2. Output program: Menghitung jarak tempuh berdasar pada dua variabel yaitu: kecepatan dan waktu Masukkan kecepatan dalam km/jam: 30 Masukkan waktu dalam jam : 2 jarak yang ditempuh adalah 60 km catatan : ketiga variabel waktu. var salah_tanda : boolean. begin jarak:= kecepatan *waktu end. procedure tampilkan_hasil. kecepatan : real. procedure PERKALIAN. writeln('dua variabel yaitu: kecepatan dan waktu'). program Kalkulator_sederhana. operator : char. procedure masukkan_data. jarak.com Matakuliah: Bahasa Pemograman Pascal writeln('memanggil prosedur').

. procedure PENJUMLAHAN..' '.' '. writeln(' angka_1 operator angka_2'). procedure PEMBAGIAN.'='. procedure PENGURANGAN. dimana semua sub-program bisa mengakses. readln(angka_1).angka_2 end. case operator of '*': PERKALIAN.hasil:5:2) end. begin hasil := angka_1 .angka_2:4:2. B. begin hasil := angka_1 + angka_2 end. if invalid_operator then writeln('Invalid operator') else writeln(angka_1:4:2. MASUKAN. procedure MASUKAN.readln(angka_2) end.com Matakuliah: Bahasa Pemograman Pascal begin hasil := angka_1 * angka_2 end. 2. variabel A. .operator.CatatanKuliah. mempergunakan dan memodifikasinya... begin writeln(‘MASUKKAN DUA ANGKA DAN OPERATOR).readln(operator). '+': PENJUMLAHAN. Jangkauan Variabel a. . dan C dapat diakses oleh procedure D maupun E Page : 46 . Variabel Global Variabel global adalah variabel yang didefinisikan/terletak pada program utama. else salah_tanda := TRUE end. begin salah_tanda:= FALSE. '/': PEMBAGIAN. '-': PENGURANGAN. Dari gambar berikut . begin hasil := angka_1 / angka_2 end.

G. Variabel-variabel itu hanya bekerja pada procedure dimana mereka dideklarasikan. Variabel Lokal Suatu procedure dapat mendeklarasikan variabelnya sendiri. Page : 47 . kecuali alfa dapat mengakses B dan C. Tdak ada subprogram. keterangan gambar: • • • • • • Semua bisa mengakses variabel global A. dan beta_2 tidak dapat mengakses bobo. beta_1 dan beta_2 dapat mengakses betamax dan betako.CatatanKuliah. F. Variabel-variabel tersebut dinamakan variabel local (local variable) . Contoh: program LOKAL_VARIABEL. Pada procedure alfa definisi global variabel A diganti dengan variabel lokal.com Matakuliah: Bahasa Pemograman Pascal b. Procedure beta dapat mengakses alfa dan beta. beta_1 tidak dapat mengakses variabel boboho.

hasil) end. nomor2 : integer. Contoh. begin {program utama} writeln(‘Masukkan dua angka bulat dengan spasi’). nomor2).{hasil merupakan milik procedure tambah LOCAL VAR} begin hasil := nomor1 + nomor2. var hasil:integer. 3. readln(nomor1. Procedure Yang Menggunakan Argumen Procedure juga bisa memakai variabel (data) untuk bekerja ketika dipanggil. tambah end. {ini bisa dipanggil dari mana-mana GLOBAL VAR} procedure tambah. untuk mengatasi masalah chicken-and-the-egg. • Deklarasi dari variabel terletak diantara nama procedure dan semi-colon. writeln(‘hasil adalah'. Hal ini berlaku juga untuk FUNCTION (fungsi). a. bila kita memiliki dua/lebih subprogram masing.masing bisa memanggil yang lain dengan referensi forward.com Matakuliah: Bahasa Pemograman Pascal uses wincrt. c. Penggunaan Forward Dari hal di atas kita tahu bahwa suatu subprogram dapat diakses oleh subprogram apabila sudah didefinisikan terlebih dahulu.CatatanKuliah. Mendeklarasikan variabel di dalam procedure • Variabel yang diterima oleh procedure diapit dengan tanda kurung (). Page : 48 . Tetapi ada pengecualian. var nomor1.

y ). writeln( x. nomor2) end. • Variabel yang dipanggil diletakkan didalam tanda kurung tersebut. nomor2 ). hasil ) end. begin hasil := kesatu + kedua. Nilai dari variabel asli yang disampaikan ke procedure tidak diubah. Parameter Nilai (pass by value) Dalam program di atas. Output dari Testnilai adalah: 12 20 12 a. y ) end. writeln( x. Ketika procedure bekerja dengan copy dari Page : 49 . var hasil : integer. CALC_ANSWER( nomor1. procedure CALC_ANSWER ( kesatu. uses wincrt. y ) end.CatatanKuliah. begin x := 1. writeln( x. NoEffect( x. uses wincrt. Procedure Yang Memakai Parameter program TestNilai. procedure bekerja dengan copy dari variabel asli. tetapi tidak menggantikan nilai dari variabel asli. readln( nomor1. Memanggil procedure and menyampaikan variabel (atau nilai) ke procedure • Ketika procedure dipanggil. y : integer. Perhatikan contoh program berikut. ketika variabel disampaikan ke procedure. begin x := y. y : integer ). 4. y := 0. var nomor1. y := 2. • Variabel ditulis dalam tingkat yang sama seperti dalam prosedur terkait. var x. Procedure hanya menggantikan variabel asli dengan variabel yang ada di procedure . nama procedure diikuti oleh sepasang ().com Matakuliah: Bahasa Pemograman Pascal b. kedua : integer ). program JUMLAH. Contoh. nomor2 : integer. writeln('hasil adalah '. y ). procedure NoEffect ( x. begin writeln('masukkan dua angka dalam spasi').

Outputnya: Ketika program dijalankan. {tetap 10} end. Untuk membuat procedure menggunakan parameter variabel (pass by reference) dengan menggunakan kata kunci var. Procedure ini menerima dua nilai integer dan menggantikan nilai aslinya. {berubah 15} end. {15} foo(x). {10} end. var x : byte. uses wincrt. uses wincrt. writeln(x). writeln(x). procedure foo(var a : byte). program Parameter_Variabel. var x : byte. writeln(x). Untuk menggambarkannya. begin writeln(a). {15} foo(x). begin x:=15.com Matakuliah: Bahasa Pemograman Pascal variabel.CatatanKuliah. Parameter Variabel (pass by reference) Procedure bisa juga dipakai untuk mengubah nilai dari variabel asli yang dipanggil oleh procedure. procedure foo(a : byte). writeln(x). begin writeln(a). akan tercetak di layar 15 15 10 Page : 50 . kita bisa lihat pada contoh program modifikasi program sebelumnya. {10} end. {15} a:=10. writeln(a). Outputnya: 15 15 10 15 b. writeln(a). maka dikenal dengan parameter nilai (pass by value). {15} a:=10. Perhatikan contoh berikut: program Parameter_Nilai. begin x:=15.

Contoh program CONTOH_FUNGSI. jawaban : integer. Page : 51 . jawaban := KUBIK ( number ). answer) end. function KUBIK( x : integer ) : integer. maka. yaitu hasil akhirnya.CatatanKuliah. tetapi mempunyai kemampuan untuk menghasilkan nilai pada procedure atau program yang memanggilnya.' adalah '. dia menghitung nilai yang terdapat di dalamnya (dalam hal ini 30). ketika ADD_TWO dieksekusi. begin KUBIK := x * x * x end. var angka. contoh berikut menggambarkan bagaimana memanggil function. begin ADD_TWO := nilai1 + nilai2 end. begin : pernyataan : end. writeln('Hasil pangkat tiga dari '. Function – Suatu Procedure Khusus Yang Menghasilkan Nilai Procedure memakai data atau variabel ketika dieksekusi. 20 ). begin writeln('Masukkan angka. readln(angka). result := ADD_TWO( 10. Suatu function : • Dimulai dengan kata kunci function • Strukturnya sama dengan sebuah procedure • Didalam fungsi.com Matakuliah: Bahasa Pemograman Pascal 10 5. suatu nilai dihasilkan dengan nama function • Suatu function dipakai pada sisi sebelah kanan pada suatu ekspresi • Hanya menghasilkan tipe data sederhana SYNTAX function Nama (deklarasi variabel):tipe_data_hasil. Function digunakan untuk melakukan operasi matematika seperti perhitungan faktorial. contoh: function ADD_TWO ( nilai1. uses wincrt. Function (fungsi) juga memakai data. nilai2 : integer ) : integer.').number.

writeln(x.com Matakuliah: Bahasa Pemograman Pascal 6. n=1. sehingga perlu dilakukan kehati-hatian dalam penulisannya. else factorial:=n*factorial(n-1). => Perlu Pemanggilan Ke-4 Ke-4. Factorial:=1. Penjelasan Jika x= 5. dimana masing-masing elemen variabel mempunyai nilai indeks. (=2) Ke-3 menjadi: Factorial:=3*2. => Perlu Pemanggilan Ke-5 Ke-5. => Perlu Pemanggilan Ke-3 Ke-3 . (=6) Ke-2 menjadi: Factorial:=4*6. { ini bagian rekursi} end. Var x : integer. end.maka Pemanggilan Ke-1. Ke-4 menjadi : Factorial:=2*1. n=4. Factorial:=5*factorial(4).factorial(x)). Lihat contoh tentang faktorial suatu bilangan di bawah ini. readln(x). Factorial:=3*factorial(2). begin writeln('Masukkan nilai : '). Rekursi dan Iterasi Subprogram bisa memanggil dirinya (Recursive Call) dengan catatan bahwa memiliki syarat penghentian operasi (iterasi).CatatanKuliah. n=2. Suatu array dinyatakan dengan type. Uses wincrt. n=3. Setiap elemen array mampu untuk menyimpan satu jenis data (yaitu: variabel).10] of integer.'! adalah '. Contoh. 1 2 3 4 5 6 7 8 9 10 Page : 52 . (=120) ARRAY (LARIK) 1. sehingga variabel yang bekerja akan dinyatakan dengan: contoh type A = array [1. Factorial:=4*factorial(3).. (=24) Ke-1 menjadi: Factorial:=5*24. n=5. function factorial (n:integer):integer. begin if n<2 then { ini adalah syarat penghentian operasi } factorial:=1. => Perlu Pemanggilan Ke-2 Ke-2 . Program faktorial. Factorial:=2*factorial(1). Pendahuluan Suatu array adalah sebuah struktur data yang terdiri atas banyak variabel dengan tipe data sama.

kita lebih baik jika mendeklarasikan dengan type selanjutnya dengan deklarasi var. atau dengan menggunakan statemen var : var variabel_array : ARRAY[bawah. kita bisa melakukan operasi pada setiap elemen dari numbers secara individual. Mendefinisikan tipe data dari elemen array Contoh. var numbers : intarray. 3. SYNTAX Type nama_array = ARRAY[bawah. Integer.yang berisi 20 tempat untuk bilangan integer.CatatanKuliah.. perintah ini memberikan suatu nilai integer 10 pada elemen ke-2 dari array numbers. A[2].com Matakuliah: Bahasa Pemograman Pascal Secara logika pendefinisian array di atas merupakan sekumpulan kotak . Contoh berikut adalah merupakan array yang menyimpan variabel-variabel integer. A[9]. type A= array [1. Penjelasan: Bawah dan Atas menyatakan batas untuk array. A[10] 2.N] of integer. kemudian baru bisa ditampilkan di monitor secara bersamaan Page : 53 . dsb) Contoh: type intarray = ARRAY [1. A[7]. 2.langkah berikutnya adalah membuat suatu variabel kerja dengan tipe intarray yaitu. 3. A[6].20] of integer. A[4]. dimana tiap kotak mempunyai nilai indeks integer 1.. Data dengan tipe integer hanya bisa dimasukkan satu persatu.atas] of tipe_data...9. Pernyataan diatas adalah pernyataan untuk membentuk suatu array bernama intarray. const N=10..atas] of tipe_data.. .. Sifat Array Array merupakan struktur data yang statis. Setiap posisi disebut elemen. A[3]. A[5]. Nomor dari elemen ditempatkan didalam kurung tegak. tipe_data adalah merupakan tipe variabel yang dipunyai array (mis. Array Satu Dimensi Pernyataan di atas merupakan penjelasan tentang array dengan satu dimensi. var variabel_array : nama_array. real. Pendefinisian array secara umum adalah sebagai berikut: jika kita ingin membuat beberapa array dengan tipe/jenis yang sama. Contoh kita bisa memberi nilai pada suatu elemen array seperti berikut: numbers[2] := 10. A[8]. Untuk menyatakan array dalam PASCAL kita harus terlebih dahulu: Mendefinisikan jumlah elemen array. yaitu jumlah elemen yang ada harus ditentukan terlebih dahulu dan tak bisa di ubah saat program berjalan. yang menyimpan suatu bilangan integer. char. 10 tiap elemen array ditandai dengan: A[1].

var variabel_array : nama_array. var AKU: matriks.. { tampilkan setiap elemen } for indeks := 1 to 10 do begin writeln('bil['. { loop untuk memasukkan elemen array } end. program INT_ARRAY. Array Multidimensi Dalam array multidimensi terdiri atas baris (row) dan kolom (column).atas] of tipe_data.. indeks : integer. Pernyataan berikut membentuk suatu array integer dengan nama bilangan . 4. BEGIN writeln('masukkan sepuluh bilangan integer.com Matakuliah: Bahasa Pemograman Pascal Contoh a.10. type matriks = ARRAY [1. 10 x 10 elemen (100). uses wincrt. writeln(a[2]). a[3]:=a[1]+a[2].atas.. for indeks := 1 to 10 do begin readln(bil[indeks]). const N=10. Page : 54 .bil[indeks] ). uses wincrt. a[2]:=15. SYNTAX Type nama_array =ARRAY[bawah. 1.'). program contoh_ARRAY.10] of byte. Contoh b.'] adalah '.. end. atau dengan menggunakan statemen var : SYNTAX var variabel_array : ARRAY[bawah. writeln('Isi dari array ini adalah'). writeln(a[1]).10] of integer.N] of integer.atas] of tipe_data.. writeln(a[3])..CatatanKuliah.atas.. var bil : int_array. type int_array = ARRAY [1. var a : array[1. bawah. end END. indeks:2.{maksimum jumlah elemen=10} begin a[1]:=10. Index pertama adalah baris dan yang kedua adalah kolom . bawah..

j: integer..do tersarangseperti berikut: procedure ISI_MATRIK(AKU:matriks.com Matakuliah: Bahasa Pemograman Pascal untuk memasukkan tiap elemen maka. untuk array dengan tipe bilangan integer atau real kita bisa melakukan berbagai standar operasi aritmatika seperti penjumlahan. readln . {faktor pengulang} begin for i:=1 to m do begin for j:=1 to n do begin read(A[i. bahwa sifat dari array dimanfaatkan untuk operasi matrik. end. merupakan suatu teknik untuk mencari suatu elemen dalam suatu sistim yang lebih besar. 5. untuk menampilkan tiap elemen maka. {faktor pengulang} begin for i:=1 to m do begin for j:=1 to n do begin write(A[i. Operasi pada Array Sifat masing-masing elemen array mengikuti jenis data yang dimilikinya. dengan elemen sbb: A 60 12 76 23 11 42 18 42 Untuk menari apakah bilangan x=11 ada didalam tabel maka dilakukan pemeriksaan terhadap : Page : 55 . var i. m. perkalian.j: integer. Misal array A[8]. var i. {ini memungkinkan kita menulis elemen dalam baris dan kolom } end.. contoh: mencari nama mahasiswa dari daftar presensi. digunakan struktur pengulangan for . a.j]:6).do tersarangseperti berikut procedure TULIS_MATRIK(AKU:matriks. writeln . Yang perlu di garis bawahi. Mencari Nilai Tertentu pada Array Mencari suatu elemen data di dalam suatu data merupakan suatu kejadian yang sering kita alami.CatatanKuliah..n:integer).n:integer). dsb. diperlukan suatu procedure dengan mempergunakan struktur pengulangan for .j]).{ini memungkinkan kita menulis tiap baris elemen} end. Contoh. Pencarian beruntun (sequence). end.. pengurangan. m. end.

begin MAKS := AKU[1]. c. Mencari Harga Minimum pada Array Misal array di atas kita cari harga yang terendah.CatatanKuliah. diawali dengan nilai maksimum=3200 procedure CARI_MINIMUM(AKU: PITA). begin MIN := 3200. var i: integer. var i: integer. var AKU: PITA. {faktor pengulang} MIN : integer. maka kita perlu menentukan nilai tertinggi dahulu sebelum melakukan pencarian .8] of integer. var i: integer.MIN). {faktor pengulang} MAKS : integer. for i:=1 to 8 do begin if AKU[i]> MAKS then MAKS:= AKU[i].MAKS). End. pencarian berhenti ‘). for i:=1 to 8 do begin if AKU[i]< MIN then MIN:= AKU[i]. Mencari Harga Maksimum pada Array Misal array di atas kita cari harga yang tertinggi. {faktor pengulang} begin for i:=1 to 8 do begin if AKU[i]:= 11 then writeln(‘ terdapat bilangan 11 dalam pita ini ‘). dalam bahasa PASCAL diterjemahkan seperti berikut: type PITA = ARRAY [1. Page : 56 . b.com Matakuliah: Bahasa Pemograman Pascal 60 12 76 23 11 Sehingga ditemukan xpada elemen ke-5. end. Writeln(‘NILAI MAKSIMUM = ’. end. procedure CARI_MATRIK(AKU: PITA). end. end. writeln(‘NILAI MINIMUM = ’.. else writeln(‘ tidak ada bilangan 11. maka kita perlu menentukan nilai terendah dahulu sebelum melakukan pencarian . diawali dengan nilai maksimum=0 procedure CARI_MAKSIMUM(AKU: PITA).

j :integer. B sebagai input. type matrik=array[1.CatatanKuliah. perkalian.j]:6:2).Mendefinisikan Elemen Program OPERASI_MATRIK.com Matakuliah: Bahasa Pemograman Pascal end.Menampilkan Elemen Matrik procedure tulismatrik(A:matrik.100. c.q:integer). {matrik A.p. m.n:integer). var i. operasi aritmatika seperti penjumlahan. end. .j]). {do} end. begin if (m=p) and (n=q) then begin for i:=1 to m do Page : 57 .j: integer.Membaca Elemen Matrik procedure bacamatrik(var A:matrik. dan pengurangan bisa dilakukan. {read} .C: matrik.. {faktor pengulang} begin {write} for i:=1 to m do begin {tiap baris} writeln.100] of real.j: integer. Matrik Sebagai perwujudan dari array dua dimensi. readln. for j:=1 to n do write(A[i. end. end. {write} . m. uses wincrt. {faktor pengulang} begin {read} for i:=1 to m do begin {do} for j:=1 to n do read(A[i.Penjumlahkan Matrik procedure check_matrik(A..1.n. p. q: integer.C:matrik. Contoh. {tiap baris} writeln. {dimensi dari matrik} A.n. C sebagai hasil} . var i.n:integer). var m.B. m.B. var i.

CatatanKuliah.com

Matakuliah: Bahasa Pemograman Pascal

begin for j:=1 to n do begin C[m,n]=A[m,n]+B[m,n]) end; end; end else writeln('DIMENSI MATRIK TIDAK COCOK') end;

- Pengurangan Matrik
procedure check_matrik(A,B,C:matrik; m,n,p,q:integer); var i,j :integer; begin if (m=p) and (n=q) then begin for i:=1 to m do begin for j:=1 to n do begin C[m,n]=A[m,n]- C[m,n]) end; end; end else writeln('DIMENSI MATRIK TIDAK COCOK') end;

-. Perkalian Matrik
procedure perkalian_matrik(A,B,C:matrik; m,n,p,q:integer); var i,j, k :integer; C1: matrik; begin if (n=p) then begin for i:=1 to m do begin for j:=1 to p do begin {inner product} C1[i,j]:=0; for k:=1 to n do C1[i,j]:=C1[i,j]+A[i,k]*B[k,j]; end; {inner product} end; n:=q; for i:=1 to m do for j:=1 to n do C[i,j]:=C1[i,j]; end else writeln('DIMENSI MATRIK TIDAK COCOK') end;

- Transpose Matrik
Page :

58

CatatanKuliah.com

Matakuliah: Bahasa Pemograman Pascal

procedure Transpose(A,B:matrik; m,n,p,q:integer); var i,j:integer; begin for i:=1 to n do begin for j:=1 to m do begin B[m,n]=A[n,m] end; end; end;

-. Mencari Elemen yang Kosong pada Matrik
procedure CHECK_ZERO_ELEMEN(A,matrik; m,n:integer); var i,j:integer; begin for i:=1 to m do begin for j:=1 to n do begin if B[m,n]= 0 then writeln (‘terdapat elemen yang kosong’) else writeln (‘tidak terdapat elemen yang kosong’) end; end; end;

RECORD (REKAMAN) Sebuah record rekaman disusun oleh beberapa field. Tiap field berisi data dari tipe dasar / bentukan tertentu. Record mempunyai kelebihan untuk menyimpan suatu sekumpulan elemen data yang berbeda-beda tipenya (di banding array). Contoh , sebuah record dengan empat buah field.

Field 1

Field 2

Field 3

Field 4

Cara pendeklarasian dari record adalah sbb: • Mendefinisikan tipe dari record (jumlah field, jenis tipe data yang dipakai), • Mendefinisikan variabel untuk dilakukan operasi. SYNTAX
type nama_record = record identifier_1 : tipe_data_1; : :

Page :

59

CatatanKuliah.com

Matakuliah: Bahasa Pemograman Pascal

identifier_n : tipe_data_n; end; var variabel : nama_record;

Contoh.
type Data_mahasiswa = record Nama : string; Usia : integer; Kota : String; Kodepos : integer; end; Var x: Data_mahasiswa;

1. Pengaksesan Elemen Record Cara mengacu pada tiap field pada record pada contoh di atas adalah sbb:
x.Nama x.Usia x.Kota x.Kodepos

Contoh.
program RECORD_INTRO; type tanggal = record bulan, hari, tahun : integer; end; var waktu : tanggal; begin waktu.hari :=25; waktu.bulan:=09; waktu.tahun:= 1983; writeln('hari ini adalah ',waktu.hari,':',waktu.bulan,':', waktu.tahun) end.

2. Pengunaan With … do Pernyataan with untuk lebih menyederhanakan pengaksesan field-field pada record. Misalkan pernyataan :
x.Nama x.Usia x.Kota x.Kodepos

menjadi
with x do Begin Nama Usia Kota

Page :

60

Dimana tiap elemen adalah sebuah record tanggal. tahun : integer. begin {program utama} with waktu do {mulai with} begin hari :=25. pernyataan ini akan membentuk suatu array dengan 10 elemen. terdiri atas bulan. hari. var waktu : tanggal. hari. 3. tahun) end {akhir with} end. end.com Matakuliah: Bahasa Pemograman Pascal Kodepos end Contoh. tahun dengan tipe data Integer. type tanggal = record bulan.':'. var waktu : tanggal. tahun:=1983. writeln('hari ini adalah '. bulan:=09..bulan. Digambarkan seperti berikut: Contoh Pemberian nilai awal dari masing-masing elemen birthdays: Page : 61 .CatatanKuliah.10] of tanggal.hari. var birthdays : array[1.':'. type tanggal = record bulan. namakan birthdays. program RECORD_INTRO. tahun : integer. yaitu. hari. Array dari Record Suatu array dapat juga berisi record contoh suatu deklarasi record tanggal. kemudian kita membentuk suatu array dari record ini. end.

saat_ini. type waktu_ini =record tanggal_ini : tanggal.tanggal. detik : integer. Seperti contoh record tanggal dan jam dikombinasikan menjadi sebuah record saat ini.tanggal. Birthdays[1]. Kemudian kita perlu membuat variabel kerja var saat_ini : waktu_ini. menit.bulan:= 11. Birthdays[1]. hari. type waktu =record jam. end. Quick Sort (cepat tetapi rumit) 3. saat_ini.hari:= 2. tahun : integer. Beberapa metode sorting mengurutkan data yang dikenal antara lain adalah: 1. Shell Sort (agak cepat dan tidak terlalu rumit) Page : 62 .detik:= 33. end.menit:= 3.waktu. saat_ini.tanggal. saat_ini. 5.tahun:= 1985.hari :=25.waktu. saat_ini. waktu_ini : waktu end. Sorting Data Gambar. type tanggal = record bulan. pemberian nilai akan terjadi seperti di bawah ini: saat_ini.jam:= 3. Bubble Sort (sederhana tetapi lambat) 2.CatatanKuliah.tahun:=1983. 4. data sebelum dan sesudah dilakukan proses sorting.com Matakuliah: Bahasa Pemograman Pascal Birthdays[1].waktu. Record di dalam Record Record bisa berisi record lain sebagai field.bulan:=09.

1. ' ') end. Shell sort Prinsipnya hampir sama dengan bubble sort tetapi dioptmisisasi sehingga lebih cepat.CatatanKuliah. end. anu[3]:= 8. 5. prinsipnya adalah membandingkan data dengan jarak tertentu dalam array. dalam program program mengurutkandata. anu[4]:= 4. misalkan kita akan meyusun data secara (ascending) cacah naik. for i:=1 to 8 do write (anu[i]. anu[j]:=t. type urutkan=array [1. anu[6]:= 7 . Contoh. SYNTAX for i:=1 to Jumlah_data-1 do for j:=i+1 to Jumlah_data do if Data[i]>Data[j] then begin t:=Data[i]. Data[j]:=t. end.t:integer.8] of integer. anu[5]:= 1. Maka lagoritma utamanya adalah seperti ini.com Matakuliah: Bahasa Pemograman Pascal 5.. anu[7]:=6 . for i:=1 to 7 to begin for j:=i+1 to 8 to begin if anu[i]>anu[j] then begin t:=anu[i]. end. anu[2]:= 3. anu[i]:=anu[j]. Misal kita punya data : 5 3 8 4 1 7 6 2 . uses WinCrt. SYNTAX Page : 63 . var i. Bubble Sort Teknik ini menyusun data yang diinginkan secara berurutan dengan membandingkan elemen data yang ada. Data[i]:=Data[j]. begin anu[1]:=5. end. Ditemukan oleh Donald Shell.2. anu:urutkan.j. anu[8]:=2 .

tukar) 1 2 4 3 6 5 8 7 ----> Jarak 1. Langkah pertama adalah membandingkan data pertama dengan ke lima. no tukar) ke-7 perbandingan : ^ ^ ( urutan benar. Dengan menggunakan metode rekursi samapi habis. quick sort diketemukan oleh E.com Matakuliah: Bahasa Pemograman Pascal for jarak:= (Jumlah_data div 2) down to 1 do for i:=1 to Jumlah_data-jarak do if Data[i]>Data[i+jarak] then begin t:=Data[i]. Misalkan kita punya 8 data. tukar) 13645782 ke-4 perbandingan : ^ ^ (salah urutan. Kumpulkan data dengan nilai lebih kecil dari pivot disebelah kiri pivot. no tukar) ke-17 perbandingan : ^ ^ ( urutan benar. Langkah iterasi: pertama. ke-16 perbandingan :^ ^ ( urutan benar. jarak adalah 4. tukar) 12345678 5. dsb. tukar) 1 3 6 2 5 7 8 4 ----> Jarak 3. tukar) 12436785 ke-13 perbandingan : ^ ^ ( urutan benar. Dimana data tengah menjadi pivot (pusat operasi). no tukar) ke-9 perbandingan : ^ ^ (salah urutan. Hoare. dan di kanan untuk yang lebih besar. no tukar) ke-3 perbandingan : ^ ^ (salah urutan. no tukar) ke-11 perbandingan : ^ ^ (salah urutan. no tukar) ke-18 perbandingan : ^ ^ (salah urutan. ke-5 perbandingan : ^ ^ ( urutan benar. tukar) 13845762 ke-2 perbandingan : ^ ^ ( urutan benar. tukar) 12346587 ke-19 perbandingan : ^ ^ ( urutan benar. Prinsipnya membagi data menjadi dua bagian yang sama (kiri dan kanan). end.CatatanKuliah. tukar) 12345687 ke-21 perbandingan : ^ ^ ( urutan benar. no tukar) ke-15 perbandingan : ^ ^ (salah urutan. no tukar) ke-22 perbandingan : ^ ^ (salah urutan. no tukar) ke-14 perbandingan : ^ ^ ( urutan benar. tukar) 12634785 ke-12 perbandingan : ^ ^ (salah urutan. no tukar) ke-6 perbandingan : ^ ^ ( urutan benar. 53841762 ke-1 perbandingan : ^ ^ (salah urutan. Data[i]:=Data[i+jarak]. Data[i+jarak]:=t. no tukar) ke-8 perbandingan : ^ ^ ( urutan benar.3. ke-10 perbandingan :^ ^ ( urutan benar. tukar) 1 3 6 2 4 7 8 5 ----> Jarak 2. Jarak antara data adalah (8 div 2 :=4). Dimungkinkan bagian kiri dan kanan pivot tidak sama Page : 64 . no tukar) ke-20 perbandingan : ^ ^ (salah urutan.

{ urutkan bagian KANAN} end. Page : 65 . • Tiap baris terdiri dari runtunan karakter. that you need to solve for two unknowns. The linear-least-squares error algorithm employed hereEOL finds the best m and b such that the sum of the squared error terms is minimized. -EOLN :menerima argumen nama file dan menghasilkan nilai true jika sudah tidak ada lagi data yang bisa lagi dalam satu baris. EOL where the Ei are error terms. begin pivot:=Data[(bawah+atas) div 2]. EOL EOF -EOF :menerima argumen nama file dan menghasilkan nilai true jika sudah tidak ada data yang bisa dibaca lagi.com Matakuliah: Bahasa Pemograman Pascal besarnya. if kanan>bawah then qsort(bawah. kanan.NumberOfData). Contoh misal kita mempunyai data array integer. procedure qsort(bawah. FILE 1. while kiri<=kanan do begin while Data[kiri] < pivot do kiri:=kiri+1. • Tiap baris diakhiri oleh karakter khusus.{ urutkan bagian KIRI } if atas>kiri then qsort(kiri . giving a system of n linear eq. atas : integer) var kiri. kiri:=kiri+1. end. kiri:=bawah. m and b.kanan). pivot : integer. kanan:=kanan-1. Pemangilan dalam program utama : qsort(1.{Memisahkan ke kanan} if kiri<=kanan then { chek perubahan } begin swap Data[kiri] with Data[kanan].CatatanKuliah. Komposisi dari File Teks File Teks disusun sebagai runtunan beberapa baris . yaitu END-OF-LINE (EOLN) • Karakter yang terakhir dari file teks adalah END-OF-FILE (EOF) Contoh. Untuk itu tiap bagin di bagi menjadi dua lagi dan mempuyi pivot yang baru.atas). { memisahkan ke kiri } while Data[kanan]>pivot do kanan:=kanan-1. kanan:=atas. end.

(misal kita punya suatu file dengan path ‘D:\file1. kita perlu mendeklarasikan suatu variabel dengan tipe teks seperti berikut: var F : text. { menuliskan nama file ‘D:\file1.com Matakuliah: Bahasa Pemograman Pascal 2. end. reset(F). { membuka file} while not EOF(F) do { menampilkan seluruh isi file} begin readln(F. s : string. 4. Menulis File Baru Kita membuat suatu file teks dengan mengubah kata kunci : Page : 66 .'README'). readln(nama_file). 3.nama_file). close(F).txt’} assign(F. Contoh.CatatanKuliah.txt’) Program baca_file_teks. Operasi pada file teks Untuk melakukan operasi pada file teks.s). misalkan dengan menyatakan suatu variabel s sebagai string: readln(F. uses wincrt. setelah selesai membaca keseluruhan teks kita harus menutupnya dengan: close(F). { memanggil file } reset(F). kita bisa membaca file baris demi baris. nama_file:string. write('NAMA FILE YANG DIBACA: '). begin clrscr. F adalah sembarang variabel file teks dan readme adalah nama file teks yang akan dibaca. writeln(s). { menutup file } end. Membaca File dan Menampilkannya di Layar Sebelum kita bisa membaca kita harus membuka file tersebut. pertama kita harus memanggilnya dengan fungsi : assign(F. s). var F : text.

readln(nama_file).F1 : text. close(F). while not EOF(F) do begin readln(F. Catatan: statemen rewrite(variabel_teks) apabila diterapkan pada file yang sudah ada akan menyebabkan isi file terhapus dan mulai membuat yang baru..s) untuk membaca file yang akan dikopi dan writeln(F. end. {mulai proses} rewrite(F). { menutup file } end. { membaca seluruh isi file} writeln(F1. { membuka file} assign(F1.txt’) dan kita akan memgkopinya ke file dengan path ‘D:\file1. {tulis sampai selesai} writeln(F. { memanggil file } reset(F). uses wincrt.s).s) untuk menulis ke file tujuan Contoh 1.txt’) Program baca_tulisfile_teks.s). write('Nama file yang akan dibuat : '). writeln('Untuk berhenti: tekan enter. { mengkopi isi file1. menjadi rewrite(F). var F. Contoh 2. begin clrscr. { menutup file file1. membuat file baru Program buat_file_baru.txt'). { menuliskan nama file 'D:\file1. readln(s). close(F).CatatanKuliah. assign(F. nama_file:string. spasi dan enter. begin clrscr. Kemudian: Gunakan readln(F.s). s : string.txt } end.txt} close(f1).txt ke file2. {membuat file baru} writeln('Mulai mengetikkan teks.com Matakuliah: Bahasa Pemograman Pascal reset(F).'). maka untuk menambahkan teks pada file yang sudah ada digunakan kata kunci append (variabel_teks). Page : 67 .').nama_file).txt} end.s).txt'} assign(F. write('NAMA FILE YANG DIBACA: '). uses wincrt. { menutup file file1. while s <>’ ‘ do begin readln(s). var F : text.'d:\file2. (misal kita punya suatu file dengan path ‘D:\file1. rewrite(F1). s : string.

while not EOF(F) do begin readln(F. writeln(s). Contoh : Program coba_error. maka tidak terjadi error. 3: writeln ('lokasi tidak ketemu'). if n<>0 then begin writeln(terjadi kesalahan pada pembacaan file'. close(F). assign(F. write('Input file name to read : ').s). 6. {$I-} reset(F). 4: writeln ('terlalu banayk file yang dibuka'). case n of 2: writeln ('File tidak ketemu'). s : string. : {$I-} reset(F). Page : 68 .s). begin clrscr.s). end. jika IOresult adalah 0. Error pada Pembacaan File Untuk mengatasi error pada pembacaan file teks digunakan error-handling. Jenis Error pada Pembacaan File IOresult dapat menghasilkan jenis kesalahan pada pembacaan file. uses wincrt. end. seperti contoh. {$I+} if IOresult<>0 then begin writeln(‘terjadi kesalahan pada pembacaan file'. yaitu : {$I-} --> membuat Pascal stabil : --> proses pada file {$I+} --> deteksi terhadap error error dapat di deteksi dengan memanggil fungsi IOResult. end.CatatanKuliah. var F : text.com Matakuliah: Bahasa Pemograman Pascal 5. {$I+} n:=IOResult.s). readln(s). halt.

halt. else writeln('pokoknya salah'). 100: writeln ('salah membaca disk'). 162: writeln ('kerusakan Hardware'). 157: writeln ('media tidak dikenal'). Page : 69 . 101: writeln('salah menulis disk'). 154: writeln ('CRC error di data'). 156: writeln ('pencarian disk salah'). 152: writeln ('Drive tidak ada').CatatanKuliah. end. 150: writeln('Disk diproteksi'). end.com Matakuliah: Bahasa Pemograman Pascal 5: writeln (akses file ditolak').

Sign up to vote on this title
UsefulNot useful