Logika Dan Algoritma Dengan Bahasa Pemog
Logika Dan Algoritma Dengan Bahasa Pemog
KONSEP DASAR
LOGIKA DAN ALGORITMA
Modul
OBJEKTIF
Mahasiswa dapat mengetahui konsep dasar Algoritma serta penerapannya
pada bidang pemrograman komputer serta keterkaitan antara logika dan
Algoritma itu sendiri.
APAKAH ITU ALGORITMA
itinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang
aneh. Orang hanya menemukan kata Algorism yang berarti proses
menghitung dengan angka arab. Anda dikatakan Algorist jika anda menghitung
menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal kata ini
namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika
menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang
terkenal yaitu Abu Jafar Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi
dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul
Kitab Al Jabar Wal-Muqabala yang artinya Buku pemugaran dan pengurangan
(The book of restoration and reduction). Dari judul buku itu kita juga memperoleh
akar kata Aljabar (Algebra).
Perubahan kata dari Algorism menjadi Algorithm muncul karena kata Algorism
sering dikelirukan dengan Arithmetic, sehingga akhiran sm berubah menjadi
thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka
lambat laun kata Algorithm berangsur-angsur dipakai sebagai metode perhitungan
(komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam
Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.
DEFINISI ALGORITMA
lgoritma 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.
Kamus besar bahasa Indonesia (Balai Pustaka 1988) secara formal
mendefinisikan algoritma sebagai :
BELAJAR MEMPROGRAM
Belajar memprogram belajar bahasa pemrograman
RUNTUNAN (SEQUENCE)
ebuah runtunan terdiri dari satu atau lebih 'instruksi'. Tiap-tiap instruksi
dilaksanakan secara berurutan sesuai dengan urutan penulisannya. Sebuah
instruksi, baru bisa dilaksanakan setelah instruksi sebelumnya selesai
dilaksanakan. Urutan instruksi menentukan keadaan akhir algoritma. Kalau
urutannya diubah, kemungkinan besar hasil akhirnya akan berubah.
Contoh :
Misalkan Ada dua buah bejana, A dan B. Bejana A berisi larutan kopi, bejana B
berisi larutan susu. Pertukarkan kedua isi bejana itu, sehingga A berisi larutan
susu, dan B berisi larutan kopi.
Kita tanyakan Algoritma!? Jawabannya: ada tiga langkah, yaitu:
1. Tuangkan larutan dari bejana A ke dalam bejana C
2. Tuangkan larutan dari bejana B ke dalam bejana A
4
Contoh :
'if' Widi memperoleh juara kelas
'then' ayah akan membelikannya sepeda
'if' Mobilmu rusak
'then' pakai saja motorku
Tampak struktur pemilihan 'if-then' hanya memberikan satu pilihan aksi bila
kondisi dipenuhi atau bernilai benar dan tidak memberikan aksi lain bila kondisi
salah. Bentuk pemilihan yang lebih umum adalah memilih satu dari dua aksi
bergantung pada nilai kondisinya, seperti:
'if' hari hujan
'then' pergilah dengan naik taxi
'else' pergilah dengan naik motor
di sini secara logika jika kondisi 'hari hujan' benar, maka aksi 'pergi naik taxi'
dilakukan. Sebaliknya jika kondisi 'hari hujan' bernilai salah, maka aksi 'pergi naik
motor' akan dilaksanakan.
PENGULANGAN (REPETITION)
alah satu kegunaan pemrograman adalah untuk memudahkan pekerjaan yang
harus dilakukan secara berulang.
Bentuk umum perulangan adalah :
'repeat'
aksi
'until' kondisi
Struktur 'repeat-until' hanya satu diantara beberapa struktur pengulangan yang
ada. Terdapat beberapa struktur pengulangan lain seperti 'while-do', 'for' dan
sebagainya.
5
pengolahan
PSEUDOCODE
seudocode banyak digunakan untuk mewakili urutan-urutan proses dari
78
43
96
67
83
51
74
32
lalu
buat pseudocode-nya
BERKENALAN DENGAN
PEMROGRAMAN PASCAL
dalam
Modul
OBJEKTIF
Mahasiswa dapat mengenal bahasa pemrograman Pascal serta mengetahui
bagaimana struktur serta IDE (integrated Development Environment) dari
bahasa pemrograman Pascal.
SEJARAH PERKEMBANGAN PASCAL
ascal adalah bahasa tingkat tinggi (high level language) yang orientasi nya
pada segala tujuan, dirancang oleh Profesor Niklaus Wirth dari Technical
University di Zurich, Switzerland. Nama Pascal diambil sebagai penghargaan
terhadap Blaise Pascal, ahli matematik dan philosophi terkenal abad 17 dari
Perancis.
Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali
untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada
tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara
sistematis, khususnya untuk memperkenalkan pemrograman yang terstruktur
(structured programming). Jadi Pascal adalah bahasa yang ditujukan untuk
membuat program yang terstruktur.
Dalam waktu yang singkat, Pascal telah menjadi bahasa yang populer
dikalangan pelajar universitas dan merupakan bahasa yang diajarkan di beberapa
perguruan tinggi. Beberapa profesional komputer juga mulai beralih ke bahasa
Pascal. Kenyataannya, Pascal merupakan bahasa yang paling cepat populer
dibanding dengan bahasa-bahasa komputer tingkat tinggi yang lainnya.
Standar Pascal adalah bahasa Pascal yang didefmisikan oleh K. Jensen dan
Niklaus Wirth. Penerapan nyata dari standar Pascal banyak yang berbeda seperti
Turbo Pascal 7.0 memiliki 10 buah menu utama yang terdiri dari : File, Edit,
Search, Run, Compile, Debug, Tools, Options, Window dan Help. Untuk memilih
10
Fungsi
Mengaktifkan jendela pertolongan.
Menyimpan berkas yang ada pada editor.
Memanggil program kedalam editor.
Mengeksekusi program sampai posisi kursor.
Memperbesar atau memperkecil jendela yang aktif.
Mengganti jendela yang aktif.
Melacak kedalam subrutin.
Melompati pemanggil subrutin.
Mengaktifkan perintah Make.
Berpindah dari menu-menu ke jendela yang aktif.
Memanggil jendela pertolongan yang terakhir dibaca.
Menutup jendela aktif.
Memperlihatkan hasil eksekusi.
Mengganti isi jendela yang aktif.
Mengkompilasi program.
Mengaktifkan menu compile.
Mengaktifkan menu debug.
Mengaktifkan menu editor.
Mengakaktifkan menu file.
Menampilkan menu Help
Mengaktifkan menu option.
Mengaktifkan menu run.
Mengaktifkan menu Search
Mengaktifkan menu Tools
Ekivalen menu
File / Save
File / Open
Run / Go to cursor
11
Ctrl + F8
Add Breakpoint.
Ctrl + F9
Ctrl + F10
Menjalankan program.
Menampilkan versi layar monitor
MENU FILE
i menu File terdapat pilihan untuk membuka dan memuat file source pascal
yang telah ada sebelumnya, membuat file source yang baru, shell ke DOS
menyimpan file dan keluar dari IDE Turbo Pascal. Sub menu yang ada pada menu
ini yaitu :
New
Save As
Print
Exit
Open
Save All
Printer setup
Closed file List
Save
Change Dir
DOS shell
MENU EDIT
i menu Edit menyediakan perintah-perintah yang berhubungan dengan
proses editing source Pascal seperti cut, copy dan paste pada jendela editor.
Sub menu yang ada pada menu ini yaitu :
Undo
Cut
Paste
Show Clipboard
Redo
Copy
Clear
MENU SEARCH
ada menu Search menyediakan perintah-perintah untuk mencari teks,
deklarasi prosedur serta lokasi kesalahan pada file source anda. Sub menu
yang ada pada menu ini yaitu
Find
Go to Line
Find Error
Objects
Replace
Number
Find Procedure
Units
Search Again
Show last
Previous
Globals
compiler error
Browser
Symbol
12
MENU COMPILE
unakan perintah-perintah yang ada pada menu ini untuk melakukan proses
kompilasi source program, make atau build program. Sub menu yang ada pada
menu ini yaitu :
Compile
Target
Primary file
Make
Build
Clear primary file
Destination
Information
TUGAS :
1. Jelaskan apa yang dimaksud dengan Bahasa Pemrograman dan Program
2. Jelaskanlah kekurangan serta kelebihan dari Bahasa Pascal.
3. Ketikklah Nim, Nama serta Alamat Anda pada IDE Pascal 7.0, lalu praktikkan
perintah untuk memblok, mengcopy, paste dan cut.
13
Modul
OBJEKTIF
Mahasiswa dapat mengetahui struktur dasar dari bahasa pemrograman
Pascal, serta teknik penulisan program pada Pascal.
STRUKTUR PROGRAM PASCAL
truktur dari suatu program Pascal terdiri dari sebuah judul program (program
heading) dan suatu blok program (program block) atau badan program (body
program) Blok program dibagi lagi menjadi dua bagian, yaitu bagian deklarasi
(declaration part) dan bagian pernyataan (statement part). Bagian deklarasi dapat
terdiri dari deklarasi label (labels declaration), defenisi konstanta (constants
definition), defenisi tipe (type definition), deklarasi variabel (variables declaration),
deklarasi prosedur (procedures declaration) dan deklarasi fungsi (function
declaration). Secara ringkas, struktur suatu program Pascal dapat terdiri dari:
1. Judul. program
2. Blok program
Bagian deklarasi
deklarasi label
defenisi konstanta
defenisi tipe
deklarasi variabel
14
Saya Pascal
Bagian pernyataan ini menunjukkan suatu tindakan yang akan dikerjakan
komputer. Tindakan yang dilakukan oleh program tergantung dari instruksi-intruksi
yang diberikan. pernyataan atau statemen (statement) merupakan instruksi
program. Pemyataan-pernyataan yang akan diberikan untuk dikerjakai komputer
ditulis diantara kata cadangan BEGIN dan END. Akhir penulisan END diakhiri
dengan titik.
Bentuk umum dari bagian pernyataan ini adalah sebagai berikut:
begin
statemen-1;
...
statement-n;
end.
Contoh :
Begin
writeln('Saya Pascal');
writeln('-----------');
End.
Bila program ini dijalankan, maka akan ditampilkan tulisan di layar sebagai berikut:
Saya Pascal
-----------
15
16
BAGIAN DEKLARASI
agian deklarasi digunakan bila di dalam program Anda menggunakan
identifier. Identifier dapat berupa label, konstanta, tipe, variabel, prosedur dan
fungsi. Kalau suatu program menggunakan identifier, Pascal menuntut supaya
identifier tersebut dikenalkan terlebih dahulu sebelum digunakan, yaitu
dideklarasikan terlebih dahulu pada bagian ini.
1. Deklarasi Label
Kalau program Anda menggunakan statemen GOTO untuk meloncat ke
suatu statemen yang tertentu, maka dibutuhkan suatu label pada statemen
yang dituju dan label tersebut harus dideklarasikan terlebih dahulu pada
bagian deklarasi. Mendeklarasikan label diawali dengan kata cadangan LABEL
diikuti oleh kumpulan identifier label dengan dipisahkan oleh koma dan diakhiri
dengan titik koma.
Program Contoh_Label(Monitor);
label
100, selesai;
Begin
write('Selamat ');
goto 100;
writeln('Kalimat ini diloncati');
writeln('Kalimat ini tidak ditulis');
100:
write('Belajar ');
write('Bahasa ');
goto selesai;
writeln('Kalimat ini juga tidak ditulis');
selesai:
write('Pascal');
readln;
end.
Catatan :
17
18
ELEMEN-ELEMEN DASAR
PROGRAM PASCAL
Modul
OBJEKTIF
Mahasiswa dapat mengetahui elemen-elemen dasar program Pascal, tipe
variable, operator serta ekspresi pada Pascal.
PENDAHULUAN
ntuk mempelajari suatu bahasa komputer guna dapat membuat program
dengan benar dan dapat mengembangkannya, langkah pertama Anda harus
mengetahui terlebih dahulu struktur dari program yang akan dibuat dengan bahasa
tersebut dan hal ini telah Anda pelajari di bab sebelumnya. Selanjutnya langkah
kedua adalah Anda harus mengetahui terlebih dahulu elemen-elemen yang
membentuk program tersebut.
U
20
Angka-angka:
0123456789 (0 sampai dengan 9).
Simbol-simbol khusus:
+ -*/ = *<>()[].,:;'$
Keterangan :
Huruf besar (upper case) dan huruf kecil (lower case) dianggap sama, tidak
dibedakan.
KATA-KATA CADANGAN
ata-kata cadangan (reserved words) adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata
cadangan tidak boleh didefinisikan ulang oleh pemakai, sehingga tidak dapat
dipergunakan sebagai pengenal (identifier).
Kata-kata cadangan yang dipergunakan adalah :
absolute
external
nil
shl
and
file
not
shr
array
forward
overlay
string
begin
for
of
then
case
function
or
type
const
goto
packed
to
div
inline
procedure
until
do
if
program
var
downto
in
record
while
else
label
repeat
with
end
mod
set
xor
Keterangan :
Kata-kata cadangan yang diberi tanda
menunjukkan kata-kata cadangan yang
tidak ada di standard Pascal.
VARIABLE
21
Benar
Benar
Benar
Salah, karena karakter pertama harus huruf
Salah, tidak boleh mengandung karakter khusus
Salah, tidak boleh mengandung spasi (blank)
Bentuk Umum :
Var
NamaVariable1,NamaVariable2, ... ,NamaVariableN:TipeData1;
...
NamaVariableN1,NamaVariableN2,...,NamaVariableNN:TipeDataN
Contoh :
Var
Nilai1, Nilai2, Nilai3 : Integer;
Nim : String[9];
Max : Byte;
KONSTANTA
ika dalam membuat suatu program kita sering menggunakan bilangan
(numerik) maupun kalimat (string) yang sama berkali kali, ada baiknya kita
menjadikan bilangan atau kalimat tersebut menjadi suatu konstanta. Pertimbangan
lain kita memakai konstanta jika dalam suatu program kita merencanakan adanya
pengembangan program kelak dan terdapat bilangan / string yang nilainya
mungkin diupdate maka sebaiknya bilangan/string tersebut juga kita jadikan
sebagai konstanta.
manfaat konstanta
22
NamaKonstantaN = NilaiKonstantaN;
Contoh :
Const
Phi = 3.1415926536
Panjang = 100
Lebar = 50
Luas = Panjang * Lebar
Judul = Speak Softly Love
Seperti yang kita lihat diatas bahwa pendeklarasian konstanta dapat juga
berupa hasil operasi dari konstanta sebelumnya yaitu constanta Luas
Sesuai dengan namanya konstanta, maka nilai dalam konstanta tersebut akan
selalu konstan (tetap). Kita tidak dapat mengganti nilainya pada runtime program.
Perubahan yang terjadi pada konstanta mensyaratkan peng-compile-an ulang
source program.
TIPE DATA SEDERHANA
ascal telah menyediakan beberapa tipe data sederhana yang sudah siap kita
pakai. Pada saat mendeklarasikan sebuah variable, kita harus pula menentukan
tipe data dari nilai yang dapat ditampung variable tersebut.
Tipe-Tipe data sederhana yang telah disiapkan oleh pascal adalah sbb :
Boolean
23
Byte
Char
Integer
Real
String
INTEGER
ipe data integer adalah tipe data yang dapat menampung nilai yang
merupakan bilangan bulat. Tipe data integer terbagi lagi atas :
TIPE
DATA
ShortInt
Integer
LongInt
Byte
Word
RANGE
-128 . . 127
-32768 . . 32767
-2147483648 . . 2147483648
0 . . 255
0 . . 65535
UKURAN
(BYTE)
1
2
4
1
2
FORMAT
Signed 8-bit
Signed 16-bit
Signed 32-bit
Unsigned 8-bit
Unsigned 16-bit
BOOLEAN
ipe data boolean biasa digunakan untuk merepresentasikan logika, tipe data
boolean hanya dapat bernilai True (1) atau False (0). Beberapa macam tipe
data boolean dirangkum pada table dibawah ini :
TIPE DATA
RANGE
UKURAN (BYTE)
Boolean
ByteBool
WordBool
LongBool
Byte-Sized
Byte-Sized
Word-Sized
LongInt-Sized
1(8 bit)
1(8 bit)
2(16 bit)
4(32 bit)
Tipe data ByteBool, WordBool, dan LongBool biasa dipakai dalam pembuatan
program untuk windows (compiler Turbo Pascal For Window atau Borldan Delphi).
Untuk program DOS pada umumnya menggunakan Tipe Boolean.
Dalam suatu ekspresi, operator-operator seperti = , <> , > , < , >= , <= dan ini
akan banyak dipakai untuk menentukan hasil dari suatu tipe data boolean.
REAL / FLOATING POINT
24
ipe data real biasa digunakan untuk merepresentasikan nilai pecahan. Tipe
data real ini juga terbagi menjadi beberapa tipe yang terlihat pada table
dibawah ini :
TIPE DATA
RANGE
Real
Single
Double
Extended
Comp
2.9x10 . . 1.7x10
-45
38
1.5x10 . . 3.4x10
-324
308
5x10 . . 1.7x10
-4932
4932
3.4x10
. . 1.1x10
18
18
-9.2x10 . . 9.2x10
-39
38
UKURAN
(BYTE)
6
4
8
10
8
DIGIT
11 12
78
15 16
19 20
19 20
KARAKTER
ipe data karakter hanya dapat menampung satu karakter saja dan
mengalokasikan satu byte memory.
Bentuk Umum :
Var
<NamaVariable> : char;
Contoh :
Var
Kalimat : string;
Nama : string[25];
Alamat : string[30];
STRING
ipe data string adalah merupakan gabungan (array) dari karakter sebanyak
256 (default). Mengenai array akan dijelaskan pada modul berikutnya.
Bentuk Umum
Var
<NamaVariable> : string;
Contoh :
Var
Kalimat : string;
Nama : string[25];
Alamat : string[30];
25
O
26
nilai := 80;
A := x * y;
Artinya : variable nilai diisi dengan 80 dan variable A diisi dengan hasil perkalian
antara x dan y.
OPERATOR Binary ARITMATIKA
Bahasa Pascal menyediakan enam operator binary aritmatika, yaitu :
1. *
: untuk perkalian
2. /
: untuk pembagian
3. Div
: untuk pembagian bulat
4. Mod
: untuk sisa pembagian (modulus)
5. +
: untuk pertambahan
6. : untuk pengurangan
OPERATOR UNARY ARITMATIKA
Bahasa Pascal menyediakan dua operator unary aritmatika, yaitu :
1. Unary Minus (-)
menunjukkan bilangan negatif baik pada
operand numerik integer maupun numerik real.
2. Unary Positif (+)
menunjukkan bilangan positif baik pada
operand numerik integer maupun numerik real namun bersifat optional,
artinya jika bilangan tidak bertanda - maka akan dianggap bilangan
positif.
OPERATOR RELASI (HUBUNGAN)
Operator Hubungan digunakan untuk membandingkan hubungan antara dua buah
operand (sebuah nilai atau variable). Operator hubungan dalam bahasa Pascal :
1. =
Sama Dengan
2. <>
Tidak Sama Dengan
3. <
Lebih Kecil Dari
4. >
Lebih Besar Dari
5. <=
Lebih Kecil Sama Dengan
6. >=
Lebih Besar Sama Dengan
7. in
Anggota Dari
OPERATOR BOOLEAN (LOGIKA)
Operator Boolean (logika) digunakan untuk membandingkan logika hasil dari
operator-operator hubungan. Operator logika ada empat macam, yaitu :
27
Not
And
Or
Xor
OPERATOR BITWISE
Operator bitwise digunakan untuk memanipulasi bit-bit dari nilai data yang ada di
memori. Operator bitwise dalam bahasa Pascal :
1. not
Bitwise negation
2. and
Bitwise and
3. or
Bitwise or
4. xor
Bitwise xor
5. shl
Pergeseran bit kekiri
6. shr
Pergeseran bit kekanan
EKSPRESI PADA PASCAL
kspresi matematika yang sering kita gunakan tidak dapat secara langsung
kita masukkan kedalam kode Pascal, untuk hal tersebut kita perlu melakukan
konversi dari ekspresi matematika tersebut menjadi suatu ekspresi yang dapat
dikenal oleh Pascal dengan pemakaian operator yang ada padanya.
Misalnya :
vt =
mh
w. g
TUGAS
onversi persamaan aritmatik dibawah ini kedalam ekspresi Pascal dan
buatlah programnya secara lengkap seperti contoh diatas.
K
1.
P =V
2.
P=
V
R
Z + (0.90 7 X )
N
29
3.
X =
z 2 + 50
1
TU +
2
C +3
3 (T + NI ) T NI
+
X 0.5
Z
4. C =
2
X + 18 X + Z
2
Y
STATEMENT
INPUT DAN OUTPUT
OBJEKTIF
30
Modul
Tipe variabel
Char
Keterangan
Memasukkan sebuah karakter bila lebih
terpotong, yang dianggap hanya yang pertama
String
Memasukkan
didefenisikan
Integer
Real
Boolean
string
maksimum
sepanjang
akan
yang
PROCEDURE READ
Fungsi :
Pada modus berkas (file) akan membaca tiap komponen dari file tersebut
kesuatu variable.
Pada modus text akan membaca satu atau lebih nilai dan menyimpannya
kedalam satu atau lebih variable pula.
Syntax :
Untuk modus file (berkas) :
procedure Read(F , V1 [, V2,...,Vn ] );
Untuk modus text :
procedure Read( [ var F: Text; ] V1 [, V2,...,Vn ] );
PROCEDURE READLN
31
emiliki fungsi yang sama seperti pada procedure Read hanya pada Readln
akan memberikan karakter ganti baris (new line).
Syntax :
procedure Readln([ var F: Text; ] V1 [, V2, ...,Vn ]);
Pada waktu memasukkan data, umumnya supaya lebih interaktip, maka dapat
ditampilkan terlebih dahulu penjelasan tentang data yang akan dimasukkan. Untuk
maksud ini sebelum prosedur READ atau READLN dapat digunakan prosedur
WRITE terlebih dahulu untuk menampilkan penjelasan tentang data yang akan
dimasukkan lewat prosedur READ atau READLN.
Contoh Program :
{contoh program pemakaian statement readln dan write.}
Program Readln_Write(input,output);
uses Crt;
var
s : String;
begin
clrscr;
Write(' Ketikkan sembarang kalimat : ');
Readln(s);
Writeln(' Kalimat Anda : ',s);
Writeln(' Tekan <Enter> Untuk keluar ');
Readln;
end.
Program Celcius(input, output );
{ Program ini untuk Mengkonversikan dari derajad celcius
menjadi derajad fahrenheit }
Uses CRT;
Var
C, F : real;
Begin
Clrscr;
Write(' Berapa Celcius
= ');
ReadLn(C) ;
{proses konversi}
F := 1.8 * C + 32;
WriteLn;
32
Syntax :
procedure Write( [ var F: Text; ] P1 [,P2,...,Pn ] );
procedure Writeln([ var F: Text; ] P1 [, P2, ...,Pn ] );
33
Contoh Program
{ Contoh program dengan bentuk tampilan default }
Program Tampilan_Default(Output);
Uses CRT;
34
Contoh Program
{ Contoh program dengan bentuk tampilan default }
Program Tampilan_Default(Output);
Uses CRT;
Var
Bulat1, Bulat2 : integer;
35
PROSEDUR CLRSCR
rosedur ini digunakan untuk membersihkan lavar dari tampilan-tampilan
sebelumnya dan meletakkan cursor di posisi ujung kiri atas dari layar,
tepatnya berada pada koordinat (1,1).
P
36
Contoh Program :
{Contoh program dengan pemakaian prosedur CLRSCR.}
Program Hapus_Layar(output);
Uses Crt;
Begin
Clrscr;
Writeln('Hello....');
Writeln('Tekan <ENTER> untuk menghapus layar !...');
Readln;
ClrScr;
Readln;
End.
PROSEDUR GOTOXY (XPOS, YPOS)
rosedur ini digunakan untuk meletakkan cursor di posisi layar yang
ditunjukkan oleh nilai XPOS dan YPOS. Nilai XPOS menunjukkan posisi
sumbu X (posisi horisontal atau posisi kolom diantara kolom 1 sampai dengan
kolom 80). Nilai YPOS menunjukkan posisi sumbu Y (posisi vertikal atau posisi
baris. diantara baris 1 sampai dengan baris 25).
Contoh Program :
{Contoh program dengan pemakaian prosedur GotoXY.}
Program Koordinat(output);
Uses Crt;
Begin
Clrscr;
{meletakkan kursor pada baris ke 12 dan kolom ke 31}
GotoXY(31,12);
Writeln('Pemrograman Pascal');
Readln;
End.
TUGAS :
Buatlah sebuah program yang akan meminta input berupa data pribadi
mahasiswa yang terdiri dari nim, nama, tempat, tanggal lahir, alamat, nomor
telepon dan jenis kelamin. Lalu tampilkan data tersebut secara tabular.
Dengan procedure GotoXY buatlah program yang akan meminta sembarang
kalimat, lalu menampilkan kalimat tersebut tepat ditengah layar monitor,
gunakan fungsi lenght(s:string) untuk menghitung jumlah karakter pada string.
37
PENYELEKSIAN
KONDISI (BRANCHING)
38
Modul
Contoh Program :
{ Program struktur kondisi if tunggal
untuk memeriksa suatu kondisi }
Program Nilai_Mahasiswa(input,output);
Uses CRT;
Var
nilai : real;
Begin
Clrscr;
Write(' Masukan nilai yang didapat = ');
Readln(nilai);
{ penyeleksian nilai }
If nilai > 65 Then
Writeln(' ANDA LULUS !!!! ');
Readln;
End.
39
TUGAS :
1. Buatlah program yang akan mencetak bilangan terbesar dari 5 bilangan yang
diinputkan oleh user.
2
2. Buatlah program untuk menentukan akar-akar persamaan kuadrat ax +bx + c
2
dimana tentukan dahulu determinannya D= b -4ac maka jika :
D = 0 terdapat dua akar kembar yaitu :
x1 = x 2 =
b
2a
x1 =
b+ D
2a
x2 =
b D
2a
x1 =
b
D
+
i
2a
2a
x2 =
b
D
i
2a
2a
STATEMEN DAN
STRUKTUR PERULANGAN
Modul
7
43
STRUKTUR PERULANGAN
Catatan :
ontrol variable harus dalam bentuk ordinal (bilangan bulat). Untuk perulangan
dengan struktur to maka kontrol variable akan ditambahi 1 setiap
perulangan, sedangakan dengan struktur downto kontrol variable akan dikurangi
1 setiap perulangan
Contoh Program :
{ Program perulangan menggunakan statement for }
Uses CRT;
Var
x : integer;
Begin
44
Contoh Program :
{ Program perulangan menggunakan statement While }
Uses CRT;
Var
x : integer;
Begin
Clrscr;
{inisialisasi nilai x}
x := 1;
While x <= 10 do
Begin
Writeln(x,' BAHASA PASCAL ');
{incrementasi nilai x}
x := x + 1
{ bisa juga dengan fungsi inc(x) }
End;
Readln;
End.
Contoh Program :
{ Program deret bilangan menggunakan statement While }
Program Deret(input,output);
Uses CRT;
Var
N_Awal,N_Akhir,Beda : integer;
x : integer;
Begin
Clrscr;
{Proses Input Data}
Write(' Input Nilai Awal = ');
Readln(N_Awal);
Write(' Input Nilai Akhir = ');
Readln(N_Akhir);
Write(' Input Beda
= ');
Readln(Beda);
Writeln;
Writeln(' Deret Bilangan : ');
{Proses Perulangan}
x := N_Awal;
While x <= N_Akhir do
46
Contoh Program :
{ Program perulangan menggunakan statement Repeat-Until }
Uses CRT;
Var
x : integer;
Begin
Clrscr;
{inisialisasi nilai x}
x := 1;
Repeat
Writeln(x,' BAHASA PASCAL ');
{incrementasi nilai x}
x := x + 1;
{ bisa juga dengan fungsi inc(x) }
Until x >10;
Readln;
End.
47
STRUKTUR DATA
ARRAY (LARIK)
48
Modul
OBJEKTIF
Mahasiswa dapat memahami struktur data Array, serta pemanfaatannya
didalam perancangan program yang terstruktur.
STRUKTUR DATA ARRAY
rray adalah suatu tipe data terstruktur yang terdapat dalam memori yang terdiri
dari sejumlah elemen (tempat) yang mempunyai tipe data yang sama dan
merupakan gabungan dari beberapa variable sejenis serta memiliki jumlah
komponen yang jumlahnya tetap.
Elemen elemen dari array tersusun secara sequential dalam memori
komputer. Array dapat berupa satu dimensi, dua dimensi, tiga dimensi ataupun
banyak dimensi.
[0]
17
[1]
21
[2]
33
[3]
1
[4]
48
[5]
0
[6]
2
[7]
16
[8]
72
[9]
9
Bentuk Umum
Type
<NamaArray> = array[IdexArray] of TipeData;
Contoh :
Type
Gaji = array[1..10] of longint;
Logika = array[boolean] of integer;
Pendeklarasian array diawali dengan kata baku type dan diikuti dengan nama
array dan tanda sama dengan (=), lalu kata baku array beserta range index dan
diakhiri dengan kata baku of beserta tipe datanya.
Kita dapat mendeklarasikan sebuah tipe data baru yang terdiri dari elemen
yang kita sebutkan satu persatu untuk kemudian dipakai sebagai index array . Tipe
data tersebut disebut sebagai tipe data enumerasi. Perhatikan contoh dibawah :
49
[1]
[2]
[3]
[4]
[5]
[6]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
10
21
13
31
66
49
2
45
95
33
22
36
32
65
27
25
17
58
54
98
71
52
85
77
84
23
73
55
29
48
1
28
6
69
85
86
2
44
7
87
83
82
65
99
88
73
30
3
5
10
9
49
20
65
4
14
11
93
19
14
Bentuk Umum :
Type
<NamaArray> = array[IndexArray1,IndexArray2] of TipeData;
Contoh :
Type
Matriks = array[1..2,1..3] of byte;
Logika = array[1..5,boolean] of integer;
Type
Baris = 1..2;
Kolom = 1..3;
51
[Belajar]
[Nonton]
[Berenang]
10
21
32
20
14
26
12
5
2
13
4
9
23
11
29
16
18
17
35
44
8
6
25
22
[Senin]
[Selasa]
[Rabu]
[Kamis]
[Jumat]
[Sabtu]
Type
<NamaArray> = array[IndexArray1,IndexArray2,IndexArray3]of
TipeData;
Contoh :
Type
Kalender = array[Tanggal, Bulan, Tahun] of byte;
Logika = array[1..10,boolean,2..15] of integer;
55
Bentuk Umum :
Type
<NamaArray> = array[indexArray1, IndexArray2,...,
IndexArrayN] of Tipe Data;
Contoh :
Type
Waktu = array[Tahun,Bulan,Tanggal,Jam] of integer
Pascal tidak menentukan maksimal banyaknya dimensi suatu array yang dapat
kita buat. Namun pascal membatasi besarnya memori yang dapat dipakai untuk
array yang kita defenisikan tersebut. Besar memori maksimal yang dapat dipakai
untuk tiap array yang kita defenisikan tersebut tidak boleh melebihi atau sama
dengan 64 KB (kilo byte), setara dengan 64x1024byte = 65536 byte.
Contoh Program :
{ Program implementasi matriks multi dimensi }
Uses CRT;
Const
Data_Huruf : array[1..3,1..8,1..8] of byte =
(((1,1,1,1,1,1,1,1),(1,1,1,1,1,1,1,1),
(0,0,0,1,1,0,0,0),(0,0,0,1,1,0,0,0),
(0,0,0,1,1,0,0,0),(0,0,0,1,1,0,0,0),
(0,0,0,1,1,0,0,0),(0,0,1,1,1,1,0,0)),
((0,1,1,1,1,1,1,0),(1,1,1,1,1,1,1,1),
(1,1,0,0,0,0,1,1),(1,1,0,0,0,0,0,0),
(1,1,0,1,1,1,1,1),(1,1,0,0,0,0,1,1),
(1,1,1,1,1,1,1,1),(0,1,1,1,1,1,1,0)),
((1,1,1,1,1,0,0,0),(1,1,1,1,1,1,1,0),
56
USER DEFINE
Modul
57
Atau :
Procedure Nama_Prosedur(Daftar Parameter);
Begin
Statement;
. . .
Statement;
End;
Bentuk Umum Pendeklarasian Fungsi :
Function Nama_Fungsi : Type_Data;
Begin
Statement;
. . .
Statement;
End;
58
Atau :
Function Nama_Fungsi(Daftar Parameter): Type_Data;
Begin
Statement;
. . .
Statement;
End;
Contoh Program :
{ Contoh Pemakaian Procedure dan Fungsi }
Uses CRT;
Var
op1,op2 : integer;
Hasil : integer;
{ Prosedur cetak hasil }
Procedure Cetak_hasil(hasil :integer);
Begin
Write(' Hasil Penjumlahan = ',hasil);
End;
{ Fungsi Tambah }
Function Tambah(a: integer; b:integer):integer;
Begin
Tambah := a + b;
End;
{ Program Utama }
Begin
Clrscr;
Write(' Masukkan Operand 1 = ');
Readln(op1);
Write(' Masukkan Operand 2 = ');
Readln(op2);
hasil := Tambah(op1,op2);
Cetak_Hasil(hasil);
Readln;
End.
PARAMETER FORMAL DAN PARAMETER AKTUAL
59
PENGGOLONGAN VARIABEL
erdasarkan kelas penyimpanannya variable pada Pascal secara umum dapat
dibedakan kedalam dua kelas yaitu :
Variabel lokal
Variabel lokal adalah variabel yang dideklarasikan di dalam fungsi.
62
63