Dasar Pemrogramanhgjhgjgjh

131
1.1. Pendahuluan Jika anda mempunyai suatu permasalahan, maka tentunya anda akan berpikir bagaimana menyelesaikan masalah yang anda hadapi. Proses berpikir yang anda lakukan tentunya akan berurut langkah demi langkah sampai pada akhirnya permasalahan anda akan mendapatkan kesimpulan (mendapatkan solusi). Secara tidak langsung setiap langkah yang anda pikirkan haruslah terukur, logis, dan sistimatis sehingga suatu permasalahan dapat diselesaikan. Proses berpikir yang sistematis dan terukur ini disebut dengan algoritma. 1.2. Penyajian 1.2.1. Pengantar ke Algoritma Komputer adalah alat bantu untuk menyelesaikan masalah. Namun masalah yang ingin diselesaikan tidak dapat langsung ‘disodorkan’ begitu saja ke komputer. Sebagai contoh andaikan anda mempunyai data nilai ujian sekumpulan mahasiswa. Anda ingin mengurutkan semua data tersebut dari nilai tertinggi hingga terendah. Misalkan anda ketikkan semua nilai ujian dengan program pengolah 1 ALGORITMA

description

ghjghjghjgjjhj

Transcript of Dasar Pemrogramanhgjhgjgjh

Bahan Ajar Dasar Pemrograman Komputer

1.1. Pendahuluan

Jika anda mempunyai suatu permasalahan, maka tentunya anda akan berpikir bagaimana menyelesaikan masalah yang anda hadapi. Proses berpikir yang anda lakukan tentunya akan berurut langkah demi langkah sampai pada akhirnya permasalahan anda akan mendapatkan kesimpulan (mendapatkan solusi). Secara tidak langsung setiap langkah yang anda pikirkan haruslah terukur, logis, dan sistimatis sehingga suatu permasalahan dapat diselesaikan. Proses berpikir yang sistematis dan terukur ini disebut dengan algoritma. 1.2. Penyajian1.2.1. Pengantar ke Algoritma

Komputer adalah alat bantu untuk menyelesaikan masalah. Namun masalah yang ingin diselesaikan tidak dapat langsung disodorkan begitu saja ke komputer. Sebagai contoh andaikan anda mempunyai data nilai ujian sekumpulan mahasiswa. Anda ingin mengurutkan semua data tersebut dari nilai tertinggi hingga terendah. Misalkan anda ketikkan semua nilai ujian dengan program pengolah kata (word processor) lalu dibawahnya dituliskan perintah kepada komputer untuk mengurutkannya sebagai berikut:

30,86,45,81,63,72,56

Urutkan dari nilai tertinggi hingga nilai terendah dan anda menunggu hasilnya. Apakah komputer anda mengerjakan masalah pengurutan tersebut? Tentu tidak, karena komputer tidak mengerti perintah anda di atas dan tidak tahu bagaimana cara mengurutkan nilai tersebut?

Agar komputer dapat menyelesaikan masalah anda, maka anda perlu merumuskan langkah-langkah penyelesaian masalah itu dalam suatu rangkaian instruksi. Komputerlah yang nanti mengerjakan rangkaian instruksi tersebut, karena komputer dapat mengerjakannya dengan cepat, akurat, dan berulang-uang tanpa mengenal lelah dan bosan. Sekumpulan instruksi yang merupakan penyelesaian masalah itu dinamakan dengan program. Program dimasukkan kedalam komputer, komputer akan mengerjakan instruksi dalam program tersebut, lalu memberikan hasil atau luaran yang diinginkan.

Misalkan program yang berisi rangkaian instruksi untuk mengurutkan data, data tersebut anda rumuskan kembali sebagai berikut:

Langkah 1. Cari nilai terbesar diantara N buah data

Langkah 2. Tempatkan nilai terbesar tersebut pada posisi yang tepat (dengan cara mempertukarkan)

Langkah 3. Ulangi langkah 1 untuk N-1 buah data yang lain.Nah, sekarang usaha anda sedikit lebih maju. Tetapi komputer tetap belum dapat melaksanakan program diatas karena bahasa yang anda gunakan untuk menulis program tidak dapat dipahaminya. Sebagaimana dengan kehidupan manusia, manusia hanya bisa menerima perintah jika sesuai dengna bahasa yang ia gunakan. Salah satu bahasa pemrograman adalah bahasa Pascal.selain itu dikenal pula bahasa selain Pascal seperti Bahasa C dan Fortran.

Urutan langkah-langkah yang sistimetis dan merupakan cara berpikir si pemrogram dalam menyelesaikan masalah dinamakan algoritma. Contoh pengurutan data di atas disebut notasi algoritma. Notasi algoritma bukan notasi bahasa pemograman, karena itu program dalam notaasi algoritma tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, program dalam notasi algoritma harus ditranslasikan atau diterjemahkan kedalam notasi bahasa pemrograman yang dipilih.

Sampai disini, pasti anda sudah mulai memahami tentang algoritma bukan?Catatan Sejarah

Kalimat algorithm diambil dari nama seorang matematikawan yang juga seorang astronomi berkebangsaan arab yang bernama Abu Jafar Muhamad Ibnu Musa Al-Khowarizmi pada abad ke-19. Beliau dikenal sebagai pengarang buku matematika yang membahas manipulasi angka-angka beserta rumusan-rumusan aljabarnya.

1.2.2. Defenisi Algoritma

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis. Dan sebagai pembanding pengertian algoritma menurut Kamus Besar Bahasa Indonesia (KBBI) terbitan balai pustaka tahun1998 adalah urutan logis pengambilan putusan untuk pemecahan masalah.Kata logis merupakan kata kunci dalam sebuah algoritma. Langkah-langkah didalam algoritma harus logis, berarti hasil dari urutan langkah-langkah tersebut harus dapat ditentukan, benar atau salah. Langkah-langkah yang tidak benar dapat memberikan hasil yang salah.

Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan (sequence), pemilihan (selection, dan pengulangan (repetition).

1.2.3. Struktur Dasar AlgoritmaSeperti telah dikemukakan sebelumnya, algoritma berisi langkah penyelesaian suatu masalah. Langkah-langkah tersebut berupa dapat berupa runtunan aksi, pemilihan aksi, dan pengulangan aksi. Ketiga jenis langkah tersebut membentuk suatu algoritma. Jadi sebuah algoritma dapat dibangun dari tiga buah struktur dasar, yaitu:1. Sequence (Runtunan)

Sebuah sequence terdiri dari satu atau lebih intruksi. Tiap intruksi akan dikerjakan secara berurutan sesuai dengan urutan penulisannya, yakni sebuah intruksi dilaksanakan setelah intruksi sebelumnya selesai dilaksanakan. Ururtan intruksi dapat menentukan keadaan akhir algoritma. Perhatikan sequence (runtunan) intruksi yang dilambangkan dengan A1, A2, A3, A4, dan A5 berikut:A1

A2

A3

A4

A5

Mula-mula pemroses akan melaksanakan intruksi A1. Intruksi A2 dilaksanakan setelah intruksi A1 selesai. Selanjutnya intruksi A3 dilaksanakan setelah intruksi A2 selesai. Demikian seterusnya sampai intruksi terakhir A5 dilaksanakan dan algoritma berhenti.2. Selection (Pemilihan)Adakalanya sebuah intruksi dikerjakan jika kondisi tertentu terpenuhi. Tinjau kembali algoritma pengurutan data. Pencarian data terkecil dilakukan dengan membanding-bandingkan data. Mula-mula data pertama dianggap sebagai data terkecil sementara (min). Bandingkan min dengan data ke-2, 3, ...N. selama proses pembandingan bila data ke-j lebih kecil dari min, maka data ke-j itu menjadi min yang baru. Langkah terakhir ini kita tulis dalam pernyataan berikut:Jika data ke-j lebih kecil dari min, maka

isikan data ke-j sebagai min yang baru

pernyataan di atas dapat ditulis dalam struktur umum:if kondisi then aksi

Dalam bahasa Indonesia, if berarti jika dan Then berarti maka. Kondisi adalah bernyataan yang bernilai benar atau salah. Aksi hanya dilaksanakan apabila kondisi bernilai benar. Sebaliknya, apabila kondisi bernilai salah, maka aksi tidak dilaksanakan.Dalam kehidupan sehari-hari, kita sering menuliskan pelaksanaan tindakan bila suatu persyaratan dipenuhi. Misalnya:

if Adi juara kelas then

Ayah akan mebelikannya sepeda

if Hari sedang hujan then

Ahmad naik pete-pete ke kampus

Dan lain sebagainya.Struktur pemilihan if-then hanya memberikan satu pilihan aksi bila kondisi persyaratan dipenuhi (bernilai benar). Bentuk pemilihan yang lebih umum ialah mmeilih satu dari dua buah aksi bergantung pada nilai kondisinya:if kondisi then aksi 1

else

aksi 2else artinya kalau tidak. Bila kondisi bernilai benar, aksi 1 akan dilaksanakan, tetapi kalau tidak, aksi 2 yang akan dikerjakan. Misalnya pada pernyataan berikut:if saya lulus di Politeknik then saya akan kuliah

else

saya akan mencari pekerjaankelebihan struktur pemilihan (selection) terletak pada kemampuannya yang memungkinkan pemroses mengikuti jalur aksi yang berbeda berdasarkan kondisi yang ada. Tanpa struktur pemilihan, kita tidak mungkin menulis algoritma untuk permasalahan praktis yang demikian kompleks.3. Repetition (Pengulangan)

Salah satu kelebihan komputer adalah kemampuannya untuk mengerjakan pekerjaan yang sama berulang kali tanpa mengenal lelah. Ini berbeda dengan manusia yang cepat lelah bila mengerjakan pekerjaan yang sama berulang-ulang. Andaikan anda diminta untuk menuliskan kalimat saya belajar, maka saya bisa sebanyak 500 kali, maka anda mungkin akan menuliskannya sebagai berikut:Algoritma menulis 500 kalimat

Menuliskan kelimat saya belajar, maka saya bisa sebanyak 500 kali.

Deskripsi:

1. tulis kalimat saya belajar, maka saya bisa

2. tulis kalimat saya belajar, maka saya bisa

3. tulis kalimat saya belajar, maka saya bisa

4. tulis kalimat saya belajar, maka saya bisa

.

.

.

499. tulis kalimat saya belajar, maka saya bisa

500. tulis kalimat saya belajar, maka saya bisa

Tentu saja cara tersebut diatas akan tidak efektif dan membutuhkan banyak waktu untuk mengerjakannya. Untuk mengatasi hal ini, maka anda dapat menggunakan struktur pengulangan for-do sehingga algoritma menulis 500 kali kalimat dapat ditulis:

Algoritma menulis 500 kalimat

Menuliskan kelimat saya belajar, maka saya bisa sebanyak 500 kali.

Deskripsi:

for J dari 1 sampai 500 do tulis kalimat saya belajar, maka saya bisa

Variabel J adalah pencacah pengulangan yang mencacah pengulangan dari 1 sampai 500. Komputer akan melaksanakan aksi tulis kalimat tersebut sebanyak 500 kali. Struktur pengulangan ini dapat ditulis secara umum sebagai:

for pencacah pengulangan dari 1 sampai N do aksi

yang artinya aksi dilakukan sebanyak hitungan pencacah pengulangan, yaitu dari 1 sampai dengan Nstruktur pengulangan yang kedua adalah repeat, yang terdiri atas kata kunci repeat-until, repeat artinya ulangi dan until artinya sampai atau hingga yang mempunyai bentuk umum sebagai berikut:

repeat

aksiuntil kondisi

yang artinya bahwa pengulangan aksi dilakukan hingga kondisi persyaratan berhenti terpenuhi (bernilai logika salah).

Struktur pengulangan yang ketiga adalah while dengan kata kunci while-do, while artinya selagi atau selama dan do artinya lakukan yang mempunyai bentuk umum:

while kondisi do aksiyang artinya adalah selama kondisi persyaratan pengulangan masih benar, maka aksi dikerjakan. Perbedaannya dengan repeat-until, jika pada repeat-until kondisi pengulangan dievaluasi di akhir, maka pada while-do kondisi pengulangan dievaluasi di awal pengulangan.1.2.4. FlowchartBelajar tentang algoritma, maka tidak bisa dilepaskan dari bagan alir atau yang biasa disebut dengan flowchart. Flowchart merupakan diagram alir dari suatu algoritma, dengan tujuan mempermudah dalam penulisan program. Setiap perintah dalam suatu flowchart ditulis dalam kotak-kotak yang berbeda bentuknya sesuai dengan jenis perintahnya.Simbol simbol kotak dan pengertiannya yang seringkali digunakan adalah:

SimbolKeterangan

Terminator

Sebagai awal atau akhir

ProsesMenyatakan proses terhadap data

Input/OutputMenerima input atau menampilkan output

Seleksi/Pilihan

Memilih aliran berdasarkan syarat

Predefined-Data

Sebagai defenisi awal dari variabel atau data

Predefined-Proses

Lambang fungsi atau subprogram

KonektorPenghubung pada halaman yang sama maupun pada halaman yang berbeda

PrinterMenulis hasil proses

Gambar 1.1 Simbol-simbol yang sering digunakan pada pembuatan flowchartUntuk menghubungkan setiap simbol digunakan garis dengan tanda panah kekanan (() yang menunjukkan arah aliran dari proses. Sebagai contoh diberikan suatu kasus untuk menentukan bilangan terbesar dari dua buah bilangan.Algoritma pemecahannya:

Langkah 1. Masukkan dua buah bilangan A dan BLangkah 2. Bandingkan nilai bilangan A dan B

Langkah 3. Jika nilai bilangan A lebih besar dari nilai bilangan B, tampilkan nilai bilangan A

Langkah 4. Jika nilai bilangan A lebih kecil dari nilai bilangan B, tampilkan nilai bilangan B

Secara Flowchart dapat dilakukan dengan cara:

Gambar 1.2 Bagan alir pemilihan bilangan terbesar

Dari contoh diatas diharapkan anda mendapat gambaran dan penjelasan tentang algoritma dan teknik pembuatannya kedalam bagan alir atau flowchart. Bagian ini akan menjadi suatu hal yang sangat penting untuk dimengerti dan dipahami sebagai modal kita untuk memahami lebih lanjut tentang teknik pemrograman, tentu saja dalam hal ini tidak terikat pada bahasa Pascal saja melainkan juga berlaku umum untuk semua jenis bahasa pemrograman.1.3. Penutup

Prinsip algoritma dapat digunakan untuk memecahken suatu permasalahan secara cepat dan tepat. Suatu permasalahn yang kompleks dapat dipecahkan dengan membagi permasalahan itu kedalam beberapa bagian kecil atau sederhana sehingga akan lebih mudah dalam penyelesaiannya. Untuk lebih memahami tentang algoritma ini dapat dilakukan dengan cara mengerjakan sebanyak mungkin contoh permasalahan kemudian coba anda pecahkan dengan metode algoritma.LATIHAN

1. Buatlah algoritma satu contoh kasus yang sering anda temui dalam kehdupan sehari-hari?

2. Tiga pasang suami istri yang sedang menempuh perjalanan sampai ke sebuah sungai. Di situ mereka menemukan sebuah perahu kecil yang hanya bisa membawa tidak lebih dari dua orang setiap kali menyeberang. Penyeberangan sungai dirumuitkan oleh kenyataan bahwa para suami sangat pencemburu dan tidak mau meninggalkan istri-istri mereka jika ada lelaki lain. Tulislah algoritma untuk menunjukkan bagaimana penyeberangan itu bisa dilakukan.

2.1. Pendahuluan

Mengapa kita perlu mengenal Turbo Pascal? Kita perlu mengenal turbo pascal karena sebelum kita melangkah lebih jauh belajar tentang turbo pascal alangkah baiknya jika kita dapat mengenal sejarah dan perkembangan turbo pascal sehingga kita dapat lebih memahami dan mengerti apa dan bagaimana tentang bahasa program Turbo Pascal.Dalam bab ini kita juga akan membahas dan mempelajari tentang struktur program pascal mulai dari Judul Program sampai kepada Akhir Program. Sehingga diharapkan kita akan mempunyai gambaran umum tentang bentuk/struktur penulisan bahasa Pascal.2.2. Penyajian

2.2.1 Sejarah Turbo PascalBahasa Pascal pertama kali diperkenalkan oleh profesor Niklaus Wirth dari technical University di Zurich, Switzerland dan Kathleen Jensen yang merupakan bahasa terstruktur yang dikembangkan dari bahasa ALGOL pada tahun 1970. perkembangan Pascal hingga kini sebenarnya sudah sangat jauh dari versi pertama Pascal tersebut, apalagi setelah munculnya standar Pascal pada tahun 1974 yang kemudian dikembangkan lagi oleh Borland International pada komputer PC yang beroperasi dibawah sistem operasi DOS. Produk Borland International tersebut diberi nama Turbo Pascal.Turbo Pascal telah banyak sekali mengalami perubahan dari versi pertamanya. Pembaharuan pada sistem memori yang dipakai dan lain-lain membuat Turbo Pascal menjadi bahasa Pascal yang paling terkenal dan dapat bersaing dengan bahasa-bahasa lainnya seperti C, Cobol, dan lain-lain.

Ada banyak versi pada Turbo Pascal. Sebagai contoh Versi 3.0, 4.0, 5.5, dan terakhir 7.0 yang pada umumnya untuk setiap peningkatan versi terjadi perubahan-perubahan dan penyempurnaan.Bahasa Pascal merupakan bahasa tingkat tinggi komputer (High Level Language) dengan sifatnya yang lebih komunikatif karena struktur perintahnya menggunakan bahasa manusia seperti DO (lakukan) maka komputer akan melaksanakan perintah di bawah kata DO sampai ada perintah untuk bersyarat atau sampai akhir perintah yang ditandai dengan kata END (terakhir).

Perlu diketahui bahwa komputer hanya mengerti atau menggunakan bahasa mesin (angka biner 0 dan 1 atau heksagonal) saja sehingga diperlukan penterjemah (interpreter) dari bahasa tingkat tinggi (Pascal) ke bahasa mesin yang merupakan bahasa tingkat rendah. Penterjemah atau interpreter ini disebut sebagai compiler. Dalam setiap program Pascal sudah disertakan compilernya, hal inilah yang menjadikan bahasa tingkat tinggi salah satunya adalah bahasa Pascal sebagai salah satu program yang banyak diminati oleh para progammer karena kemampuan compilernya yaitu sifatnya yang bisa dikompilasi dan dieksekusi oleh berbagai jenis perangkat keras komputer dan mudahnya pemakai melakukan komunikasi dengan komputer karena menggunakan bahasa manusia sehingga penelusuran kesalahan program dapat dilakukan dengan lebih baik.2.2.2 Level Bahasa ProgramLevel bahasa program dibedakan menjadi dua kategori, yaitu bahasa tingkat rendah ( low level language) yang terbagi lagi kedalam dua jenis yaitu bahasa mesin dan bahasa rakitan (assembly language) dan bahasa tingkat tinggi (high level language).

Bahasa MesinBahasa mesin komputer sangat terbatas dalam sifat dan penggunaannya. Bahasa ini bergantung pada jenis piranti komputer. Sifat intruksinya yang peka pada mesin, memberikan memberikan manfaat yang efisien dalam pemakaian komputer. Kesulitannya adalah apabila terjadi kesalahan logika, program sangat sukar ditelusuri disamping itu terbatas sifat adaptasinya jika digunakan untuk komputer yang tidak sejenis.Bahasa Rakitan (Assembly Language)

Kode biner dirakit sedemikian rupa agar dapat dibaca oleh pemrogram dalam melakukan pemeriksaan, kode biner tadi ditulis oleh komputer ke dalam bentuk yang dinamakan notasi singkat. Sebagai contoh:

MVI A,58H

IN 03

Notasi singkat ini lebih jelas dari kode biner. Umumnya pemrogram akan menggunakan simbol bahasa rakitan (assembly language) bila merancang suatu program dalam bahasa mesin. Kode biner, notasi singkat mesin, dan simbol bahasa rakitan merupakan bahasa-bahasa intruksi mesin.2.2.3 Menggunakan Unit

Pada Turbo Pascal versi 5.0 untuk menampilkan output di layar maka harus dipergunakan unit. Untuk memahami apa itu unit dapat digambarkan sebagai berikut: unit pertama kali harus diandaikan seperti sebuah lemari, dalam hal ini dapat diambil contoh sebagai sebuah lemari pakaian. Lemari pakaian berisi baju, celana dan sarung, agar anda bisa mengambil isi dari lemari tersebut, maka anda harus tahu bahwa anda menyimpannya dalam lemari pakaian. Demikian halnya dalam program Pascal, setiap anda menginginkan untuk menampilkan hasil eksekusi program pada layar maka anda harus menyertakan unit crt.

Untuk menggunakan suatu unit, maka anda harus meletakkan suatu anak kalimat (clause) Uses di awal blok program, diikuti oleh daftar nama unit yang digunakan. Turbo Pascal menyediakan 7 (tujuh) buah unit standar yang dapat langsung digunakan, lima diantaranya ialah unit system, crt, printer, dos, dan graph. Kelima unit tersebut akan mendukung program-program turbo Pascal anda. Dua buah unit lainnya yaitu turbo3 dan graph3 dirancang untuk membantu kompatibilitas program dan file data yang dibuat dengan turbo Pascal 3.0.Contoh:

Bila akan digunakan unit crt, maka dapat dituliskan:Program Contoh;

Uses Crt;

Bila akan digunakan dua buah unit, maka dapat dituliskan:

Program Contoh;

Uses Crt, graph;

2.2.4 Struktur Penulisan Program

Seperti telah disebutkan di atas bahwa bahasa Pascal merupakan bahasa program yang terstruktur artinya bahwa dalam penulisan program dilakukan dengan teratur dan tersusun dengan baik dengan mengacu kepada aturan struktur yang telah ditetapkan. Adapun struktur dari penulisan program Pascal terdiri dari sebuah judul program (Heading Program) dan suatu blok program (program block) atau badan program (body program). Blok program dibagi lagi menjadi dua bagian, yaitu bagian deklarasi (declaration part) dan bagian pernyataan (statement part). Secara ringkas struktur program Pascal dapat terdiri dari:1. Judul program

2. Blok program

a. Bagian Deklarasi Deklarasi label Deklarasi konstanta

Deklarasi tipe

Deklarasi variabel

Deklarasi prosedur

Deklarasi fungsi

b. Bagian PernyataanDan untuk lebih jelasnya dapat dilihat pada gambar 2.1 di bawah ini.

Gambar 2.1 Struktur program Pascal2.2.4.1 Statemen/PernyataanStatemen adalah perintah pengerjaan program. Kumpulan dari statemen mentuk suatu program. Bila suatu program Pascal tidak mengandung statemen atau disebut dengan statemen kosong (empty statement) maka tidak akan ada yang dikerjakan oleh program. Statemen terletak dibagian deklarasi statemen dengan diawali oleh kata cadangan begin dan ditutup dengan kata cadangan end. Masing-m,asing akhir dari statemen diakhir dengan tanda titik koma. Dalam bahasa pascal statemen dapat berupa statemen sederhana (simple statement) dan statemen terstruktur (structured statement).

Statemen sederhana terdiri atas statemen pengerjaan (assignment statement), statemen prosedur (procedure statement), dan statemen goto. Sedangkan yang termasuk statemen terstruktur terdiri atas statemen jamak (compound statement), statemen penyeleksian kondisi (conditional statement), statemen perulangan (repetitive statement), dan statemen with.Suatu program Pascal yang peling sederhana adalah program yang hanya terdiri dari sebuah bagian pernyataan saja. Seperti yang diperlihatkan pada gambar 2.1 bagian pernyataan (statement part) merupakan bagian yang terakhir dari suatu blok program. Bagian ini diawali dengan kata cadangan (reserved word) Begin dan diakhiri dengan kata cadangan End.Begin

End.

Program 2.1 Program dengan statemen kosong

Program 2.1. diatas menunjukkan suatu tindakan/perintah yang akan dikerjakan oleh program. Tindakan tersebut tergantung dari instruksi-instruksi yang diberikan yang disebut dengan pernyataan atau statemen (statement). Statemen tersebut harus ditulis diantara kata cadangan Begin dan End. Perlu diingat bahwa akhir penulisan kata cadangan End diakhiri dengan tand titik (.). Program 2.1. merupakan program dengan statemen kosong (empty statement) karena tidak mengandung statemen dan bila dieksekusi tidak akan menghasilkan apa-apa. Dari uraian diatas dapat diketahui bentuk umum dari bagian pernyataan ini adalah:Begin

statemen;

...

...

End.

Contoh:

Begin

WriteLn(Saya sedang belajar Pascal);End.

Program 2.2 Program Pascal yang sederhana

Bila Program ini dijalankan, maka akan ditampilkan tulisan di layar sebagai berikut:

Saya sedang belajar PascalStatemen WriteLn digunakan untuk menampilkan hasil perbaris.Contoh:

Begin

Write(Politeknik);

WriteLn(Saya sedang belajar Pascal);

WriteLn(Negeri Ujung Pandang);

WriteLn(--------------------);

End.

Program 2.3 Program menampilkan hasil perbaris

Bila Program ini dijalankan, maka akan ditampilkan tulisan di layar sebagai berikut:

PoliteknikSayasedang belajar Pascal

Negeri Ujung Pandang

--------------------Perhatikan bahwa setiap akhir baris perintah diakhiri dengan titik koma (;)Penulisan Progam PascalProgram Pascal tidak mengenal aturan penulisan di kolom tertentu, jadi boleh ditulis mulai kolom keberapapun. Penulisan statement #masih ingatkan yang dimaksud dengan statemen? yang menjorok masuk beberapa kolom dan tidak beraturan tidak mempunyai pengaruh pada proses, penulisan statemen yang rapi dan teratur hanya dimaksudkan untuk mempermudah pembacaan dan penelusuran pogram sehingga akan lebih trlihat bagian-bagiannya.Contoh:

Begin

WriteLn(Saya sedang belajar Pascal);

End.

Program 2.4 Penulisan program Pascal yang bebas

Penulisan seperti pada program 2.4 pun boleh bahkan dapat juga disambung dalam satu baris.Contoh:

Begin WriteLn(Saya sedang belajar Pascal);End.

Program 2.5 Penulisan program Pascal yang tidak dianjurkan

2.2.4.2 Judul ProgramJudul program dalam bahasa Pascal sifatnya optional artinya bisa digunakan bisa juga tidak, tetapi sebaiknya judul program tetap disertakan dalam program untuk memudahkan bagi kita dalam mengenali program yang telah dibuat. Judul program bila ditulis harus terletak pada awal dari program dan diakhiri dengan titik koma (;). Tata cara/sintak penulisannya adalah:

PROGRAM _ nama program;

Kata PROGRAM merupakan sintak bahasa yang baku dari bahasa Pascal dan mutlak harus ditulis seperti adanya, sedangkan kalimat nama program merupakan indikasi untuk menulis nama program. Jika nama program disebut Latihan, maka sintak dari judul program adalah:

PROGRAM Latihan;

Jika kita perhatikan contoh pada program 1.1 sampai program 1.3 Judul Program tidak dituliskan, sehingga kita dapat simpulkan bahwa penggunaan Judul Program sifatnya sebagai dokumentasi saja dan tidak signifikan terhadap proses program tetapi meskipun demikian penyertaan Judul Program akan sangat membantu bagi programmer untuk mengenali program yang telah dibuatnya.Contoh:

PROGRAM Latihan11;

Begin

WriteLn(Saya sedang belajar Pascal);

End.

Program 2.6 Program Pascal sederhana dengan judul Prgram

Berikut ini adalah contoh pendeklarasian program yang salah:

PROGRAM 3Coba; (dimulai dengan bilangan)

PROGRAM Segi Tiga (Terdapat spasi)

PROGRAM bil+duo(memakai tanda +)

PROGRAMcoba(Kata program disambung)

PROGRAM Coba1(tidak memakai ;)

Parameter tentang komunikasi program dengan lingkungan ditulis di dalam tanda kurung buka dan tanda kurung tutup dan dapat ditulis apapun dengan dipisahkan oleh tanda koma. Contoh penulisan Judul Program yang benar:

PROGRAM Gaji(input,output);

PROGRAM Laporan(Layar,Printer,Plotter);

2.2.4.3 DeklarasiMasih ingat dengan struktur penulisan program Pascal? Tentu anda masih ingat, disana terdapat bagian deklarasi. Bagian deklarasi ini digunakan jika di dalam program Anda menggunakan pengenal (identifier). Identifier dapat berupa label, konstanta, tipe, variabel, prosedur dan fungsi.

Untuk lebih jelasnya akan diberikan penjelasan singkat tentang bagian ini.

2.2.4.3.1 Deklarasi Label

Penggunaan deklarasi LABEL atau kata cadangan LABEL dalam program Pascal yang baku penempatannya adalah pada hierarki tertinggi sebelum kata tuntunan lainnya. Kata cadangan LABEL digunakan untuk memindahkan proses eksekusi kepada pernyataan yang khusus ditandai dengan nomor label yang telah didefinisikan. Penggunaannya bersamaan dengan kata tuntunan goto yang berfungsi untuk mengarahkan/melompatkan proses eksekusi program yang kita inginkan.Mendeklarasikan kata cadangan LABEL diikuti oleh kumpulan identifier label dengan dipisahkan oleh koma dan diakhiri dengan titik koma.

Contoh:PROGRAM Contoh_Label(Layar);

LABEL

100, selesai;

Begin

WriteLn(Politeknik Negeri);

Goto 100;

WriteLn(Surabaya);

WriteLn(Padang);

100:

WriteLn(Ujung Pandang);

Goto selesai;

selesai:

End.

Program 2.7 Program dengan deklarasi label

Bila Program ini dijalankan, akan didapatkn hasil:

Politeknik Negeri

Ujung PandangCatatan:Penggunaan identifier pada deklarasi label dapat ditulis dengan angka maupun huruf dengan syarat tidak boleh mengandung spasi.

2.2.4.3.2 Deklarasi KonstantaBila anda ingin menggunakan identifier konstanta maka harus didefinisikan terlebih dahulu pada bagian ini. Dalam hal ini konstanta dapat didefinisikan sebagai suatu nilai yang sifatnya konstan/tetap, sebagai contoh suatu variabel C diberi nilai dengan 10 (sepuluh) maka selama program berjalan maka nilai C akan bernilai sama dengan 10 (sepuluh). Untuk mendefinisikan konstanta diawali dengan kata cadangan CONTS diikuti oleh kumpulan identifier. PROGRAM Contoh_Konstanta(Layar);

CONSTGaji = 1000000;

Pajak = 0.15;

NmPerusahaan = CV. BERLIAN;Begin

WriteLn(Jumlah Gaji = ,Gaji);

WriteLn(Jumlah Pajak = ,Pajak);

WriteLn(Nama Perusahaan = ,NmPerusahaan);

End.

Program 2.8 Program dengan deklarasi konstanta

Bila program ini dijalankan akan didapatkan hasil:

Jumlah Gaji = 1000000Jumlah Pajak = 15.0000000000E-2Nama Perusahaan = CV. BERLIANTurbo Pascal mempunyai beberapa konstanta yang tidak perlu didefinisikan, dan dapat dipergunakan langsung, diantaranya: False dengan tipe Boolean, bernilai logika salah

True dengan tipe Boolean, bernilai logika benar

MaxInt dengan tipe numerik integer, bernilai 32767 MaxLongInt dengan tipe numerik integer, bernilai 2147483647

Catatan:

Tipe data akan kita pelajari kemudian pada bab-bab selanjutnya.

2.2.4.3.3 Deklarasi Variabel

Jika konstanta berisi identifier berisi data kontanta yang nilainya sudah ditentukan dan pasti, tidak dapat diubah didalam program maka variabel adalah identifier yang berisi data yang dapat diubah-ubah nilainya dan sifatnya tidak tetap didalam program. Jadi dapat dikatakan bahwa variabel mempunyai ciri yang berkebalikan dengan konstanta. Hampir semua program Pascal yang cukup panjang pasti menggunakan variabel, untuk mendeklarasikannya digunakan kata cadangan VAR dan diikuti oleh satu atau lebih identifier yang dipisahkan koma, diikuti dengan titik dua (:) dan tipe dari datanya serta diakhiri dengan titik koma (;). Contoh:PROGRAM Contoh_Konstanta(Layar);

VARGaji : real;

Kondisi : String[30];

Begin

Hari_Kerja := 20;

Kondisi := Belum Cukup;

Gaji := Hari_Kerja * 25000;

WriteLn(Jumlah Gaji dalam 1 Bulan = ,Gaji,Ribu);

WriteLn(Keterangan = ,Kondisi);

End.

Program 2.9 Program dengan deklarasi variabel

Bila program ini dijalankan akan didapatkan hasil:

Jumlah Gaji dalam 1 Bulan = 500000 RibuKeterangan = Belum CukupCatatan:Pada contoh program 2.9 di atas telah dideklarasikan dua jenis variabel dengan identifier/pengenal masing-masing bernama gaji dan keterangan. Variabel-variabel ini nantinya akan diisi dengan suatu nilai data sehingga menuntut penjelasan dari tipe data yang akan dipergunakan #akan dijelaskan kemudian(.2.2.4.3.4 Deklarasi Type

Seperti telah dikemukakan sebelumnya bahwa suatu nilai data yang akan dipergunakan didalam Pascal harus didefinisikan jenis tipenya terlebih dahulu, Pascal menyediakan beberapa macam dari tipe data sebagai berikut:1. Tipe data sederhana (simple-type data), terdiri dari:

a. Tipe data standar (standar data type)

Integer

Real

Char

String

Boolean

b. Tipe data didefinisikan pemakai (user defined data type) Enumerated atau scala type Subrange type

2. Tipe data terstruktur (stuctured-type data), terdiri dari:

a. Array

b. Record

c. File

d. set

3. Tipe data penujuk (pointer-type data). Untuk mendefinisikan tipe dari data yang akan dipergunakan dalam program maka digunakan kata cadangan TYPE dan diikuti satu atau lebih defenisi type yang dipisahkan oleh titik koma (;). Contoh:PROGRAM Contoh_Konstanta(Layar);

TYPE

Pecahan = real;

Logika = boolean;

Bulat = integer;

Huruf = string;

Begin

End.

Program 2.10 Program dengan deklarasi type

Sampai disini apa anda bisa mengenali dan membedakannya dengan deklarasi variabel? Coba sekali lagi kita perhatikan baik-baik..2.2.4.3.5 Deklarasi ProsedurProsedur merupakan bagian yang terpisah dari program dan dapat dipanggil atau diaktifkan dimanapun dalam program, biasanya deklarasi prosedur digunakan jika program dirancang dalam beberapa blok, serperti perancangan program yang terstruktur, sehingga menjadi subprogram yang berdiri sendiri. Kata cadangan PROCEDURE digunakan untuk mendeklarasikan prosedur, diikuti oleh identifier yang merupakan nama dari prosedurnya dan secara optional dapat diikuti lagi oleh kumpulan parameter yang diakhiri dengan tiitk koma (;).Sebagai contoh:

PROCEDURE Hitung(X,Y : integer);

Gambar 2.2 Sintak deklarasi prosedur2.2.4.3.6 Deklarasi FungsiHampir sama dengan deklarasi prosedur, deklarasi fungsi juga merupakan bagian program yang terpisah tetapi diantara keduanya ada perbedaan. Fungsi dapat berupa fungsi standar yang telah disediakan oleh Pascal juga dapat dibuat sendiri oleh pemakai. Kata cadangan FUNCTION mengawali bagian deklarsi fungsi diiluti oleh identifier yang merupakan nama dari fungsinya dan secara optional dapat diikuti oleh kumpulan parameter, tipe dari fungsinya dan diakhiri dengan tiitk koma (;). Sebagai contoh:

FUNCTION Pangkat(X,Y : integer) : real;

Gambar 2.3 Sintak deklarasi fungsi

Catatan:Lebih lanjut tentang prosedur dan fungsi akan kita bahas pada bab tersendiri.

2.2.5 KataKata Cadangan (Reversed Word)

Seperti telah dijelaskan sebelumnya bahwa kata cadangan merupakan kata-kata yang sudah didefinisikan oleh Pascal dan tidak perlu untuk didefinisikan lagi. Hal ini berakibat bahwa kata cadangan tidak boleh digunakan atau didefinisikan ulang oleh pemakai sebagai identifier. Tabel di bawah menunjukkan contoh kata-kata cadangan:

Tabel 2.1 Contoh Kata cadangan (reserved word)absolute *Filemodshr *

AndFornilstring *

ArrayForwardnotthen

BeginFunctionofto

CaseGotoortype

Contsimplementation *packedunit *

DivInprocedureuntil

DoIfprogramuses *

Downtoinline *recordvar

Elseinterface *repeatwhile

Endinterrupt *setwith

external *Labelshl *Xor *

Keterangan:

Kata-kata cadangan yang diberi tanda * menunjukkan bahwa kata-kata cadangan yang tidak ada di standar Pacal.

2.2.6 Komentar ProgramSuaatu program yang baik, maka harus disertakan dokumentasinya, sehingga program mudah dibacadan dipahami. Teknik semacam ini disebut dengan komentar program yang tidak akan mempengaruhi proses dari program. Komentar program dapat diletakkan dimanapun di dalam program. Suatu komentar program ditulis dengan pembatas { dan } atau pembatas (* dan *).Contoh:

PROGRAM Contoh_Konstanta(Layar); {Judul Program)

TYPE {deklarasi tipe}

Pecahan = real;

Logika = boolean;

Bulat = integer;

Huruf = string;

Begin

End.

Program 2.11 Program dengan komentar program

2.3. Penutup

Penyajian yang diberikan dalam bab 2 ini, diharapkan dapat memberikan gambaran singkat tentang bahasa dan elemen program Pascal. Tata cara penulisan program yang baik seyogyanya sudah anda ketahui, sehingga dalam penulisan program berikutnya anda sudah memiliki pengetahuan tentang cara penulisan program yang baik, bagaimana mendeklarasikan suatu variabel atau konstanta dan aturan-aturan penulisan lainnya yang berkaitan dengan struktur program Pascal.

3.1 PendahuluanMasih ingat tentang deklarasi variabel? Setiap anda menggunakan idenfier/pengenal variabel di dalam program maka variabel tersebut harus dideklarasikan terlebih dahulu. Pada waktu anda mendeklarasikan suatu veriabel, maka anda harus menentukan tipe dari datanya. Tipe dari data ini menunjukkan nilai yang dapat digunakan oleh variabel bersangkutan. 3.2 Penyajian3.2.1 Tipe Data Tipe data terbagi atas beberapa jenis, yaitu numerik integer, numerik real, karakter, string, boolean, pointer, dan tipe data ordinal.3.2.1.1 Numerik Integer

Tipe data ini merupakan nilai bilangan bulat baik dalam bentuk desimal maupun dalam bentuk hexadesimal, nilai hexadesimal diawali dengan tanda dollar ($). Ada 5 (lima) macam tipe data integer yang masing-masing mempunyai jangkauan nilai yang berbeda.

Tabel 3.1 Jenis-jenis tipe data numerik integer

TipeUkuran Memori (byte)Jangkauan Nilai

Byte10..255

Shortint1 -128..127

Integer2 -32768..32767

Word2 0..65535

Longint4 -2147483648..2147483647

Misalkan anda akan menggunakan suatu variabel dengan identifier atau dengan nama Hasil dan nilai yang akan dikandungnya tidak lebih dari 255, maka anda dapat menggunakan type data byte. Hal ini perlu anda perhatikan mengingat setiap jenis tipe data mempunyai ukuran memori tersendiri, ingat komputer anda mempunyai kapasitas memori yang berbeda. Identifier yang anda gunakan harus dideklarasikan dengan menyebutkan tipe datanya.Contoh:

PROGRAM Contoh_Byte;

VAR

Hasil : byte;

Begin

Hasil := 230;

WriteLn(Nilai Hasil = ,Hasil);

End.

Program 3.1 Penggunaan type data byte

Bila program ini dijalankan, akan didapatkan hasil:

Nilai Hasil = 230Dari contoh diatas, dengan mengacu pada tabel 1.2 dapat disimpulkan bahwa untuk penggunaan nilai data yang lebih besar dari 255 maka tipe data yang digunakan adalah tipe data integer.Dengan mengetahui tipe data yang ada, diharapkan anda tidak akan salah dalam menentukan jenis dari tipe data yang anda akan gunakan dalam program.3.2.1.2 Numerik RealNilai konstanta numerik real berkisar dari 1E-38 sampai dengan 1E+38 dengan jumlah angka sampai dengan 11 digit. E menunjukkan nilai 10 pangkat (bilangan pangkat 10), dengan kapasitas ruang memory sebanyak 6 byte.Contoh:

PROGRAM Contoh_real;

VAR

Nilai1 : real;

Nilai2 : real;

Begin

Nilai1 := 12345678901.2345;

Nilai2 := 12345;

WriteLn(Nilai 1 = ,Nilai1);

WriteLn(Nilai 2 = ,Nilai2);

End.

Program 3.2 Penggunaan type data real

Bila program ini dijalankan, akan didapatkan hasil:

Nilai 1 : 1.2345678901E+10;

Nilai 2 : 1.2345E+04;

Catatan:

Tipe data real umumnya digunakan untuk nilai data yang besar dan mengandung pecahan.3.2.1.3 KarakterUntuk mendefinisikan nilai dari tipe data karakter, maka aturan penulisannya ditulis diantara tanda petik tunggal, seperti A,H,5, dan sebagainya. Penggunaan variabel untuk menyimpan tipe data ini harus dideklarasikan dengan menggunakan kata cadangan char. #ingat, pada penjelasan deklarasi variabel bukan? (Contoh:PROGRAM Contoh_karakter;

VAR

IniKarakter : char;

Begin

IniKarakter := c;WriteLn(Karakter yang dimaksud = ,IniKarakter);

End.

Program 3.3 Penggunaan type data karakter

Bila program ini dijalankan, akan didapatkan hasil:

Karakter yang dimaksud = C3.2.1.4 StringJika tipe data char merupakan suatu nilai karakter tunggal, maka untuk tipe data string merupakan kumpulan dari beberapa tipe data char atau dengan kata lain tipe data char merupakan suatu karakter yang terdiri dari kumpulan huruf atau angka, dan penulisannya terletak diantara tanda petik tunggal. Bila karakter petik tunggal merupakan bagian dari konstanta string, maka dapat ditulis dengan menggunakan dua buah petik tunggal berurutan. Kapasitas memorinya adalah sebesar banyaknya karakter stringnya ditambah dengan 1 byte. Bila panjang suatu karakter string tidak disebutkan, maka diangggap panjangnya adalah 255 karakter.Contoh:

PROGRAM Contoh_string;

VAR

Nama : string[40];Kota : string[25];

TTL : string[10];Begin

Nama := Abdul Azis Kahar Muzakkar;Kota := Palopo;

TTL := 17-07-1967;WriteLn(Nama, ,Kota, ,TTL);

End.

Program 3.4 Penggunaan type data string

Bila program ini dijalankan, akan didapatkan hasil:

Abdul Azis Kahar Muzakkar Palopo 17-07-19673.2.1.5 BooleanTipe data ini merupakan nilai logika yang mempunyai duah buah nilai luaran yaitu True (benar) dan False (salah). Anda dapat mendeklarasikan suatu variabel dengan menggunakan kata cadangan boolean dan mengisi variabel tersebut dengan nilai data boolean True atau False.PROGRAM Contoh_boolean;

VAR

Logika : boolean;

Begin

Logika := FALSE;

WriteLn(Nilai Logika = ,Logika);

End.

Program 3.5 Penggunaan type data boolean

Bila program ini dijalankan, akan didapatkan hasil:

Nilai Logika = FALSE3.2.1.6 PointerSuatu pointer adalah suatu variabel yang berisi alamat (address) dimemori (RAM) tempat suatu data disimpan, bukannya nilai data itu sendiri. Dengan kata lain pointer akan menunjukkan letak/posisi dari data di memori.

Contoh:PROGRAM Contoh_pointer;

TYPE

Tipestring = string[40];

Pointerstring = ^Tipestring;

VAR

LetakNama := ^Pointerstring;

Begin

LetakNama^ := Wawan Indrawan;

WriteLn(LetakNama^);

End.

Program 3.6 Penggunaan type data pointer

Pada deklarasi variabel, didekarasikan sebuah pengenal yaitu LetakNama. Variabel ini adalah variabel pointer yang menunjukkan data di memori sebanyak 40 karakter. Jadi, veriabel LetakNama ini tidak berisi dengan datanya, tetapi berisi dengan pointer letak dari data di memori. Untuk meletakkan nilai ke memori yang letaknya ditunjukkan oleh variabel LetakNama dapat dilakukan dengan cara:LetakNama^ := Wawan Indrawan;

Statemen ini menunjukkan bahwa nilai data dari string Wawan Indrawan akan disimpan di buffer yang terletak di alamat memori yang ditunjukkan oleh variabel LetakNama. Jadi nilai string tersebut bukan disimpan di identifier LetakNama. Tanda caret (^) adalah operator alamat yang digunakan dalam bahasa Pascal. Dengan demikian bila dilakukan statemen:

WriteLn(LetakNama^);

Berarti akan ditampilkan isi dari memori di alamat yang ditunjukkan oleh pointer LetakNama dan akan diddaatkan hasil:

Wawan Indrawan3.2.1.7 Tipe Data OrdinalTipe data ordinal adalah tipa data yang merupakan subset dari tipe data sederhana (tipe data standar dan tipe data yang didefinisikan sendiri oleh pemakai). Yang dimaksud dengan tipe data sederhana sebenarnya adalah semua tipe data sederhana kecuali tipe data numerik real. Jadi yang termasuk tipe data ordinal adalah: Tipe data standar (integer, shortint, longint, byte, word, boolean, dan char)

Tipe data yang didefinisikan sendiri oleh pemakai (enumerated type and subrange type).

3.2.2 TANDA OPERASIDalam bahasa Pascal tanda operasi dikategoriksn kedalam 9 (sembilan) kategori, yaitu:

1. Assignment operator

Assignment operator (operator pengerjaan) menggunakan simbol titik dua dan diikuti oleh tanda sama dengan (:=).

Contoh:

Z := 12;2. Binary operator

Binary operator (tanda operasi biner) digunakan untuk mengoperasikan dua buah operand. Operan dapat berbentuk konstanta atauoun variabel. Penggunaannya untuk operasi aritmatika yang berhubungan dengan nilai tipe data integer atau real.Tabel 3.2 Binary operator

OperatorOperasiTipe OperandTipe Hasil

*Perkalianreal, real

integer, integer

real, integerreal

integer

real

DIVPembagian bulatinteger, integerinteger

/Pembagian realreal, real

integer, integer

real, integerreal

real

real

MODModulus (sisa pembagian)Integer, integerinteger

+Pertambahanreal, real

integer, integer

real, integerrealinteger

real

-Penguranganreal, real

integer, integer

real, integerreal

integer

real

3. Unary operator

Disebut dengan unary operator karena operator ini hanya menggunakan sebuah operand saja. Unary operator dapat berupa unary minus (-) dan Unary plus (+).4. Bitwise operator

Bitwise operator digunakan untuk operator bit per bit pada niai integer.Tabel 3.3 Bitwise operatorOperatorOperasiTipe OperandTipe Hasil

NOTBitwise negationIntegerInteger

ANDBitwise ANDinteger, integerInteger

ORBitwise ORinteger, integerInteger

XORBitwise XORinteger, integerInteger

ShlShift Leftinteger, integerInteger

ShrShift Rightinteger, integerInteger

Tipe operator NOT, OR, dan AND tidak akan dibahas lebih lanjut #pasti anda sudah tahu bukan(.

Operator XOROperator XOR digunakan untuk membandingkan dua buah elemen, hasilnya hanya akan benar (1) bila salah satunya saja yang benar.

Tabel 3.4. Hubungan operator XORABA XOR B

1

1

0

01

0

1

00

1

1

0

5. Relational operator

Relational operator (operator hubungan) digunakan untuk membandingkan hubungan antara dua buah operand dan akan didapatkan hasil tipe boolean, true dan false.Tabel 3.5 Operator hubungan OperatorOperasi

=

< >

>

>=

60) Then

WriteLn(Lulus);

Else

WriteLn(Tidak Lulus);

End.

Program 4.3 Statemen if-thenelse untuk menyeleksi nilai ujian

4.2.1.3 Struktur If-Then TersarangStruktur if tersarang (Nested if) merupakan bentuk dari suatu statemen if berada dalam lingkungan statemen if lainnya.

Gambar 4.4 Struktur If-Then tersarangBentuk statemen if tersarang tersebut bila digambarkan dalam bagan alir akan berupa:

Gambar 4.5 Statemen if-then tersarang dalam bentuk bagan alir

Bentuk lain dari struktur IF bersarang dapat juga berupa:

Gambar 4.6 Bentuk lain struktur if-then tersarangContoh:Penyelesaian suatu persamaan kuadrat AX2 + BX + C = 0 mempunyai syarat utama yaitu nilai A tifak boleh sama dengan nol. Nilai diskriminan ditentukan dengan rumus: D = B2 4AC.Program untuk menyelesaikan akar-akar persamaan kuadrat:PROGRAM Pers_Kuadrat;

Uses crt;

Var

A,B,C,D,X1,X2 : real;

Jawab : char;

Begin

Clrscr;

A := 0;

While A = 0 Do

Begin

WriteLn(Masukkan Nilai A = ); ReadLn(A);

End; {Antisipasi agar nilai A tidak diisi dengan 0}

WriteLn(Masukkan Nilai B = ); ReadLn(B);

WriteLn(Masukkan Nilai C = ); ReadLn(C);

WriteLn;{Hitung nilai Diskriminan}

D = B*B 4*A*C;

(* Seleksi Nilai Diskriminan *)

If D = 0 then {Akar Kembar}

Begin

X1 := -B / 2*A; WriteLn(Ada 2 akar kembar, yaitu : );

WriteLn(X1 dan X2 = ,X1:5:2);

End

Else

Begin If D > 0 Then {Dua akar real berlainan}

Begin

X1 := (-B + sqrt(D))/2*A);

X2 := (-B - sqrt(D))/2*A);

WriteLn(Ada 2 akar real berlainan, yaitu : );

WriteLn(X1 = ,X1:5:2);

WriteLn(X2 = ,X2:5:2);

End

Else {Dua akar imajiner berlainan}

Begin

Z1 := (-B / 2*A);

X2 := (sqrt(-D))/2*A);

WriteLn(Ada 2 akar imajiner berlainan, yaitu : );

WriteLn(X1 = ,Z1:5:2, + ,Z2:5:2,i);

WriteLn(X2 = ,Z1:5:2, - ,Z2:5:2,i);

End

End;WriteLn;

End.

Program 4.4 Statemen if tersarang untuk menyelesaikan persamaan kuadrat

4.2.2 Statemen Case

Gambar 4.7 Diagram sintaks statemen case4.2.2.1 Struktur Case OfStruktur case-of mempunyai suatu ungkapan logika yang disebut dengan selector dan sejumlah statemen yang diawali dengan suatu label permasalahan (case Label) yang mempunyai tipe sama dengan selector. Statemen yang mempunyai case label yang bernilai sama dengan selector akan diproses sedangkan statemen yang lainnya tidak. Perbedaan dengan stuktur if adalah bila statemen if menyeleksi suatu kondisi dan terpenuhi, setelah memproses statemen dalam lingkungan yang terpenuhi tersebut, proses penyeleksian masih dilakukan terhadap statemen If berikutnya yang lain. Sedangkan pada struktur Case-Of bila salah satu kondisi terpenuhi (nilai case label sama dengan nilai selector) dan statemen tersebut telah diproses, selanjutnya statemen-statemen yang lainnya dalam lingkungan Case tidak akan diseleksi lagi.Dapat dikatakan bahwa dengan struktur Case dapat menyederhanakan penulisan If-Then-Else yang bertingkat-tingkat.

PROGRAM case-of;

Uses crt;

Var

Nilai : char;

Begin

Clrscr;

Write(Nilai huruf yang didapat ?);ReadLn(Nilai);Case Nilai Of

A: WriteLn(Sangat Baik);B: WriteLn(Baik);

C: WriteLn(Cukup);

D: WriteLn(Kurang);

E: WriteLn(Gagal);

End;

End.

Program 4.5 Penggunaan struktur Case-Of untuk menyeleksi ujian

4.2.2.2 Struktur CaseOf..Else

Struktur case-OfElse merupakan pengembangan dari struktur case-of dan juga merupakan pengembangan dari standar Pascal. Pada struktur case-of bila tidak ada kondisi yang terpenuhi berarti tidak statemen di dalam lingkungna case-of yang diproses. Dengan struktur case-of..else, bila tidak ada kondisi yang terpenuhi maka statemen ynag akan diproses didalam lingkungan case-of adalah statemen yang ada di bagian else.PROGRAM case-of..else;

Uses crt;

Var

Pilihan : byte;

R,L,T,S,Luas : real;

Begin

Clrscr;

gotoXY(10,2);WriteLn( ====PILIHAN ====);

gotoXY(10,4);WriteLn(1. Menghitung Luas Lingkaran);

gotoXY(10,6);WriteLn(2. Menghitung Luas Segitiga);

gotoXY(10,8);WriteLn(3. Menghitung Luas Bujur sangkar);

gotXY(10,12);Write(Pilih Nomor : ); Readln(Pilihan);Case Pilihan Of1:

Begin

Write(Nilai Jari jari lingkaran : )ReadLn(R);

Luas := pi*R*R;

WriteLn(Luas lingkaran = ,Luas:5:2);

End;

2:Begin

Write(Panjang sisi alas : );ReadLn(L); Write(Tinggi segi tiga : );ReadLn(T);

Luas := 0.5 * L * T;

WriteLn(Luas Segitiga = ,Luas:6:2);

End;

3:Begin

Write(Panjang sisi bujur sangkar : );ReadLn(S); Luas := S*S;

WriteLn(Luas bujur sangkar = ,Luas:7:2);

End;

Else

Begin

WriteLn(Pilihan anda salah);

WriteLn(Anda tadi pilih nomor berapa???..);

End;End.

Program 4.6 Penggunaan struktur Case-Of..else

4.3 Penutup

Pada pembahasan di atas, diberikan beberapa contoh kasus penyelesaian masalah dengan menggunakan statemen if. Diharapkan anda dapat menentukan dengan tepat kapan anda memilih untuk menggunakan If atau kapan anda memilih untuk menggunakan Case.

5.1 PendahuluanSalah satu kelebihan komputer dibandingkan dengan manusia adalah kemampuannya untuk melaksanakan suatu instruksi berulangkali tanpa mengenal lelah dan bosan.

Struktur pengulangan secara umum terdiri atas dua bagian:

1. Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan. Kondisi ini ada yang dinyatakan secara eksplisit oleh pemrogram atau dikelola sendiri oleh komputer (implisit);

2. Badan (body) pengulangan, yaitu bagian algoritma yang diulang.

Disamping itu, struktur pengulangan biasanya disertai dengan bagian:

1. Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali.

2. Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan.

Inisialisasi dan terminasi tidak selalu harus ada, namun pada berbagai kasus inisialisasi umumunya diperlukan.

Struktur pengulangan secara umum:

Awal pengulangan

Badan pengulangan

Akhir pengulangan

Awal dan akhir pengulangan dinyatakan sebagai kata kunci yang bergantung pada struktur pengulangan yang digunakan.

Dalam bahan ajar ini akan diberikan 3 (tiga) macam notasi struktur pengulangan, yaitu struktur FOR, struktur WHILE, dan struktur REPEAT.

5.2 Penyajian5.2.1 Struktur FOR

Pengulangan dengan struktur For digunakan untuk mengulang statemen atau satu blok statemen berulang kali sejumlah yang ditentukan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum ekesukusi. Untuk mencacah sudah berapa kali pengulangan dilakukan, kita memerlukan sebuah peubah (variable) pencacah (counter. Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan. Jika cacah pengulangan sudah mencapai jumlah yang ditentukan maka pengulangan akan berhenti. Pengulangan dengan struktur for dapat berbentuk pengulangan positip (ascending), pengulangan negatip (descending), dan pengulangan tersarang.Pengulangan Positif (Ascending)Pengulangan positip adalah pengulangan dengan penghitung (counter) dari kecil ke besar atau dengan kata lain pertambhannya positip. Pengulangan positip dapat dibentuk dengan menggunakan statemen For-To-Do, dengan bentuk umumnya: For variable-kontrol := nilai awal To Nilai Akhir Do Statemen

Variable control, nilai awal, dan nilai akhir harus mempunyai tipe yang sama yaitu bertipe integer.

Contoh:

PROGRAM For;

Uses crt;

Var

i : integer;Begin

Clrscr;

For i := 1 To 5 Do {Ulangi sampai 5 kali} WriteLn(Pascal);

End.

Program 5.1 Penggunaan struktur For

Bila program ini dijalankan akan didapatkan hasil:Pascal

Pascal

Pascal

Pascal

Pascal

Penjelasan:

Statemen dalam perintah writeln akan diulang sebanyak 5 (lima) kali karena diberikan nilai i awal yang bertipe integer sama dengan 1 dan nilai akhir sama dengan 5. Jika diberikan nilai akhir sama dengan 100 maka.(tentu saja akan diberikan kata Pascal sampai dengan 100 kali).

Dengan menggunakan blok statemen, berarti statemen yang diulang dapat lebih dari sebuah statemen.Contoh:

PROGRAM For;

Uses crt;

Var

i : integer;Begin

Clrscr;

For i := 1 To 5 Do {Ulangi sampai 5 kali}

Begin

Write(i);

WriteLn(Pascal);

End;

End.

Program 5.2 Penggunaan struktur For dengan blok statemen

Bila program ini dijalankan akan didapatkan hasil:

1 Pascal

2 Pascal

3 Pascal

4 Pascal

5 PascalBandingkan program sebelumnya dengan program berikut ini yang tidak menggunakan blok statemen, sebagai berikut:PROGRAM For;

Uses crt;

Var

i : integer;Begin

Clrscr;

For i := 1 To 5 Do {Ulangi sampai 5 kali}

Write(i);

WriteLn(Pascal);

End.

Program 5.3 Penggunaan struktur For dengan tanpa blok statemen

Bila program ini dijalankan, akan didapatkan hasil:

12345 PascalMaka yang akan diulang adalah statemen yang pertama saja, statemen berikutnya tidak termasuk dalam pengulangan karena tidak dalam bentuk blok statemen.

Contoh:

Program berikut merupakan contoh untuk membuat tabel yang berisi nilai X dari 1 sampai 10 dan nilai-nilai X kuadrat, dan nilai X pangkat 3.

PROGRAM For;

Uses crt;

Var

I,X2,X3, : integer;

SeperX : real;

Begin

Clrscr;

WriteLn(----------------------------);WriteLn(X X*X X*X*X 1/X);WriteLn(----------------------------);For i := 1 To 10 Do {Ulangi sampai 10 kali}

Begin

X2 := X*X;

X3 := X*X*X;

seperX := 1/X; WriteLn(X:3,X2:8,X3:8,SeperX:12:3);

End;WriteLn(-----------------------------);

End.

Program 5.4 Penggunaan struktur For dalam bentuk blok statemen untuk membuat tabel.

LATIHANDengan menggunakan struktur For, buatlah sebuah program penjumlahan deret atau angka dari 1 sampai dengan 100?

Pengulangan Negatip (Descending)Pengulangan negatip adalah pengulangan dengan penghitung (counter) dari besar ke kecil atau dengan kata lain pertambahannya negatip, dengan bentuk umumnya: For variable-kontrol := nilai akhir DownTo Nilai Awal Do Statemen

Dalam statemen ini, nilai akhir harus lebih besar atau sama dengan nilai awal, jika nilai akhir lebih kecil dari nilai awal, maka badan pengulangan tidak akan diproses. Pada awalnya, pencacah diinialisasi dengan akhir, nilai pencacah secara otomatis berkurang satu setiap kali statemen diulangi sampai akhirnya pencacah sama dengan nilai awal. Jumlah pengulangan yang terjadi adalah nilai akhir-nilai awal + 1.Contoh:PROGRAM For_Desc;

Uses crt;

Var

k : integer;

Begin

Clrscr;

For k := 10 DownTo 0 Do {Ulangi sampai 10 kali}

Begin

WriteLn(k);

End;

End.

Program 5.5 Penggunaan struktur For menurun.

Pengulangan Tersarang

Pengulangan tersarang (nested loop) adalah pengulangan yang berada didlaam pengulangan yang lainnya. Pengulangan yang lebih dalam akan diproses terlebih dahulu sampai habis, kemudian pengulangan lebih luar baru akan bertambah, mengerjakan pengulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya. Contoh:

PROGRAM Nested For;

Uses crt;

Var

i,j : integer;

Begin

Clrscr;

For i := 1 To 5 DoBegin

For j := 1 To 3 Do

WriteLn(i:8,j:3);

WriteLn;

End.

End.

Program 5.6 Penggunaan struktur Nested For.

Bila program ini dijalankan, akan didapatkan hasil: 11 12 13 21 22 23

31 32 33

41 42 43

51 52 535.2.2 Struktur WHILEBentuk umum struktur while adalah:

While Kondisi Do statemenStruktur ini digunakan untuk melakukan proses pengulangan suatu statemen atau blok statemen secara terus-menerus selama kondisi logika bernilai True, berarti jika kondisi bernilai False maka pengulangan akan selesai/berhenti.

Yang harus diperhatikan adalah pengulangan harus berhenti atau kondisi logika bernilai False. Agar kondisi logika bernilai False, maka didalam badan pengulangan harus ada intruksi yang mengubah nilai peubah kondisi.Contoh:

PROGRAM While;

Uses crt;

Var

i : integer;Begin

Clrscr;

i := 0;

While i < 5 Do

Begin

Write(i);

WriteLn(Pascal);

i := i + 1;

End;

End.

Program 5.7 Penggunaan struktur While

Bila program ini dijalankan, akan didapatkan hasil:

0 Pascal

1 Pascal

2 Pascal

3 Pascal

4 Pascal

Contoh:Misalkan kita ingin menjumlahkan angka dari 1 sampai dengan N buah data. N dibaca dari input keyboard. Misalnya, N = 5, maka 1+2+3+4+5 = 15.

PROGRAM While;

Uses crt;

Var

i,n,jumlah : integer;

Begin

Clrscr;

jumlah := 0;

i := 1;

Write(Masukkan Jumlah Data : );ReadLn(n);

While i 5;

End.

Program 5.10 Penggunaan struktur Repeat

Contoh:

PROGRAM Repeat;

Uses crt;

Var

i,n, : integer;

Jumlah : real;

Begin

Clrscr;

jumlah := 0;

i := 1;

Write(Masukkan Jumlah Data : );ReadLn(n);

Repeat

jumlah := jumlah + i;

i := i + 1;

Until i > n;

Write(Total hasil penjumlahan dari 1 sampai ,n = ,jumlah);

End.

Program 5.11 Penggunaan struktur Repeat untuk menghitung deret

5.3 Penutup

Struktur for digunakan untuk melakukan perintah perulangan sesuai dengan batas perintah yang diberikan. Program akan melakukan perintah perulangan dan akan berhenti jika kondisi yang dipersyaratkan tidak terpenuhi. Anda diharapkan dapat membedakan antara penggunaan struktur For dan struktur Case.

6.1 Pendahuluan

Sebuah peubah atau variable hanya menyimpan sebuah nilai dari tipe tertentu, ia tidak dapat menyimpan beberapa buah nilai yang bertipe sejenis. Seringkali perlu mengolah sekumpulan data yang dengan tipe yang sama, misalnya hasil ujian 100 orang mahasiswa. Tabel harga barang di pasar swalayan, daftar kode wilayah dalam percakapan interlokal, dan sebagainya. Dalam matematika atatu statistic, kita sering menemukan besaran yang menggunakan nama peubah berindeks seperti:

U1, U2, U3, U4, U5, U6, U7, U8 1, 2, 3, 4,

Besaran-besaran tesebut kumpulan nilai kumpulan nilai dengan tipe yang sama. Nama peubah yang menyatakan kumpulan nilai itu masing-masing u dan . Nilai tertentu dalam kumpulan tersebut diacu dengan menggunakan indeksnya, misalnya U2, U4.

Dalam pemrograman, sekumpulan data yang bertipe sama perlu disimpan sementara di dalam memori computer untuk sewaktu-waktu dimanipulasi. Bila kumpulan data disimpan secara beruntun di dalam memori, maka tiap elemen data dapat diacu dengan menggunakan indeks. Indeks menyatakan posisi data relatif di dalam kumpulannya. Struktur penyimpanan data seperti ini dinamakan larik (Array). Sehingga dapat dikatakan bahwa Larik atau Array adalah struktur data yang menyimpan sekumpulan elemen yang bertipe sama. Setiap elemen dapat diakses langsung melalui indeksnya. Indeks larik haruslah tipe data yang menyatakan keterurutan, misalnya tipe data integer atau karakter.

Sebagai contoh, larik yang bernama A dengan delapan buah elemen dapat dibayangkan sebagai sekumpulan kotak yang terurut seperti diperlihatkan pada gambar . Tiap kotak larik tersebut diberi indeks integer 1,2,..,8. Tiap elemen larik ditulis dengan notasai:

A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8]

Angka didalam angka tanda kurung siku menyatakan indeks larik. Setiap bahasa pemrograman memiliki cara yang berbeda untuk mendefinisikan indeks lariknya. Bahasa C memulai indeksnya dari 0 (nol), sedangkan pada Pascal awal indeks didefiniskan oleh pemrogram, bisa dimulai angka 1, 0, atau bahkan bernilai negatif.

Gambar 6.1 bentuk logical dari array/larikPada gambar 6.1 di atas, setiap elemen larik menyimpan sebuah nilai. Karena seluruh elemen larik bertipe sama, maka nilai yang disimpan oleh setiap elemen juga harus bertipe sama.

6.2 Penyajian6.2.1 Deklarasi Larik

arik bersifat static, artinya jumlah eleemen larik harus sudah diketahui sebelum program dieksekusi. Jumlah elemen larik tidak dapat diubah, ditambah, atau dikurangi selama pelaksanaan program. Mendefenisikan larik dalam bagian deklarasi berarti:1. Mendefinisikan banyaknya elemen larik, dan

2. Mendefinisikan tipe elemen larik.

Tipe elemen larik dapat berupa tipe sederhana (integer, real, char, Boolean, string) dan tipe data scalar atau subrange. Cara mendeklarasikan larik yaitu:VAR

Z : array[1..100] of integer;

Keterangan:

Z = Nama larik

[1..100] = Tipe indeks yang menyatakan jumlah elemenInteger = Tipe data dari larik

Misalnya elemen-elemen dari larik Z adalah:Z[1] := 5;

Z[2] := 7;

Z[3] := 15;

Z[4] := 27;Bila nilai elemen ke-3 dari larik Z akan ditampilkan, maka dapat dipergunakan statemen:

WriteLn(Z[3]);Contoh:PROGRAM Larik1;

Uses crt;

Var

Kata : array[1..4] of string;

i : integer;

Begin

Clrscr;

Kata[1] := Politeknik;

Kata[2] := Negeri;

Kata[3] := Ujung;

Kata[4] := Pandang;

WriteLn;

For i := 1 To 4 Do

WriteLn(isi larik pada indeks ke ,i, = ,Kata[i];

ReadLn;

End.

Program 6.1 Program larik untuk mengetahui posisi elemen larik

Bila program ini dijalankan, maka akan didapatkan hasil:

isi larik pada indeks ke 1 = Politeknik

isi larik pada indeks ke 2 = Negeri

isi larik pada indeks ke 3 = Ujung

isi larik pada indeks ke 4 = PandangContoh:

PROGRAM Larik2;

Uses crt;

Var

Batas : real;

i,j,Jumlah : integer;

Prima : array[1..1000] of char;

Begin

Clrscr;

Batas := sqrt(1000);

Jumlah := 0;

WriteLn(Bilangan Prima sampai dengan 1000);WriteLn;

For i := 2 To 1000 Do

Begin

If Prima * Then

Begin

Write(i);

Jumlah := Jumlah + 1;

If i < Batas Then

Begin

j := i;While j < 1000 Do

Begin

j := j + i;

Prima[j] := *;

End;

End;

End;

End;

WriteLn;

Write(Ada sejumlah ,Jumlah, Bilangan Prima);End.

Program 6.2 Penggunaan Larik untuk mencari bilangan prima

Contoh:

Menghitung nilai rata-rata dari n buah data yang diinputkan.

PROGRAM Larik3;

Uses crt;

Const

Data := 5;

TypeLarikInt : array[1..Data] of integer;

VarA : LarikInt;

i, Jumlah : integer;

Rata : real;

Begin

Clrscr;

Jumlah := 0;

WriteLn(ada ,Data, buah data please input);{Memasukkan data ke i dan menghitung jumlahnya}

For i := 1 To Data Do

Begin

Write(Isikan data ke- ,i, = )Readln(A[i]);

Jumlah := Jumlah + A[i];End;

{Menghitung nilai rata-rata}

Rata := Jumlah / Data;

{Tampilkan hasil}WriteLn(Banyaknya data = ,Data);

WriteLn(Jumlah keselurahan data = ,Jumlah);

WriteLn(Nilai rata-ratanya = ,Rata:5:2);

ReadLn;

End.

Program 6.3 Program larik untuk nilai rata-rata

6.2.2 Larik Dimensi BanyakPada pembahasan sebelumnya, yang kita bahas termasuk kedalam larik 1 (satu) dimensi. Larik dapat juga berdimensi lebih dari satu yakni larik berdimensi 2 (dua) atau berdimensi 3 (tiga) bahkan untuk pemrograman dengan Pascal larik dapat terdiri lebih dari 3 (tiga) dimensi, atau biasa diseut dengan dimensi banyak. Hal ini memungkinkan tergantung dari kapasitas memori computer (RAM). Secara prinsip larik berdimensi banyak (lebih dari 2(dua)) penanganannya smaa dengan larik berdimensi 2 (dua).

Larik dimensi 2 (dua) mewakili suatu bentuk tabel atau matrik, yaitu indeks yang pertama dapat menunjukkan baris dan indeks yang kedua dapat menunjukkan kolom. Cara mendeklarasikan larik dimensi 2 (dua) yaitu:Nama Larik : array[type indeks1,type indeks2] of type larikContoh:

PROGRAM Larik4; {Larik dimensi 2}

Uses crt;

VarMatrik : array[1..2,1..3] of integer;

i : integer;

Begin

Clrscr;

Matrik[1,1] := 2;

Matrik[1,2] := 4;

Matrik[2,1] := 5;

Matrik[2,2] := 7;

{Menampilkan matrik}

For i := 1 To 2 Do

Begin

For j := 1 To 2 Do

Write(Matrik[i,j]:10);

End;

End.

Program 6.4 Program larik dimensi 2 untuk menampilkan matrik 2 x 2

Contoh:

PROGRAM Larik5; {Larik dimensi 2 dengan variable input}

Uses crt;

Type

Matrik : array[1..3,1..3] of integer;VarA : Matrik;i,j : integer;

Begin

Clrscr;

For i := 1 to 3 Do

Begin

For j := 1 To 3 Do

Begin

Write(Nilai[,i, ,j, ] = )ReadLn(A[i,j]);Write(A[i,j]:10);

End;

End;

End.

Program 6.5 Program larik dimensi 2 untuk menampilkan matrik 2 x 2

Contoh:

PROGRAM Larik6; {Larik dimensi 2 dengan variable input}

Uses crt;

Type

Matrik : array[1..3,1..3] of integer;

VarA,B,C : Matrik;

i,j,k : integer;

Begin

Clrscr;

{Memasukkan data Matrik A}

For i := 1 to 3 Do

Begin

For j := 1 To 3 Do

Begin

Write(Nilai[,i, ,j, ] = )ReadLn(A[i,j]);

Write(A[i,j]:10);

End;

End;{Memasukkan data Matrik B}

For i := 1 to 3 Do

Begin

For j := 1 To 3 Do

Begin

Write(Nilai[,i, ,j, ] = )ReadLn(B[i,j]);

Write(B[i,j]:10);

End;

End;

{Mengalikan Matriks A dan B}

For i := 1 to 3 Do

Begin

For j := 1 To 3 Do

Begin

C[i,j] := 0;

For k := 1 To 3 Do

C[i,j] := C[i,j] + A[i,k]*B[k,j];End;

End;{Mencetak Hasil Perkalian Matrik}

For i := 1 to 3 Do

Begin

For j := 1 To 3 Do

Write(C[i,j]);

WriteLn;

End;

End.

Program 6.6 Program larik dimensi 2 untuk perkalian matrik 3x3

6.3 Penutup

Setelah membaca pembahasan ini, anda telah mengetahui tentang variabel array yang memiliki perbedaan dengan sistim pendeklarasian variabel yang telah anda pelajari sebelumnya. Dengan array atau larik anda dapat memesan alokasi memori pada komputer dengan jumlah yang bisa anda ditentukan sendiri dan dapat dimanagement atau dimanfaatkan oleh pemrogram.

7.1 Pendahuluan

Untuk mencapai suatu tujuan besar, maka tujuan tersebut harus dibagi-bagi menjadi tujuan kecil sampai tujuan yang kecil itu merupakan tujuan yang dapat dicapai berdasarkan kondisi dan potensi yang dimiliki saat itu (Al-Khawarizmi).

Ucapan Al-Khawarizmi di atas sangat mengena dalam kegiatan pemrograman, seringkali dalam membuat suatu program besar seorang pemrogram perlu memecah program menjadi beberapa subprogram yang lebih kecil. Tiap subprogram disebut dengan modul yang dapat dirancang oleh pemrogram selain dari orang yang mengembangkan program utama. Modul yang sudah dibuat dapat dipasang ke program lain yang membutuhkannya. Teknik pemrograman seperti ini dinamakan teknik pemrograman modular, dan dalam beberapa bahasa pemrograman dengan sebutan prosedur atau fungsi.

Kelebihan teknik pemrograman prosedur, karena:

1. untuk aktivitas yang harus dilakukan lebih dari satu kali, modularisasi/prosedur menghindari penulisan teks program yang sama secara berulangkali.

2. Kemudahan menulis dan menemukan kesalahan program.

Struktur setiap modul tersebut pada hakikatnya sama dengan struktur program yang telah kita bahas sebelumnya, yaitu terdapat bagian judul, deklarasi, dan bagian pernyataan.

Sebelum membahas lebih lanjut tentang prosedur, ada baiknya anda menyimak penjelasan berikut:

Pernahkah anda mengetahui prosedur keberangkatan ke luar negeri dengan menggunakan pesawat terbang? Jika anda ingin pergi ke luar negeri, maka setidaknya ada tiga prosedur yang harus dilalui yakni Prosedur urus paspor, Prosedur urus visa, dan Prosedur pemberangkatan. Setiap prosedur memiliki intruksi tersendiri dan aksi yang harus anda laksanakan secara beruntun, sehingga pelaksanaan dari prosedur akan menghasilkan output tersendiri misalnya prosedur urus paspor akan menghasilkan output sebuah paspor, dan seterusnya.

7.2 Penyajian7.2.1 Pendefinisian Prosedur

Untuk mendefinisikan suatu prosedur dilakukan dengan cara:PROCEDURE Judul_Prosedur;Judul prosedur sebaiknya mempunyai nama yang unik, diawali dengan kata kerja karena prosedur merupakan suatu aktivitas. Selanjutnya suatu prosedur diikuti dengan deklarasi yang sifatnya optional tergantung dari kebutuhan pembuat program dan bagian pernyataan atau baris perintah.Contoh:PROGRAM Proc1; Uses crt;

Procedure BuatGaris;

Begin

WriteLn(--------);

End;

Begin

Clrscr;

BuatGaris;WriteLn(Pascal);

BuatGaris;

End.

Program 7.1 Prosedur untuk membuat garis

Bila program ini dijalankan, akan didapatkan hasil:

--------Pascal

--------7.2.2 Pengiriman parameter secara nilai

Bila parameter dikirim secara nilai (by value) parameter formal di prosedur akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur. Bila nilai parameter formal di prosedur berubah, maka tidak akan mempengaruhi nilai parameter nyata yang ada di program utama.

Contoh:

PROGRAM Proc2; Uses crt;Procedure Hitung(A,B : integer);

Var

C : integer;

Begin

C := A + B;

WriteLn(Nilai C = ,C);

End;

{Program utama}

Var

X,Y : integer;

Begin

Clrscr;

Write(Nilai X = );Readln(X);

Write(Nilai Y = );Readln(Y);

Hitung(X,Y);

ReadLn;

End.

Program 7.2 Penggunaan suatu Prosedur (by value)

Bila program ini dijalankan, maka akan didapatkan hasil:

Nilai X = 2Nilai Y = 5Nilai C = 7Penjelasan:

1. Prosedur dimulai dengan deklarasi prosedur :

Procedure Hitung(A,B : integer);

2. Hubungan antara paremeter formal di prosedur dengan parameter nyata di modul utama adalah sebagai berikut:

Procedure Hitung(A,B : integer);

Hitung(X,Y);

Terlihat bahwa nilai-nilai parameter nyata X dan Y di program utama dikirimkan ke parameter formal A dan B di prosedur. Dengan demikian nilai parameter A dan B di prosedur akan berisi nilai yang sama dengan parameter X dan Y di badan program utama.7.2.3 Pengiriman Parameter secara AcuanBila pengiriman parameter secara acuan (by reference), maka perubahan-perubahan yang terjadi pada parameter formal di prosedur akan mempengaruhi nilai parameter nyata. Parameter-parameter ini disebut dengan variable parameter serta dideklarasikan dengna menggunakna kata cadangan var, sebagai berikut:PROCEDURE Hitung(Var A,B,C : integer);

Contoh:

PROGRAM Proc3; Uses crt;Procedure Hitung(A,B,C : integer);

Begin

C := A + B;

End;

{Program utama}

Var

X,Y,Z : integer;

Begin

Clrscr;

X := 2;

Y := 3;

Hitung(X,Y,Z);Write(X = ,X, Y = ,Y, Z = ,Z);

ReadLn;

End.

Program 7.3 Penggunaan suatu Prosedur (by reference)

Bila program ini dijalankan, akan didapatkan hasil:

X = 2 Y = 3 Z = 57.2.4 Parameter Global dan Parameter Lokal

Nama-nama variable, konstanta, dan peubah yang dideklarasikan dalam bagian deklarasi prosedur hanya dikenal dalam badan prosedur yang bersangkutan. Nama-nama dalam bagian deklarasi prosedur tersebut bersifat local, sehingga tidak dapat digunakan dalam badan program utama. Sedangkan nama-nama yang dideklarasikan di dalam program utama disebut bersifat global. Nama-nama global dapat dapat digunakan dibagian manapun didalam program, baik di dalam program utama maupun di dalam prosedur.Contoh:

PROGRAM Proc4; Uses crt;Const

i = 1;Procedure AksesGlobal;Begin

WriteLn(Nilai i dalam parameter global : ,i);

Readln;

End;

Begin

Clrscr;

AksesGlobal;End.

Program 7.4 Prosedur untuk membedakan parameter global

Contoh:

PROGRAM Proc5; {melakukan penghitungan rumus matematika dengan prosedur}

Uses crt;

Var

Pilihan : integer;

Procedure Luas_Lingkaran;

Var

r : integer;Luas1 : real;

Begin

Writeln(Program menghitung Luas Lingkaran);

Write(Masukkan Jari Jari = );Readln(r);Luas1 := pi*r*r;

WriteLn(Luas lingkaran dengan jari ,r = ,Luas:5:2);

End;

Procedure Luas_Segitiga;

Var

a,t : integer;

Luas2 : real;

Begin

Writeln(Program menghitung Luas Segitiga);

Write(Masukkan Alas = );Readln(a);

Write(Masukkan Tinggi = );Readln(t);

Luas := 0.5*a*t;

WriteLn(Luas Segitiga = ,Luas2:5:2);

End;

Procedure Luas_Bujursangkar;

Var

s : integer;

Luas3 : real;

Begin

Writeln(Program menghitung Luas BUjursangkar);

Write(Masukkan Sisi = );Readln(s);

Luas := s*s;

WriteLn(Luas Bujursangkar = ,Luas3:5:2);

End;

{Program Utama}

Begin

Clrscr;

WriteLn(Masukkan Pilihan anda 1-3 ? );

Write(---------------------------------);

Write(1. Menghitung Luas Lingkaran : );

Write(2. Menghitung Luas Segitiga : );

Write(3. Menghitung Luas Bujursangkar : );

ReadLn(Pilihan);

Case Pilihan Of

1 : Luas_Lingkaran;

2 : Luas_Segitiga;

3 : Luas_Bujursangkar;

Else

WriteLn(Pilihan anda salah); End;

ReadLn;

End.

Program 7.5 Program rumus matematika dengan prosedur

7.2.5 Acuan Forward pada ProcedureAcuan Forward (forward reference) digunakan untuk mendeklarasikan dimuka judul prosedur terpisah dari bloknya. Judul prosedur yang berisi parameter terpisah ini merupakan judul yang semestinya dan dideklrasikan dengan menambahkan kata cadangan forward. Blok prosedur ini letaknya terpisah dari judulnya, juga diawali dengan judul prosedur, tetapi hanya mencantumkan judul atau nama prosedurnya saja, tanpa mencantumkan parameter formalnya.

Contoh:

PROGRAM Proc6; Uses crt;Procedure Pro1(Var i : integer);Forward;Procedure Pro2(Var i : integer);Begin

WriteLn(Prosedur Pro,i);

Readln;

End;

Procedure Pro1;

Begin

WriteLn(Prosedur Pro,i);

End;Var

i : integer;

{Program utama}

Begin

i := 1;

Pro1(i);

i := 2;

Pro2(i);

End.

Program 7.6 Prosedur dengan acuan forward

Bila program ini dijalankan, akan didapatkan hasil:

Prosedur Pro1Prosedur Pro2

7.2.6 Prosedur Tersarang/BertingkatProsedur tersarang/bertingkat (nested procedure) adalah prosedur yang berada didalam prosedur yang lainnya. Gambar di bawah ini merepresentasikan dari nested procedure.Gambar 7.1 Prosedur tersarang7.3 Penutup

Prosedur digunakan untuk menyederhanakan penulisan program dan mencegah penulisan listing program yang sama/berulang pada satu badan program. Pemanggilan prosedur dilakukan dengan cara mengetikkan nama prosedur yang telah didefinisikan sebelumnya dan dapat dipanggil berulang kali tanpa keluar dari badan program.

8.1 Pendahuluan

Seperti halnya dengan prosedur, fungsi juga merupakan modul program atau subprogram yang mempunyai tujuan yang spesifik.

Fungsi adalah modul program yang memberikan atau mengembalikan (return) sebuah nilai dari tipe tertentu. Di dalam ilmu matematika, kita mengenal cara penulisan fungsi seperti: . Pada contoh tersebut, f adalah nama fungsi, sedangkan x adalah parameter fungsi yang bersangkutan. Nilai yang diberikan oleh fungsi bergantung pada parameter masukannya. Parameter pada fungsi merupakan parameter masukan, ini disebabkan karena parameter pada fungsi merupakan masukan yang digunakan oleh fungsi tersebut untuk menghasilkan nilai.

8.2 Penyajian8.2.1 Deklarasi Fungsi

Bentuk umum suatu fungsi:

FUNCTION identifier(daftar parameter) : typeContoh:PROGRAM Func1;

Uses crt;

Function Hitung(Var A,B :integer) : integer;Begin

Hitung := A + B;End;

{Program utama}

Var

X,Y,Hasil : integer;

Begin

Clrscr;

Write(Nilai X = );Readln(X);Write(Nilai Y = );Readln(Y);

WriteLn;

Hasil := Hitung(X,Y);

WriteLn(X, + ,Y, = ,Hasil);

ReadLn;

End.

Program 8.1 Penggunaan suatu fungsi

Bila program ini dijalankan, akan didapatkan hasil:

Nilai X = 4Nilai Y = 34 + 3 = 7Perbedaan fungsi dengan prosedur adalah:

1. pada fungsi nilai yang dikirimkan balik terdapat pada nama fungsinya(kalau pada prosedur, parameter dikirimkan secara acuan). Pada contoh, nama fungsi tersebut adalah Hitung dan nilai yang diirim balik berada pada nama fungsi tersebut. Sehingga nama fungsi ini harus digunakan untuk menampung hasil yang akan dikirimkan dari fungsi, sebagai berikut:Hitung := A + B;

2. Sedangkan pada prosedur, nama prosedur tersebut tidak dapat digunakan langsung, yang dapat langsung digunakan adalah parameternya yang mengandung nilai balik.(Perhatikan contoh??)8.2.2 Parameter dalam FungsiSama dengan prosedur, parameter dalam fungsi dapat dikirimkan secara nilai (by value) dan secara acuan (by reference). Penulisan judul fungsi yang menggunakan parameter secara nilai yaitu:Function Hitung(A,B :integer) : integer;Contoh:PROGRAM Func2; Uses crt;Function Terbesar(X,Y :real) : real;

Begin

If X>Y Then

Terbesar :=X;

Else

Terbesar :=Y;

End;

{Program utama}

Var

N1,N2 : real;

Begin

Clrscr;

Write(Nilai 1 = );Readln(N1);

Write(Nilai 2 = );Readln(N2);

WriteLn;

WriteLn(Nilai Terbesar adalah : ,Terbesar(N1,N2):9:3);

ReadLn;

End.

Program 8.2 Fungsi untuk menghasilkan nilai terbesar

Bila program ini dijalankan, akan didapatkan hasil:Nilai 1 = 4.5Nilai 2 = 3

Nilai terbesar adalah : 4.5

Contoh:

PROGRAM Func3; Uses crt;Function PangkatI(X:real, Y:integer) : real;

VarPangkat : real;

i : integer;

Begin

Pangkat := 1;

For i := 1 To Y Do

Pangkat := Pangkat * X;PangkatI := Pangkat;

End;

{Program utama}

Var

A,B : integer;

Begin

Clrscr;

Write(Nilai yang akan dipangkatkan : );Readln(A);

WriteLn(Dipangkatkan dengan : );Readln(B);

WriteLn(A , Pangkat ,B, adalah ,PangkatI:5:2); ReadLn;

End.

Program 8.3 Fungsi untuk perpangkatan

8.2.3 Acuan Forward pada Fungsi

Sama halnya dengan prosedur, fungsi juga dapat didklarasikan terpisah dengan bloknya. Deklarasai fungsi yang terpisah dengan blok fungsinya dipergunakan kata cadangan forward dan blok fungsinya juga dideklarasikan ulang, tetapi tidak perlu menyebutkan parameternya.

Contoh:PROGRAM Func4; Uses crt;Function Fungsi1(x : integer);Forward;Function Fungsi2(y : integer);Begin

Fungsi2 := Y * 2;

End;

Function Fungsi1;

Begin

Fungsi1 := Fungsi2(x) + 5;

End;

{Program utama}

Begin

WriteLn(Fungsi1(3));

End.

Program 8.4 Fungsi dengan acuan forward

Bila program ini dijalanka, maka akan didapatkan hasil:

11

8.2.4 Fungsi TersarangFungsi tersarang (nested function) merupakan fungsi yang letaknya berada didalam fungsi yang lainnya.Contoh:

PROGRAM Func5; Uses crt;Function Fungsi1(x : integer): integer; Function Fungsi2(y : integer): integer; Begin

Fungsi2 := Y * 2;

End;

Begin

Fungsi1 := Fungsi2(x) + 7;

End;

{Program utama}

Begin

WriteLn(Fungsi1(3));

End.

Program 8.5 Fungsi tersarang

Bila program ini dijalanka, maka akan didapatkan hasil:

138.3 Penutup

Setelah membaca pembahasan ini, anda akan memiliki pengetahuan tentang bagaimana mendeklarasikan fungsi dan memanggil suatu fungsi. Anda diharapkan dapat mengidentifikasi suatu permasalahan dan anda dapat menentukan metode yang paling tepat, apakah anda menggunakan fungsi atau prosedur.

9.1 Pendahuluan

Unit standar Graph menyediakan suatu pustaka lebih dari 50 buah rutin grafik yang dapat dipergunakan untuk keperluan pembuatan grafik. Untuk dapat membuat grafik dengan fasilitas ini, maka unit standar Graph harus disebutkan dalam program. Disamping file TURBO.TPL yang berisi unit standar Graph, satu atau lebih file dengan extention .BGI yang merupakan grafik driver juga harus ada. Grafik driver ini menunjukkan graphics adapter yang dipergunakan untuk monitor Anda.9.2 Penyajian9.2.1 Menggunakan Grafik

Untuk mulai menggunakan grafik, maka prosedur standar InitGraph harus disebutkan terlebih dahulu dengan sintak:InitGraph(Var Graph Driver, GraaphMode : integer;

DriverPath : string);

GraphDriver merupakan driver yang dipergunakan pada komputer anda. Beberapa kontanta menegenai grafik driver ini telah didefinisikan di unit standar Graph, yaitu:

Detect = 0;

CGA= 1;

MCGA= 2;

EGA= 3;

EGA64= 4;

EGAMono= 5;

RESERVED= 6;

HereMono= 7;

ATT400= 8;

VGA= 9;

PC3270= 10;

Kalau anda menggunakan Color Graphic Adapter (CGA) maka grafik driver yang harus disebutkan adalah CGA atau dengan nilai konstanta 1. tetapi jika anda tidak mengetahuigrafik adapter yang anda gunakan maka dapat dilakukan pendeteksian secara otomatis (autodetection) oleh Turbo Pascal yaitu dengan menggunakan konstanta detect atau dengan nilai 0 (nol).Contoh:

PROGRAM Grafik1; Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,);

CloseGraph;

End.

Program 9.1 Penggunakan Grafik

Penjelasan:

Pada sintak contoh program diatas, digunakan Driver grafik dengan nilai konstantan Detect berarti komputer akan secara otomatis mendeteksi jenis driver grafik yang digunakan. Driver Path menunjukkan direktori letak dari file grafik direktori di hardisk. Bila file grafik driver terletak dicurrent directory, maka DriverPath dapat ditulis dengan nilai kosong (). Kalau file grafik driver terletak didirectory yang lain , maka directory letak grafik driver harus disebutkan.Contoh:

PROGRAM Grafik2; Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,C:\ANDA);

CloseGraph;

End.

Program 9.2 Penggunakan Grafik

9.2.2 Berpindah dari Mode Grafik ke Mode TeksDari keadaan mode grafik bila akan berpindah ke mode teks, maka dapat dilakukan dengan prosedur standar RestoreCrtMode dan untuk kembali ke keadaan mode grafik, dapat dilakukan dengan prosedur standar SetGraphMode. Contoh:

PROGRAM Grafik3; Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,C:\ANDA);

{Menampilkan grafik}

{Kembali ke mode teks}RestoreCrtMode;...

...

{Kembali lagi ke Mode Grafik}

SetGraphMode(Modegrafik);

CloseGraph;

End.

Program 9.3 Beralih dari mode grafik ke mode teks

9.2.3 Sistem KoordinatPada mode grafik, ujung kiri atas dari layar adalah koordinat (0.0). nilai dari x atau kolom bergerak ke arah kanan dan nilai dari y bergerak kearah bawah. Jumlah kolom dan baris tergantung dari mode grafik yang dipergunakan untuk tiap-tiap grafik adapter.Gambar 9.1 Sistem koordinat

Contoh:PROGRAM Grafik4; Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,);

Line(0,0,GetMaxX,GetMaxY);

Writeln(Nilai Maksimum X = ,GetmaxX);

Writeln(Nilai Maksimum Y = ,GetmaxY);

CloseGraph;

End.

Program 9.4 Sistem koordinat di mode grafik

9.2.4 Membuat Garis

Untuk membuat garis dari koordinat (x1,y1) sampai dengan koordinat (x2,y2) dapat dilakukan dengan menggunakan prosedur Line dengan sintak:

Line(x1,y1,x2,y2 : integer);

Untuk membuat garis dari posisi yang terakhir kali sampai dikoordinat tertentu dapat dipergunakan prosedur stndar LineTo dengan sintak:LineTo(x,y : integer);

Untuk menuju ke suatu titik tertentu tanpa menggambarnya dapat dipergunakan prosedur stndar MoveTo dengan sintak:

MoveTo(x,y : integer);

Sedangkan untuk menambah garis secara relatip dari titik terakhir kali dapat dilakukan dengan menggunakan prosedur standar LineRel dengan sintak:

LineRel(x,y : integer);

Contoh:

PROGRAM Grafik5; Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,);

Line(70,50,100,20);

Line(70,60,100,30);

CloseGraph;

End.

Program 9.5 Menggambar garis

Bila program diatas dijalankan, maka akan didapatkan hasil:Contoh:PROGRAM Grafik6; Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,);

MoveTo(160,150);

LineTo(160,150);

LineTo(130,80);

MoveTo(160,50);

LineTo(190,80);

CloseGraph;

End.

Program 9.6 Menggambar bentuk panah dengan perintah garis

9.2.5 Membuat KotakUntuk membuat suatu gambar kotak digunakan prosedur Rectangle dengan sintak:Rectangle(x1,y1,x2,y2 : integer);

Contoh:

PROGRAM Grafik7; {membuat kotak} Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,);

Setcolor(1);

Rectangle(10,65,85,125);

CloseGraph;

End.

Program 9.7 Menggambar bentuk kotak

9.2.6 Membuat Lingkaran

Untuk membuat suatu bentuk lingkaran dapat digunakan prosedur standar Circle dengan sintak:

Circle(x,y : integer; radius : word);

X,y adalah titik pusat lingkaran dan radius adalah jari-jari lingkarannya.

Contoh:

PROGRAM Grafik8; {Membuat lingkaran} Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

r : word; { Jari-Jari Lingkaran }

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,);

For r := 1 To 20 Do Circle(150,100,r*2);

CloseGraph;

End.

Program 9.8 Menggambar bentuk lingkaran

9.2.7 Mengecat Obyek

Untuk mengecet suatu obyek gambar dengan warna atau suatu pattern tertentu dapat digunakan prosedur standar Floodfill dengan sintakFloodFill(x,y :integer; Border : Word);

X dan Y dan titik koordinat sembarang yang berada di dalam area obyek. Bila x dan y berada diluar obyek area gambar, maka yang akan dicat dengan warna atau pattern adalah daerah luar gambarnya. Border adalah warna tepi dari obyek gambar.Contoh:

PROGRAM Grafik9; {membuat kotak dan mengecatnya} Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,);

Setcolor(1);

Rectangle(10,65,85,125);

FloodFill(15,70,1);

CloseGraph;

End.

Program 9.9 Menggambar bentuk kotak dan mengecatnya

Untuk pengecatan dengan arsir pada obyek digunakan prosedur standar SetFillStyle atau SetFillPattern dengan sintak:SetFillSyle(Pattern : word; Color : word);Beberapa konstanta telah didefinisikan untuk pattern pengarsiran yaitu mulai dari nilai 1 sampai dengan 12.Contoh:

PROGRAM Grafik10; {membuat kotak dengan memberinya style} Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,);

Setcolor(1);

SetFillStyle(4,1);

Rectangle(10,65,85,125);

CloseGraph;

End.

Program 9.10 Menggambar bentuk kotak

9.2.8 Membuat Tulisan

Turbo Pascal menyediakan 2 (dua) buah prosedur standar yang khusus digunakan untuk menampilkan text atau tulisan di mode grafik dengan suatu font yang tertentu, yaitu prosedur standar OutText dan OutTextXY.

Prosedur standar OutText untuk menampilkan tulisan mulai pada posisi koordinat yang terakhir dengan sintak:

OutText(Textstring : string);

Contoh:PROGRAM Grafik11; {membuat text di mode grafik} Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,);

MoveTo(10,5); Outtext(Tulisan ini di Mode Grafik);

MoveTo(10,15); Outtext(Tulisan ini di Mode Grafik);

CloseGraph;

End.

Program 9.11 Menampilkan tulisan di mode Grafik dengan OutText

Prosedur standar OutTextXY digunakan untuk menampilkan text di posisi koordinat tertentu dengan sintak:

OutTextXY(10,5, Tulisan ini di Mode Grafik);

Contoh:

PROGRAM Grafik12; {membuat text di mode grafik} Uses Graph;

Var

DriverGrafik, ModeGrafik : integer;

Begin

DriverGrafik = Detect;

InitGraph(DriverGrafik,ModeGrafik,);

OuttextXY(10,5, Tulisan ini di Mode Grafik);

OuttextXY(10,25, Tulisan ini di Mode Grafik);

CloseGraph;

End.

Program 9.12 Menampilkan tulisan di mode Grafik dengan OutTextXY

Kelebihan lain dari penggunaan prosedur standar OutText adalah dapat dipergunakannya beberapa bentuk huruf atau font, arah dari tulisan dapat diatur (vertikal, horisontal), serta besarnya tulisan juga dapat ditentukan. Prosedur standar yang digunakan yaitu SetTextStyle dengan sintak:SetTextStyle(Font,Direction :word; charsize :word);

Font merupakan bentuk huruf yang diinginkan dan beberapa konstanta telah didefinisakn untuk ini, yaitu:DefaultFont = 0; {8x8 bit mapped, bentuk huruf normal}

TripleFont = 1; {Stroked fonts}

SmallFont = 2; {bentuk huruf kecil}

SansSerifFont = 3; {bentuk huruf SansSerif}

GothicFont = 4; {bentuk huruf Gothic}

Selain DefaultFont