modul pascal

50
10PENDAHULUAN Ada sebuah anekdot tentang pandangan yang salah kaprah mengenai komputer. Sebagai sebuah mesin “pintar”, komputer terlanjur dipercaya orang mampu mengerjakan perintah apa saja yang diberikan oleh manusia. Komputer adalah benda ajaib yang mampu menyelesaikan masalah apa saja yang diinginkan orang. Anggapan tersebut tidak seluruhnya salah. Komputer memang alat bantu dalam menyelesaikan masalah. Persoalannya, komputer tidak begitu saja langsung dapat menyelesaikan masalah yang “disodorkan”. Orang harus merumuskan langkah – langkah penyelesaian masalah itu dalam suatu runtunan instruksi. Komputerlah yang nanti mengerjakan runtunan instruksi tersebut, karena komputer dapat mengerjakannya dengan cepat, akurat, bahkan berulang – ulang tanpa kenal lelah dan bosan. Sekumpulan instruksi yang merupakan penyelesaian masalah itu dinamakan program. Program “dimasukkan” ke dalam komputer, komputer mengerjakan instruksi – instruksi di dalam program tersebut, lalu memberikan hasil atau keluaran yang diinginkan. Agar program dapat dilaksanakan oleh komputer, program tersebut harus ditulis dalam suatu bahasa yang dimengerti oleh komputer. Sebagaimana dalam kehidupan, kita hanya dapat memberikan perintah kepada orang lain dalam bahasa yang ia mengerti. Misalnya kepada orang Inggris, kita hanya dapat memberikan tugas kepadanya dalam bahasa Inggris. Karena komputer adalah mesin, maka program harus ditulis dalam bahasa yang khusus dibuat untuk “berkomunikasi” dengan komputer. Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman. Sampai saat ini terdapat ratusan bahasa pemrograman. Bahasa – bahasa ini akan terus berkembang dan bertambah jumlahnya. Yang membuat dan mendefinisikan bahasa itu adalah manusia juga. Ada bahasa yang cukup sulit “dipahami” oleh penggunanya dikarenakan tata bahasanya yang “primitif” atau karena orientasi bahasanya lebih “dekat” ke bahasa mesin (bahasa tingkat rendah – low level language) daripada bahasa manusia (bahasa tingkat tinggi – high level language). Kebanyakan bahasa tingkat tinggi mengambil kata – kata dari bahasa Inggris sehingga ia mudah dipelajari oleh pemakainya. Pada mulanya orang mempelajari suatu bahasa komputer melalui aturan tata bahasanya. Ketika bahasa baru muncul, yang umumnya lebih maju dibandingkan dengan bahasa generasi lama, orang pun mempelajarinya lalu menuliskan program dalam bahasa baru tersebut. Sebuah bahasa dapat mempunyai beberapa versi, setiap versi dirancang untuk komputer atau lingkungan 1

Upload: al-tiwi-pollepe

Post on 27-Oct-2015

474 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Modul Pascal

10PENDAHULUANAda sebuah anekdot tentang pandangan yang salah kaprah mengenai komputer. Sebagai sebuah mesin “pintar”, komputer terlanjur dipercaya orang mampu mengerjakan perintah apa saja yang diberikan oleh manusia. Komputer adalah benda ajaib yang mampu menyelesaikan masalah apa saja yang diinginkan orang.

Anggapan tersebut tidak seluruhnya salah. Komputer memang alat bantu dalam menyelesaikan masalah. Persoalannya, komputer tidak begitu saja langsung dapat menyelesaikan masalah yang “disodorkan”. Orang harus merumuskan langkah – langkah penyelesaian masalah itu dalam suatu runtunan instruksi. Komputerlah yang nanti mengerjakan runtunan instruksi tersebut, karena komputer dapat mengerjakannya dengan cepat, akurat, bahkan berulang – ulang tanpa kenal lelah dan bosan. Sekumpulan instruksi yang merupakan penyelesaian masalah itu dinamakan program. Program “dimasukkan” ke dalam komputer, komputer mengerjakan instruksi – instruksi di dalam program tersebut, lalu memberikan hasil atau keluaran yang diinginkan.

Agar program dapat dilaksanakan oleh komputer, program tersebut harus ditulis dalam suatu bahasa yang dimengerti oleh komputer. Sebagaimana dalam kehidupan, kita hanya dapat memberikan perintah kepada orang lain dalam bahasa yang ia mengerti. Misalnya kepada orang Inggris, kita hanya dapat memberikan tugas kepadanya dalam bahasa Inggris. Karena komputer adalah mesin, maka program harus ditulis dalam bahasa yang khusus dibuat untuk “berkomunikasi” dengan komputer. Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman.

Sampai saat ini terdapat ratusan bahasa pemrograman. Bahasa – bahasa ini akan terus berkembang dan bertambah jumlahnya. Yang membuat dan mendefinisikan bahasa itu adalah manusia juga. Ada bahasa yang cukup sulit “dipahami” oleh penggunanya dikarenakan tata bahasanya yang “primitif” atau karena orientasi bahasanya lebih “dekat” ke bahasa mesin (bahasa tingkat rendah – low level language) daripada bahasa manusia (bahasa tingkat tinggi – high level language). Kebanyakan bahasa tingkat tinggi mengambil kata – kata dari bahasa Inggris sehingga ia mudah dipelajari oleh pemakainya.

Pada mulanya orang mempelajari suatu bahasa komputer melalui aturan tata bahasanya. Ketika bahasa baru muncul, yang umumnya lebih maju dibandingkan dengan bahasa generasi lama, orang pun mempelajarinya lalu menuliskan program dalam bahasa baru tersebut. Sebuah bahasa dapat mempunyai beberapa versi, setiap versi dirancang untuk komputer atau lingkungan sistem operasi tertentu. Antara satu versi bahasa dengan versi lainnya terdapat perbedaan. Jadi agar program dapat dijalankan pada komputer yang lain, orang harus menulis program dalam versi bahasa yang sesuai dengan komputer tersebut. Jadi, orang yang menulis program sangat terikat dengan aturan bahasa dan spesifikasi mesin yang akan menjalankannya.

Saat ini, dengan berkembangnya teknik pemrograman terstruktur, orang tidak lagi memecahkan masalah dengan langsung menulis programnya dalam bahasa pemrograman. Orang mulai memikirkan suatu cara penyelesaian masalah yang akan diprogram dengan menekankan pada desain atau rancangan yang mewakili pemecahan masalah tersebut. Desain berisi urutan langkah – langkah pencapaian solusi yang ditulis dalam notasi – notasi deskripsi. Urutan langkah – langkah yang sistematis untuk menyelesaikan sebuah masalah dinamakan algoritma. Notasi untuk menuliskan algoritma disebut notasi algoritmik. Notasi algoritmik bukan notasi bahasa pemrograman, karena itu program dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, program dalam notasi algoritmik harus ditranslasikan (diterjemahkan) ke dalam notasi bahasa pemrograman yang dipilih.

Menulis program bukan hanya merupakan suatu kreatifitas tetapi juga merupakan sebuah penerapan disiplin ilmu secara teliti, karena program merupakan implementasi dari suatu urutan langkah guna menyelesaikan suatu masalah.Pemrogram adalah orang yang bekerja menyusun suatu program. Pemrogram (programmer) yang baik akan menghasilkan program yang mampu memberikan solusi yang tepat dan benar. Pemrogram dapat digolongkan dalam dua jenjang, yaitu amatir dan profesional. Pemrogram

1

Page 2: Modul Pascal

amatir biasanya hanya menghasilkan program yang relatif hanya untuk memecahkan masalah – masalah kecil, sedangkan pemrogram profesional memiliki kemampuan untuk menyusun program untuk memecahkan masalah – masalah yang besar dan rumit.Banyak orang yang memiliki hobi bermain dengan komputer yang kemudian menjadi pemrogram amatir. Namun untuk menyelesaikan masalah – masalah yang cukup rumit dibutuhkan pemrogram yang profesional dalam bidangnya. Banyak pemrogram profesional memulainya dengan sebuah sertifikat dari sebuah kursus, dari akademi atau perguruan tinggi di bidang ilmu komputer atau dari ilmu lain yang berkaitan dan kemudian mereka mencari pengalaman dan terus berlatih.

Untuk menghasilkan program yang baik dibutuhkan pemrogram yang baik dan berkualitas pula. Adapun kriteria pemrogram yang baik adalah :

Mampu menyusun pemecahan masalah yang baik Menguasai bahasa pemrograman dengan baik Mampu menulis program dengan teknik yang baik Mampu menyusun program yang baik Dapat bekerja sama dalam suatu tim kerja Dapat bekerja secara efisien dan tepat waktu

DASAR – DASAR ALGORITMA DAN PEMROGRAMANProgram adalah kata,ekspresi, atau pernyataan yang disusun dan dirangkai menjadi satu kesatuan prosedur, yang berupa urutan langkah, untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa pemrograman sehingga dapat dieksekusi oleh komputer.

Pemrograman adalah proses mengimplementasikan sederetan perintah atau urutan langkah untuk menyelesaikan suatu masalah dengan menggunakan suatu bahasa pemrograman. Dapat dikatakan pemrograman adalah kegiatan yang berhubungan dengan pembuatan program.

Bahasa pemrograman adalah prosedur atau tata cara penulisan program, terdapat 2 faktor penting yaitu sintaks dan semantik. Sintaks adalah aturan-aturan gramatikal yang mengatur tata cara penulisan kata, ekspresi, dan pernyataan. Semantik adalah aturan-aturan untuk menyatakan suatu arti.

Tahapan pemrograman komputer :1. Fase Problem Solving2. Fase Implementasi

Suatu program dikatakan baik jika :1. Bekerja sesuai dengan tujuan dan memenuhi spesifikasi yang telah ditentukan2. Tidak mengandung kesalahan3. Cepat dalam waktu pelaksanaannya (eksekusi program)4. Efisien dalam penggunaan memori komputer5. User friendly6. Portability7. Kemudahan merawat & mengembangkan program

2

Analisa Problem

Perancangan Algoritma

Pembuatan Program

Test

Test

Dokumentasi

DipakaiFase IFase Problem Solving

Fase IIFase Implementasi

Page 3: Modul Pascal

Program dibagi dalam 3 bentuk :1. Konvensional

Semua langkah – langkah yang dibutuhkan untuk menghasilkan suatu informasi tanpa ada aturan tertentu.

2. Terstruktur- mengandung teknik pemecahan masalah yang tepat dan benar- memiliki algoritma pemecahan masalah yang sederhana, standar, dan efektif- penulisan program memiliki struktur logika yang benar dan mudah dipahami- terdiri dari 3 struktur dasar, yaitu struktur sekuensial, penyeleksian kondisi dan

perulangan- menghindari penggunaan GOTO

3. Event driven, OOP, Multi threadingDapat melakukan beberapa proses dalam satu waktu.

Bahasa pemrograman dibedakan menjadi 4 :1. Low Level Language (bahasa tingkat rendah)

Merupakan bahasa mesin, berekstensi exe, com, dsb. Bahasa jenis ini dirancang agar setiap instruksi langsung dikerjakan oleh komputer, tanpa harus diterjemahkan terlebih dahulu. Sulit dipahami manusia.

2. Middle Level Language (bahasa tingkat menengah) Tidak begitu mudah dipahami karena selain harus tahu perintah-perintahnya juga harus tahu cara kerja mesin. Contoh : bahasa Assembler.

3. High Level Oriented Programming Berorientasi ke bahasa manusia (bahasa Inggris), mudah dipahami. Program dalam bahasa ini tidak dapat langsung dilaksanakan oleh komputer. Perlu diterjemahkan dulu ke bahasa mesin (bahasa tingkat rendah) sebelum dieksekusi oleh CPU. Contoh : bahasa Pascal, Cobol, Basic, Dbase, C,dll

4. Object Oriented Programming (bahasa berorientasi objek) : berbasis visual, contoh : Delphi, Visual Basic, dll

Proses mengubah (menterjemahkan) dari bentuk bahasa tingkat tinggi ke tingkat rendah dalam bahasa pemrograman ada 2 tipe :

1. Interpreter Membaca dan diterjemahkan tiap baris. Contoh bahasa pemrograman dengan tipe interpreter: bahasa Perl, Phyton, PHP,dll

2. CompilerMembaca program & menerjemahkan secara keseluruhan, contoh : Pascal, C,dllProgram tingkat tinggi = kode sumber (source code)Hasil dari terjemahan = object code atau executable

Ada juga bahasa pemrograman yang menggabungkan 2 tipe diatas, contoh : Java.

ALGORITMA

Algoritma adalah urutan langkah – langkah logis yang disusun secara sistematis dari sebuah prosedur yang harus ditempuh untuk menyelesaikan suatu masalah yang masih ditulis dalam bahasa manusia.

Algoritma bisa direpresentasikan dengan 2 macam cara, yaitu :1. Flowchart

Representasi algoritma dengan menggunakan bagan alir dan lambang – lambang tertentu.Flowchart memudahkan dalam melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.Simbol :

3

Input / Output

Proses

Testing

Page 4: Modul Pascal

2. PseudocodeMerupakan bentuk prosedur format pengujian algoritma dengan struktur bahasa pemrograman namun masih menggunakan bahasa manusia.

Struktur Dasar Algoritma1. Runtunan (sequence)

4

Terminal = menunjukkan awal & akhir program

Connector = penghubung pada satu halaman

Preparasi = memberikan nilai awal pada suatu variabel/konstanta

Predefined Proses = proses yg ditulis sebagai subprogram, yaitu prosedur/fungsi

Off Page Connector = penghubung pada halaman yang berbeda

Arah Aliran Proses

Manual Input

Magnetic Disk

File

Display

Page 5: Modul Pascal

Terdiri atas satu proses yang diikuti proses yang lain

Contoh :

Flowchart menghitung luas lingkaran

2. Pemilihan (selection)Suatu instruksi dikerjakan jika kondisi tertentu dipenuhi. Nilai suatu kondisi dapat ditest dan menghasilkan kondisi benar atau salah. Untuk melakukan test kondisi biasanya digunakan operasi relasi sebagai berikut :

NOTASI ARTI=><

Sama denganTidak sama denganLebih besarLebih kecilLebih besar atau sama denganLebih kecil atau sama dengan

Y

T

Contoh :Flowchart menentukan x adalah bilangan ganjil/genap.

5

Proses A

Proses B

Mulai

Pi 3.14

Masukkan R

L Pi * R* R

Tulis L

Selesai

Test kondi

si

Proses A

Proses B

Mulai

Baca x

Page 6: Modul Pascal

Y

T

3. PengulanganDisebut juga iterasi / loop, instruksi atau serangkaian instruksi dikerjakan secara berulang sepanjang kondisi tertentu masih menghendaki.

T

Y

Contoh :Flowchart mencetak angka 5

T

Y

Notasi Algoritma1. Judul atau kepala

Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma tersebut.

2. Bagian deklarasiBagian untuk mendefinisikan semua nama yang dipakai di dalam algoritma. Nama tersebut bisa berupa nama variabel, tipe, prosedur, fungsi, dsb.

3. Bagian deskripsiBerisi uraian langkah – langkah penyelesaian masalah.

6

Cetak “Bilangan Ganjil”

Selesai

x mod 2 = 0

Test kondi

si

Proses A

Proses B

Mulai

Cetak x

Selesai

x < 5

x = 0

x = x + 1

Cetak “Bilangan Genap”

Page 7: Modul Pascal

Contoh :Algoritma Hitung_LingkaranDEKLARASI const phi = 3.14 r,luas,keliling : realDESKRIPSI read(r) luas phi * r * r keliling 2 * phi * r write(luas,keliling)

Algoritma Menentukan_Bilangan_Ganjil_GenapDEKLARASI x : integerDESKRIPSI read(x) if x mod 2 = 0 then

write(“Bilangan genap”) else write(“Bilangan ganjil”) endif

Algoritma Mencetak_Angka_5DEKLARASI x : integerDESKRIPSI x 0

while x < 5 do x x+1

endwhile write(x)

PRAKTIKUM MINGGU 1PENGENALAN PROGRAM PASCAL

STRUKTUR RUNTUNAN (SEQUENCE)

LANGKAH-LANGKAH PEMBUATAN PROGRAM1. Untuk menulis program baru caranya tekan tombol ALT+ F pilih NEW terlebih dahulu

sebelum Anda mengetik program Anda.

7

Page 8: Modul Pascal

2. Ketikkan program Anda.3. Simpan program Anda. Sebelum menyimpan tentukan letak (misal direktori atau folder)

dimana program akan disimpan dengan cara ALT + F pilih Change Dir .Setelah memilih direktori/folder, tekan tombol F2 atau ALT + F pilih Save atau Save As . Kemudian ketikkan nama program Anda, misalnya Contoh1.pas <enter>

4. Jalankan program dengan menekan tombol ALT + R pilih RUN atau CTRL + F95. Bila ada kesalahan perbaiki kesalahan tersebut kemudian Anda ulangi langkah 3 dan 46. Untuk membuat program baru ulangi langkah 1.7. Bila Anda ingin mengecek apakah program Anda sudah tersimpan atau ingin menampilkan

program Anda kembali ke layar, maka tekan tombol ALT + F OPEN kemudian enter.

Selanjutnya Anda kerjakan contoh-contoh program dibawah ini beserta tugasnya.

1. BARIS KOMENTARBaris komentar adalah baris-baris yang menjelaskan maksud dari perubah (variabel) yang digunakan atau maksud dari program itu sendiri. Hal ini dimaksudkan untuk memudahkan pelacakan atas perubah (variabel) yang digunakan apabila program yang digunakan cukup besar atau memudahkan orang lain memahami program yang kita buat. Dalam program, baris komentar diletakkan diantara tanda (* dan *) atau diantara tanda { dan } . Baris ini tidak dikerjakan oleh komputer, hanya dianggap sebagai baris kosong. Contoh : clrscr; {bersih layar} var a : integer (* variabel untuk alas segitiga *)

2. BENTUK / STRUKTUR PROGRAM PASCALBentuk program Pascal mirip dengan kebanyakan program bahasa tingkat tinggi lainnya. Bentuk umumnya adalah :1. Judul Program2. Blok program

a. Bagian deklarasi Deklarasi label Deklarasi konstanta Definisi tipe Deklarasi variabel Deklarasi prosedur Deklarasi fungsi

b. Bagian pernyataan / statemen

2.1. Judul ProgramJudul program sifatnya sebagai dokumentasi saja, tidak signifikan terhadap proses program. Bentuk umumnya sebagai berikut :

Program (nama program);Contoh :

Program Hitung_Luas;Keterangan :

Program adalah kata tercadangHitung_Luas adalah nama program

2.2 Blok Programa. Deklarasi

Deklarasi adalah bagian untuk mendefinisikan semua nama yang dipakai dalam program. Nama tersebut dapat berupa nama label, tetapan (konstanta), nama variabel, nama tipe, nama prosedur, nama fungsi.

b. Pernyataan / statemen

8

Page 9: Modul Pascal

Adalah bagian yang berisi perintah pengerjaan program. Kumpulan statemen membentuk program. Statemen berada di bagian deklarasi statemen dengan diawali kata cadangan begin dan end.Sintaks :

BeginDaftar_statemen;

End;

Ketentuan penulisan statemen1. Diakhiri dengan titik koma2. Huruf besar atau huruf kecil tidak dibedakan3. Dalam satu baris boleh lebih dari satu statemen4. Satu statemen boleh terdiri dari beberapa baris5. Konstanta tidak boleh dipecah dalam beberapa baris

Statemen terdiri dari :1. Statemen pengerjaan

Digunakan untuk memasukkan suatu nilai tertentu ke dalam suatu variabel.Sintaks :

pengenal_variabel := ungkapan;Contoh : x = a+1

2. Statemen prosedurDigunakan untuk mengaktifkan suatu prosedur yang telah didefinisikan pemakai atau oleh PascalContoh :

tambah(x,y);

3. Statemen GOTOKata cadangan GOTO diikuti dengan pengenal label untuk melompat ke baris tertentu.

4. Statemen kosongStatemen yang tidak berisi simbol apapun.Contoh :

Begin

End;

5. Statemen InputUntuk memasukkan atau membaca data yang akan diolah. Pascal mempunyai 2 statemen untuk membaca data yaitu statemen READ dan READLN. Statemen READ tidak memperhatikan batas baris, rinci data akan selalu dibaca tidak tergantung apakah ada di baris yang sama atau tidak. Statemen READLN memulai pembacaan data pada posisi baris saat itu dan pergi ke awal baris baru setelah pembacaan selesai.Sintaks :

read(var1, var2, …) Ataureadln(var1, var2, …)

6. Statemen OutputUntuk mencetak hasil pengolahan data (keluaran). Pascal mempunyai 2 statemen yaitu WRITE dan WRITELN.Sintaks :

write(var1, var2, …) atauwriteln(var1, var2, …)

9

Page 10: Modul Pascal

3. VARIABELVariabel dalam program digunakan untuk menyimpan suatu nilai tertentu dimana nilai tersebut dapat berubah-ubah. Setiap variabel mempunyai tipe dan hanya data yang bertipe sama dengan tipe variabel yang dapat disimpan di dalam variabel tersebut. Setiap variabel mempunyai nama. Pemisahan antar variabel dilakukan dengan memberikan tanda koma.Contoh :Var

Jumlah : integer;harga_per_unit, total_biaya : real;

Dari contoh diatas,variabel jumlah hanya boleh menerima data yang bertipe integer (bulat), tidak boleh menerima data bertipe lainnya. Variabel harga_per_unit dan total_biaya hanya bisa diisi dengan bilangan real (pecahan).

4. KONSTANTABerbeda dengan variabel yang isinya bisa berubah selama eksekusi program berlangsung, nilai suatu konstanta tidak bisa berubah.

Sintaks : Const var1 = nilai1;

Contoh :const phi : real = 3.14; pajak = 0,1;

5. LABELUntuk menyatakan lokasi tempat pernyataan yang dituju oleh sebuah pernyataan GOTO dalam program.

Sintaks : Label daftar_label;

Contoh : label ulang;

6. KLAUSA USESUses digunakan apabila ada unit (baik yang dibuat sendiri atau yang telah disediakan

Pascal) yang akan dilibatkan.

CONTOH PERMASALAHAN 1 : Menghitung pajak dari suatu harga barangprogram satu;uses crt;const pajak = 0.1;var namabarang : string; hargabarang : real;begin namabarang := ’sabun harmony’; hargabarang:=800; writeln(’harga’, namabarang, ’=’, hargabarang:5:2); writeln(’pajak :’,pajak*hargabarang:5:2); readln;end.CONTOH PERMASALAHAN 2 : Menghitung luas dan keliling lingkaran dengan besar jari-jari lingkaran sudah ditentukan.

program dua; {Menghitung Luas,Keliling Lingkaran,jari diketahui}

uses crt; {menggunakan layar monitor}const

10

Page 11: Modul Pascal

phi : real = 3.14;var

jari,luas,keliling : real;begin clrscr; jari := 10; luas:=phi*jari*jari; keliling:=2*phi*jari; writeln(’Jari-jari lingkaran = ’, jari); writeln(‘Luas lingkaran = ‘,luas); writeln(’Keliling lingkaran = ’,keliling); readln;end.

CONTOH PERMASALAHAN 3 : Menghitung luas dan keliling lingkaran dengan besar jari-jari lingkaran dimasukkan melalui keyboard.

program tiga; {Menghitung Luas dan Keliling Lingkaran}uses crt;const

phi = 3.14;var

jari,luas,keliling : real;begin clrscr; write(’Masukan jari-jari lingkaran = ’); readln(jari); luas=phi*jari*jari; keliling=2*phi*jari; writeln(‘Luas lingkaran = ‘,luas); writeln(’Keliling lingkaran = ’,keliling); readln;end.

CONTOH PERMASALAHAN 4 : Menukarkan dua buah nilai dari dua buah variabel. Misalnya, sebelum pertukaran nilai a=5, nilai b=3, maka setelah pertukaran nilai a=3, nilai b=5.

Program Empat; {Menukarkan nilai a dengan b}Uses crt;

Var a,b,c : integer;

Begin clrscr; writeln(‘Program Menukar 2 Buah Nilai’); writeln(’Sebelum ditukar ’); writeln(’--------------- ’); writeln(’Bilangan pertama ’); readln(a); writeln(‘Bilangan kedua = ‘); readln(b); c:=a; a:=b; b:=c;

writeln(‘Setelah ditukar’); writeln(‘---------------‘); writeln(’Bilangan pertama = ’,a); writeln(’Bilangan kedua = ’,b); readln;end.

11

Page 12: Modul Pascal

CONTOH PERMASALAHAN 5 : Mengkonversikan total detik menjadi jam menit detik.Petunjuk : 1 menit = 60 detik

1 jam = 3600 detik

Program Lima;{Mengkonversi total detik menjadi jam menit detik}

Uses crt; Var

totdet,jam,sisa,menit,detik : integer; Begin

clrscr; writeln(’Program Konversi Detik Menjadi Jam Menit Detik’); writeln(’----------------------------------------------’); writeln(’Masukkan total detik = ’); readln(totdet); jam:=totdet div 3600; sisa:=totdet mod 3600; menit:=sisa div 60; detik:=sisa mod 60; writeln(’Jumlah jam = ’,jam); writeln(’Jumlah menit ’,menit); writeln(’Jumlah detik ’,detik); readln;end.

TUGAS 1. Buat program untuk menghitung luas segitiga dan persegi panjang dengan besar alas,tinggi,

panjang, lebar dimasukkan melalui keyboard2. Seorang user di warnet mulai menggunakan internet pada pukul J1 dan selesai pada pukul J2.

Bila tarip penggunaan di warnet tersebut 1 jam Rp. 5000,- maka buat program untuk menghitung lama pemakaian (dalam jam menit detik) dan biaya yang harus dibayar user.Keterangan : tampilan program seperti berikut :

PROGRAM BILLING WARNET

Jam mulai :Menit mulai : Detik mulai :

Jam selesai :Menit selesai :Detik selesai :=======================================Lama pemakaian : jam menit detik

1 jam : Rp. Total bayar : Rp.

PRAKTIKUM MINGGU 2

TIPE DATA DAN OPERATOR PADA PASCAL

1. TIPE DATA

12

Page 13: Modul Pascal

Tipe data menentukan nilai yang dapat disimpan variabel tersebut dan operator-operator apa yang dapat dikenakan padanya. Contoh : tipe real hanya dapat menyimpan bilangan real, dan operator yang dapat dikenakan padanya antara lain operator penjumlahan, perkalian, dsb.Macam tipe data :

Bilangan bulat Boolean

Tipe ordinal Karakter Subjangkauan / subrange Terbilang /enumerated

Tipe sederhana

Tipe string Tipe real

Tipe data Larik (array) Rekaman (record)

Tipe terstruktur Himpunan (set) Berkas (file)

Tipe pointer

Tipe prosedural Tipe objek

Tipe Bilangan Bulat Tipe bilangan bulat digunakan untuk menyimpan data numerik berupa bilangan bulat.

Tipe Jangkauan Ukuran dalam memoriShortint -128…127 8 bitInteger -32768…32767 16 bitLongint -2147483648…2147483647 32 bitByte 0…255 8 bitWord 0…65535 16 bit

Contoh :Var Jumlah : byte ;BeginJumlah := 250;Writeln (‘Nilai jumlah = ‘, jumlah);

End.

Karena jumlah bernilai 250 maka cukup menggunakan tipe data byte, bila menggunakan shortint tidak mencukupi, menggunakan integer terlalu besar.

Tipe BooleanTipe Boolean adalah tipe yang mempunyai nilai benar (True) atau salah (False), berukuran 1 byte.Contoh :

Var lagi : boolean ;Beginlagi := True;Writeln (‘Nilai lagi = ‘, lagi);

End.

Tipe KarakterTipe karakter digunakan untuk menyimpan data alfanumerik, seperti :

- huruf A sampai dengan Z, misal :’A’, ’z’- angka 0 sampai dengan 9, misal ’1’, ’9’- simbol khusus, misal ’@’, ’$’, ’%’,- spasi- karakter kontrol (karakter dengan nilai ASCII dibawah 32),misal Tab , Backspace

13

Page 14: Modul Pascal

- karakter ASCII tidak standar pada PC (karakter dengan nilai ASCII antara 128 hingga 255).

Dideklarasikan dengan char, berukuran 1 byte.Untuk memberi nilai pada variabel bertipe karakter, dapat menggunakan beberapa cara :

1. Menuliskan karakter di dalam tanda petik tunggal.Contoh : ch := ‘A’;

2. Menuliskan tanda # diikuti dengan nomor ASCII dari karakter yang ditulis.Contoh :

ch := #65; {sama artinya dengan ch:=’A’}3. Mengkonversikan nomor ASCII ke karakter menggunakan fungsi chr.

Contoh :ch := chr(65) {sama artinya dengan ch:=’A’}

Kebalikan dari fungsi chr adalah ord, yang digunakan untuk mengembalikan nomor ASCII dari suatu karakter.Contoh :

x := ord (‘A’); {x akan bernilai 65}

Tipe SubjangkauanTipe subjangkauan menyatakan suatu jangkauan nilai dari suatu tipe yang sudah ada. Jangkauan nilai ditentukan oleh nilai terkecil dan nilai terbesar. Antara nilai terkecil dan nilai terbesar dipisahkan oleh tanda subjangkauan ( .. ). Contoh :Type

nilaibulan : 1..12;Mendeklarasikan tipe bulan yang memiliki jangkauan dari 1 sampai 12.

Tipe Terbilang/enumerasiEnumerasi merupakan salah satu tipe yang dapat dibuat sendiri oleh pemrogram. Tipe ini biasa digunakan pada variabel yang nilai kemungkinannya terbatas (tidak banyak).Contoh :Type

Jeniskelamin = (pria,wanita);

Contoh :Type

namabulan : (Januari, Februari, Maret, April, Mei, Juni, Juli, Agustus, September, Oktober, Nopember, Desember);

Tipe Bilangan RealDigunakan untuk menyimpan bilangan real (pecahan).

Tipe Jangkauan Digit UkuranReal 2.9 * 10 – 39 … 1.7 * 10 38 11 – 12 6 byte

Single 1.5 * 10 – 45 … 3.4 * 10 38 7 – 8 4 byte

Double 5.0 * 10 – 324 … 1.7 * 10 308 15 – 16 8 byte

Extended 3.4 * 10 – 4932 … 1.1 * 10 4932 19 – 20 10 byte

Comp 2 63 + 1 … 2 63 - 1 19 – 20 8 byte

Pemberian nilai pada tipe real dapat dilakukan dengan 2 cara :1. Menuliskan dengan tanda titik tanpa eksponen

Contoh : x:= 123.452. Menuliskan dengan eksponen

Contoh : x:= 1,2345E+2;

Tipe String

14

Page 15: Modul Pascal

Digunakan untuk menyimpan data yang berupa untaian karakter, terletak diantara tanda petik tunggal. Bila karakter petik merupakan bagian dari konstanta string,maka dapat ditulis dengan menggunakan 2 buah petik tunggal berurutan. Bila string yang tidak memiliki sebuah karakter (string kosong) maka ditulis dengan cara ‘ ’.Nilai data string membutuhkan memori sebesar banyaknya karakter stringnya ditambah dengan 1 byte. Bila panjang dari suatu string di dalam deklarasi variabel tidak disebutkan, maka dianggap panjangnya 255 karakter.Contoh :Var

Tanggal : string[10];Hari : string[6];Pasaran : string[4];Jarak : char;

BeginTanggal := ’18-09-2008’;Hari := ‘Jum’’at’;Pasaran := ‘kliwon’;Jarak := ‘ ‘;Writeln(tanggal,jarak,hari,’ ‘,pasaran);

End.

2. OPERATOR Operator mengatur operasi pada tipe data dengan menggunakan simbol-simbol yang sudah ditentukan. Contoh Expresi (X + Y) dibangun dari variabel X dan Y yang disebut operand, dengan operator '+'. Operator menurut jenis operand-nya dibagi dua yaitu unary operator dan binary operator. Unary operator adalah operator yang operand-nya hanya satu seperti contoh +6, -B. Tanda bilangan negatif (-) dan positif (+) pada angka 6 dan variabel B menunjukkan operator unary. Operator Binary merupakan operator yang mempunyai dua operand. Hampir semua operator bersifat binary. Contoh operator ini pada operasi penjumlahan A + B, tanda positif (+) menunjukkan operator penjumlahanMacam operator :

Operator pemberian nilaiBentuk operatornya adalah :=Contoh : A := 12;

B := ‘Hallo’;

Operator aritmetik

Operator Operasi Prioritas Tipe Operand Tipe Hasil Contoh * Perkalian 1 Bil bulat,real Bil bulat , real 2 * 3 := 6/ Pembagian real 1 Bil bulat, real real 7 / 2 : = 3.5

Div Pembagian integer 1 Bil bulat Bil bulat 7 div 2 := 3Mod sisa bagi 1 Bil bulat Bil bulat 7 mod 2 := 1

+ Penjumlahan 2 Bil bulat , real Bil bulat, real 2 + 3 := 5- Pengurangan 2 Bil bulat, real Bil bulat, real 2 -3 := -1

Operator pemanipulasian bit Berlaku untuk bilangan bulat.

Operator OperasiNotAndOr

NegasiLogika andLogika or

15

Page 16: Modul Pascal

XorShlShr

Logika xorPenggeseran bit ke kiriPenggeseran bit ke kanan

A B Not A Not B A and B A or B A xor B0 0 1 1 0 0 00 1 1 0 0 1 11 0 0 1 0 1 11 1 0 0 1 1 0

Contoh :Program bitor;Uses crt;Var Bilx,bily,bilz : byte;Begin Clrscr; Bilx := 25; Bily := 4; Bilz := bilx or bily; Writeln(bilz); Readln;End.

Contoh :Program opshl;Uses crt;Begin Writeln(5 shl 6);End.

Contoh :Program opshr;Uses crt;Begin Writeln(160 shr 6);End.

Operator BooleanSama dengan operator pemanipulasian bit tanpa operator shr dan shl

A B Not A Not B A and B A or B A xor Bfalse false true true false false falsefalse true true false false true truetrue false false true false true truetrue true false false true true false

Operator himpunanDigunakan pada tipe himpunan.

Operator Operasi+-*in

UnionSelisihInterseksiAnggota dari

16

Output adalah 29Penjelasan :

00011001 2500000100 4 or00011101 29

Output adalah 320Penjelasan :Nilai integer 5 digeser sebanyak 6 bit ke kiri 0000000000000101 50000000101000000 320

Output adalah 2Penjelasan :Nilai integer 160 digeser sebanyak 6 bit ke kanan0000000010100000 1600000000000000010 2

Page 17: Modul Pascal

Contoh :A := B + C;

Menggabungkan semua anggota himpunan B dan C ke dalam A. Jika nilai B adalah [‘A’,’B’] dan C bernilai [‘C’] maka A bernilai [‘A’, ‘B’, ‘C’].

Operator pembanding

Operator Operasi Tipe operan= Sama dengan Tipe sederhana, pointer, himpunan, string

<> Tidak sama dengan Tipe sederhana, pointer, himpunan, string< Kurang dari Tipe sederhana, string> Lebih dari Tipe sederhana, string

<= Kurang dari atau sama dengan Tipe sederhana, string>= Lebih dari atau sama dengan Tipe sederhana, string<= Subset dari Tipe himpunan>= Superset dari Tipe himpunan

Operator string Pascal hanya mengenal 1 macam operator string, yaitu penggabungan. Digunakan untuk menggabungkan 2 atau lebih operan string menjadi sebuah string yang lebih panjang. Simbolnya adalah +.Contoh :A := ‘ Turbo’ + ‘ Pascal’; {sama artinya dengan A := ‘Turbo Pascal’;}

1. Tentukan benar atau salah penulisan variabel dibawah ini :a. nama mhsb. 5kalic. Angsuran_1d. Angsuran-1e. X25f. program

17

Page 18: Modul Pascal

g. Pajak_bulananh. %diskoni. Diskon%

2. Jika A bertipe char, nilai1 bertipe real, nilai2 bertipe integer, manakah penulisan ekspresi yang salah

a. A := 0;b. A := ‘A’;c. Nilai 1 := 57;d. Nilai2 := nilai1 + 3;e. Nilai1 := nilai1 + 1;f. Nilai2 := 20 div 3 + 5;g. Nilai2 := 20 / 3 + 5;

3. Tentukan tipe data untuk data dibawah ini :a. ‘0’b. ‘ ’c. 2.500,50d. 5e. 3.000.000f. ‘3.34.08.1.11’g. ‘L’h. Falsei. ‘True’j. 1.5E+03k. #66l. -5E-5

4. Ubahlah ekspresi matematika ini ke dalam bahasa pascal

5. Berapa nilai x,y,z pada cuplikan program berikut :Begin A := 4;

B := 7; C := 10; X := A + B shl 2 * C; Y := C * B mod A; Z := B shl A div C;End.

6. Berapa nilai x,y,z pada cuplikan program berikut :Begin Bilx := 25;

Bily := 4; Bilz := bilx xor bily;

End.

7. Berapa nilai x,y,z pada cuplikan program berikut :Begin A := 3;

B := 4; C := 5; X := A and B or C; Y := A shl (B and C) shr (B or C); Z := A or (B shr 2) or (C shl 1);End.

8. Berapa nilai x,y,z pada program berikut :Var

18

Kelompok operator Prioritasnot Tertinggi* / div mod and shl shr Kedua+ - or xor Ketiga= <> < > <= >= in Keempat

Page 19: Modul Pascal

A,b,c,d,x,y,z : boolean; Begin A := true;

B := false; C := true; D := false; X := A and B or C xor D; Y := A and not B or not C; Z := A xor B xor C xor D;End.

Jawab : x = true, y = true, z = false9. Berapa nilai variabel C,D,E,x,y,z pada program berikut :

Var A,B : set of char; C,D,E : set of char; X,y,z : boolean;Begin A := [‘A’,’B’,’C’,’D’,’E’];

B := [‘D’,’E’,’F’,’G’]; C := A + B; D := A – B; E := A * B;

x := ‘G’ in A; y := C <= A; z := D <= A;End.

Jawab : C=[‘A’,’B’,’C’,’D’,’E’,’F’,’G’], D = [‘A’,’B’,’C’], E=[‘D’,’E’] X=false, y = false, z=true

PRAKTIKUM MINGGU 3PEMILIHAN KONDISI (SELECTION)

1. PILIHAN TUNGGAL

19

Page 20: Modul Pascal

Bentuk paling sederhana pilihan tunggal adalah jika hanya ada satu pilihan kondisi yang disediakan.

if kondisi then true statement

CONTOH PERMASALAHAN 6 : Menentukan luas keliling lingkaran dengan masukan data dari keyboard dan mengulang penghitungan. program ulanglagi; uses crt; const phi = 3.14; var jari,luas,keliling : real; lagi : char; label ulang; begin ulang:

clrscr; write(’Masukan jari-jari lingkaran = ’); readln(jari);

luas=phi*jari*jari; keliling=2*phi*jari;

writeln(‘Luas lingkaran = ‘,luas); writeln(’Keliling lingkaran = ’,keliling);

writeln; write(’Mau memasukkan bilangan lagi [Y/T] ? ’);readln(lagi);

if (lagi=’Y’) or (lagi=’y’) then goto ulang; end.

2. PILIHAN GANDADigunakan untuk menentukan tindakan yang akan digunakan bila kondisi bernilai benar dan salah.

if kondisi then statement1else statement2

CONTOH PERMASALAHAN 7 : Menentukan bilangan genap ganjil dari suatu bilangan.

program ganjilgenap; uses crt; var bil : integer; lagi : char; begin clrscr; writeln('Program Menentukan Bilangan Ganjil / Genap'); writeln('=========================================='); write('Masukkan sembarang bilangan : ');readln(bil); writeln; if (bil mod 2 = 0) then writeln(’Bilangan ’,bil,' termasuk bilangan genap') else writeln(’Bilangan ’,bil,' termasuk bilangan ganjil'); readln; end.

2. PILIHAN MAJEMUKUntuk menentukan tindakan yang akan digunakan disediakan lebih dari 2 alternatif. Merupakan bentuk statement if dengan statement if lain di dalam if sebelumnya.

if kondisi1 then statemen1

20

Page 21: Modul Pascal

else if kondisi2 then statemen2 else statemenberikutnya

CONTOH PERMASALAHAN 8 : Mengelompokan nilai dengan ketentuan : Jika nilai angka >= 90, maka nilai huruf = AJika nilai angka >= 80, maka nilai huruf = BJika nilai angka >= 70, maka nilai huruf = CJika nilai angka >= 60, maka nilai huruf = DJika nilai angka < 60, maka nilai huruf = E

program KelompokNilai;uses crt;var nilai : integer; ket : string; huruf : char;begin writeln('PROGRAM PENGELOMPOKAN NILAI'); writeln('---------------------------'); write('Masukkan nilai (0-100) : ');readln(nilai); if(nilai>=81) then begin huruf := 'A'; ket := 'Lulus'; end else if(nilai>=70) then begin huruf := 'B'; ket := 'Lulus'; end else if(nilai>=60) then begin huruf := 'C'; ket := 'Lulus'; end else

if(nilai>=40)then begin huruf := 'D'; ket := 'Gagal/Tidak Lulus'; end else begin

huruf := 'E'; ket := 'Gagal/Tidak Lulus'; end; writeln; writeln('Nilai huruf = ',huruf); writeln('Keterangan = ',ket);readln;end.

3. STRUKTUR CASE Untuk masalah dengan dua pilihan atau lebih, struktur CASE dapat menyederhanakan penulisan IF yang bertingkat-tingkat.

case ungkapan of

21

Page 22: Modul Pascal

label1 : Statement1; label2 : Statement2; label3 : Statement3; labeln : Statementn;end;

CONTOH PERMASALAHAN 9 : Pemilihan kode jurusan dengan struktur case program jurusan;uses crt;var jur,nama : string; kode : char;begin write('Masukkan nama : ');readln(nama); write('Pilih kode jurusan [A/B/C/D] : ');readln(kode); case kode of 'A' : jur := 'Teknik Informatika'; 'B' : jur := 'Manajemen Informatika'; 'C' : jur := 'Sistem Informasi'; 'D' : jur := 'Teknik Komputer'; end; writeln; writeln('Nama : ',nama); writeln('Kode jurusan : ',kode); writeln('Nama jurusan : ',jur); readln;end.

TUGAS 1. Menentukan huruf yang dimasukkan melalui keyboard huruf vokal atau konsonan2. Menentukan bilangan terbesar dari 2 bilangan yang dimasukkan melalui keyboard 3. Menentukan bilangan terbesar dan terkecil dari 3 bilangan yang dimasukkan melalui

keyboard

22

Page 23: Modul Pascal

4. Misalkan karyawan PT. Makmur dikelompokkan berdasarkan golongannya. Upah per jam tiap karyawan bergantung pada golongannya, dengan ketentuan :

Golongan Upah per jam

A Rp. 10000,- B Rp. 12000,- C Rp. 15000,- D Rp. 20000,-

Jumlah jam kerja normal selama 1 minggu adalah 48 jam. Kelebihan jam kerja dianggap lembur dengan upah lembur adalah Rp.4000,- per jam untuk semua golongan karyawan. Buat program menghitung gaji karyawan mingguan. Data yang dimasukan dari keyboard adalah nama karyawan, golongan, jumlah jam kerja dalam 1 minggu. Berikut tampilannya :

PENGHITUNGAN GAJI PEGAWAI PT.MAKMUR======================================Nama karyawan :Golongan :Jam kerja :======================================Gaji : Rp.Lembur : Rp.Total Gaji : Rp.

5. Buat program seperti berikut :Bila anda mengetikkan kata REG GOKIL maka muncul tampilan seperti dibawah ini :

MENU GOKIL GRATIS

1. Ringtone gokil2. Nada sapa gokil3. Cerita gokil4. Keluar program

Masukkan pilihan Anda [1-4] :

Bila anda mengetikkan kata selain REG GOKIL maka muncul pesan ’Maaf keyword yang Anda masukkan salah’ dan program selesai.

Untuk menu gokil, bila Anda pilih angka 1 maka muncul pesan ’Terima kasih telah menggunakan layanan ringtone gokil’Untuk menu gokil, bila Anda pilih angka 2 maka muncul pesan ’Terima kasih telah menggunakan layanan nada sapa gokil’Untuk menu gokil, bila Anda pilih angka 3 maka muncul pesan ’Terima kasih telah menggunakan layanan cerita gokil’Untuk menu gokil, bila Anda pilih angka 4 maka program selesai.

6. Perbaiki program biling warnet sehingga dapat menghitung lama pemakaian dan total bayar misal pemakaian dari jam 23.00 sampai jam 01.00.

7. Perbaiki program nomor 6 dengan menambah fasilitas login user. Bila login user sebagai ’personal’ maka tarip per jam Rp. 5000,- Bila login user sebagai ’member’ maka tarip per jam Rp. 3000,-

PRAKTIKUM MINGGU 5 DAN 6PERULANGAN (LOOPING)

TUJUAN INSTRUKSIONAL KHUSUSMahasiswa dapat membedakan dan menggunakan jenis-jenis statemen perulangan dalam menyelesaikan permasalahan dalam bahasa Pascal

23

Page 24: Modul Pascal

DASAR TEORIDi dalam Pascal terdapat tiga macam perulangan yaitu dengan menggunakan statemen For...Do, While...Do, dan Repeat...Until.

1. STATEMEN PERULANGAN FOR... TO.... DOPerulangan dengan statemen FOR digunakan untuk mengulang statemen atau satu blok statemen berulang kali sejumlah yang ditentukan. Perulangan dapat dalam bentuk positif, perulangan negatif, dan perulangan bersarang.

Bentuk umum : for pencacah := nilai_awal to nilai_akhir do

begin {pernyataan-pernyataan yang akan diulang}end;

CONTOH PERMASALAHAN 10 : Program Mencetak Angka Urut (Penaikan)

program angka_urutnaik;uses crt;var i : integer;begin

for i:=1 to 10 do begin writeln(i,'. Hallo,Selamat belajar,Aku yakin Aku pasti

bisa...'); end; readln;end.

CONTOH PERMASALAHAN 11 : Program Mencetak Angka Urut (Penurunan)

program angka_urutturun;uses crt;var i : integer;begin for i:=10 downto 1 do begin writeln(i,'. Hallo,Selamat belajar,Aku yakin Aku pasti

bisa...'); end; readln;end.

CONTOH PERMASALAHAN 12 : Program mencetak angka terbesar terkecil

program maxmin;uses crt;var n,i,max,min,bil : integer;begin writeln('Program Mencari Data Terbesar dan Terkecil'); write('Masukkan banyaknya data = '); readln(n); write('Masukkan bilangan ke-1 : '); readln(bil); max:=bil; min:=bil;

24

Page 25: Modul Pascal

for i:=2 to n do begin write('Masukkan bilangan ke-',i,' : '); readln(bil); if(bil>max) then max:=bil; if(bil<min) then min:=bil; end; writeln; writeln('Data terbesar = ',max); writeln('Data terkecil = ',min); readln;end.

CONTOH PERMASALAHAN 13 : Program Mencetak Jumlah Bilangan

program jumlah;uses crt;var i,awal,akhir,jumlah : integer;begin writeln('Masukkan bilangan awal : '); read(awal); writeln('Masukkan bilangan akhir : '); read(akhir); jumlah:=0; for i:=awal to akhir do begin jumlah:=jumlah+i; end; writeln('Jumlah bilangan dari ',awal,' sampai ',akhir,' adalah ',jumlah); readln;end.

CONTOH PERMASALAHAN 14 : Program Membuat Tabel Akar & Kuadrat Bilangan

program tabelakar;uses crt;var i,kuadrat,jumbil,jumkuadrat : integer; akar,jumakar : real;begin writeln('TABEL KUADRAT DAN AKAR BILANGAN '); writeln('---------------------------------- '); writeln('Bilangan Kuadrat Akar Bilangan '); writeln('---------------------------------- '); jumbil:=0; jumkuadrat:=0; jumakar:=0; for i:=1 to 10 do begin kuadrat := i*i; akar := sqrt(i); jumbil := jumbil+i; jumkuadrat := jumkuadrat+kuadrat; jumakar := jumakar+akar; writeln(' ',i:3,' ',kuadrat:3,' ',akar:7:4); end;

25

Page 26: Modul Pascal

writeln('================================== '); writeln(' ',jumbil:3,' ',jumkuadrat:3,' ', jumakar:7:4); readln;end.

2. STRUKTUR FOR BERSARANG

CONTOH PERMASALAHAN 15 : Membuat tampilan seperti berikut :

***************

program bintang1;uses crt;var i,j:integer;begin writeln('Contoh loop bersarang --> bintang persegipanjang'); for i:=1 to 3 do begin for j:=1 to 5 do begin write('*'); end; writeln; end; readln;end.

CONTOH PERMASALAHAN 16 : Membuat tampilan seperti berikut :

Masukkan tinggi segitiga : 5***************

program bintang2;uses crt;var n,i,j:integer;begin writeln('Contoh loop bersarang --> bintang segitiga siku'); write('Masukkan tinggi segitiga :'); readln(n); for i:=1 to n do begin for j:=1 to i do begin write('*'); end; writeln; end; readln;end.

CONTOH PERMASALAHAN 17 : Membuat tampilan seperti berikut :

Masukkan tinggi segitiga : 5

26

Page 27: Modul Pascal

*************************

program bintang3;uses crt;var n,i,j:integer;begin writeln('Contoh loop bersarang --> bintang segitiga'); write('Masukkan tinggi segitiga :'); readln(n); for i:=1 to n do begin for j:=1 to i do begin write('*'); end; writeln; end; for i:=n-1 downto 1 do begin for j:=1 to i do begin write('*'); end; writeln; end; readln;end.

3. STRUKTUR WHILE ... DOStruktur ini digunakan bila kita belum mengetahui secara pasti berapakali banyaknya pengulangan yang akan dilakukan. Berakhirnya proses pengulangan ditentukan oleh suatu kondisi. Selama kondisi terpenuhi, maka pengulangan terus dilakukan, dan sebaliknya, bila kondisinya tidak terpenuhi maka pengulangan dihentikan.

Bentuk WHILE :

WHILE kondisi DO begin pernyataan-pernyataan yang akan diulang; end;

CONTOH PERMASALAHAN 18 : Program menghitung rata-rata bilangan

program ratabilangan;uses crt;var n : integer; jumlah,bil,rata : real; lagi : char;begin n:=0; jumlah:=0; lagi:='Y'; while (lagi = 'Y') or (lagi = 'y') do begin write('Masukkan bilangan : ');

27

Page 28: Modul Pascal

readln(bil); jumlah:=jumlah+bil; n:=n+1; write('Apakah Anda akan memasukkan bilangan lagi [Y/T]? '); readln(lagi); writeln; end; rata:=jumlah/n; writeln; writeln; writeln('Banyaknya bilangan : ',n); writeln('Rata-rata bilangan : ',rata:3:2); readln;end.

3. STRUKTUR REPEAT UNTILDigunakan untuk mengulang (REPEAT) blok pernyataan sampai (UNTIL) kondisi yang diseleksi di UNTIL dipenuhi.

Bentuk REPEAT-UNTIL :

REPEAT begin pernyataan-pernyataan yang akan diulang; end

UNTIL kondisi

CONTOH PERMASALAHAN 19 : Program menghitung rata-rata bilangan

program repeatlagi;uses crt;var n : integer; jumlah,bil,rata : real; lagi : char;begin n:=0; jumlah:=0; repeat

begin write('Masukkan bilangan : '); readln(bil); jumlah:=jumlah+bil; n:=n+1; write('Apakah Anda akan memasukkan bilangan lagi [Y/T]? '); readln(lagi); writeln; end; until (lagi = 't') or (lagi = 'T'); rata:=jumlah/n; writeln; writeln; writeln('Banyaknya bilangan : ',n); writeln('Rata-rata bilangan : ',rata:3:2); readln;end.

CONTOH PERMASALAHAN 20 : Program membuat menu pengulangan

program repeatmenu;uses crt;var pilih : integer;begin repeat writeln(' MENU GOKIL GRATIS');

28

Page 29: Modul Pascal

writeln('-------------------'); writeln('1. Ringtone'); writeln('2. Nada Sapa'); writeln('3. Gambar Lucu'); writeln('4. Ramalan'); writeln; write('Masukkan pilihan Anda ! (0=selesai) '); read(pilih); writeln; writeln; case pilih of 1 : writeln('Terima kasih menggunakan layanan Ringtone');

2 : writeln('Terima kasih menggunakan layanan Nada sapa'); 3 : writeln('Terima kasih menggunakan layanan Gambar lucu');

4 : writeln('Terima kasih menggunakan layanan Ramalan'); 0 : writeln('Selesai'); end; writeln; writeln; until pilih=0;end.

TUGAS1. Buat program menghitung jumlah dari deret 3,7,11, 15, .......

2. Buat program tabel perkalian :

* 1 2 3 4 5 6 7 8 9 101 . . . . . . . . . .2 . . . . . . . . . .3 . . . . . . . . . .4 . . . . . . . . . .5 . . . . . . . . . .6 . . . . . . . . . .7 . . . . . . . . . .8 . . . . . . . . . .9 . . . . . . . . . .10 . . . . . . . . . .

Rata-rata tabel adalah ....

4. Buat program untuk menampilkan deret bilangan fibonacci dengan nilai kurang dari 100. Contoh seperti berikut :1 1 2 3 5 8 13 21 ….

5. Buat program untuk menampilkan deretan seperti berikut :1/2 – 1/4 + 1/8 – 1/16 + 1/32 ……Dengan batasan untuk penyebut maksimal 50.

6. Buat program proses Loading dengan tampilan seperti berikut :

Loading … Petunjuk :

- untuk karakter bisa menggunakan karakter ASCII 177 atau 254- untuk mengatur waktu tampilan proses loading selain menggunakan perintah

for … do juga menggunakan perintah delay(lama waktu delay). 7. Buat program dengan tampilan seperti berikut :

WARGA BARU BULAN OKTOBER 2008

29

3. Buat tampilan seperti berikut :

Masukkan segitiga angka : 51121231234123451234123121

Page 30: Modul Pascal

NO NAMA UMUR JENIS KELAMIN PEKERJAAN1 Susilo 21 P PNS2 Joko 11 P Pelajar3 Wati 35 W Swasta4 Ambar 20 W Swasta5 Mulyono 45 P PNS6 Nurdin 17 P Pelajar7 Asmuni 7 P Pelajar8 Asih 29 W PNS9 Mary 55 W PNS10 Seno 22 P PNS

REKAPITULASI WARGA BARU BULAN OKTOBER 2008==========================================Umur 0-17 tahun = orangUmur 18-40 tahun = orangUmur > 40 tahun = orangJenis kelamin Pria = orangJenis kelamin Wanita = orangPegawai Negeri Sipil = orangPegawai Swasta = orangPelajar/Mahasiswa = orangMengurus Rumah Tangga = orang-----------------------------------Jumlah warga baru = orang

Ketentuan :a. Kode pekerjaan :

1 = PNS2 = Pegawai Swasta3 = Pelajar/Mahasiswa4 = Mengurus Rumah Tangga5 = Tentara/Polri6 = Tidak bekerja

Pada saat dimasukkan misal kode 1 pada kolom pekerjaan, maka setelah ditekan Enter otomatis angka 1 yang dimasukkan berubah menjadi PNS.

b. Setiap selesai memasukkan data, muncul pertanyaan ‘Tambah Data Lagi (Y/T) ? Bila Y maka otomatis No bertambah 1 dan menambah data lagi. Bila T maka tidak ada penambahan data dan langsung tampil garis penutup dan rekapitulasi secara otomatis.

c. Untuk mempermudah mengatur tampilan, bisa menggunakan perintah :gotoxy(kolom,baris)dan untuk membuat garis kolom bisa menggunakan karakter ASCII.Untuk membersihkan baris tertentu menggunakan clreol dan gotoxy(kolom,baris)

8. Buat program dengan menggabungkan dan memodifikasi program nomor 6 dan 7 dengan urutan tampilan :

- login user name dan password,user nama dan password terserah Anda. - bila user name dan password sesuai maka tampil proses loading, bila tidak sesuai muncul pesan

username password tidak sesuai, muncul tampilan login lagi - setelah proses loading tampil menu pilihan : MENU SISTEM INFORMASI KEPENDUDUKAN ======================================================

1. Tambah data warga baru2. Informasi program3. Selesai

30

Page 31: Modul Pascal

Pada saat memilih 1 maka tampil proses tambah data dan rekapitulasinya seperti program nomor 7

Pada saat memilih 2 maka tampil informasi tujuan program dibuat dan nama programmernya (nama Anda).

Pada saat memilih 3 maka tampil ucapan terimakasih telah menggunakan program ini kemudian program selesai / keluar dari program.

PRAKTIKUM MINGGU 12PROSEDUR DAN FUNGSI

TUJUAN INSTRUKSIONAL KHUSUSMahasiswa mampu mengaplikasikan penggunaan subprogram dengan prosedur (Procedure) dan Fungsi (Function) dalam pembuatan program dan pengiriman parameter dengan nilai dan referensi.

31

Page 32: Modul Pascal

PROSEDURProsedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram (program bagian). Prosedur diawali dengan kata PROCEDURE. Di dalam bagian deklarasi prosedur, prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul prosedurnya.

CONTOH PERMASALAHAN 21 : Program membuat garis yang dipesankan dalam prosedur.

Program prosedur1;Uses crt;Procedure Garis;Begin Writeln(’===============================’);End;

Begin Clrscr; Garis; Writeln; Writeln(’POLITEKNIK NEGERI SEMARANG’); Writeln(’PRODI TEKNIK INFOKOM’); Garis; Readln;End.

Parameter dalam prosedur ada 2 macam yaitu :- Parameter lokal

Hanya dapat digunakan pada modul atau unit program yang bersangkutan saja, tidak dapat digunakan pada modul atau unit program lain.

- Parameter globalArtinya dapat digunakan pada modul atau unit program lainnya.

CONTOH PERMASALAHAN 22 : Penggunaan parameter lokal dan global.

Program prosedur2;Uses crt;Var luas : integer; {parameter global}

Procedure hitung1;Var panjang,lebar : integer; {parameter lokal}Begin Write(’Masukkan panjang : ’);readln(panjang); Write(’Masukkan lebar : ’);readln(lebar); Luas := panjang * lebar; Writeln(’Luas = ’, luas);End;

Procedure hitung2;Var sisi : integer; {parameter lokal}Begin Write(’Masukkan sisi : ’);readln(sisi); Luas := sisi * sisi Writeln(’Luas = ’, luas);End;

{Program utama}Begin Clrscr; Hitung1; Hitung2; Readln;End.

PENGIRIMAN PARAMETER PADA PROSEDURPengiriman parameter ada 2 macam :

32

Page 33: Modul Pascal

- Pengiriman 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 tersebut berubah, tidak akan mempengaruhi nilai parameter nyata.Contoh : Procedure hitung(a,b : integer);

- Pengiriman secara acuan(by reference)Bila pengiriman parameter secara acuan, maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai parameter nyata.Contoh : Procedure hitung(var a,b : integer);

CONTOH PERMASALAHAN 23 : Penggunaan pengiriman parameter by value Program prosedur3;Uses crt;Var A,b,jumlah : integer; {parameter global}

Procedure jml(x,y,jumlah:integer); {parameter nilai}Begin Jumlah := x + y; Writeln(’Jumlah pada procedure : ’,jumlah); Jumlah := jumlah + 10; Writeln(’Jumlah baru pada prosedur : ’,jumlah);End;

{program utama}Begin Clrscr; A:=5;b:=1; Jumlah := a+b; Writeln(’Jumlah pada program utama : ’,jumlah); Jml(a,b,jumlah); Writeln(’Jumlah baru pada program utama : ’, jumlah); readln;end.

CONTOH PERMASALAHAN 24 : Penggunaan pengiriman parameter by reference.

Program prosedur4;Uses crt;

Procedure tambah(a,b:integer; var c : integer); {parameter by reference}Begin C:= a+b;End;

{program utama}Var X,y,z : integer; Begin Clrscr; X := 2; y:= 3; Tambah(x,y,z); Writeln(’x = ’,x,’y = ’,y,’z = ’,z); Readln;End.

FUNGSIBlok fungsi hampir sama dengan blok prosedur, hanya harus dideklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Tipe tersebut dituliskan pada akhir deklarasi fungsi yang didahului dengan titik koma.

Sama dengan prosedur, parameter dalam fungsi dapat dikirimkan secara nilai atau acuan.Contoh : Function hitung(a,b : integer) : integer; {by value}

33

Page 34: Modul Pascal

Function hitung(var a, b : integer) : integer; {by reference}

CONTOH PERMASALAHAN 25 : Penggunaan pengiriman function parameter by value.

Program fungsi1;Uses crt;Var A : integer; {parameter global}

Function hasil(a : integer): integer;Begin Hasil := a*60;End;

{program utama}Begin Clrscr; Write(’Masukkan jam : ’);readln(a); Writeln(a,’ jam ada : ’, hasil(a), ’ menit’);readln;End.

CONTOH PERMASALAHAN 26 : Penggunaan pengiriman function parameter by reference.

Program fungsi2;Uses crt;Var A,b,jumlah : integer;

Function jml(var x,y : integer) : integer;Begin Jml := x + y; Y :=x;End;

{program utama}Begin Clrscr; A:=5 ;b:=1; Writeln(’Nilai a sebelum masuk ke function = ’,a); Writeln(’Nilai b sebelum masuk ke function = ’,b); Writeln(’Jumlah : ’,jml(a,b)); Writeln(’Nilai a setelah masuk ke function = ’,a); Writeln(’Nilai b setelah masuk ke function = ’,b); Readln;End.

PRAKTIKUM MINGGU 13ARRAY DAN RECORD

TUJUAN INSTRUKSIONAL KHUSUSMahasiswa mampu membuat program menggunakan array dan record untuk menyelesaikan suatu permasalahan

ARRAY

34

Page 35: Modul Pascal

Array merupakan koleksi data dimana setiap elemen memakai nama dan tipe yang sama serta setiap elemen diakses dengan membedakan indeks arraynya.

Bentuk variabel : Var Namalarik : array [indeks] of tipe data;

Contoh : mahasiswa : array [1..20] of string[20];

Artinya array mahasiswa adalah koleksi dari 20 variabel string yang masing-masing diberi nama mahasiswa[1], mahasiswa[2], mahasiswa[3], ... mahasiswa[20]

Bisa juga digunakan declared scalar type seperti :

Type Hari = (senin,selasa,rabu,kamis,jumat,sabtu,minggu);Var Gaji : array[senin..sabtu] of longint; Upah : array[hari] of integer; Masuk : array[senin..sabtu] of boolean;

ARRAY SATU DIMENSI

CONTOH PERMASALAHAN 27 : Program menginput data dengan array

Program inputdata1Uses crt;Var Nama : array[1..10] of string[25]; Nim : array[1..10] of string[10]; Nilai : array[1..10] of integer; i,n : integer;

Begin {------- menentukan banyaknya data yg akan diinputkan ---- } clrscr; write(’Banyak data : ’);readln(n); writeln; {--- input data sesuai dengan banyaknya data yg ditentukan --- } For i=1 to n do begin writeln(’Data ke-’,i); write(’Nama : ’);readln(nama[i]); write(’Nim : ’);readln(nim[i]); write(’Nilai : ’);readln(nilai[i]); writeln; end; { --- menampilkan data sesuai dengan yg diinputkan --- } clrscr; gotoxy(10,1);writeln(’NO NIM NAMA NILAI ’); gotoxy(10,2);writeln(’--------------------------’); for i=1 to n do begin gotoxy(10,3+i);write(i); gotoxy(15,3+i);write(nim[i]); gotoxy(20,3+i);write(nama[i]); gotoxy(30,3+i);write(nilai[i]); writeln; end; gotoxy(10,4+i)writeln(’--------------------------’); readln;end;

TUGAS

35

Page 36: Modul Pascal

1. Dari contoh permasalahan 27 tampilkan nilai rata-ratanya setelah garis penutup. 2. Buat program untuk Biro Jasa Paket TIKI EXPRESS dengan tampilan seperti berikut :

MENU 1. Input Data2. Laporan Data3. Selesai

Pilihan [1/2/3] :

Bila memilih 1 maka muncul tampilan input data :

Data ke- Kode Paket :

Nama Pengirim :Alamat Pengirim :

Nama Tujuan :Alamat Tujuan :

Kode Area :Area Tujuan :Isi paket :Berat paket :

Biaya Pokok :Biaya Tambahan :Jumlah Biaya :

Tambah data lagi?

Bila ya maka otomatis menginput data lagi,bila tidak maka kembali ke menu.

Untuk daerah tujuan, biaya pokok, biaya tambahan dilakukan berdasarkan kode area yaitu :Kode Area Tujuan Biaya pokok/5kg Biaya tambahan/kg

A Jakarta 10000 1500B Bandung 6000 1000C Jogjakarta 4000 750

Biaya pokok dikenakan untuk :- Bila berat paket <= 5 kg maka biaya pokok sesuai daftar- Bila berat paket > 5 kg maka biaya pokok yang dikenakan sebesar (berat paket

div 5) * biaya pokok per 5 kg berdasarkan kode area yang akan dikirimBiaya tambahan dikenakan untuk :- Bila <=5 kg tidak dikenakan biaya tambahan - Bila berat paket > 5 kg maka biaya tambahan yang dikenakan sebesar (berat paket

– 5)*biaya tambahan per kg berdasarkan kode area yang akan dikirimJumlah biaya = biaya pokok + biaya tambahan

Bila memilih 2 maka muncul tampilan rekap laporan data :REKAP LAPORAN PENDAPATAN BIRO JASA PAKET TIKI EXPRESS

No Nama Pengirim

Area Tujuan

Berat Paket

Biaya Pokok

Biaya Tambahan

Jumlah Biaya

Total ..... ..... ..... .....

ARRAY DUA DIMENSI

Array berdimensi dua mewakili bentuk tabel atau matrik. Pada indeks pertama dapat menunjukkan baris dan indeks kedua dapat menunjukkan kolom dari tabel atau matriks.Deklarasi array dua dimensi :Var Nama array : array[indeks_baris, indeks_kolom] of tipe data;

36

Page 37: Modul Pascal

CONTOH PERMASALAHAN 28 : Program menginput dan menjumlah matrik

Program matrikjum;uses crt;var a, b, c : array [1..10,1..10] of byte; m,n,i,j : byte;

begin{------menentukan banyaknya baris & kolom matriks ------}clrscr;writeln(’Matriks berordo m x n ’);writeln(’--------------------- ’);write(’Masukkan banyaknya baris (m) : ’);readln(m);write(’Masukkan banyaknya kolom (n) : ’);readln(n);writeln;{------input elemen matriks A------}For i:= 1 to m do begin for j:=1 to n do begin write(’Elemen matriks A ’,i,’,’,j,’ : ’); readln(A[i][j]); end; end;{ ------input elemen matriks B------}Writeln;For i:=1 to m do begin for j:=1 to n do begin write(’Elemen matriks B ’,i,’,’,j,’ : ’); readln(B[i][j]); end; end;{ ------menjumlahkan elemen matriks A dengan B------}For i:=1 to m do for j:=1 to n do C[i][j]:=A[i][j]+B[i][j];{ ------menampilkan matriks A------} writeln; writeln(’Matriks A = ’); for i:=1 to m do begin for j:=1 to n do write(A[i][j]:5); writeln; end;{ ------menampilkan matriks B------} writeln; writeln(’Matriks B = ’); for i:=1 to m do begin for j:=1 to n do write(B[i][j]:5); writeln; end;

{ ------menampilkan matriks C hasil penjumlahan------} writeln; writeln(’Matriks C = ’); for i:=1 to m do begin for j:=1 to n do write(C[i][j]:5); writeln; end;readln;end.

TUGAS

37

Page 38: Modul Pascal

Buatlah program untuk menyelesaikan permasalahan berikut :Telah dilakukan penghitungan suara dari pemilihan presiden di 5 TPS. Calon yang ditampilkan 4 orang. Hasil penghitungan suara sebagai berikut :

TPS CALON PRESIDEN1 2 3 4

1 209 51 395 282 127 96 401 423 194 98 177 414 119 18 303 265 245 21 204 25

Dengan menggunakan array 2 dimensi,tulis program untuk melakukan pekerjaan-pekerjaan berikut :1. Menginput dan mencetak hasil pemilihan diatas dalam bentuk tabel yang sesuai2. Menghitung dan mencetak keseluruhan suara yang diperoleh masing-masing calon dan

prosentasenya terhadap keseluruhan suara3. Calon yang menang adalah calon yang memperoleh suara terbanyak

RECORDRecord adalah jenis tipe data terstruktur yang berisi beberapa data, yang masing-masing dapat berlainan tipe.

Contoh Deklarasi record :

Type Recbarang = record Nama : string; Jumlah : integer; Harga : longint; End;VarBarang : recbarang;

CONTOH PERMASALAHAN 29 : Program contoh record, membaca masukan dari keyboard dan menampilkan kembali dalam bentuk daftar.

Program record1;uses crt;

type kry = record

nama : string[20];alamat : string[30];gol : char;gaji : longint;tunj : longint;

end;var pegawai : array[1..100] of kry; pegawaismt : kry; i,j : byte;

begin writeln(’Bila ingin mengakhiri input, masukkan titik (.) pada nama’); j := 0; write(’Nama : ’);readln(nm); while nm <> ’.’ do begin j:=j+1; pegawai[j].nama := nm; write(’Alamat : ’);readln(pegawai[j].alamat); write(’Golongan : ’);readln(pegawai[j].gol); case pegawai[j].gol of ’A’, ’a’ : begin

38

Page 39: Modul Pascal

Pegawai[j].gaji := 2000000; Pegawai[j].tunj := 500000;

’B’, ’b’ : begin Pegawai[j].gaji := 1000000; Pegawai[j].tunj := 250000; Else Begin Pegawai[j].gaji := 500000; Pegawai[j].tunj := 200000;

End; End; write(’Nama : ’);readln(nm);

End;

Clrscr;Writeln(’=================================================’);Writeln(’ NO NAMA ALAMAT GOL GAJI TUNJANGAN’;Writeln(’=================================================’);For i:=1 to j do Writeln(’i’, pegawai[i].nama, pegawai[i].alamat, pegawai[i].gol, pegawai[i].gaji, pegawai[i].tunjangan); Writeln(’=================================================’);End.

39