Anda di halaman 1dari 64

BAB I

PENDAHULUAN

A. Pengertian Algoritma.
Seorang yang pertama kali akan menyelesaikan pekerjaannya
dengan menggunakan jasa komputer akan selalu mempunyai kesan
bahwa usaha pertama yang perlu dilakukan adalah memahami bahasa
komputer. Kesan ini sebenarnya kurang tepat. Hal utama adalah
menemukan metode penyelesaiannya. Apabila metodenya telah
ditetapkan, usaha lanjut merupakan pekerjaan rutin yaitu, menuliskan
pekerjaan tersebut ke dalam bahasa komputer, apakah dalam bahasa
COBOL, PASCAL, FORTRAN, BASIC, atau bahasa rakitan (assembly
language). Bagian yang sangat penting untuk suksesnya pekerjaan
terletak pada usaha membuat urutan/langkah penyelesaian secara rinci.
Usaha ini disebut menulis ALGORITMA bagi program komputer.
Algoritma yang ditulis ke dalam bahasa komputer disebut
PROGRAM. Kalimat “algorithm” diambil dari nama seorang
matematikawan yang juga seorang astronomi berkebangsaan Arab, AL-
KHOWARIZMI yang hidup di abad ke 19, beliau dikenal sebagai
pengarang buku matematika yang membahas manipulasi angka-angka
beserta rumusan-rumusan aljabarnya.
Sekarang, algoritma baik sebagai aturan-aturan aljabar untuk
menghitung angka-angka, maupun sebagai manipulasi simbol-simbol
dalam aljabar. Sifat perintah yang dapat dianggap sebagai algoritma
ditentukan oleh kelengkapan perintah tersebut. Karena komputer bukan
manusia, faktor kecerdikan tidaklah dikenal. Komputer hanya mampu
bekerja tidak lebih dan tidak kurang mengeksekusi program dengan
menelusuri perintah-perintah yang dibuat dalam suatu program.

Definisi Algoritma
“Algoritma adalah urutan langkah-langkah logis penyelesaian
masalah yang disusun secara sistematis dan logis”.

Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah


dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah
atau benar.

Algoritma adalah jantung ilmu komputer atau informatika. Banyak


cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun
jangan beranggapan algoritma selalu identik dengan ilmu komputer saja.
Dalam kehidupan sehari-haripun banyak terdapat proses yang
dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau
masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai
algoritma. Pada setiap resep selalu ada urutan langkah-lankah membuat
masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan
masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan
akan membaca satu per satu langkah-langkah pembuatannya lalu ia
mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda)
yang mengerjakan proses disebut pemroses (processor). Pemroses
tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik
2

lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau


“mengeksekusi” algoritma yang menjabarkan proses tersebut.
Melaksanakan Algoritma berarti mengerjakan langkah-langkah di
dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan
algoritma yang diberikan kepadanya. Juru masak membuat kue
berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu
berdasarkan papan not balok. Karena itu suatu Algoritma harus
dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi
suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.

B. Mekanisme Pelaksanan Algoritma Oleh Pemroses

Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan


oleh komputer, algoritma harus ditulis dalam notasi bahasa
pemrograman sehingga dinamakan program. Jadi program adalah
perwujudan atau implementasi teknis Algoritma yang ditulis dalam
bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh
komputer.

C. Belajar Memprogram Dan Belajar Bahasa Pemrograman

Belajar memprogram tidak sama dengan belajar bahasa


pemrograman. Belajar memprogram adalah belajar tentang metodologi
pemecahan masalah, kemudian menuangkannya dalam suatu notasi
tertentu yang mudah dibaca dan dipahami. Sedangkan belajar bahasa
pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata
bahasanya, instruksi-instruksinya, tata cara pengoperasian compiler-nya,
dan memanfaatkan instruksi-instruksi tersebut untuk membuat program
yang ditulis hanya dalam bahasa itu saja.

Penulisan Algoritma
• Dalam bahasa natural (Bahasa Indonesia, Bahasa Inggris, dan
bahasa manusia lainnya)
Tapi sering membingungkan (ambiguous)

• Menggunakan flow chart (diagram alir)


Bagus secara visual akan tetapi repot kalau algoritmanya panjang

• Menggunakan bahasa pemrograman


Sulit dimengerti oleh orang yang tidak mengerti pemrograman

Contoh:
– Buat sebuah algoritma untuk mencetak tulisan “SOLO BERSERI”
sebanyak lima baris dilayar komputer.

Algoritma Dalam Bahasa Natural

1) Berilah nilai jumlah cetak pertama sama dengan 0 ( X=0)


2) Tambah nilai cetak dengan satu ( X=X+1)
3

3) Cetak tulisan “SOLO BERSERI”


1) Cek apakah nilai cetak sudah sama dengan 5 ( X=5), jika sudah maka
proses cetak selesai, jika belum sama dengan lima ulangi keproses 2.

Algoritma dengan Flowchart

Mulai

X=0

X=X+1

Cetak
“SOLO BERSERI

T
X=5

Selesai
4

Algoritma dengan Bahasa Pemrograman

Program Coba;
Var X : Integer;
Begin
X:=0;
Repeat
Begin
X:=X+1;
Writeln(‘SOLO BERSERI’);
End;
Until X=5
End.

D. Bagan Alir/Flowchart

Bagan alir (flowchart) adalah bagan (chart) yang menunjukkan alir


(flow) di dalam program atau prosedur sistem secara logika. Bagan alir
(flowchart) digunakan terutama untuk alat bantu komunikasi dan untuk
dokumentasi. Pada waktu akan menggambar suatu bagan alir, analis
sistem atau pemrogram dapat mengikuti pedoman-pedoman sebagai
berikut:
1. Bagan alir (flowchart) sebaiknya digambar dari atas ke bawah dan
mulai dari sebelah kiri dari suatu halaman.
2. Kegiatan di dalam bagan alir(flowchart) harus ditunjukkan dengan
jelas.
3. Harus ditunjukkan dari mana kegiatan akan dimulai dan dimana akan
berakhir.
4. Masing-masing kegiatan di dalam bagan alir sebaiknya digunakan
suatu kata yang mewakili suatu pekerjaan, misalnya:
- “Persiapkan” dokumen
- “Hitung” gaji
5. Masing-masing kegiatan di dalam bagan alir (flowchart) harus dalam
urutan yang semestinya.
6. Kegiatan yang terpotong dan akan disambung ditempat lain harus
ditunjukkan dengan jelas menggunakan simbol penghubung.

Bagan alir (flowchart) dapat digolongkan menjadi 5 jenis yakni:

1. Bagan alir sistem (system flowchart)


2. Bagan alir dokumen (documen flowchart)
3. Bagan alir skematik (scematic flowchart)
4. Bagan alir program (program flowchart)
5. Bagan alir proses (proses flowchart)

1. Bagan Alir System

Bagan alir sistem (systems flowchart) merupakan bagan yang


menunjukkan arus pekerjaan secara keseluruhan dari sistem. Bagan
ini menjelaskan urut-urutan dari prosedur-prosedur yang ada di dalam
sistem.bagan alir sistem menunjukkan apa yang dikerjakan di sistem.
5

Bagan alir sistem digambar dengan menggunakan sisbol-simbol yang


tampak sebagai berikut:

Simbul dokumen Menunjukkan dokumen input dan


aoutput baik untuk proses manual,
mekanik atau komputer.

Simbol kegiatan manual Menunjukkan pekerjaan manual

Simbol simpanan File non-komputer yang diarsip urut


angka (numerical)

File non-komputer yang diarsip urut


huruf (alphabetical)
A

File non-komputer yang diarsip urut


tanggal (cronological)
C

Simbol kartu plong Menunjukkan input/output yang


menggunakan kartu plong (punched
card)

Simbol proses Menunjukkan kegiatan proses dari


operasi program komputer
6

Simbol operasi luar Menunjukkan operasi yang dilakukan di


luar proses operasi komputer

Simbol pengurutan Menunjukkan proses pengurutan data di


data luar proses komputer

Simbol pita magnetik Menunjukkan input/output menggunakan


pita magnetik

Simbol hardisk Menunjukkan input/output menggunakan


hardisk

Simbol diskette Menunjukkan input/output menggunakan


diskette

Simbol drum Menunjukkan input/output menggunakan


magnetik drum magnetik

Pita kertas berlubang Menunjukkan input/output menggunakan


pita kertas berlubang

Simbol keyboard Menunjukkan input menggunakan


keyboard
7

Simbol display Menunjukkan output yang ditampilkan di


monitor

Simbol garis alir Menunjukkan arus dari proses

Simbol penjelasan Menunjukkan penjelasan dari suatu


proses

Simbol penghubung Menunjukkan penghubung ke halaman


yang masih sama atau ke halaman lain

2. Bagan Alir Dokumen

Bagar alir dokumen (document flowchart) atau disebut juga


bagan alir formulir (form flowchart) merupakan bagan alir yang
menunjukkan arus dari laporan dan formulir termasuk tembusan-
tembusannya. Bagan alir dokumen ini menggunakan simbol-simbol
yang sama dengan yang digunakan di dalam bagan alir system.

3. Bagan Alir Skematik

Bagan alir skematik (scematic flowchart) merupakan bagan


alir yang mirip dengan bagan alir sistem, yaitu untuk
menggambarkan prosedure di dalam sistem. Perbedaannya adalah,
bagan alir skematik selain menggunakan simbol-simbol bagan alir
sistem, juga menggunakan gambar-gambar komputer ini adalah
untuk memu-dahkan komunikasi kepada orang yang kurang paham
dengan simbol-simbol bagan alir. Penggunaan gambar-gambar ini
memudahkan untuk dipahami, tetapi sulit dan lama
menggambarkannya.

4. Bagan Alir Proses

Bagan alir proses (proses flowchart) merupakan bagan alir yang


banyak digunakan di teknik industri. Bagan alir ini juga berguna bagi
analis sistem untuk menggambarkan proses dalam suatu prosedur.

5. Bagan Alir Program


8

Bagan alir program (program flowchart) merupakan bagan yang


menjelaskan secara rinci langkah-langkah dari proses program. Bagan
alir program dibuat dengan menggunakan simbol-simbol sebagai
berikut:

SIMBOL NAMA FUNGSI

TERMINATOR Permulaan/akhir program

GARIS ALIR
Arah aliran program
(FLOW LINE)

Proses
PREPARATION inisialisasi/pemberian
harga awal

Proses perhitungan/proses
PROSES
pengolahan data

INPUT/OUTPUT Proses input/output data,


DATA parameter, informasi

PREDEFINED
Permulaan sub
PROCESS
program/proses
(SUB
menjalankan sub program
PROGRAM)
Perbandingan pernyataan,
penyeleksian data yang
DECISION
memberikan pilihan untuk
langkah selanjutnya

Penghubung bagian-
ON PAGE
bagian flowchart yang
CONNECTOR
berada pada satu halaman
Penghubung bagian-
OFF PAGE bagian flowchart yang
CONNECTOR berada pada halaman
berbeda
9

Contoh: Bagan Alir Logika Program untuk menghitung rata-rata


sekelompok angka.

Mulai

Beri
nilai
awal
Total
Baca
Data

Hitung
Total

T
Data
sudah
habisY

Hitung Rata-rata

Tampilkan hasil
Total dan Rata-rata

Selesai
10

Contoh Bagan Alir program komputer terinci menghitung rata-rata.

Mulai

Total=0
I=0

I = I +1

Baca N

Baca X

Total=Total+X

T
I=N

Rata=Total/N

Cetak Total
dan Rata

Selesai
11

BAB II
PENGANTAR PEMROGRAMAN PASCAL

A. Pendahuluan
Selesai membuat algoritma atau bagan alir, langkah selanjutnya
adalah membuat program komputer. Program ini dapat dibuat dalam
bahasa pemrograman, misalnya: Cobol, Fortran, Basic, Pascal dan
sebagainya. Menulis program komputer merupakan bagian dari seri
tahapan kerja di dalam siklus pengembangan program. Urutan dari siklus
tahapan kerja pengembangan program ini adalah:
1. Merencanakan sistem spesifikasi program.
Tahapan ini termasuk menjelaskan masalah dalam rumusan dasarnya,
ekspresi persamaan matematikanya dan bentuk hasil yang
diharapkan.
2. Membuat prosedur logika (algoritma/bagan alir)
3. Membuat program berdasarkan penjelasan algoritma/bagan
alir program.
4. Memeriksa dan melakukan eksekusi program
5. Membuat dokumentasi program dan keluaran dari eksekusi
program.
Di dalam tahapan, pemrogram (progammer) harus menguasai
aturan baku yang sudah merupakan standar untuk berkomunikasi
dengan komputer, misalnya bahasa apa yang akan digunakan, jenis
komputer apa, dan peralatan lain yang akan digunakan.
Sebelum dapat menjalankan suatu program pada komputer,
diperlukan persiapan menulis prosedur pekerjaan dan algoritma atau
bagan alir ke dalam bahasa komputer. Pascal merupakan salah satu
bahasa komputer tingkat tinggi. Mempelajari bahasa Pascal
sesungguhnya merupakan pengenalan bahasa yang baru untuk tujuan
mempelajari aturan konstruksi bahasa agar dapat dipakai sebagai media
komunikasi dengan komputer.
Kegagalan suatu program terjadi jika susunan atau aturan
instruksi yang digunakan terlalu rumit, untuk itu perlu dituliskan dulu
algoritma/bagan alir yang jelas dan benar. Penulisan bagan alur
(flowchart) merupakan persyaratan yang perlu guna menghindari
kesalahan dalam program. Pertimbangan berikut dapat menjadi acuan
untuk penulisan program yang baik:
1. Program harus mudah dibaca dan mudah dipahami.
2. Menulis kelompok perintah untuk satu bagian penyelesaian
pekerjaan dengan tata penulisan tertentu mulai dari kolom yang
berbeda dari kelompok perintah lainnya. Ini mempermudah usaha
perbaikan apabila terjadi kesalahan.
3. Tentukan dulu program penyajian data (masukan/keluaran)
untuk memudahkan pemeriksaan.
4. Penulisan program sebaiknya berbentuk subprogram guna
mengurangi kemungkinan kesalahan.
5. Usahakan program yang sifatnya dapat disisipi, sehingga pada
percobaan eksekusi program akan mudah memeriksa bagian yang
keliru.
12

Suatu program yang baik mampu memberikan dokumentasi


program yang terbaca oleh pemakai lainnya. Perubahan pada program
bila diperlukan mudah dilakukan tanpa modifikasi yang berarti atau
modifikasi total.

B. Struktur Penulisan Bahasa Pascal

Struktur bahasa Pascal terdiri atas bagian-bagian sebagai berikut:


a. Judul Program
b. Block Program
 Bagian Deklarasi
 Bagian Pernyataan

Judul Program PROGRAM


Bagian Deklarasi
LABEL

CONST

TYPE

VAR

PROCEDURE

FUNCTION
Bagian pernyataan
BEGIN

Pernyataan;
Pernyataan;

END.

Program yang paling sederhana dari pascal adalah hanya terdiri dari
sebuah bagian pernyataan saja (statement part) yang diawali dengan
kata cadangan (reserved word) BEGIN diakhiri END.

Judul

Judul program dalam bahasa Pascal merupakan satu pernyataan yang


unik yang ditulis sebagai :

PROGRAM nama_program;

Kalimat PROGRAM merupakan sintak bahasa Pascal yang baku dan


mutlak harus ditulis seperti adanya, sedangkan kalima nama_program
merupakan indikasi untuk menulis nama program, jika nama_program
disebut Contoh maka sintak dari judul program adalah:
13

PROGRAM Contoh;

Deklarasi

Deklarasi dari program Pascal merupakan pernyataan yang


menetapkan data dan obyek untuk digunakan dalam eksekusi program.
Deklarasi digunakan apabila program menggunakan pengemal
(identifier), dan pengenal ini dapat berupa:
 Deklarasi Label
 Deklarasi Konstanta
 Deklarasi Tipe
 Deklarasi Variabel
 Deklarasi Procedure
 Deklarasi Fungsi (Function)

Deklarasi Label

Digunakan apabila program menggunakan statement GOTO untuk


meloncat ke suatu statement tertentu.

Contoh:

Program Contoh_label;
Label
10, 100, selesai;

Begin
Writeln(‘Selamat Datang’);
Writeln(‘Di Kota Sala Berseri’);
Goto 100;
10:
Writeln(‘Kota Nyaman’);
Writeln(‘sejuk dan Indah’);
Goto selesai;

100:
Writeln(‘Berseri bebas Korupsi’)
Writeln(‘Berseri bebas polusi’’);
Goto 10;

Selesai:
End.
14

Deklarasi Konstanta
Konstanta adalah suatu besaran yang nilainya tidak berubah-ubah.
Deklarasi Konstanta digunakan apabila program menggunakan identifier
yang berisi nilai-nilai konstanta, maka harus didefinisikan terlebih
dahulu.
Contoh :

Program Contoh_Kontanta;
Const
Gaji:=200000;
Pph:=0.1;
Nama:=’Senopati Pamungkas’;
Begin
Writeln(‘Nama Pegawai : ‘,nama);
Writeln(‘Gaji Pokok : ‘,gaji);
Writeln(‘Pajak : ‘,Pph);
End.

Deklarasi Variabel
Variabel adalah suatu besaran yang nilainya dapat berubah-ubah.
Variabel yang akan digunakan di dalam program harus didefinisikan
terlebih dahulu.
Contoh:

Program Contoh_variabel;
Var
Total,Gaji,Tunjangan : Real;
Anak : Integer;
Nama, Keterangan : String[25];
Begin
Gaji := 100000;
Anak := 2;
Tunjangan := 0.25 * Gaji + anak * 300000;
Total := Gaji + Tunjangan;
Nama := ‘Budiman’;
Keterangan := ‘Karyawan Teladan’;
Writeln(‘Nama Pegawai : ‘,nama);
Writeln(‘Jumlah anak : ‘,anak);
Writeln(‘Gaji Pokok : ‘,gaji);
Writeln(‘Tunjangan : ‘,Tunjangan);
Writeln(‘Total : ‘,Total);
Writeln(‘Keterangan : ‘,Keterangan);
End.

Deklarasi Type
Deklarasi Type merupakan salah satu usaha pembatasan nilai awal
maupun nilai akhir berlakunya data. Pemrogram menggunakan
pernyataan Type untuk menyatakan suatu variabel yang berjenis lain
diluar jenis baku yang diberikan.

Contoh:
15

Program Contoh_Type;
Type
Hari = (Senin,Selasa,Rabu,Kamis,Jumat,Sabtu,Minggu);
Var
nm_hari : Hari;
N : 1..7;
ket : string;

Begin
Write('Hari yang ke : ');readln(n);
nm_hari:=Hari(n);
Case nm_hari of
Senin,Selasa,Rabu,Kamis,Jumat,Sabtu : ket:='Hari Kerja'
else
ket:='Hari Libur';
end;
writeln('Hari tersebut adalah hari ',ket);
readln;
end.

Deklarasi Procedure
Procedur merupakan bagian yang terpisah dari suatu program, dan
dapat diaktifkan dimanapun di dalam suatu program.

Contoh:

Program Contoh_Procedure;
Procedure HITUNG(A,B,C:Integer; Var Hasil : Integer);

Begin
Hasil : A+B+C;
End;

{------Program Utama--------}
Var Z : Integer;

Begin
HITUNG(2,3,4,Z);
Writeln(‘Hasil 2+3+4 = ‘,Z:3)
End.

Deklarasi Fungsi

Fungsi merupakan bagian yang terpisah dari suatu program dan dapat
diaktifkan dimanapun di dalam suatu program seperti Deklarasi
Procedure.

Contoh:

Program Contoh_Function;
Function HITUNG(A,B:Integer): Integer;
16

Begin
Hasil : A+B;
End;

{------Program Utama--------}
Var Z : Integer;
Begin
Writeln(‘Hasil 2+3 = ‘,HITUNG(2,3):3);
End.

C. Operator & Fungsi Hakiki Turbo Pascal.

a. Operator Dasar

ARTI NOTASI
Penambahan +
Pengurangan -
Perkalian *
Pembagian /

b. Operator Pembanding

OPERATOR ARTI KESAMAAN ARITMATIK


= Sama dengan =

<> Tidak sama dengan ≠

< Lebih kecil dari <

> Lebih besar dari >

<= Lebih kecil atau <


sama denga dari

>= Lebih besar atau >


sama dengan dari
17

c. Operator Boolean

NOTASI ARTI
AND Dan
OR Atau
NOT bukan

d. Fungsi Hakiki.

1. Fungsi Hakiki Aritmatik

Fungsi Kata Contoh Hasil


Tuntun
an
Nilai mutlak ABS X :=ABS(-12.5); X=12.5
I:=ABS(-17); I=17

Arctangensial ARCTAN X:=ARCTAN(1.34); X=0.295 *


pi

Cosinus COS X:=COS(pi * 0.5); X=0

Eksponensial EXP X:=EXP(3.4); X=29.96

Bagian Pecahan FRAC X:=FRAC(35.64); X=0.64

Angka Bulat INT X:=INT(35.64); X=35.00

Logaritma LOG X:=LN(5); X=1.609

Sinus SIN X:=SIN(pi * 0.7); X=0.809

Kwadrat SQR X:=SQR(3.5); X=12.25

Akar SQRT X:=SQRT(25); X=5

2. Fungsi Hakiki Skalar

Fungsi Kata Contoh Hasil


Tuntunan

Nilai lebih rendah PRED X:=PRED(‘D’); X=’C’


(sebelumnya) A:=PRED(7); A=6

Nilai lebih tinggi SUCC X:=SUCC(‘C’); X=’D’


(Sesudahnya) A:=SUCC(9); A=10

Nilai Ganjil ODD X:=ODD(7); TRUE


A:=ODD(8); FALSE

3. Fungsi Hakiki Konversi


18

Fungsi Kata Contoh Hasil


Tuntunan

Konversi Nilai CHR X:=CHR(65); X=’A’


bilangan Bulat A=CHR(88); A=’X’
menjadi karakter

Konverasi ORD X:=ORD(‘a’); X=97


karakter menjadi A:=ORD(‘!’); A=21
bilangan bulat

Pembulatan ROUND X:=ROUND(2.57); X=3


A:=ROUND(2.27) A=2

Pemenggalan TRUNC X:=TRUNC(2.57); X=2


A:=TRUNC(2.27); A=2
19

BAB III
TYPE DATA DALAM PEMROGRAMAN PASCAL

Dalam Pascal semua perubah (variabel) yang akan digunakan dalam


program utama harus ditentukan (di deklarasikan) tepe datanya.
Menentukan tipe data suatu perubah, sekaligus menentukan batasan nilai
perubah tersebut dan jenis operasi yang bisa dilaksanakan terhadap
perubah (variabel) tersebut. Ada 3 jenis dasar dari tipe data pada Turbo
Pascal yaitu:

1. Sederhana
2. Terstruktur
3. Pointer

Lebih terinci dapat dilihat pada gambar berikut:

Tipe

Sederhana Terstrukur Pointer

Standart Didefinisikan String Array Record File


pemakai

Subrange Terbilang
Ordinal Real

Byte Integer Char Boolean Shortint Word Longint

Gambar : Kategorisasi tipe data pada Pascal


20

A. Tipe Data Sederhana

1. Tipe Data Standar

a. Tipe Ordinal

a.1. Tipe Data Interger

Tipe data Integer adalah bilangan bulat atau tipe data yang
nilainya tidak mempunyai titik desimal. Pada Pascal tipe data
numeric ada 2 yaitu Integer dan Real.

Type Jangakuan Nilai


Byte 0 s/d 225
Shortint -128 s/d 127
Interger -32768 s/d 32767
Word 0 s/d 65535
Longint -2147483648 s/d 2147483647

Tabel : Tipe Data Integer dan batasan nilainya

Contoh:

Program Contoh_integer;

Var
X, Y : Integer;
Begin
X:=10;
Y:=X*5;
Writeln(‘Nilai Y : ‘,Y:3);
End.

a.2. Type Data Char


Pada Turbo Pascal Char digunakan untuk mendefisikan tipe
data yang nilainya himpunan karakter yang dikenal
komputer.
Contoh:

Program Contoh_tipe_Char;
Var
Huruf: Char;
Begin
Huruf:=’A’;
Writeln(‘Huruf yang diinginkan : ‘,huruf);
End.
21

a.3. Type Data Boolean


Data tipe Bolean mempunyai dua nilai, yaitu True(1 nilai
binernya) dan False (0 nilai binernya). Variabel Bolean
dideklarasikan menggunakan tipe data Boolean.

Contoh:

Program Type_Boolean;
Var lagi : boolean;

begin
Lagi:=false;
Writeln('Nilai lagi adalah : ',lagi);
if lagi=true then
writeln('Nilai lagi benar')
else
writeln('Nilai lagi salah');
readln;
end.

b. Type Data Real

Data tipe Real adalah bilangan yang berisi titik desimal atau
bilangan nyata. Dalam Pascal paling sedikit harus ada satu digit
sebelumnya dab sesudahnya titik desimal tidak boleh ada koma
(pembatas tanda desimal adalah titik bukan koma) dan nilainya
dapat positif atau negatif. Dalam Pascal terdapat lima macam tipe
data Real, yaitu: Real, single, double, extended dan comp. Untuk
jelasnya dibawah ini ditunjukan batasan-batasan nilai tipe data
real.

Type Batasan Nilai Angka


signifikan
Real 2.9 X 10E-39…1.7 X 10E38 11 – 12
Singgle 1.5 X 10E-45…3.4 X 10E38 7–8
Double 5.0 X 10E-324…1.7 X 10E308 15 – 16
Extende 1.9 X 10E-4951…1.1 X 10E4932 19 – 20
d
Comp -2E63+1….2E63-1 19 - 20

Tabel : Tipe Data Real batasan nilainya


22

Contoh:

Program Type_Data_Real;
Var
Nilai : Real;
Begin
Nilai := 1100.55;
Writeln(‘Nilai yang tercetak : ‘,nilai:6:2);
End.

2. Tipe Data yang didefinisikan pemakai

a. Tipe Terbilang
Tipe data terbilang merupakan tipe data skalar (ordinal). Ini berarti
nilainya berurutan, urutan nilainya sesuai dengan tipe data yang
dideklarasikan.

Contoh:

Program coba;
type
bulan =(Jan,Feb,Mar,Apr,Mei,Jun,Jul,Agt,Sep,Okt,Nop,Des);
var
x:bulan;
x1:Integer;

begin
write('Masukan Bulan : ');readln(x1);
x:=bulan(x1-1);
case x of
Jun..Agt : writeln('Bulan Panas');
else
writeln('Bulan tidak Panas');
end;
readln;
end.

b. Tipe Data Subrange


Subrange dapat dibentuk dengan mengambil sebagian dari
sembarang tipe data ordinal. Penulisan deklarasi disingkat dengan
menulis nilai pertama dari jangkauan, disela dua titik kemudian
nilai terakhir dari jangkauan tersebut.
23

Contoh 1 :

Program Tipe_Data_Subrange;
Type
Nilai = 1..4;
Var
Angka: nilai;
Begin
Angka:=3;
Writeln(‘Nilai angka : ‘,angka);
End.

Contoh 2:

Program coba;
uses crt;
type
bulan =(Jan,Feb,Mar,Apr,Mei,Jun,Jul,Agt,Sep,Okt,Nop,Des);
var
x:bulan;
x1:1..12;
begin
clrscr;
write('Masukan Bulan : ');readln(x1);
x:=bulan(x1-1);
case x of
Jun..Agt : writeln('Bulan Panas');
else
writeln('Bulan tidak Panas');
end;
readln;
end.

B. Tipe Data Terstruktur

a. Tipe Data String.


Data string didefisikan menggunakan tanda kutip (quote) tunggal
diikuti dengan rangkaian karakter, diikuti dengan kutip tunggal
(rangkaian karakter diatara tanda kutip tunggal). Panjang karakter
(variabel) maksimum 255 karakter, panjang minimum zero (0). Tipe
string yang tidak dinyatakan panjang stringnya dianggap mempunyai
255 karakter.
24

Contoh:

Program Tipe_string;
Var

NAMA : STRING[20];
ALAMAT=STRING;
BEGIN
NAMA:=’BUDIMAN’;
ALAMAT:=’JL. KUTILANG NO.12 SURAKARTA’;
WRITELN(‘NAMA : ‘,NAMA);
WRITELN(‘ALAMAT : ‘,ALAMAT);
END.

b. Untuk tipe data Array, Record dan File akan dibahas secara
khusus pada bab selanjutnya.
25

BAB IV
MASUKAN, KELUARAN, LOGIKA PERCABANGAN DAN PERULANGAN

A. Masukan dan Keluaran

Sebelum kita membuat sebuah program yang komplek , maka


terlebih dahulu kita harus memahami perintah-perintah dasar (elemen)
dari Turbo Pascal yang terkait dengan bagaimana memasukan(masukan)
data dan mencetak hasil (keluaran) data. Perintah-perintah dasar
tersebut adalah Write, Writeln, Read dan Readln.

1. Keluaran (Write dan Writeln)

a. Write
Perintah untuk mencetak hasil pada layar, dan hasilnya dicetak
pada baris yang sama, bukan pada baris berikutnya.

Contoh 1:
Program Coba;
Begin
Write(‘Aku’);
Write(‘dan’);
Write(‘Dia’);
End.

Hasil.
AkundanDia

Contoh 2:
Program Coba;
Begin
Write(‘2 + 3 = ’);
Write(2+3);
End.

Hasil.
2+3=5

b. Writeln
Jika Write adalah untuk mencetak hasil pada layar, dan hasilnya
dicetak pada baris yang sama, maka Writeln adalah mencetak
hasil pada layar pada baris berikutnya.
26

Contoh 1:
Program Coba;
Begin
Writeln(‘Aku’);
Writeln(‘dan’);
Writeln(‘Dia’);
End.

Hasil.
Aku
dan
Dia

Contoh 2:
Program Coba;
Begin
Write(‘Solo Berseri’);
Writeln(‘Memang Indah’);
Writeln(‘Nyaman Sekali’);
End.

Hasil.
Solo BerseriMemang Indah
Nyaman Sekali

2. Masukan (Read /Readln)

Read/Readln
Perintah untuk membaca data yang dimasukan oleh sipemakai
(Operator).

Contoh.
Program Coba;
Var
P,L,KL,LS : Integer;

Begin
Write(‘Masukan Panjang = ‘);readln(P);
Write(‘Masukan Lebar = ‘);readln(L);
KL:=2*(P+L);
LS:=P * L;
Writeln(‘Keliling = ‘,KL:3);
Writeln(‘Luas = ‘,LS:3);
End.

Hasil
Masukan Pangan = 10
Masukan Lebar = 5
Keliling = 30
Luas = 50

Soal dan Pembahasan


27

1. Amir membeli sepatu seharga Rp. 150.000,- sepatu yang dibeli Amir
di diskon 10%. Berapa harga yang harus dibayar oleh Amir.
a. Pecahkan Algoritma dan Flowchart Programnya.
b. Buat Program Pascalnya.

Jawab:
Algoritma Natural.

a. Tentukan harga sepatu


b. Tentukan diskon
c. Hitung Potongan
d. Hitung Harga bayar
e. Cetak harga Bayar

Flowchart (Masukan dari program)

Mulai

Harga=15000
0
Diskon = 0.1

Potong=Diskon *
Harga
Bayar = Harga -

Cetak
Potong dan
Bayar

Selesai
28

Program Pascal:

Program Latih1;
Uses Crt;
Var
Harga : Integer;
Diskon, Potong, Bayar : Real;

Begin
Harga:=150000;
Diskon:=0.1;
Potong:=Diskon * Harga;
Bayar:=Harga – Potong;
Writeln(‘Harga Sepatu = ‘,Harga:10);
Writeln(‘Diskon = ‘,Potong:8:2);
Writeln(‘Jumlah Bayar = ‘,Bayar:10:2);
End.

Flowchart (Masukan dari Keyboard)

Mulai

Input Harga
dan Diskon

Potong=Diskon *
Harga
Bayar = Harga -

Cetak
Potong dan
Bayar

Selesai
29

Program Pascal:

Program Latih1;
Uses Crt;
Var
Harga : Integer;
Diskon, Potong, Bayar : Real;

Begin
Write(‘Masukan harga = ‘);readln(Harga);
Write(‘Masukan Diskon = ‘);readln(Diskon);
Potong:=Diskon * Harga;
Bayar:=Harga – Potong;
Writeln(‘Harga Sepatu = ‘,Harga:10);
Writeln(‘Diskon = ‘,Potong:8:2);
Writeln(‘Jumlah Bayar = ‘,Bayar:10:2);
End.

2. PT Merdeka di dalam memberikan gaji kepada pegawainya dengan


ketentuan sebagai berikut:
Setiap bulannya seorang pegawai diberikan gaji pokok, dan tunjangan
sebesar 10% dari gaji pokok. Selain itu diberikan uang makan sebesar
Rp. 30.000,- per bulan. Gaji kotor setiap pegawai dihitung Gaji Pokok
+ Tunjangan. Untuk tabungan hari tua setiap pegawai dipotong 5%
dari Gaji Kotor, sedangkan uang gaji yang diterimakan kepada setiap
pegawai adalah Gaji Kotor ditambah uang makan, dikurangi dengan
tabungan hari tua.

Dari permasalahan di atas buatlah algoritma, flowchart dan program


Pascalnya.

Jawab:
Algoritma Natural:

a. Baca NIP dan Nama Pegawai


b. Baca Gaji Pokok
c. Baca Uang Makan
d. Hitung Tunjangan
e. Hitung Gaji Kotor (Gaji Pokok + Tunjangan)
f. Hitung Tabungan Hari Tua (5% X Gaji Kotor)
g. Hitung Gaji yang diterima (Gaji Kotor + Uang Makan)- Tabungan
Hari Tua.
h. Tulis Hasil.
30

Flowchart:

Mulai

UM =
30.000

Bacan
NIP,Nama,
GP

TJ = 10% * GP
GK = GP + TJ
PHT = 5% * GK
GB = GK - PHT

Cetak GP, TJ,


GK, PHT, GB

Mulai

Program Pascal:

Program Latih2;
Uses Crt;
Const
UM := 30000;
Var
NIP : String[5];
Nama : String[15];
UM
GP,TJ,GK,PHT,GB : Real;

Begin
Clrscr;
Write(‘No. Induk Pegawai = ‘);readln(NIP);
Write(‘Nama Pegawai = ‘);readln(Nama);
Write(‘Gaji Pokok = ‘);readln(GP);
TJ:=0.10 * GP;
GK:=GP + TJ;
PTH:=0.05 * GK;
GB := GK – PTH;
Writeln(‘Tunjangan = ‘,TJ:10:2);
31

Writeln(‘Gaji Kotor = ‘,GK:10:2);


Writeln(‘PT.Hari Tua = ‘,PTH:10:2);
Writeln(‘Gaji Bersih = ‘,GB:10:2);
End.

B. Mengenal Logika Percabangan.


Logika percabangan adalah proses menentukan suatu kondisi
atau memilih kegiatan tertentu sesuai dengan proses logika yang benar.
Di dalam Pascal proses logika percabangan terdapat dua perintah yaitu
percabgan IF …. Then… dan Case Of.

1. Logika Percabangan IF…THEN…. ELSE…..

Bentuk umum:

If Kondisi Then Pernyataan1 Else Pernyataan2;

Atau

If Kondisi Then
Begin
Pernyataan, Blok1 pernyataan 1
Pernyataan,
End
Else
Begin
Pernyataan, Blok1 pernyataan 2
Pernyataan,
End;

Artinya :
 Jika kondisi benar maka pernyataan1 dijalankan, jika kondisi
salah maka pernyataan2 yang dijalankan.

 Jika kondisi benar maka Blok pernyataan1 dijalankan, jika


kondisi salah maka Blok pernyataan2 yang dijalankan.
32

2. Logika Case Of

Bentuk umum:

Case Var Of
Kondisi1 : Pernyataan1;
Kondisi2 : Pernyataan2;
Else
Pernyataan2;
End;

Atau

Case Var Of
Kondisi1 : Begin
Pernyataan, Blok1 pernyataan 1
Pernyataan,
End;
Kondisi2 : Begin
Pernyataan, Blok1 pernyataan 2
Pernyataan,
End;
Else
Begin
Pernyataan,
Pernyataan, Blok1 pernyataan 3
End;

Artinya :
 Jika kondisi benar maka pernyataan1 dijalankan, jika kondisi
salah maka pernyataan2 yang dijalankan.

 Jika kondisi1 benar maka Blok pernyataan1 dijalankan, jika


kondisi2 Blok pernyataan2 dijalankan, Jika Kondisi1 dan
Kondisi2 salah maka Blok pernyataan2 yang dijalankan.

Contoh Soal:

1. Toko Matahari dalam menjual barang-barangnya memberikan diskon


kepada setiap pembelinya dengan keentuan sebagai berikut: Untuk
pembelian barang seharga Rp. 100.000,- ke atas mendapat diskon
15% dari harga jual, sedangkan pembelian barang seharga kurang
dari Rp. 100.000,- hanya mendapat diskon sebesar 5% dari harga
jual.

Tugas: Buatlah algoritma, flowchart dan programnya permasalahan


tersebut di atas.
33

Jawab:
Algoritma Natural:

a. Baca No. Kwitansi


b. Baca jumlah harga pembelian barang
c. Cek apakah harga pembelian >=100.000, jika ya maka hitung
Diskon= 15% * Harga pembelian, jika tidak maka hitung Diskon
= 5% * harga Pembalian.
d. Hitung harga bayar.
e. Cetak No. Kwitansi, harga pembelian, diskon dan Harga Bayar.

Flowchart.

Mulai

Baca Nota dan HP

Y
HP>=100 DS = 15% *
000 HP
T

DS = 15% *
HP

HB= HP - DS

Cetak DS,
HB

Selesai
34

Program Pascal dengan pernyataan IF ….THen……

Program Coba3;
Uses Crt;

Var
Nota : String[5];
HP : Integer;
DS, HB : Real;

Begin
Write(‘No. Kwitansi = ‘);readln(Nota);
Write(‘Harga Beli = ‘);readln(HP);
IF HP>=100000 Then DS:=15/100 * HP;
IF HP<100000 Then DS:=5/100 * HP;
HB:=HP – DS;
Writeln(‘Diskon = ‘,DS:10:2);
Writeln(‘Harga Bayar = ‘,HB:10:2);
Readln;
End.

Atau

Program Coba3;
Uses Crt;

Var
Nota : String[5];
HP : Integer;
DS, HB : Real;

Begin
Write(‘No. Kwitansi = ‘);readln(Nota);
Write(‘Harga Beli = ‘);readln(HP);
IF HP>=100000 Then
DS:=15/100 * HP
Else
DS:=5/100 * HP;
HB:=HP – DS;
Writeln(‘Diskon = ‘,DS:10:2);
Writeln(‘Harga Bayar = ‘,HB:10:2);
Readln;
End.
35

2. Sedangkah dalam sistem penggajian pegawai Toko Matahari dengan


ketentuan penggajian sebagai berikut:
a). Pegawai yang ada dikelompokkan menjadi tiga kelompok yaitu
Golongan A, B dan C dan penggajiannya diatur sebagai berikut:
 Jika Gol = A Gaji Pokok = Rp. 500.000,-
 Jika Gol = B Gaji Pokok = Rp. 400.000,-
 Jika Gol = C Gaji Pokok = Rp. 300.000,-
b). Selain Gaji juga diberikan Tunjangan dengan ketentuan sebagai
berikut:
 Jika Gol = A Tunjangan = 10% X Gaji Pokok
 Jika Gol = B Tunjangan = 7% X Gaji Pokok
 Jika Gol = C Tunjangan = 5% X Gaji Pokok
c). Gaji keaeluruhan yang diterima adalah Gaji Pokok ditambah dengan
Tunjangan.

Jawab:
Algoritma Natural.
a). Baca NIP. Pegawai, Nama Pegawai, Golongan
b). Cek Gol untuk menentukan Gaji dan Tunjangan dengan
ketentuan:
 Jika Gol = A Gaji Pokok = Rp. 500.000 dan Tunjangan 10% dari
Gaji Pokok
 Jika Gol = B Gaji Pokok = Rp. 400.000 dan Tunjangan 7% dari
Gaji Pokok
 Jika Gol = C Gaji Pokok = Rp. 300.000 dan Tunjangan 5% dari
Gaji Pokok
c). Hitung Total Gaji (Gaji + Tunjangan)
d). Tampilkan Gaji Pokok, Tunjangan yang Gaji Total.
36

Flowchart.
Mulai

Input NIP,
Nama,
Gol
Y
GOL=’A GP=500.000

T

Y
GOL=’B GP=400.000

T

GP=300.000

Y
GOL=’A TJ=10% * GP

T

Y TJ=7% * GP
GOL=’B

T

TJ=5% * GP

GB = GP + TJ

Cetak GP, TJ, GB

Selesai
37

Program Pascal.

Program coba;
Uses crt;

Var
NIP : STRING[5];
NAMA : STRING[20];
GOL : CHAR;
GP,TJ,GB : REAL;

Begin
clrscr;
Write('N.I.P : ');readln(NIP);
Write('NAMA PEGAWAI : ');readln(NAMA);
Write('GOLONGAN : ');readln(GOL);
IF GOL='A' THEN GP:=500000
ELSE IF GOL='B' THEN GP:=400000
ELSE GP:=300000;
IF GOL='A' THEN TJ:=10/100*GP
ELSE IF GOL='B' THEN TJ:=7/100*GP
ELSE TJ:=5/100*GP;
GB:=GP+TJ;
WRITELN('GAJI POKOK : ',GP:10:2);
WRITELN('TUNJNAGAN : ',TJ:10:2);
WRITELN('GAJI BERSIH : ',GB:10:2);
READLN;
END.

Dari pekerjaan diatas dapat diringkas dengan penyelesaian sebagai


berikut:
38

Flowchart:

Mulai

Input NIP,
Nama,
Gol

Y
GOL=’A GP=500.000
’ TJ=10% * GP
T

Y
GOL=’B GP=400.000
’ TJ=7% * GP

GP=300.000
TJ=5% * GP

GB = GP + TJ

Cetak GP, TJ, GB

Selesai
39

Program Pascal.

Program coba;
Uses crt;

Var
NIP : STRING[5];
NAMA : STRING[20];
GOL : CHAR;
GP,TJ,GB : REAL;

Begin
clrscr;
Write('N.I.P : ');readln(NIP);
Write('NAMA PEGAWAI : ');readln(NAMA);
Write('GOLONGAN : ');readln(GOL);
IF GOL='A' THEN
BEGIN
GP:=500000;TJ:=10/100*GP;
END
ELSE IF GOL='B' THEN
BEGIN
GP:=400000;TJ:=10/100*GP;
END
ELSE
BEGIN
GP:=300000; TJ:=5/100*GP;
END;

GB:=GP+TJ;
WRITELN('GAJI POKOK : ',GP:10:2);
WRITELN('TUNJNAGAN : ',TJ:10:2);
WRITELN('GAJI BERSIH : ',GB:10:2);
READLN;
END.

Program diatas jika dikerjakan degan pernyataan Case Of maka akan


menjadi sebagai berikut:
40

Program coba;
Uses crt;

Var
NIP : STRING[5];
NAMA : STRING[20];
GOL : CHAR;
GP,TJ,GB : REAL;

Begin
clrscr;
Write('N.I.P : ');readln(NIP);
Write('NAMA PEGAWAI : ');readln(NAMA);
Write('GOLONGAN : ');readln(GOL);
Case GOL Of
'A' : BEGIN; GP:=500000; TJ:=10/100*GP; END;
'B' : BEGIN; GP:=400000; TJ:=10/100*GP; END;
ELSE
BEGIN
GP:=300000; TJ:=5/100*GP;
END;
END;
GB:=GP+TJ;
WRITELN('GAJI POKOK : ',GP:10:2);
WRITELN('TUNJNAGAN : ',TJ:10:2);
WRITELN('GAJI BERSIH : ',GB:10:2);
READLN;
END.

Soal:
1. Hotel Sri Mekar adalah salah satu hotel yang sangat larisdi kota
Sala. Di dalam menentukan tarif kamar kepada setiap pelanggan
diatur dengan ketentuan sebagai berikut:
a). Tarif Kamar
a.1). Kelas Ekonomi
- Kamar jenis A tarif Rp. 20.000,- per hari
- Kamar jenis B tarif Rp. 15.000,- per hari
- Kamar jenis C tarif Rp. 10.000,- per hari
a.2). Kelas VIP
- Kamar jenis A tarif Rp. 60.000,- per hari
- Kamar jenis B tarif Rp. 50.000,- per hari
- Kamar jenis C tarif Rp. 40.000,- per hari
a.3). Kelas Executif
- Kamar jenis A tarif Rp. 100.000,- per hari
- Kamar jenis B tarif Rp. 80.000,- per hari
- Kamar jenis C tarif Rp. 75.000,- per hari
2. Biaya yang harus dibayar oleh setiap pelanggan selama
menginap adalah Tarif Kamar X Lama menginap.
41

Dari permasalahan tersebut di atas buatlah algoritma, flowchart dan


program Pascalnya untuk menghitung biaya yang harus dibayar oleh
setiap pelanggan selama menginap.

C. Mengenal Perulangan/Looping.
Setiap program secara umum dapat ditulis dalam berbagai gaya.
Dengan meningkatnya pengalaman seseorang di dalam menulis
program, bertambah pula pemahamannya tentang cara terbaik dalam
membuat program. Salah satu manfaat utama komputer adalah
keandalannya untuk melakukan eksekusi berulang/looping dari suatu
program. Teknik looping dalam rancangan algoritma program komputer
merupakan mekanisme yang terbanyak digunakan bagi berbagai
masalah komputasi.
Program dengan mekanisme Looping/berulang merupakan proses
yang melakukan eksekusi pada suatu/satu seri/blok pernyataan berulang
kali, dilakukan sampai suatu kondisi yang telah ditentukan terpenuhi.
Di dalam pemrograman dengan Pascal ada tiga dasar logika
utama untuk penulisan program Looping/berulang.

1. Proses ulang dengan pemeriksaan pada akhir loop.

Repeat pernyataan Until (pilihan/Kondisi)

;
Syntax Penulisan:

Repeat

Blok pernyataan dalam


operasi LOOP

Until <Kondisi>

Contoh : Algoritma untuk melakukan mencetak tulisan “Solo Berseri”


sebanyak 5 kali.
42

Algoritma Natural Flowchart Program

1) Pemberian nilai Jml Star Program Coba


Cetakan = 0 (X=0) Uses Crt;
2) Tambah Nilai X
dengan 1 Var X : Integer;
X=
3) Cetak “Solo
0
Berseri” Begin
4) Cek apakah X=5, X:=0;
jika Ya maka X=X+ Repeat
selesai, jika Tidak 1 X:=X+1;
maka kembali ke Writeln(‘Solo
proses 2 Berseri’);
Cetak
“Solo
Until X=5;
Berseri” Readln;
End.

X=
5

Star

2. Proses ulang dengan pemeriksaan pada awal loop.

Blok End
While Kondis Do Begin
Perintah
i

Syntax Penulisan:

While <Kondisi> do
Begin
Blok pernyataan dalam
operasi LOOP

End;

Contoh : Algoritma untuk melakukan mencetak tulisan “Solo Berseri”


sebanyak 5 kali.
43

Algoritma Natural Flowchart Program

5) Pemberian nilai Jml Star Program Coba


Cetakan = 0 (X=0) Uses Crt;
6) Tambah Nilai X
dengan 1 Var X : Integer;
X=
7) Cetak “Solo
0
Berseri” Begin
8) Cek apakah X=5, X:=0;
jika Ya maka X=X+ While X<5 Do
selesai, jika Tidak 1 Begin
maka kembali ke X:=X+1;
proses 2 Writeln(‘Solo
Cetak
“Solo
Berseri’);
Berseri” End;
Readln;
End.
X=
5

Star

3. Proses ulang dengan jumlah interaksi tetap.

For Variabel : Ekspresi


=

To
Ekspresi d Pernyataan
o
Downto
44

Syntax Penulisan:

For <Variabel kontrol> := <nilai awal> to <Nilai akhir> do

Begin
Blok pernyataan dalam
operasi LOOP

End;
atau

For <Variabel kontrol> := <nilai awal> Downto <Nilai akhir> do

Begin
Blok pernyataan dalam
operasi LOOP

End;

Contoh : Algoritma untuk melakukan mencetak tulisan “Solo Berseri”


sebanyak 5 kali.

Algoritma Natural Flowchart Program

9) Pemberian nilai Jml Star Program Coba


Cetakan = 0 (X=0) Uses Crt;
10) Tambah Nilai X
dengan 1 Var X : Integer;
X=
11) Cetak “Solo
0
Berseri” Begin
12) Cek apakah For X:= 1 to 5 do
X=5, jika Ya maka X=X+ Begin
selesai, jika Tidak 1 Writeln(‘Solo
maka kembali ke Berseri’);
proses 2 End;
Cetak
“Solo
Readln;
Berseri” End.

X=
5

Star
45

Soal:
1). Buatlah suatu algoritma, flowchart dan programnya untuk membuat
deret angka:

a). 1 2 3 4 5 6 7 8 9 10

b). 1 3 5 7 9

c). 10 9 8 6 4 2

Jawab 1 :

Algoritma Natural.

1. Baca X = 0
2. Tambah X dengan angka 1
3. Cek apakah X>10 maka langsung ke langkah No. 6
4. Cetak X
5. Ulangi ke langkah 2
6. Selesai

Flowchart

Mulai Mulai
atau

X= X=
0 1

X=X+1 Cetak X

Y Y
X> Selesai X= Selesai
10 10
T T

Cetak X X=X+1

Dengan For…Do

Program LATIHAN;
uses crt;
46

Var X:Integer;
Begin
clrscr;
For X :=1 to 10 do
Begin
WRITELN(X:3);
End;
READLN;
END.

Soal:
2). Paijo mempunyai uang sebesar Rp. 1.000.000,-. Uang tersebut ditabung
pada Bank dengan bunga 10 % per bulan dengan rumus bunga
berbunga. Buatlah suatu algoritma, flowchart dan program pascalnya
untuk membuat tabel bunga uang Paijo seperti berikut:

Bulan ke Pokok Bunga Total


1 1.000.000 0 1.000.000
2 1.000.000 100.000 1.100.000
3 1.100.000 110.000 1.210.000
4
Dst
12

Jawab:
Algoritma Natural :

1). Baca Nilai Pokok Tabungan (X = 1.000.000)


2). Lakukan pemberian nilai awal Bunga = 0, Bulan = 0
3). Lakukan penambahan nilai bulan plus 1
4). Cek apakah bulan > 10, jika ya maka menuju ke langkah 10, jika
belum lanjutkan langkah berikutmua.
5). Hitung Total (Pokok + bunga)
6). Cetak Bulan, Pokok, Bunga dan Total.
7). Lakukan pemindahan nilai pokok sama dengan total (pokok = total)
8). Hitung bungan per bulan (bunga = 10%*pokok)
9). Ulangi langkah 3
10). Selesai pekerjaan.

Flowchart & Program:

Flowchart Program

Program Latihan;
Uses Crt;
Mulai
47

Var
PK, BG, TOT : Real;
PK=10000 BL : Integer;
0
BL=0,
BG=0
Begin
TOT=0 Clrscr;
Writeln(‘----------------------------------------‘)
;
BL = BL + 1 Writeln(‘Bln Pokok Bunga Total ‘);
TOT=PK+BG Writeln(‘----------------------------------------‘)
;
PK:=100000; BG:=0, TOT:=0;
REPEAT
BEGIN
Cetak BL:=BL+1;
BL, PK, TOT:=PK+BG;
BG,TOT Writeln(Bl:2, PK:10:2,
BG:10:2,TOT:10:2);
END;
UNTIL BL>10;
Writeln(‘----------------------------------------‘
Y );
BL=1 Selesai
0 Realn;
END.
T

PK=TOT
BG=10% X PK

Soal:
1). Buatlah flowchart dan Program Pascalnya untuk menampilkan tabel
seperti berikut ini:

X Ganjil Genap X Kwadrat


1 1 - 1
2 - 2 4
3 3 - 9
4 - 4 16
Dst

10 - 10 100
2). Buatlah suatu flowchart dan Programnya, jika kita memasukkan
beberapa angka maka akan terlihat angka yang paling kecil dan angka
yang paling besar, cacah angka yang dimasukkan dan jumlah angka
yang dimasukkan.

Contoh:
Masukkan angka : 10
Masukkan angka : 15
Masukkan angka : 10
Masukkan angka : 5
Masukkan angka : 20
48

Angka paling kecil : 5


Angka paling besar : 20
Cacah angka : 5
Jumlah angka : 60
49

BAB V
MENGENAL TIPE DATA ARRAY

Tipe Array (Larik) adalah tipe data terstruktur yang mempunyai


komponen dalam jumlah yang tetap dan setiap komponen mempunyai tipe
data yang sama. Posisi masing-masing komponen dalam larik (array)
dinyatakan sebagai nomor indek. Larik merupakan himpunan terurut dan
indek merupakan posisi urutan kompnen. Larik dalam bahasa Pascal
dinyatakan dengan kata tuntunan ARRAY yang ditempatkan pada bagian
deklarasi. Deklarasi larik menetapkan ukuran dan jenis larik.
Salah satu struktur data yang paling banyak digunakan adalah Array.
Array mengijinkan kita membuat multi elemen dangan tipe lain (disebut
dasar tipe data Array) dan mengakses elemen-elemen tersebut dengan
menggunakan subscript, dengan cara yang sama seperti anda dapat
mengakses setiap karakter pada string dengan mengspesifikasi lokasi
karakter dalam string. Sebenarnya data string dalam Pascal merupakan
Array dari karakter.

Bentuk umum deklarasi tipe data larik (ARRAY)

Type
Pengenal : Array[<tipe indek>] of <tipe>;

Dimana
Pengenal : nama tipe data (variabel)
<tipe indeks> : tipe data untuk nomer indeks.
<tipe> : tipe data komponen.

Parameter <tipe indeks> menentukan banyaknya kompnen larik


tersebut. Parameter ini boleh berupa sembarang tupe ordinal kecuali
LongInt dan Subjangkauan LongInt.

Contoh:

Type
A : Array[1..100] of Integer;

Menunjukkan bahwa A adalah tipe data yang berupa larik(Array) yang


komponennya bertipe Integer dan banyaknya 100 buah.
50

A. Deklarasi Array.

Pada saat kita memerlukan untuk menyimpan multi data item


dengan tipe khusus di dalam memori komputer dan membuat program
untuk mengakses item-item tersebut, maka diperlukan membuat suatu
Array.

Contoh: Andaikata kita memerlukan untuk menyimpan 10 nama, kita


dapat membuat Array dengan 10 elemen yang dapat digambarkan
sebagai berikut:

Nama[1] Amir
Nama[2] Budiman
Nama[3] Bambang
…..
…..
…..
Nama[10] Kunthi

Contoh dalam program:

PROGRAM COBA;
USES CRT;

VAR
NAMA : ARRAY[1..5] OF STRING;
I : INTEGER;

BEGIN
NAMA[1] :='BUDIMAN';
NAMA[2] :='GUNAWAN';
NAMA[3] :='AMIR';
NAMA[4] :='FITRI';
NAMA[5] :='KUNTHI';
WRITELN('NAMA KE 1 : ',NAMA[1]);
WRITELN('NAMA KE 2 : ',NAMA[2]);
WRITELN('NAMA KE 3 : ',NAMA[3]);
WRITELN('NAMA KE 4 : ',NAMA[4]);
WRITELN('NAMA KE 5 : ',NAMA[5]);
READLN;
END.

Hasil :
NAMA KE 1 : BUDIMAN
NAMA KE 2 : GUNAWAN
NAMA KE 3 : AMIR
NAMA KE 4 : FITRI
NAMA KE 5 : KUNTHI
51

Pascal mengijinkan kita menggunakan subsript dengan tipe data skalar,


meliputi tipe data bytel, char, integer dan sebagainya. Lihat contoh berikut
ini, digunakan subscript dengan tipe char.

Type
Huruf = 'A'..'Z';
KODE = STRING[10];
KODEARRAY=ARRAY[HURUF] OF KODE;

VAR
NAMA : KODEARRAY;

Ingat mendefinisikan <tipe indek> tidak hanya menspesifikasikan tipe data


saja subsript saja tetapi juga menunjukkan jumlah elemen di dalam Array.
Dalam contoh di atas subscript bertipe Char dan Array mengandung 26
elemen, satu elemen untuk tiap huruf di dalam jangkauan ‘A’..’Z’. Dapat
digambarkan sebagai berikut:

Nama[‘A’] Budiman
Nama[‘B’] Gunawan
Nama[‘C’] Amir
….
….
….
Nama[‘Z’] Kunthi

Untuk lebih jelasnya lihat contoh program berikut:

Program COBA;
Uses Crt;
Type
Huruf = 'A'..'Z';
KODE = STRING[10];
KODEARRAY=ARRAY[HURUF] OF KODE;

VAR
X : INTEGER;
NAMA : KODEARRAY;
BEGIN
NAMA['A'] := 'BUDIMAN';
NAMA['B'] := 'GUNAWAN';
NAMA['C'] := 'AMIR';
WRITELN('NAMA YANG KE A : ',NAMA['A']);
WRITELN('NAMA YANG KE B : ',NAMA['B']);
WRITELN('NAMA YANG KE C : ',NAMA['C']);
52

READLN;
END.

Hasil :

NAMA YANG KE A : BUDIMAN


NAMA YANG KE B : GUNAWAN
NAMA YANG KE C : AMIR

Soal:

1. Buatlah suatu algoritma (Flowchar) dan program Pascalnya untuk


membaca sebuah Array kemudian mencetaknya dalam layar nampak
seperti berikut ini.

DAFTAR NILAI
NO NAMA SISWA NILAI
1 AMIR 3
2 BUDIMAN 4
3 GUNAWAN 2
4 SANTI 2
5 INDRA 3
53

Jawab:

FLOWCHART PROGRAM

PROGRAM COBA;
Mulai USES CRT;

VAR
X=0 NM : ARRAY[1..5] OF STRING[15];
NL : ARRAY[1..5] OF INTEGER;
X : INTEGER;
X=X+1
BEGIN
CLRSCR;
X:=0;
INPUT REPEAT
NM[X], NL[X] BEGIN
X:=X+1;
WRITE(’NAMA :’);READLN(NM[X]);
T WRITE(’NILAI :’);READLN(NL[X]);
X=5 WRITELN;
Y END;
UNTIL X=5;
X=0 CLRSCR;
WRITELN(’DAFTAR NILAI’);
WRITELN(’-----------------------’);
WRITELN(’NO NAMA NILAI ’);
X=X+1 WRITELN(’-----------------------’);
FOR X:=1 TO 5 DO
BEGIN
WRITELN(X:3,NM[X]:15,NL[X]:3);
CETAK
END;
X,NM[X],
WRITELN(’-----------------------’);
NL[X] READLN;
END.
T
X=5
Y

SELESAI
54

SOAL:

1). Buatlah suatu algoritma (Flowchart) dan program Pascalnya untuk


membaca sebuah Array kemudian mencetaknya dalam layar nampak
seperti berikut ini.

DAFTAR NILAI UJIAN


NO NAMA MAHASISWA NL.MID NL.SMT JML RATA-RATA
1 Budiman 6 6 12 6
2 Rudiman 7 8 15 7.5
3 Wardoyo 8 8 16 8

Dst

N Gunawan 7 8 15 7.5

Keterangan.
a) Jml Nilai =Nilai Mid + Nilai SMT
b) Rata-rata = Jml Nilai/2

Jawab:
a. Algoritma Natural

1). Pesankan ARRAY sebanyak 100


2). Lakukan pemberian nilai X=0 dan JD=0
3). Lakukan penambahan X dengan 1
4). Baca Nama[x], NMid[x], Nujian[x]
5). Cek apakah masih ingin isi data lagi. Jika ya maka menuju ke
langkah 3, jika tidak menuju ke langkah 6.
6). Lakukan pemberian nilai JD=X
8). Lakukan pemberian nilai X = 0
9). Lakukan penambahan nilai X dengan angka 1
10). Hitung Jumlah Nilai (JML = Nmid[x] + Nujian[x])
11). Hitung Rata-rata Nilai (RATA = JML/2)
13). Cetak X, Nama[x], Nmid[x], Nujian[x], JML, RATA
10). Cek apakah X=JD. Jika tidak maka menuju ke langkah 9, jika ya
selesai.
55
MULAI
b. Flowchart

X=0

X=X+1

INPUT NM[X],
NMID[X], NUJIAN[X]

Y
LAGI

JD = X
X=0

X=X+1

JML = NMID[X]+NUJIAN[X]
RATA=JML/2

Cetak
NM[X], NMID[X],
NUJIAN[X], JML, RATA

T
X=JD

SELESAI
56

c. Program

Program Coba;
Uses CRT;
Type
NILAI = 1..4;
HURUF = STRING[25];
VAR
NAMA : ARRAY[1..50] OF HURUF;
N1,N2 : ARRAY[1..50] OF NILAI;
JML,JD,X : INTEGER;
RATA : REAL;
LAGI : CHAR;

BEGIN
CLRSCR;
X:=0;
REPEAT
X:=X+1;
WRITE('DATA KE : ',X:3);
WRITE('NAMA MAHASISWA : ');READLN(NAMA[X]);
WRITE('NILAI MID : ');READLN(N1[X]);
WRITE('NILAI UJIN : ');READLN(N2[X]);
WRITELN;
WRITE('MASIH ADA DATA [Y/T] : ');READLN(LAGI);
UNTIL (LAGI='T') OR (LAGI='t');
JD:=X;
CLRSCR;
WRITELN('DAFTAR NILAI UJIAN');
WRITELN('================================================');
WRITELN('| NO | NAMA MAHASISWA | NILAI | NILAI | JML | RATA |');
WRITELN('| | | MID | UJIAN | NILAI | RATA |');
WRITELN('---------------------------------------------------------------------------------------');
FOR X:=1 TO JD DO
BEGIN
JML:=N1[X]+N2[X];
RATA:=JML/2;
WRITE('|',X:3,' | ',NAMA[X]:15,' | ',N1[X]:3,' | ',N2[X]:3);
WRITELN(' | ',JML:3,' | ',RATA:3:2,' |');
END;
WRITELN('===================================================');
READLN;
END.
57

Soal:
1). Buatlah flowchart dan program pascalnya untuk menyelesaikan
permasalahan dibawah ini.
PT. Makmur setiap bulan membuat daftar gaji pegawai dengan format
cetakan sebagai berikut:

NO NAMA GOL GAJIPOKOK TUNJANGAN TOTAL


1 BUDIMAN A 500000 50000 550000
2 AMIR B 400000 28000 428000

DST

50

Ketentuan:
a) Gaji pokok dan Tunjangan diatur sabagai berikut:

GOL GAJI POKOK TUNJANGAN


A 500.000,- 10% X Gaji Pokok
B 400.000,- 7% X Gaji Pokok
C 300.000,- 5% X Gaji Pokok

b). Total Gaji + Gaji Pokok + Tunjangan

2). Lain halnya dengan PT. Mandiri yang setiap bulan juga membuat daftar
gaji dengan format tampilan sebagai berikut:

DAFTAR GAJI PEGAWAI


PT MANDIRI SURAKARTA

Kd. Unit Gaji


No Nama Gol Tunjanga Total
Unit Kerja Pokok
n

JUMLAH
58

Ketentuan:
a). Unit kerja terdiri 4 unit dengan kode sebagai berikut:

Kode Unit Kerja


Unit
1 Keuangan
2 Kepegawaian
3 Pemasaran
4 Produksi

b). Gaji Pokok Pegawai ditentukan sebagai berikut:

Unit Kerja Keuangan Unit Kerja Kepegawaian


GOL GAJI POKOK GOL GAJI POKOK
A 500.000 A 400.000
B 400.000 B 275.000
C 300.000 C 200.000

Unit Kerja Pemasaran Unit Kerja Produksi


GOL GAJI POKOK GOL GAJI POKOK
A 450.000 A 400.000
B 350.000 B 300.000
C 250.000 C 200.000

c). Tunjangan diatur berdasarkan Kode Unit sebagai berikut:


Kode unit = 1 Tunjangan = 15% X Gaji Pokok
Kode unit = 2 Tunjangan = 12% X Gaji Pokok
Kode unit = 3 Tunjangan = 10% X Gaji Pokok
Kode unit = 4 Tunjangan = 7% X Gaji Pokok

d). Gaji Total = Gaji Pokok + Tunjangan

B. ARRAY DUA DIMENSI


Yang telah dibahas sebelumnya merupakan array yang bekerja
dengan daftar linier yang diakses dengan satu subskrip, yang disebut
array satu dimensi. Array satu dimensi sebagai item-item kolom tunggal,
yang semua itemnya bertipe sama. Kadabg-kadang kita perlu membuat
struktur yang lebih komplek yang mempunyai dua dimensi yaitu berupa
baris dan kolom. Sebagai contoh, andaikata kita akan menyimpan 3 tes
untuk 100 mahasiswa, kita dapat membuat tabel sebgai berikut:
59

Test1 Test2 Tes3

Mahasiswa1

Mahasiswa2

Mahasiswa2

Subskrip pertama mewakili jumlah mahasiswa dan subskrip kedua


mewakili jumlah tes. Jika nama arraynya TesMHS, maka TesMHS[1,2]
berarti mengandung nilai untuk mahasiswa pertama tes yang kedua.
TesMHS[3,1) mengandung tes pertama untuk mahasiswa ke-3. Dari
uraian diatas struktur data dapat dideklarasikan sebagai berikut:

Type
Mahasiswa = Array[1..100,1..3] of real;
Var
TesMHS : Mahasiswa;

Contoh:
Andaikan kita ingin membuat tabel seperti berikut:

DAFTAR NILAI UJIAN MAHASISWA


NILAI RATA
NO NAMA
TEST TEST TEST RATA
1 2 3
60

Program Pascal.

Program Coba;
Uses CRT;
Type
NILAI = 1..4;
HURUF = STRING[25];
VAR
NAMA : ARRAY[1..50] OF HURUF;
TEST : ARRAY[1..50,1..3] OF NILAI;
JML,JD,X,I : INTEGER;
RATA : REAL;
LAGI : CHAR;

BEGIN
CLRSCR;
X:=0;
REPEAT
BEGIN
X:=X+1;
WRITELN('DATA KE : ',X:3);
WRITE('NAMA MAHASISWA : ');READLN(NAMA[X]);
FOR I:=1 TO 3 DO
BEGIN
WRITE('NILAI TEST',I:1,' = ');READLN(TEST[X,I]);
END;
WRITELN;
WRITE('MASIH ADA DATA [Y/T] : ');READLN(LAGI);
END;
UNTIL (LAGI='T') OR (LAGI='t');
JD:=X;
CLRSCR;
WRITELN('DAFTAR NILAI UJIAN');
WRITELN('===================================================');
WRITELN('| NO | NAMA MAHASISWA | TEST | TEST | TEST | RATA |');
WRITELN('| | | 1 | 2 | 3 | RATA |');
WRITELN('---------------------------------------------------');
FOR X:=1 TO JD DO
BEGIN
JML:=0;
WRITE('|',X:3,' | ',NAMA[X]:15,' | ');
FOR I:=1 TO 3 DO
BEGIN
JML:=JML+TEST[X,I];
WRITE(TEST[X,I]:3,' | ');
END;
RATA:=JML/3;
WRITELN(RATA:3:2,' |');
END;
WRITELN('======================================================');
READLN;
END.
61

C. ARRAY TIGA DIMENSI


ARRAY tiga dimensi ditentukan dengan menggunakan 3 indeks
pada nama variabel elemen Array. Contoh sintk penulisan adalah
a[2,4,1]:=321 yang artinya sebagai ekpresi angka 321 ditempatkan pada
posisi baris ke-2, kolom ke 4, dan tingkat ke 1. Sebagai gambaran dapat
dilihat tabel sebgai berikut:

3
2
1

2 321 a[2,4,1]

1 2 3 4

Deklarasi variabel a adalah sebagai berikut:

Var
A : Array[1..4,1..4,1..3] of real;

Contoh:
Andaikan kita ingin membuat tabel seperti berikut:

DAFTAR NILAI UJIAN MAHASISWA


SEMESTER I SEMESTER 2 RATA
NO NAMA MAHASISWA
TEST TEST2 TEST TEST2 RATA
1 1
62

Program Pascal.

Program Coba;
Uses CRT;
Type
NILAI = 1..4;
HURUF = STRING[25];
VAR
NAMA : ARRAY[1..50] OF HURUF;
TEST : ARRAY[1..50,1..2,1..2] OF NILAI;
JML,JD,X,I,A : INTEGER;
RATA : REAL;
LAGI : CHAR;

BEGIN
CLRSCR;
X:=0;
REPEAT
BEGIN
X:=X+1;
WRITELN('DATA KE : ',X:3);
WRITE('NAMA MAHASISWA : ');READLN(NAMA[X]);
FOR I:=1 TO 2 DO
BEGIN
WRITELN('SEMESTER ',I:1);
FOR A:=1 TO 2 DO
BEGIN
WRITE(' TEST',A:1,' = ');READLN(TEST[X,I,A]);
END;
WRITELN;
END;
WRITELN;
WRITE('MASIH ADA DATA [Y/T] : ');READLN(LAGI);
END;
UNTIL (LAGI='T') OR (LAGI='t');
JD:=X;
CLRSCR;
WRITELN(' DAFTAR NILAI UJIAN');
WRITELN('=========================================================');
WRITELN('| | | SEMETER I | SEMESTER II|RATA |');
WRITELN('| NO | NAMA MAHASISWA |--------------------------|RATA |');
WRITELN('| | |TEST1 |TEST2 |TEST1 |TEST2| |');
WRITELN('---------------------------------------------------------');
FOR X:=1 TO JD DO
BEGIN
JML:=0;
WRITE('|',X:3,' | ',NAMA[X]:15,' | ');
FOR I:=1 TO 2 DO
BEGIN
63
FOR A:=1 TO 2 DO
BEGIN
JML:=JML+TEST[X,I,A];
WRITE(TEST[X,I,A]:4,' | ');
END;
END;
RATA:=JML/4;
WRITELN(RATA:3:2,' |');
END;
WRITELN('=======================================================');
READLN;
END.
64

DAFTAR PUSTAKA

Amrinsyah Nasution
1989, Turbo Pascal, Jakarta : Erlangga

Mico Pardosi
2004, Bahasa Pemrograman Turbo Pascal 7.0, Surabaya: Indah

M. Hasbi
2003, Struktur Data & Pemrogramman Dalam Turbo Pascal,
Yogyakarta : Gaya Media.

Anda mungkin juga menyukai