Anda di halaman 1dari 39

1

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 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

2
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 PEMROGRAMAN


Program 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 Solving
2. Fase Implementasi
Analisa Problem

Perancangan Algoritma

Test

Test

Dokumentasi

Fase I
Fase Problem Solving

Suatu
1.
2.
3.
4.
5.
6.
7.

Pembuatan Program

Dipakai

Fase II
Fase Implementasi

program dikatakan baik jika :


Bekerja sesuai dengan tujuan dan memenuhi spesifikasi yang telah ditentukan
Tidak mengandung kesalahan
Cepat dalam waktu pelaksanaannya (eksekusi program)
Efisien dalam penggunaan memori komputer
User friendly
Portability
Kemudahan merawat & mengembangkan program

3
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 threading
Dapat 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. Compiler
Membaca program & menerjemahkan secara keseluruhan, contoh : Pascal, C,dll
Program 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 :
Input / Output
Proses
Testing

4
Terminal = menunjukkan awal & akhir program
Connector = penghubung pada satu halaman
Off Page Connector = penghubung pada halaman yang berbeda
Preparasi = memberikan nilai awal pada suatu variabel/konstanta

Predefined Proses = proses yg ditulis sebagai subprogram, yaitu


prosedur/fungsi
Arah Aliran Proses
Manual Input

Display

Magnetic Disk

File
2. Pseudocode
Merupakan bentuk prosedur format pengujian algoritma
pemrograman namun masih menggunakan bahasa manusia.

Struktur Dasar Algoritma


1. Runtunan (sequence)

dengan struktur bahasa

5
Terdiri atas satu proses yang diikuti proses yang lain

Proses A

Proses B
Contoh :
Flowchart menghitung luas lingkaran
Mulai
Pi
3.14
Masukkan R
L

Pi * R* R
Tulis L

Selesai
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
=

>
<

Sama
Tidak
Lebih
Lebih
Lebih
Lebih

ARTI
dengan
sama dengan
besar
kecil
besar atau sama dengan
kecil atau sama dengan

Test
kondi
si

Proses A

Proses B

Contoh :
Flowchart menentukan x adalah bilangan ganjil/genap.
Mulai
Baca x

x mod 2 = 0

Y
Cetak Bilangan Genap

T
Cetak Bilangan
Ganjil

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

Proses A

Test
kondi
si

Proses B

Contoh :
Flowchart mencetak angka 5
Mulai

x=0

x<5

Cetak x

Y
x=x+1

Selesai

Notasi Algoritma
1. Judul atau kepala
Bagian yang terdiri atas nama algoritma dan penjelasan (spesifikasi) tentang algoritma
tersebut.
2. Bagian deklarasi
Bagian untuk mendefinisikan semua nama yang dipakai di dalam algoritma. Nama
tersebut bisa berupa nama variabel, tipe, prosedur, fungsi, dsb.
3. Bagian deskripsi
Berisi uraian langkah langkah penyelesaian masalah.

7
Contoh :
Algoritma Hitung_Lingkaran
DEKLARASI
const phi =
3.14
r,luas,keliling : real
DESKRIPSI
read(r)
luas
phi * r * r
keliling
2 * phi * r
write(luas,keliling)
Algoritma Menentukan_Bilangan_Ganjil_Genap
DEKLARASI
x : integer
DESKRIPSI
read(x)
if x mod 2 = 0 then
write(Bilangan genap)
else

write(Bilangan ganjil)
endif
Algoritma Mencetak_Angka_5
DEKLARASI
x : integer
DESKRIPSI
x 0
while x < 5 do
x x+1
endwhile
write(x)

PRAKTIKUM MINGGU 1
PENGENALAN PROGRAM PASCAL
STRUKTUR RUNTUNAN (SEQUENCE)
LANGKAH-LANGKAH PEMBUATAN PROGRAM
1. Untuk menulis program baru caranya tekan tombol ALT+ F pilih NEW terlebih dahulu
sebelum Anda mengetik program Anda.

8
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 + F9
5. Bila ada kesalahan perbaiki kesalahan tersebut kemudian Anda ulangi langkah 3 dan 4
6. 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 KOMENTAR
Baris 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;
var

{bersih layar}
a : integer

(*

variabel untuk alas segitiga

*)

2. BENTUK / STRUKTUR PROGRAM PASCAL


Bentuk program Pascal mirip dengan kebanyakan program bahasa tingkat tinggi lainnya. Bentuk
umumnya adalah :
1. Judul Program
2. Blok program
a. Bagian deklarasi
Deklarasi label
Deklarasi konstanta
Definisi tipe
Deklarasi variabel
Deklarasi prosedur
Deklarasi fungsi
b. Bagian pernyataan / statemen
2.1. Judul Program
Judul 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 tercadang
Hitung_Luas adalah nama program
2.2 Blok Program
a. 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

9
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 :
Begin
Daftar_statemen;
End;
Ketentuan penulisan statemen
1. Diakhiri dengan titik koma
2. Huruf besar atau huruf kecil tidak dibedakan
3. Dalam satu baris boleh lebih dari satu statemen
4. Satu statemen boleh terdiri dari beberapa baris
5. 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 prosedur
Digunakan untuk mengaktifkan suatu prosedur yang telah didefinisikan pemakai
atau oleh Pascal
Contoh :
tambah(x,y);
3. Statemen GOTO
Kata cadangan GOTO diikuti dengan pengenal label untuk melompat ke baris
tertentu.
4. Statemen kosong
Statemen yang tidak berisi simbol apapun.
Contoh :
Begin
End;
5. Statemen Input
Untuk 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, )
Atau
readln(var1, var2, )

6. Statemen Output
Untuk mencetak hasil pengolahan data (keluaran). Pascal mempunyai 2 statemen yaitu
WRITE dan WRITELN.
Sintaks :
write(var1, var2, )
atau
writeln(var1, var2, )

10
3. VARIABEL
Variabel 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. KONSTANTA
Berbeda 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. LABEL
Untuk menyatakan lokasi tempat pernyataan yang dituju oleh sebuah pernyataan GOTO
dalam program.
Sintaks :
Label
daftar_label;
Contoh :
label
ulang;
6. KLAUSA USES
Uses digunakan apabila ada unit (baik yang dibuat sendiri atau yang telah disediakan
Pascal) yang akan dilibatkan.
CONTOH PERMASALAHAN 1 :
Menghitung pajak dari suatu harga barang
program 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

11
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.

12
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 keyboard
2. 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

13
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
Tipe terstruktur

Larik (array)
Rekaman (record)
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
Shortint
Integer
Longint
Byte
Word

Jangkauan
-128127
-3276832767
-21474836482147483647
0255
065535

Ukuran dalam memori


8 bit
16 bit
32 bit
8 bit
16 bit

Contoh :
Var
Jumlah : byte ;
Begin
Jumlah := 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 Boolean
Tipe Boolean adalah tipe yang mempunyai nilai benar (True) atau salah (False), berukuran 1 byte.
Contoh :
Var
lagi : boolean ;
Begin
lagi := True;
Writeln (Nilai lagi = , lagi);
End.

Tipe Karakter
Tipe 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

14
-

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 Subjangkauan
Tipe 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/enumerasi
Enumerasi 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 Real


Digunakan untuk menyimpan bilangan real (pecahan).
Tipe
Real
Single
Double
Extended
Comp

Jangkauan
2.9 * 10
1.7 * 10 38
1.5 * 10 45 3.4 * 10 38
5.0 * 10 324 1.7 * 10 308
3.4 * 10 4932 1.1 * 10 4932
2 63 + 1 2 63 - 1
39

Pemberian nilai pada tipe real dapat dilakukan dengan 2 cara :


1. Menuliskan dengan tanda titik tanpa eksponen
Contoh : x:= 123.45
2. Menuliskan dengan eksponen
Contoh : x:= 1,2345E+2;
Tipe String

Digit
11 12
78
15 16
19 20
19 20

Ukuran
6 byte
4 byte
8 byte
10 byte
8 byte

15
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;
Begin
Tanggal := 18-09-2008;
Hari := Jumat;
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 penjumlahan
Macam operator :

Operator pemberian nilai


Bentuk operatornya adalah :=
Contoh :
A := 12;
B := Hallo;

Operator aritmetik
Operator
*
/
Div
Mod
+
-

Operasi
Perkalian
Pembagian real
Pembagian integer
sisa bagi
Penjumlahan
Pengurangan

Prioritas
1
1
1
1
2
2

Operator pemanipulasian bit


Berlaku untuk bilangan bulat.
Operator
Not
And
Or

Operasi
Negasi
Logika and
Logika or

Tipe Operand
Bil bulat,real
Bil bulat, real
Bil bulat
Bil bulat
Bil bulat , real
Bil bulat, real

Tipe Hasil
Bil bulat , real
real
Bil bulat
Bil bulat
Bil bulat, real
Bil bulat, real

2
7
7
7
2
2

Contoh
* 3 := 6
/ 2 : = 3.5
div 2 := 3
mod 2 := 1
+ 3 := 5
-3 := -1

16
Xor
Shl
Shr
A
0
0
1
1

B
0
1
0
1

Not A
1
1
0
0

Logika xor
Penggeseran bit ke kiri
Penggeseran bit ke kanan
Not B
1
0
1
0

A and B
0
0
0
1

A or B
0
1
1
1

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

A xor B
0
1
1
0

Output adalah 29
Penjelasan :
00011001
00000100

25
4
or

00011101

29

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

Output adalah 320


Penjelasan :
Nilai integer 5 digeser sebanyak 6 bit ke kiri
0000000000000101
5
0000000101000000
320

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

Output adalah 2
Penjelasan :
Nilai integer 160 digeser sebanyak 6 bit ke kanan
0000000010100000
160
0000000000000010
2

Operator Boolean
Sama dengan operator pemanipulasian bit tanpa operator shr dan shl
A
B
Not A Not B
false false
true
true
false true
true
false
true false false
true
true true
false
false
Operator himpunan
Digunakan pada tipe himpunan.
Operator
+
*
in

Operasi
Union
Selisih
Interseksi
Anggota dari

A and B
false
false
false
true

A or B
false
true
true
true

A xor B
false
true
true
false

17
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
Sama dengan
Tidak sama dengan
Kurang dari
Lebih dari
Kurang dari atau sama dengan
Lebih dari atau sama dengan
Subset dari
Superset dari

Tipe
Tipe
Tipe
Tipe
Tipe
Tipe
Tipe
Tipe

Tipe operan
sederhana, pointer, himpunan, string
sederhana, pointer, himpunan, string
sederhana, string
sederhana, string
sederhana, string
sederhana, string
himpunan
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 mhs
b. 5kali
c. Angsuran_1
d. Angsuran-1
e. X25
f. program

18
g. Pajak_bulanan
h. %diskon
i. 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,50
d. 5
e. 3.000.000
f. 3.34.08.1.11
g. L
h. False
i. True
j. 1.5E+03
k. #66
l. -5E-5
4. Ubahlah ekspresi matematika ini ke dalam bahasa pascal
x

b b 2 4.a.c
2.a

5. Berapa nilai x,y,z pada cuplikan program berikut :


Begin
Kelompok operator
A := 4;
not
B := 7;
* / div mod and shl shr
C := 10;
+ - or xor
X := A + B shl 2 * C;
= <> < > <= >= in
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

Prioritas
Tertinggi
Kedua
Ketiga
Keempat

19
A,b,c,d,x,y,z : boolean;
Begin
A :=
B :=
C :=
D :=
X :=
Y :=
Z :=
End.

true;
false;
true;
false;
A and B or C xor D;
A and not B or not C;
A xor B xor C xor D;

Jawab : x = true, y = true, z = false


9. 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 3
PEMILIHAN KONDISI (SELECTION)
1.

PILIHAN TUNGGAL

20
Bentuk paling sederhana pilihan tunggal adalah jika hanya ada satu pilihan kondisi
disediakan.
if kondisi then
true statement

yang

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 GANDA
Digunakan untuk menentukan tindakan yang akan digunakan bila kondisi bernilai benar dan
salah.
if kondisi then
statement1
else
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 MAJEMUK
Untuk 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

21
else
if kondisi2 then
statemen2
else
statemenberikutnya
CONTOH PERMASALAHAN 8 :
Mengelompokan nilai dengan ketentuan :
Jika nilai angka >= 90, maka nilai huruf = A
Jika nilai angka >= 80, maka nilai huruf = B
Jika nilai angka >= 70, maka nilai huruf = C
Jika nilai angka >= 60, maka nilai huruf = D
Jika 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

22
label1 :
label2 :
label3 :
labeln :
end;

Statement1;
Statement2;
Statement3;
Statementn;

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 konsonan
2. Menentukan bilangan terbesar dari 2 bilangan yang dimasukkan melalui keyboard
3. Menentukan bilangan terbesar dan terkecil dari 3 bilangan yang dimasukkan melalui
keyboard

23
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.
2.
3.
4.

Ringtone gokil
Nada sapa gokil
Cerita gokil
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 6


PERULANGAN (LOOPING)
TUJUAN INSTRUKSIONAL KHUSUS
Mahasiswa dapat membedakan dan menggunakan jenis-jenis statemen perulangan dalam
menyelesaikan permasalahan dalam bahasa Pascal

24
DASAR TEORI
Di dalam Pascal terdapat tiga macam perulangan yaitu dengan menggunakan statemen For...Do,
While...Do, dan Repeat...Until.
1.

STATEMEN PERULANGAN FOR... TO.... DO


Perulangan 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;

25
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;

26
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

',

27
*
**
***
****
*****
****
***
**
*
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 ... DO
Struktur 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 : ');

28

end.

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;

3. STRUKTUR REPEAT UNTIL


Digunakan 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

29
writeln(' MENU GOKIL GRATIS');
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
2 : writeln('Terima kasih menggunakan
3 : writeln('Terima kasih menggunakan
4 : writeln('Terima kasih menggunakan
0 : writeln('Selesai');
end;
writeln;
writeln;
until pilih=0;

');

layanan
layanan
layanan
layanan

Ringtone');
Nada sapa');
Gambar lucu');
Ramalan');

end.

TUGAS

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


2. Buat program tabel perkalian :
*
1
2
3
4
5
6
7
8
9
10

1
.
.
.
.
.
.
.
.
.
.

2
.
.
.
.
.
.
.
.
.
.

3
.
.
.
.
.
.
.
.
.
.

4
.
.
.
.
.
.
.
.
.
.

5
.
.
.
.
.
.
.
.
.
.

3. Buat tampilan seperti berikut :


6
.
.
.
.
.
.
.
.
.
.

7
.
.
.
.
.
.
.
.
.
.

8
.
.
.
.
.
.
.
.
.
.

9
.
.
.
.
.
.
.
.
.
.

10
.
.
.
.
.
.
.
.
.
.

Masukkan
1
12
123
1234
12345
1234
123
12
1

segitiga angka : 5

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

30
NO
1
2
3
4
5
6
7
8
9
10

NAMA
Susilo
Joko
Wati
Ambar
Mulyono
Nurdin
Asmuni
Asih
Mary
Seno

UMUR
21
11
35
20
45
17
7
29
55
22

JENIS KELAMIN
P
P
W
W
P
P
P
W
W
P

PEKERJAAN
PNS
Pelajar
Swasta
Swasta
PNS
Pelajar
Pelajar
PNS
PNS
PNS

REKAPITULASI WARGA BARU BULAN OKTOBER 2008


==========================================
Umur 0-17 tahun
=
orang
Umur 18-40 tahun
=
orang
Umur > 40 tahun
=
orang
Jenis kelamin Pria
=
orang
Jenis kelamin Wanita
=
orang
Pegawai Negeri Sipil
=
orang
Pegawai Swasta
=
orang
Pelajar/Mahasiswa
=
orang
Mengurus Rumah Tangga
=
orang
----------------------------------Jumlah warga baru
=
orang
Ketentuan :
a. Kode pekerjaan :
1 = PNS
2 = Pegawai Swasta
3 = Pelajar/Mahasiswa
4 = Mengurus Rumah Tangga
5 = Tentara/Polri
6 = 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 baru
2. Informasi program

31
3. Selesai
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 12
PROSEDUR DAN FUNGSI
TUJUAN INSTRUKSIONAL KHUSUS
Mahasiswa mampu mengaplikasikan penggunaan subprogram dengan prosedur (Procedure) dan
Fungsi (Function) dalam pembuatan program dan pengiriman parameter dengan nilai dan referensi.

32
PROSEDUR
Prosedur 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 global
Artinya dapat digunakan pada modul atau unit program lainnya.
CONTOH PERMASALAHAN 22 :
Penggunaan parameter lokal dan global.
Program prosedur2;
Uses crt;
Var
luas : integer;
Procedure hitung1;
Var panjang,lebar :
Begin
Write(Masukkan
Write(Masukkan
Luas := panjang
Writeln(Luas =
End;

{parameter global}
integer;

{parameter lokal}

panjang : );readln(panjang);
lebar : );readln(lebar);
* lebar;
, luas);

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 PROSEDUR

33
Pengiriman parameter ada 2 macam :
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);
Begin
C:= a+b;
End;

{parameter by reference}

{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.

FUNGSI
Blok 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 :

34
Function hitung(a,b : integer) : integer; {by value}
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
Writeln(Nilai b sebelum masuk
Writeln(Jumlah : ,jml(a,b));
Writeln(Nilai a setelah masuk
Writeln(Nilai b setelah masuk
Readln;
End.

ke function = ,a);
ke function = ,b);
ke function = ,a);
ke function = ,b);

PRAKTIKUM MINGGU 13
ARRAY DAN RECORD
TUJUAN INSTRUKSIONAL KHUSUS
Mahasiswa mampu membuat program menggunakan array dan record untuk menyelesaikan suatu permasalahan

35
ARRAY
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 inputdata1
Uses 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;

36
TUGAS
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 Data
2. Laporan Data
3. Selesai
Pilihan [1/2/3] :
Bila memilih 1 maka muncul tampilan input data :
Data keKode 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
1500
B
Bandung
6000
1000
C
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 dikirim
Biaya 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 dikirim
Jumlah 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;

37
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.

38
TUGAS
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
1
2
3
4
5

CALON PRESIDEN
1
2
3
4
209 51 395 28
127 96 401 42
194 98 177 41
119 18 303 26
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 sesuai
2. Menghitung dan mencetak keseluruhan suara yang diperoleh masing-masing calon dan
prosentasenya terhadap keseluruhan suara
3. Calon yang menang adalah calon yang memperoleh suara terbanyak
RECORD
Record 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;
Var
Barang : 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);

39
case pegawai[j].gol of
A, a : begin
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.

Anda mungkin juga menyukai