Modul
KONSEP DASAR
LOGIKA DAN ALGORITMA 1
OBJEKTIF
Mahasiswa dapat mengetahui konsep dasar Algoritma serta penerapannya
pada bidang pemrograman komputer serta keterkaitan antara logika dan
Algoritma itu sendiri.
D 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 Ja’far 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
1
Logika Dan Algoritma Dengan Pascal
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada
sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat
akan membuat program menjadi kurang baik, demikian juga sebaliknya. Struktur
data disini bisa berupa list, tree, graph, dsb.
2
Logika Dan Algoritma Dengan Pascal
BELAJAR MEMPROGRAM
Belajar memprogram ≠‚ belajar bahasa pemrograman
3
Logika Dan Algoritma Dengan Pascal
RUNTUNAN (SEQUENCE)
S 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
Logika Dan Algoritma Dengan Pascal
PEMILIHAN (SELECTION)
K adangkala sebuah instruksi dikerjakan setelah 'kondisi' tertentu terpenuhi.
Dalam bahasa pemrograman, ini dikenal dengan "if" dan "then". Kondisi
adalah persyaratan yang dapat dinilai benar atau salah sehingga akan
memunculkan 'aksi' yang berbeda dengan 'kondisi' yang berbeda.
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:
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)
'repeat'
aksi
'until' kondisi
5
Logika Dan Algoritma Dengan Pascal
6
Logika Dan Algoritma Dengan Pascal
PSEUDOCODE
7
Logika Dan Algoritma Dengan Pascal
program. Dari segi leksikal Pseudo berarti imitasi dan code dihubungkan dengan
instruksi yang ditulis dalam bahasa komputer. Pseudocode digunakan untuk
menjembatani jurang antara bahasa sehari-hari programmer dengan bahasa
komputer. Pseudocode merupakan suatu bahasa yang memungkinkan
programmer untuk berfikir terhadap permasalahan yang harus dipecahkan tanpa
harus memikirkan syntax dari bahasa pemrograman yang tertentu. Tidak ada
aturan penulisan syntax di dalam pseudocode.
Pseudocode digunakan untuk menggambarkan urutan logika dari program
tanpa memandang bagaimana bahasa pemrogrammannya. Pseudocode banyak
yang menyebutnya sebagai algoritma. Sebenarnya yang disebut dengan algoritma
adalah suatu perencanaan lagkah-langkah instruksi tertentu untuk pemecahan
suatu masalah. Jadi algoritma tidak saja harus berbentuk pseudocode, tetapi dapat
jug diwujudkan dalam bentuk flow chart.
Contoh :
baca jumlah data
tulis judul tabel
while data belum habis
hitung data yang dibaca
baca data nomer mahasiswa, nama dan nilainya
tulis nomer mahasiswa dan nama
if nilai > 60
tulis “lulus”
else
tulis “tidak lulus”
endif
wend
tulis garis penutup table
selesai
TUGAS :
Permasalahan (kasus)
Anda adalah seorang guru SD yang ingin membuat rangking nilai ujian dari 9
orang murid anda. Nilai ujian murid anda adalah sebagai berikut :
56 78 43 96 67 83 51 74 32
8
Logika Dan Algoritma Dengan Pascal
Modul
BERKENALAN DENGAN
PEMROGRAMAN PASCAL 2
OBJEKTIF
Mahasiswa dapat mengenal bahasa pemrograman Pascal serta mengetahui
bagaimana struktur serta IDE (integrated Development Environment) dari
bahasa pemrograman Pascal.
P 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
9
Logika Dan Algoritma Dengan Pascal
apa yang telah didefinisikan oleh. K. Jensen dan Niklaus Wirth. Standar Pascal di
Eropa didefinisikan oleh ISO (International Standards Organization) dan di Amerika
oleh kerjasama antara ANSI (American National Standar Institute) dengan IEEE
(Institute of Electrical and Electronic Engineers).
Beberapa versi dari Pascal telah beredar di pasaran, diantaranya UCSD
Pascal (University of California at San Diego Pascal), MS-Pascal (Microsoft
Pascal), Apple Pascal, TURBO Pascal dan lain sebagainya. Sampai saat ini untuk
komputer-komputer mikro dan personal, TURBO Pascal merupakan versi bahasa
Pascal yang paling populer dan banyak digunakan. Kompiler TURBO Pascall
banyak digemari, karena terutama bersifat interaktif, seperti interpreter saja
layaknya. Selain itu TURBO Pascal mengikuti definisi dari standar Pascal seperti
yang didefinisikan oleh K. Jansen dan Niklaus Wirth di Pascal User Manual dan
Report. TURBO PASCAL adalah copyright oieh BORLAND Inc.
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
Logika Dan Algoritma Dengan Pascal
salah satu dari menu itu anda bisa menekan tombol Alt + F (untuk memanggil
menu file), atau menekan Alt + [huruf pertama dari menu]. Jika anda ingin kembali
ke menu utama anda bisa saja menekan tombol F10, untuk pindah dari menu satu
ke menu yang lain anda juga bisa menekan panah kanan atau panah kiri pada
keyboard. Contohnya ketika anda berada di menu File maka untuk pindah ke
menu Compile anda cukup menggunakan tombol panah kanan atau panah kiri,
dan anda juga bisa langsung menekan huruf C. Untuk menutup menu anda bisa
menggunakan tombol Esc. Sebetulnya akan lebh mudah jika memanggil sebuah
menu dengan menggunakan hotkey, table dibawah ini adalah hotkey yang
digunakan dalam turbo pascal :
MENU FILE
D 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
MENU SEARCH
12
Logika Dan Algoritma Dengan Pascal
MENU RUN
MENU COMPILE
G 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
Make Primary file
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
Logika Dan Algoritma Dengan Pascal
Modul
STRUKTUR DASAR BAHASA
PEMROGRAMAN PASCAL 3
OBJEKTIF
Mahasiswa dapat mengetahui struktur dasar dari bahasa pemrograman
Pascal, serta teknik penulisan program pada Pascal.
S 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
Logika Dan Algoritma Dengan Pascal
deklarasi prosedur
deklarasi fungsi
Bagian pernyataan
S uatu program Pascal yang paling sederhana adalah program yang hanya
terdiri dari sebuah bagian pernyataan saja. Bagian pernyataan (statement part)
merupakan bagian yang terakhir dari suatu blok. Bagian ini diawali dengan kata
cadangan (reserved word) BEGIN dan diakhiri dengan kata cadangan END
Jadi suatu program Pascal yang sederhana dapat berbentuk :
Begin
writeln('Hello World')
end.
Bila program ini uijalankan, maka akan ditampilkan tulisan di layar sebagai
berikul:
Saya Pascal
15
Logika Dan Algoritma Dengan Pascal
Yang perlu anda perhatikan adalah setiap statemen per barisnya diakhiri dengan
titik koma(;) kecuali statemen yang terakhir boleh diakhiri dengan titik koma
maupun tidak, bebas.
P rogram Pascal tidak mengenal aturan penulisan di kolom tertentu, jadi boleh
ditulis mulai kolom berapapun. Penulisan statemen-statemen pada contoh
program yang menjorok masuk beberapa kolom tidak mempunyai pengaruh di
proses, hanya dimaksudkan supaya mempermudah pembacaan program,
sehingga akan lebih terlihat bagian-bagiannya.
Contoh :
begin
writeln ('Saya Pascal');
writeln ('-----------');
end.
Penulisan seperti diataspun boleh bahkan dapat juga disambung dalam satu baris,
sebagai berikut :
Akan tetapi penulisan seperti tersebut tidaklah diajurkan dan sebisanya untuk
dihindari, karena tidak baik untuk dokumentasi program dan sulit membacanya.
JUDUL PROGRAM
D i TURBO Pascal, judul program sifatnya adalah optional dan tidak signifikan
di dalam program. Jika ditulis dapat digunakan untuk memberi nama
program dan daftar dari parameter tentang komunikasi program dengan
lingkungannya yang sifatnya sebagai dokumentasi saja. Judul program bila ditulis
harus terletak pada awal dari program dan diakhiri dengan titik koma.
Contoh:
Program Contoh(output);
begin
writeln ('Hello World');
writeln ('-----------');
end.
Jadi judul program sifatnya sebagai dokumentasi saja, tidak signifikan
terhadap proses program. Misalnya program Anda hanya menampilkan hasil saja,
tetapi tidak meminta data input, pada judul program dapat didokumentasikan
dengan ditulis seperti diatas.
16
Logika Dan Algoritma Dengan Pascal
BAGIAN DEKLARASI
17
Logika Dan Algoritma Dengan Pascal
2. Deklarasi Konstanta
Bila Anda ingin menggunakan identifier yang berisi nilai-nilai konstanta
maka harus didefinisikan terlebih dahulu pada bagian ini. Definisi konstanta
diawali dengan kata cadangan CONST diikuti oleh kumpulan identifier yang
diberi suatu nilai konstanta.
Program Contoh_Konstanta(Monitor);
Const
Potongan = 0.2;
Gaji = 25000;
Pegawai = 'Syaiful';
Begin
Writeln('Nama Pegawai = ',Pegawai);
Writeln('Besar Potongan = ',Potongan);
Writeln('Besar Gaji = ',Gaji);
End.
3. Deklarasi Tipe
Suatu data yang dipergunakan di program Pascal, identifier yang
digunakan untuk data tersebut harus disebutkan tipenya, yaitu dengan cara
men-definisikannya di bagian defmisi ini. Pascal menyediakan beberapa
macam tipe dari data, terdiri dari:
Data tipe sederhana (simple-type data)
Data tipe ini menghubungkan sebuah identifier dengan sebuah data.
Simple-type data dapat digolongkan menjadi tipe data standar (standard
data types) dan tipe data yang didefinisikan oleh pemakai (user-defined
data type). Yang termasuk tipe data standar adalah data dengan tipe
integer, real, char, string dan boolean. Yang termasuk user defined data
type adalah enumerated atau scalar (sejumlah data disebutkan satu per
satu) dan sub-range (range dari data).
Data tipe terstruktur (structured-type data)
Data tipe ini terdiri dari beberapa data item yang dihubungkan satu dengan
lainnya. Masing-masing grup dari data item dihubungkan dengan suatu
identifier tertentu. Ada 4 macam tipe dari data terstruktur, yaitu array,
record, file dan set.
Data tipe penunjuk (pointer-type data)
Data ini digunakan untuk membuat data terstruktur tipe dinamik.
18
Logika Dan Algoritma Dengan Pascal
Program Contoh_Defenisi_Tipe_Data_Standard;
Type
Nomer = Integer;
Lagi = Boolean;
NilaiUjian = Real; Bagian Defenisi Tipe
NilaiHuruf = Char;
Nama = String[30];
Alamat = String[35];
Begin
. . .
End.
Dari defmisi tipe tersebut, berarti identifier yang akan digunakan di dalam
program adalah :
Nomer dengan tipe integer
Lagi dengan tipe Boolean (logika)
NilaiUjian dengan tipe numerik real
NilaiHuruf dengan tipe char panjang maksimum 1 karakter
Nama dengan tipe string panjang maksimum 30 karakter
Alamat dengan tipe string panjang maksimum 35 karakter
4. Deklarasi Variable
Kalau konstanta merupakan identifier berisi data konstanta yang nilainya
sudah ditentukan dan pasti, tidak dapat dirubah di dalam program, maka
variable adalah identifier yang berisi data yang dapat berubah-ubah nilainya di
program. Setiap variabel di dalam program Pascal harus dideklarasikan
sebelum digunakan. Kata cadangan VAR digunakan untuk sebagai judul di
dalam bagian deklarasi variabel dan diikuti oleh satu atau lebih identifier yang
dipisahkan koma, diikuti dengan titik dua dan tipe dari datanya serta diakhiri
denga koma.
Var
Total, Gaji, Tunjangan : Real;
Menikah : Boolean; Bagian Deklarasi
Jmlh_Anak : Integer; Variable
Keterangan : String[25];
begin
Gaji := 25000;
19
Logika Dan Algoritma Dengan Pascal
Menikah := True;
Jmlh_Anak := 3;
Tunjangan := 0.25 * Gaji + Jmlh_Anak * 30000;
Total := Gaji + Tunjangan;
Keterangan := 'Karyawan Teladan';
Writeln(' Gaji Bulanan = Rp.',Gaji);
Writeln(' Tunjangan = Rp.',Tunjangan);
Writeln(' Total Gaji = Rp.',Total);
Writeln(' Sudah Menikah = ',Menikah);
Writeln(' Jumlah Anak = ',Jmlh_Anak);
Writeln(' Keterangan = ',Keterangan);
readln;
End.
Modul
ELEMEN-ELEMEN DASAR
PROGRAM PASCAL 4
OBJEKTIF
Mahasiswa dapat mengetahui elemen-elemen dasar program Pascal, tipe
variable, operator serta ekspresi pada Pascal.
PENDAHULUAN
20
Logika Dan Algoritma Dengan Pascal
SIMBOL-SIMBOL DASAR
P rogram Pascal dapat dibentuk dari simbol-simbol yang terdiri dari huruf-huruf,
angka-angka dan simbol-simbol khusus.
Huruf-huruf:
A sampai dengan Z, a sampai dengan z dan _ (garis bawah).
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
K ata-kata cadangan (reserved words) adalah kata-kata yang sudah di-
definisikan 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
Logika Dan Algoritma Dengan Pascal
Misalnya :
Nama Langganan Benar
No_Induk Benar
P3K Benar
05Stambuk Salah, karena karakter pertama harus huruf
Harga&Jual Salah, tidak boleh mengandung karakter khusus
Nama Siswa 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
manfaat konstanta
22
Logika Dan Algoritma Dengan Pascal
Deklarasi konstanta
K onstanta dideklarasikan pada awal program sebelum blok Begin-End
program utama dituliskan. Untuk mendeklarasikan konstanta harus diawali
dengan reserverd word const.
Bentuk Umum :
Const
NamaKonstanta1 = NilaiKonstanta1;
NamaKonstanta2 = NilaiKonstanta2;
…
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.
P 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
Logika Dan Algoritma Dengan Pascal
• Byte
• Char
• Integer
• Real
• String
INTEGER
T ipe data integer adalah tipe data yang dapat menampung nilai yang
merupakan bilangan bulat. Tipe data integer terbagi lagi atas :
TIPE UKURAN
RANGE FORMAT
DATA (BYTE)
ShortInt -128 . . 127 1 Signed 8-bit
Integer -32768 . . 32767 2 Signed 16-bit
LongInt -2147483648 . . 2147483648 4 Signed 32-bit
Byte 0 . . 255 1 Unsigned 8-bit
Word 0 . . 65535 2 Unsigned 16-bit
BOOLEAN
T 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 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.
24
Logika Dan Algoritma Dengan Pascal
T ipe data real biasa digunakan untuk merepresentasikan nilai pecahan. Tipe
data real ini juga terbagi menjadi beberapa tipe yang terlihat pada table
dibawah ini :
UKURAN
TIPE DATA RANGE DIGIT
(BYTE)
-39 38
Real ± 2.9x10 . . 1.7x10 6 11 – 12
-45 38
Single ± 1.5x10 . . 3.4x10 4 7–8
-324 308
Double ± 5x10 . . 1.7x10 8 15 – 16
-4932 4932
Extended ± 3.4x10 . . 1.1x10 10 19 – 20
18 18
Comp -9.2x10 . . 9.2x10 8 19 – 20
KARAKTER
T 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
T 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
Logika Dan Algoritma Dengan Pascal
Ada baiknya jika kita menentukan berapa banyak karakter dalam tipe string
tersebut dibutuhkan. Hal ini berhubungan dengan jumlah memori yang
dialokasikan. Seperti pada contoh di atas variable nama mengalokasikan tempat
sebanyak 25 karakter, dan itu berarti memory yang dialokasikan sebesar 25 byte.
Akan sia – sia jika kita menuliskannya secara default (256 karakter) karena jarang
sekali bahkan mungkin tidak ada seseorang yang memiliki nama dengan panjang
256 karakter.
Bentuk Umum
Type
<NamaType> = (elemen1,elemen2, . . . , elemenN);
Contoh :
Type
Hari = (Senin, Selasa, Rabu, Kamis, Jum’at, Sabtu);
Var
HariKerja : Hari;
Begin
. . .
for HariKerja := Senin to Sabtu do
. . .
end.
OPERATOR PENUGASAN
26
Logika Dan Algoritma Dengan Pascal
nilai := 80;
A := x * y;
Artinya : variable “nilai” diisi dengan 80 dan variable “A” diisi dengan hasil perkalian
antara x dan y.
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
E 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 :
m−h
vt =
w. g
(m – h)
(w x g)
{deklarasi variable}
VAR
vt,m,h,w,g : real;
BEGIN
{inisialisasi variable}
m := 65.2;
h := 15.5;
w := 2.5;
g := 9.8;
TUGAS
K onversi persamaan aritmatik dibawah ini kedalam ekspresi Pascal dan
buatlah programnya secara lengkap seperti contoh diatas.
V
1. P =V ×
R
Z + (0.90 × 7 X )
2. P=
N
29
Logika Dan Algoritma Dengan Pascal
1 z 2 + 50
3. X = × TU +
2 C +3
3 × (T + NI ) T × NI
+
4. C = X − 0.5 Z
X + 18 X + Z
2
2×
Y
Modul
STATEMENT
INPUT DAN OUTPUT 5
OBJEKTIF
30
Logika Dan Algoritma Dengan Pascal
MEMASUKKAN DATA
C ara yang paling banyak digunakan untuk memasukkan data adalah dengan
cara mengetikkannya lewat keyboard. TURBO Pascal menyediakan prosedur
untuk maksud tersebut, yaitu peosedur READ dan READLN. Prosedur READ dan
READLN mempunyai aturan tertentu untuk beberapa tipe pengenal variabel. Tiap-
tiap data yang dimasukkan harus sesuai dengan tipe variabelnya.
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
Logika Dan Algoritma Dengan Pascal
M 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.
FUNGSI READKEY
Membaca karakter dari keyboard
Syntax :
function ReadKey: Char;
Catatan :
Karakter yang diketikkan tidak akan ditampilkan pada monitor.
Contoh Program
{Contoh program untuk fungsi Readkey.}
Program Kode_ASCII(input,output);
uses Crt;
var
C: Char;
begin
Clrscr;
Writeln('<< Tekan sembarang tombol >>');
C := Readkey;
Writeln(' Anda menekan tombol ', C);
Writeln(' Dimana kode ASCII-nya ', Ord(C), '.');
Readln;
end.
MENAMPILKAN HASIL
Syntax :
procedure Write( [ var F: Text; ] P1 [,P2,...,Pn ] );
procedure Writeln([ var F: Text; ] P1 [, P2, ...,Pn ] );
33
Logika Dan Algoritma Dengan Pascal
Contoh Program ;
{ Contoh program dengan pemanfaatan statement Write }
Program Statement_Write(Output);
Uses CRT;
Var
Kalimat : string[15];
Begin
Clrscr;
Kalimat := 'Belajar Pascal';
Write(' Kalimat : ') ;
Write(Kalimat);
Readln;
End.
Var
Kalimat : string[15];
Begin
Clrscr;
Kalimat := 'Belajar Pascal';
Writeln('Kalimat : ') ;
Writeln(Kalimat);
Readln;
End.
Bentuk tampilan yang akan dihasilkan dapat menurut default yang ada atau
dapat juga diatur dengan format yang tertentu. Tampilan dapat dihasilkan di layar
(monitor) maupun di printer. Tampilan di layar dapat diatur dengan efek-efek
tertentu, demikian juga dengan tampilan di printer.
TAMPILAN SECARA DEFAULT
Contoh Program
{ Contoh program dengan bentuk tampilan default }
Program Tampilan_Default(Output);
Uses CRT;
34
Logika Dan Algoritma Dengan Pascal
Var
Bulat1, Bulat2 : integer;
Pecahan1, Pecahan2 : Real;
Huruf1, Huruf2 : Char;
String1, String2 : String[5];
Logika1, Logika2 : Boolean;
Begin
{ inisialisasi tiap variable }
Bulat1 := 123;
Bulat2 := 12345;
Pecahan1 := 123.45;
Pecahan2 := -123.45;
Huruf1 := 'A';
Huruf2 := 'B';
String1 := 'BASIC';
String2 := 'COBOL';
Logika1 := True;
Logika2 := False;
{ Menampilkan data }
Clrscr;
WriteLn(Bulat1, Bulat2);
WriteLn(Pecahan1, Pecahan2);
WriteLn (Huruf1, Huruf2);
WriteLn (String1, String2);
WriteLn(Logika1, Logika2);
Readln;
End.
TAMPILAN TERFORMAT
Contoh Program
{ Contoh program dengan bentuk tampilan default }
Program Tampilan_Default(Output);
Uses CRT;
Var
Bulat1, Bulat2 : integer;
35
Logika Dan Algoritma Dengan Pascal
PROSEDUR CLRSCR
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.
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
Logika Dan Algoritma Dengan Pascal
Buatlah program yang akan melakukan konversi suhu dari Celcius ke Reamur
dan Fahrenheit.
Buatlah sebuah program yang akan menghitung luas serta volume sebuah
balok dimana input adalah panjang, lebar serta tingg.
Modul
PENYELEKSIAN
KONDISI (BRANCHING) 6
38
Logika Dan Algoritma Dengan Pascal
OBJEKTIF
Mahasiswa dapat mengetahui konsep dasar Algoritma serta penerapannya
pada bidang pemrograman komputer serta keterkaitan antara logika dan
Algoritma itu sendiri.
PENYELEKSIAN KONDISI
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
Logika Dan Algoritma Dengan Pascal
Bila program tersebut dijalankan dan kita memasukan nilai 80, maka perintah
mencetak perkataan LULUS !!!! akan dilaksanakan, namun sebaliknya bila kita
memasukan sebuah nilai yang kurang dari 65 maka program akan berhenti dan
tidak dihasilkan apa-apa.
Contoh Program :
{ Program contoh penerapan struktur kondisi if }
Program Seleksi(input,output);
Uses CRT;
Var
a,b,c,max : integer;
Begin
Clrscr;
Write(' Entry bil 1 : ');Readln(a);
Write(' Entry bil 2 : ');Readln(b);
Write(' Entry bil 3 : ');Readln(c);
{Menentukan bilangan terbesar }
If (a>b) And (a>c) Then
max:=a;
If (b>a) And (b>c) Then
max:=b;
If (c>a) And (c>b) Then
max:=c;
{ Cetak bilangan terbesar }
Writeln(' Bil terbesar = ',max);
{ menentukan apakah bilangan tersebut
positif atau negatif }
If (max>0) Then
Writeln(' Bil tersebut adalah bil positif');
If (max<0) Then
Writeln(' Bil tersebut adalah bil negatif');
Readln;
End.
if expr then
statement
else
statement;
Contoh Program :
{ Program struktur kondisi if ... Then ... Else
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 !!!! ')
Else
Writeln(' TIDAK LULUS !!!! ');
Readln;
End.
Bila program tersebut dijalankan dan kita memasukan nilai 80 maka akan
dicetak perkataan “LULUS !!!” namun bila kita memasukan nilai yang kurang dari
65 maka akan tercetak perkataan “TIDAK LULUS !!!”. Hal ini berbeda dengan
struktur if dimana program akan berhenti bila kita memasukan nilai kurang dari 65.
case: statement;
end
Atau :
case expression of
case: statement;
...
case: statement;
else
statement
end
Contoh Program :
{ Contoh program dengan pemakaian statement Case }
Program Seleksi_Case(Input,Output);
Uses CRT;
Var
Ch : Char;
Begin
clrscr;
write(' Ketikkan sembarang key pada keyboard...');
readln(Ch);
write(' Klasifikasi Key yang anda tekan adalah : ');
case Ch of
'A'..'Z', 'a'..'z': WriteLn('Huruf');
'0'..'9': WriteLn('Digit');
'+', '-', '*', '/': WriteLn('Operator');
else
WriteLn('Special character');
end;
readln;
End.
Bila program dijalankan akan meminta input sembarang karakter yang ditekan
dari keyboard lalu akan menentukan tipe karakter tersebut.
Contoh Program :
Var
hari : integer;
Begin
Clrscr;
Writeln('<< Menentukan nama hari >>');
Writeln('1 = Senin 2 = Selasa 3 = Rabu 4 = Kamis');
Writeln('5 = Jum','''','at 6 = Sabtu 7 = Minggu');
42
Logika Dan Algoritma Dengan Pascal
Writeln;
Write(' Masukan kode hari (1-7) = ');
Readln(hari);
Case hari of
1 : Writeln('-> Hari Senin');
2 : Writeln('-> Hari Selasa');
3 : Writeln('-> Hari Rabu');
4 : Writeln('-> Hari Kamis');
5 : Writeln('-> Hari Jum','''','at');
6 : Writeln('-> Hari Sabtu');
7 : Writeln('-> Hari Minggu');
Else Writeln(' Kode hari yang Anda masukan SALAH ');
End;
Readln;
End.
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 :
−b
x1 = x 2 =
2a
D > 0 terdapat dua akar real berbeda yaitu :
−b+ D −b− D
x1 = x2 =
2a 2a
D < 0 terdapat dua akar imaginair berbeda yaitu :
−b −D −b −D
x1 = + i x2 = − i
2a 2a 2a 2a
Modul
STATEMEN DAN
STRUKTUR PERULANGAN 7
43
Logika Dan Algoritma Dengan Pascal
OBJEKTIF
Mahasiswa mampu menguasai statemen-statemen pada Pascal yang dapat
digunakan dalam struktur perulangan, serta membedakan pada kasus
perulangan yang bagaimana tepatnya suatu statemen perulangan dipakai.
STRUKTUR PERULANGAN
S truktur perulangan for biasa digunakan untuk mengulang suatu proses yang
telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur
perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan
sederhana.
Bentuk umum perulangan for adalah sebagai berikut :
for var := Nilai_Awal to Nilai_Akhir do
statement
atau :
for var := Nilai_Awal downto Nilai_Akhir do
statement
Catatan :
K 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
Logika Dan Algoritma Dengan Pascal
Clrscr;
for x := 1 to 10 do
Writeln(x,' BAHASA PASCAL ');
Readln;
End.
Contoh Program :
{ Mencari total dan rata-rata sejumlah bilangan
denga menggunakan statement for }
Uses CRT;
Var
r,x,t : Real;
y,i : Integer;
Begin
Clrscr;
for y:=1 to 3 do
for i:=0 to 2 do
Begin
Write(' Masukkan bilangan ke [',y,'-',i,'] : ');
Readln(x);
t := t + x;
End;
Writeln(' Total = ',t:10:2);
r := t / i;
Writeln(' Rata rata = ',r:10:2);
Readln;
End.
Jika pada awal eksekusi struktur while kondisi sudah bernilai salah (false), maka
statement milik while tidak akan dieksekusi sama sekali.
45
Logika Dan Algoritma Dengan Pascal
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
Logika Dan Algoritma Dengan Pascal
Begin
Write(x:4);
{incrementasi nilai x dengan beda}
x := x + Beda
{ bisa juga dengan fungsi inc(x,Beda) }
End;
Readln;
End.
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
Logika Dan Algoritma Dengan Pascal
Contoh Program :
Var
ch : Char;
I : Integer;
Begin
{ proses input yang tidak boleh spasi kosong }
repeat
Clrscr;
Write(' Tekan sembarang huruf = ');
readln(ch);
until Ch <> ' ';
TUGAS :
1. Buatlah sebuah program dengan bentuk output seperti dibawah ini
Masukkan Banyak Bilangan = 5 <Enter>
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
2. Secara Matematis pemangkatan adalah proses perkalian bilangan dengan
3
bilangan itu sendiri sebanyak n kali dimana 5 = 5 x 5 x 5. buatlah program
pemangkatan dengan prinsip diatas dengan bentuk output sebagai berikut ;
Masukkan Bilangan = 5 <Enter>
Pangkat Bilangan = 2 <Enter>
5 Pangkat 2 adalah 25
Modul
STRUKTUR DATA
ARRAY (LARIK) 8
48
Logika Dan Algoritma Dengan Pascal
OBJEKTIF
Mahasiswa dapat memahami struktur data Array, serta pemanfaatannya
didalam perancangan program yang terstruktur.
A 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.
A rray satu dimensi tidak lain adalah kumpulan elemen–elemen yang identik
yang tersusun dalam satu baris. Elemen – elemen tersebut memiliki tipe data
yang sama, tetapi isi dari elemen tersebut boleh berbeda.
Untuk lebih jelasnya perhatikan gambar berikut :
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
17 21 33 1 48 0 2 16 72 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
Logika Dan Algoritma Dengan Pascal
Type
Hari=(Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, Minggu);
PendapatanHarian = array[Hari] of real
Selain itu kita juga dapat mendeklarasikan sebuah tipe data berupa subrange
bilangan untuk kemudian dipakai sebagai index dari suatu array seperti berikut.
Type
Tinggi = 145..210;
TinggiManusia = array [tinggi] of byte;
Atau kita juga dapat menggunakan konstanta untuk kemudian dipakai dalam
index array. Untuk menggunakan konstanta perlu diawali dengan kata baku const.
Untuk lebih jelasnya perhatikan contoh berikut.
Const
Min = 1;
Max = 10;
Type
Arr = array[Min .. Max] of byte;
Var
Point : arr;
Contoh Program :
{ Program untuk menginput nilai mahasiswa
ke dalam array satu dimensi }
Program Data_Mahasiswa(Input,Outpu);
Uses CRT;
Type
Nilai_Mhs = array[1..10] of integer;
Var
Index : integer;
Nilai : Nilai_Mhs;
Begin
Clrscr;
Writeln;
Write(' Tekan Enter untuk melihat nilai mahasiswa... ');
Readln;
A rray dua dimensi, yang sering digambarkan sebagai sebuah matriks adalah
merupakan perluasan dari sebuah array satu dimensi. Jika pada array satu
dimensi hanya terdiri dari sebuah baris dengan beberapa kolom elemen maka
pada array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen
yang betipe sama sehingga dapat diilustrasikan seperti berikut.
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
[1] 10 2 32 54 84 1 2 65 5 4
[2] 21 45 65 98 23 28 44 99 10 14
[3] 13 95 27 71 73 6 7 88 9 11
[4] 31 33 25 52 55 69 87 73 49 93
[5] 66 22 17 85 29 85 83 30 20 19
[6] 49 36 58 77 48 86 82 3 65 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
Logika Dan Algoritma Dengan Pascal
A [Selasa, Belajar]
Note : Jika kita terbalik menuliskan baris dan kolom index array maka akan
terjadi error.
Contoh Program :
{ Program menginput nilai(bilangan) ke dalam
52
Logika Dan Algoritma Dengan Pascal
Contoh Program
{ Program penjumlahan matriks dua dimensi }
Program Penjumlahan_Matrix(Input,Output);
Uses CRT;
Type
53
Logika Dan Algoritma Dengan Pascal
Clrscr;
{******** Cetak isi matriks A ********}
Writeln('<< matrik A >>');
54
Logika Dan Algoritma Dengan Pascal
for i:=1 to 3 do
Begin
for j:=1 to 4 do
Write(A[i][j]:6);
Writeln;
End;
Writeln;
A rray tiga dimensi dapat dianalogikan sebagai suatu benda ruang 2 dimensi .
Bentuk Umum :
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
Logika Dan Algoritma Dengan Pascal
Deklarasi pada array tiga dimensi tidak berbeda dengan deklarasi pada array
satu dimensi dan dua dimensi yang telah dijelaskan sebelumnya, kecuali pada
index array.
S ebenarnya array banyak dimensi ini tidak terlalalu sering dipakai seperti halnya
array satu dimensi, dua dimensi dan tiga dimensi. Namum hal itu bukan berarti
pascal tidak memperbolehkan kita untuk memakainya. Array banyak dimensi ini
pada dasarnya sama dengan array sebelumnya kecuali pada jumlah dimensinya
saja.
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
Logika Dan Algoritma Dengan Pascal
(1,1,0,0,1,1,1,1),(1,1,0,0,0,0,1,1),
(1,1,0,0,0,0,1,1),(1,1,0,0,1,1,1,1),
(1,1,1,1,1,1,1,0),(1,1,1,1,1,0,0,0)));
Var
i, j, k : Integer;
Begin
Clrscr;
{* Menampilkan Data }
for j:=1 to 8 do
Begin
for i := 1 to 3 do
Begin
for k:=1 to 8 do
Begin
if Data_Huruf[i][j][k] = 1 then
Write(#219)
else
Write(' ');
End;
Write(' ');
End;
Writeln;
End;
Readln;
End.
TUGAS :
1. Buatlah program untuk menginput, menghitung serta mencetak perkalian dua
matriks dengan ordo bebas.
2. Buatlah program untuk menghasilkan invers dari suatu matriks dengan ordo
bebas.
Modul
USER DEFINE
9 57
Logika Dan Algoritma Dengan Pascal
OBJEKTIF
Mahasiswa dapat mengetahui salah satu teknik pemrograman terstruktur yaitu
pada pembuatan Sub Program atau penerapan konsep program modular.
Mahasiswa dapat membuat Procedure serta Fungsi sendiri dalam Pascal.
P rosedur maupun fungsi adalah suatu program terpisah dalam blok sendiri
yang berfungsi sebagai subprogram (program bagian). Prosedur diawali
dengan kata cadangan “Procedure” sedangkan fungsi diawali dengan kata
cadangan “Fungction” pada bagian deklarasinya.
Perbedaan paling mendasar antara Procedure dan Fungsi bahwa Pada
Procedure tidak dapat memulangkan nilai kepada bagian program yang
memanggilnya sedangkan pada fungsi dapat memulangkan nilai.
Bentuk Umum Pendeklarasian Procedure :
Procedure Nama_Prosedur;
Begin
Statement;
. . .
Statement;
End;
Atau :
Procedure Nama_Prosedur(Daftar Parameter);
Begin
Statement;
. . .
Statement;
End;
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;
{ 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.
1. Parameter Formal adalah variabel yang ada pada daftar parameter dalam
definisi fungsi atau prosedur.
2. Parameter Aktual adalah variabel (parameter) yang dipakai dalam
pemanggilan fungsi atau prosedur
C ara melewatkan suatu parameter dalam Bahasa Pascal ada dua cara yaitu
pemanggilan secara nilai (Call by Value) dan Pemanggilan Secara Referensi
(Call by Reference).
Contoh Program :
{ Program pemanggilan prosedur atau fungsi
secara pengiriman nilai (call by value) }
Uses CRT;
Var
a,b : integer;
60
Logika Dan Algoritma Dengan Pascal
61
Logika Dan Algoritma Dengan Pascal
Contoh Program :
{ Program pemanggilan prosedur atau fungsi
secara pengiriman referensi (call by reference) }
Uses CRT;
Var
a,b : integer;
PENGGOLONGAN VARIABEL
TUGAS :
1. Buatlah fungsi untuk menentukan apakah suatu bilangan adalah bilangan
ganjil atau bilangan genap.
2. Buatlah prosedur yang akan meng-input 10 data numerik lalu akan melakukan
pensortiran secara Ascending (dari terkecil ke terbesar).
3. Buatlah suatu fungsi yang akan memulangkan nilai faktorial dari suatu
bilangan.
63