BAB I
PENDAHULUAN
1.1. LATAR BELAKANG
Bahasa
program merupakan suatu wahana untuk
menuangkan pikiran manusia yang dapat dimengerti oleh mesin komputer
sehingga bernilai guna. Suatu bahasa
program akan terikat aturan dari
paradigma bahasa. Ada berbagai macam paradigma bahasa : Prosedural, Fungsional, Deklaratif, Object
Oriented, Konkuren.
Perlu diperhatikan perbedaan antara belajar bahasa
program dengan belajar memprogram!!! Belajar bahasa program
hanya belajar tentang sintak (aturan) dari bahasa sedangkan belajar memprogram
akan tercakup beberapa hal yang didalamnya terkandung tentang belajar bahasa
program itu sendiri. Yang harus
diperhatikan oleh mahasiswa yang sedang belajar memprogram, yaitu :
·
Simulasi
, sensibilitas terhadap masalah dan kemungkinan solusi. Kegiatan dilakukan di
kelas, melalui permainan. Contoh : Mengurutkan tinggi badan mahasiswa dari
tinggi ke pendek atau sebaliknya.
Permainan dapat dilakukan secara manual maupun dengan komputer.
·
Analisis
masalah secara lebih formal dan membuat spesifikasi dan algoritma dalam notasi
yang ditetapkan. Mahasiswa harus menuliskan solusi algoritmiknya dalam notasi
standar di kelas. Penulisan notasi algoritmik bertujuan untuk
menyeragamkan pemahaman tentang algoritma
program yang terbebas dari sintak (aturan) penulisan bahasa program .
·
Menulis
program, yaitu menterjemahkan notasi algoritmik ke dalam
sintak bahasa program.
·
Debugging
dan menguji coba program. Hal ini bertujuan untuk
mendapatkan program yang benar. Program dikatakan benar jika terbebas dari
salah lojik dan sintak bahasa. Secara
ideal mahasiswa hanya diberi kesempatan
untuk me-run program sebanyak 2 kali : pertama untuk membersihkan program dari
kesalahan sintak dan kedua untuk mendapatkan program benar. Pada tahap ini
diharapkan tidak terjadi kesalahan lojik jika analisa benar.
·
Mengamati
peristiwa eksekusi, perlu dilakukan untuk meningkatkan
kepercayaan bahwa jika analisa benar
maka sisa pekerjaan menjadi mudah. Pada pemrograman prosedural, aspek ini
penting untuk memahami fenomena eksekusi dan perubahaan nilai suatu struktur
data.
·
Membaca program : orang akan
dapat menulis dengan baik kalau sering membaca. Hal ini juga berlaku dalam
memprogram. Kegiatan yang dapat dilakukan di kelas adalah dengan saling tukar
menukar teks algoritma, dan saling mengkritik algoritma teman. Mahasiswa harus
berlatih sendiri pada kegiatan belajar bersama.
·
Membuktikan kebenaran program secara
formal ,
satu-satunya hal yang menjamin kebenaran, tetapi kontradiktif dan sulit
diterapkan dalam kehidupan sehari-hari. Program yang hanya lima baris
pembuktiannya bisa sehalaman, sehingga seringkali tidak pernah diterapkan dalam
aplikasi nyata.
Makalah
ini akan membahas tentang algoritma dan pemrograman dalam Bahasa Pascal.
1.2.RUANG LINGKUP
Pada
penulisan makalah ini, Saya membatasi permasalahan, yakni seputar runtunan,
pemilihan (satu kasus, dua kasus, tiga kasus/lebih, case), pengulangan (for_do,
while_do, repeat_until), prosedur, fungsi, dan larik.
1.3.RUMUSAN MASALAH
ü Bagaimana penggunaan dan penerapan runtutan dalam bahasa
pemrograman pascal?
ü Bagaimana penggunaan dan penerapan pemilihan dalam bahasa
pemrograman pascal?
ü Bagaimana penggunaan dan penerapan pengulangan dalam
bahasa pemrograman pascal?
ü Bagaimana penggunaan dan penerapan procedure dalam bahasa
pemrograman pascal?
ü Bagaimana penggunaan dan penerapan function dalam bahasa
pemrograman pascal?
ü Bagaimana penggunaan dan penerapan larik dalam bahasa
pemrograman pascal?
ü Bagaimana penggunaan dan penerapan matrik dalam bahasa
pemrograman pascal?
1.4.TUJUAN
Adapun
tujuan pembuatan makalah ini adalah :
ü Untuk mengetahui penggunaan dan penerapan runtutan dalam
bahasa pemrograman pascal.
ü Untuk mengetahui penggunaan dan penerapan pemilihan dalam
bahasa pemrograman pascal.
ü Untuk mengetahui penggunaan dan penerapan perulangan
dalam bahasa pemrograman pascal.
ü Untuk mengetahui penggunaan dan penerapan procedure dalam
bahasa pemrograman pascal.
ü Untuk mengetahui penggunaan dan penerapan function dalam
bahasa pemrograman pascal.
ü Untuk mengetahui penggunaan dan penerapan larik dalam
bahasa pemrograman pascal.
ü Untuk mengetahui penggunaan dan penerapan matrik dalam
bahasa pemrograman pascal.
1.5.
MANFAAT
Dengan
adanya makalah ini diharapkan mahasiswa/i dapat lebih memahami dan mengerti
tentang Algoritma dan dapat Pemrograman.
BAB II
PEMBAHASAN
2.1. RUNTUNAN
Algoritma merupakan runtunan (sequence) satu atau
lebih instruksi, yang berarti bahwa :
- Tiap instruksi dikerjakan satu
per satu
- Tiap instruksi dilaksanakan
tepat sekali, tidak ada instruksi yang diulang
- Urutan instruksi yang
dilaksanakan pemroses sama dengan urutan instruksi sebagaimana yang
tertulis di dalam teks algoritmanya
- Akhir dari instruksi terakhir merupakan
akhir algoritma
Urutan instruksi di
dalam algoritma adalah penting. Urutan instruksi menunjukkan urutan logik
penyelesaian masalah. Bergantung pada masalahnya, urutan instruksi yang berbeda
mungkin tidak ada pengaruhnya tehadap solusi persoalan, tetapi mungkin juga
menghasilkan keluaran yang berbeda pula.
Contoh
– contoh Runtunan:
Program Menukar Nilai
{Mempertukarkan nilai A
dan B. Nilai A dan B dibaca terlebih dahulu}
Deklarasi
A , B , C : integer
Algoritma :
{ asumsikan A dan B
sudah terdefinisi dengan nilai, misalnya melalui pengisian langsung atau dibaca
nilainya dari papan ketik }
{pertukaran nilai A dan
B }



{
Tulis nilai A dan B setelah pertukaran , jika diperlukan}

Program Menukar_Nilai;
Uses WinCrt;
var A,B,C:integer;
Begin
Writeln('Program Menukar Nilai A Menjadi B');
Writeln('=================================');
Writeln;
Write('Masukkan Nilai A: ');readln(A);
Write('Masukkan Nilai B: ');readln(B);
Writeln;
C:=A;
A:=B;
B:=C;
Writeln;
Writeln('Hasil A=',A,' B=',B);
End.
Output
:

Program
menghitung selisih waktu
Deklarasi
J,
m , d , h , j1 , m1 , d1 , h1, hj , hm , sl , sisa , sisa1 : longint
Algoritma
{
program menghitung selisih waktu }
Read
( j.jam , m.mm , d.detik ) { jam pertama }
Read
( j1.jam , m1.menit , d1.detik ) { jam
kedua }
{konversi masing” jam ke total detik}
H
<= ( j*3600 ) + ( m*3600 ) + d
H1
<= ( j1*3600 ) + ( m1*3600 ) +d1
{hitung selisih total detik}
S1
<= ( h1 – h )
{konversi selisih detik kedalam jam,
menit, detik}
Hj
<= s1 div 3600 { mendapatkan
jam}
Sisa
<= s1 mod 3600
Hm
<= sisa div 60 { mendapatkan
menit }
Sisa1
<= sisa mod 60 { mendapatkan detik}
Write
( s1= hj.jam , hm.menit , sisa1.detik)

Uses WinCrt;
Var
j,m,d,h,j1,m1,d1,h1,hj,hm,sl,sisa,sisa1:longint;
Begin
Writeln('Program Menghitung Selisih Waktu');
Writeln('================================');
Writeln;
Write('Waktu ke-1 jam : ');readln(j);
Write('Waktu ke-1 Menit : ');readln(m);
Write('Waktu ke-1 Detik : ');readln(d);
Writeln('================================');
Write('Waktu ke-2 jam : ');readln(j1);
Write('Waktu ke-2 Menit : ');readln(m1);
Write('Waktu ke-2 Detik : ');readln(d1);
h:=(j*3600)+(m*60)+d;
h1:=(j1*3600)+(m1*60)+d1;
sl:=h1-h;
if (sl/3600)>0 then
begin
hj:=sl div 3600;
sisa:=sl-(hj*3600);
end
else
begin
hj:=0;
sisa:=sl;
end;
if (sisa/60)>0 then
begin
hm:=sisa div 60;
sisa1:=sisa-(hm*60);
end
else
begin
hm:=0;
sisa1:=sisa;
end;
Writeln;
Writeln('Selisih Waktu: ',hj,' jam ',hm,'
Menit ',sisa1,' Detik');
End.
Output :

2.2.
PEMILIHAN
Suatu Struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentu dimana sebuah instruksi dilaksanakan jika sebuah kondisi/persyaratan terpenuhi. Ada beberapa bentuk struktur dasar pemilihan ini :
2.2.1
PERNYATAAN if
Sebuah pernyataan yang dapat dipakai muntuk mengambil keputusan berdasarkan suatu kondisi. Bentuk pernyataan ini ada dua macam :
- if
saja dan
- else
Bentuk umumnya satu kasus:
If (kondisi)
(pernyataan);
Pernyataan dilaksanakan jika dan hanya jika kondisi yang diinginkan
terpenuhi, jika tidak program tidak memberikan hasil apa-apa.
Contoh :
Algoritma HURUF_VOKAL

program
HURUF_VOKAL;
uses
wincrt;
var
c : char;
Begin
writeln('masukkan
huruf');read(c);
if (c='a') or (c='i') or (c='u') or (c='e') or (c='o') then
write('huruf hidup')
end.

Program DataPegawai;
Uses Wincrt;
Type Pegawai = record
NIP
: String[9];
Nama
: String[30];
Golongan
: Char;
Jamkerja
: Real;
End;
Var
Data : Pegawai;
Gapok : Real;
Insentif,Gaber : Real;
Ul : Char;
Begin
Repeat
Clrscr;
Writeln('Entry Data Pegawai PT. XYZ');
Writeln('==========================');
Writeln;
Write('NIP : ');Readln(Data.NIP);
Write('Nama : ');Readln(Data.Nama);
Write('Golongan :
');Readln(Data.Golongan);
Write('Jam Kerja : ');Readln(Data.Jamkerja);
Writeln;
Writeln;
Case Data.Golongan of
'1'
: Gapok:=1000000;
'2'
: Gapok:=1500000;
'3'
: Gapok:=2000000;
Else
Gapok:=0;
End;
if Data.Jamkerja>200 then
Insentif:=(Data.Jamkerja-200)*10000
else
Insentif:=0;
Gaber:=Gapok+Insentif;
Clrscr;
Writeln('Laporan Gaji Pegawai');
Writeln('PT. XYZ');
Writeln;
Writeln('=========================================');
Writeln('|NIP | Nama | Golongan | Jam
Kerja | Gaji |');
Writeln('=========================================');
Writeln('|',Data.NIP:10,'|',Data.Nama:25,'|',Data.Golongan:10,'|',Data
.Jamkerja:11:0,'|',Gaber:14:2,'|');
Writeln('=========================================');
Writeln;
Write('Mau Ulang Lagi? [Y/T]:
');Readln(Ul);
Until Upcase(Ul)<>'Y';
End.
Maka menghasilkan output sebagai berikut :

2.3.PERULANGAN DALAM PASCAL
Dalam hampir setiap program yang
kompleks mutlak memerlukan suatu perulangan dan percabangan. Tujuan perulangan
disini adalah untuk mengulang statemen
atau blok statemen berulang kali sesuai
sejumlah yang ditentukan pemakai. Dalam materi ini akan memberikan gambaran konsep dasar dari pengertian diatas.
2.3.1.
Perulangan For
Perulangan dengan statement for digunakan untuk mengulang statemen atau suatu blok
statemen berulang kali. Perulangan dengan bentuk statement for dapat dapat dibedakan
menjadi 2, yaitu:
1.
Perulangan for positif, contoh
perulangan for untuk satu satetment adalah:
Uses Crt;
Var
i : Integer;
Begin
For i := 1 To 5 Do Writeln ('Belajar Pascal’);
END.
Maka bila program diatas hasilnya :
Belajar Pascal
Belajar Pascal
Belajar Pascal
Belajar Pascal
2.
Perulangan for negative, adalah perulangan dengan
menghitung (counter) dari besar ke
kecil. Contoh statement yang
digunakan adalah for-DownTo-do yaitu:
Uses Crt;
Var
i : Integer;
Begin
For i := 10 DownTo 1 Do Write (i:3);
End.
Hasil :
10
8 7 6 5 4 3 2 1
2.3.2.
Perulangan For Tersarang
Perulangan for tersarang adalah perulangan for yang berada pada perulangan yang
lainnya. Perulangan yang lebih dalam akan diproses terlebih dahulu sampai
habis, kemudian perulangan yang lebih luar baru akan bertambah, mengerjakan
perulangan yang lebih dalam lagi mulai dari nilai awalnya dan seterusnya.
Contoh :
Var
a,b : Integer;
Begin
For a := 1 To 3 Do
Begin
For
b := 1 To 2 Do Write (a :4,b:2);
Writeln;
End;
End.
Hasilnya adalah sebagai
berikut:
1 1 1 2
2
1 2 2
3
1 3 2
2.3.3.
Perulangan While-Do
Penyeleksian
kondisi digunakan untuk agar program dapat menyeleksi kondisi, sehingga program
dapat menentukan tindakan apa yang harus dikerjakan, tergantung dari kondisi
yang diseleksi tersebut. Perulangan while-do
tidak dilakukan jika kondisi tidak terpenuhi.
Contoh :
Uses Crt;
Var i : Integer;
Begin
i := 0;
While < 5 do
Begin
Write (i:3);
Inc (i); { sama dengan i:=i+1 }
End;
End.
Hasilnya
adalah sebagai berikut:
0
1 2 3 4
2.3.4.
Perulangan While – Do tersarang
Perulangan while – do tersarang (nested while - do) merupakan perulangan while-do yang satu di dalam perulangan while–do yang lainnya. Contoh :
Uses Crt;
Var
a, b : Integer;
Begin
ClrScr;
a:=1;
b:=1;
While a < 4 Do{ loop selama a masih lebih kecil dari 4 }
Begin
a
:= a+1;
While
b < 3 Do{ loop selama b masih lebih kecil dari 3 }
Begin
Write
(a:3,b:2);
b:=b+1;
End;
End;
Readln;
End.
2.3.5.
Perulangan Repeat - Until
Repeat – Until digunakan untuk
mengulang statemen-statemen atau blok
statement sampai (until) kondisi
yang diseleksi di until tidak
terpenuhi. Contoh dari statement ini adalah :
Var
i : Integer;
Begin
i:=0;
Repeat
i:= i+1;
Writeln (i);
Until i=5;
End.
Hasilnya adalah :
1
2
3
4
5
2.3.6.
Repeat – Until tersarang
Repeat – Until tersarang adalah suatu
perulangan Repeat - Until yang satu
berada didalam perulangan Repeat – Until
yang lainnya. Contoh :
Var
a,b,c : Real;
Begin
Writeln('========================================');
Writeln(' sisi A sisi B Sisi C ');
Writeln (' =====================================');
a:= 1;
Repeat { perulangan luar }
b
:= 0;
Repeat{
perulangan dalam }
c:=Sqrt
(a*a+b*b);
Writeln
(a:6:2, b:9:2, c:9:2);
b:=b+5;
Until
b>25; { berhenti jika b lebih besar dari 5 untuk
perulangan
dalam }
a:=a+1;
Until
a>3; { berhenti jika a lebih besar dari 3 untuk
perulangan
luar }
Writeln('
=======================================');
End.
2.4. PROCEDURE dan FUNCTION
Ketika
program yang dibuat sudah terlalu panjang ratusan bahkan puluhan ribu baris,
sehingga kita mengalami kesulitan untuk memahami jalannya program secara
keseluruhan, maka ada baiknya bila program tersebut dipecah menjadi beberapa
bagian yang biasanya disebut modul, subprogram atau subrutin. Konsep semacam
ini biasa disebut dengan pemrograman prosedural. Dalam tulisan ini selanjutnya
akan digunakan kata modul supaya lebih ringkas.
Memecah
program menjadi modul-modul tentunya akan lebih memudahkan dalam mencari
kesalahan, memperbaiki serta membuat dokumentasinya. Pembuatan modul di Turbo Pascal dibagi dua jenis yaitu :
Prosedur dan Fungsi. Prosedur atau Fungsi adalah suatu modul program yang
terpisah dari program utama, diletakan dalam blok tersendiri yang berfungsi
sebagai bagian dari program. Setiap prosedur diawali dengan kata cadangan (reserver
word) Procedure, sedangkan
Fungsi diawali dengan kata cadangan Function.
Prosedur atau Fungsi banyak digunakan pada program
terstruktur, karena :
1.
Merupakan
penerapan konsep modular, yaitu memecah program menjadi modul-modul atau
subprogram-subprogam yang lebih sederhana.
2.
Untuk
hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja
dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila
diperlukan.
2.4.1.
Penulisan Prosedur (Procedure)
Prosedur
memiliki struktur yang sama dengan struktur program, yaitu terdiri dari nama
prosedur, deklarasi-deklarasi dan bagian deskripsi (statement atau aksi
di dalam prosedur). Semua deklarasi di dalam prosedur bersifat lokal sehingga
hanya bisa digunakan oleh prosedur itu saja, sedangkan deklarasi di dalam
program utama bersifat global sehingga dapat dikenali di seluruh bagian
program. Struktur umum prosedur adalah sebagai berikut :
Penulisan Prosedur di dalam Turbo Pascal
|
Struktur blok program utama beserta prosedur, adalah
sebagai berikut :

Struktur blok
program beserta prosedur tanpa parameter
2.4.1.1.Bagaimana
jika tanpa prosedur ?
Apakah
dalam suatu program harus selalu terdapat prosedur? Jawabannya adalah tidak.
Bila kita membuat program yang sangat sederhana, misalnya program untuk
menampilkan kata “hallo world” di layar, maka boleh saja tidak
menggunakan prosedur. Untuk lebih jelasnya berikut disajikan contoh program
untuk menghitung luas dan keliling persegipanjang yang menggunakan prosedur
dan tanpa prosedur.
Contoh Program
Persegipanjang tanpa
prosedur :
|
Bila
dituliskan di Editor Turbo Pascal kira-kira tampilannya seperti dibawah ini.
Untuk melihat hasilnya silahkan tekan Ctrl + F9.

Setelah dirunning (Ctrl
+ F9), maka hasilnya seperti dibawah ini, kemudian cobalah untuk menginputkan
data , misal : 4 untuk panjang dan 6 untuk lebar maka hasilnya adalah,
Luas =
24 dan Keliling = 20.
Tampilan
setelah dirunning

Silahkan
anda bisa mencoba dengan menginputkan angka yang berbeda, yang penting tidak
melebihi 255, karena type data byte yang digunakan oleh variabel p dan
l seperti pada contoh program diatas hanya mampu menampung data berupa
angka sampai dengan 255, sedangkan variabel luas & keliling
hanya mampu menampung angka -32768 s/d 32767 karena menggunakan tipe data
integer. Mengapa demikian, bagaimana cara mengetahui jangkauan suatu tipe
data?, Untuk mengetahui jangkauan (range) tipe data, anda bisa melihat
di bagian help. Caranya : Help > Index, kemudian cari
kata integer, lalu tekan enter maka akan muncul tampilan sebagai berikut
:

Tampilan
Help di turbo pascal ketika menampilkan tipe data
Oh
ya! di Turbo Pascal, terdapat fasilitas untuk mengatur warna tampilan, misalnya
warna Sintaks (sintax), bila anda ingin mencoba silahkan masuk ke menu Option
> Environment > Color. Di bagian Group cari kata Syntax,
selanjutnya di bagian Item, terdapat item-item : Whitespace,
Comments, Reserver Words, Identifiers, Symbols, Strings, Numbers, Assembler yang dapat diatur warna tampilannya, caranya
pilih salah satu Item kemudian pilih warna apa yang dikehendaki pada bagian Foreground
untuk warna depan sedangkan Background untuk warna latar
belakang.
Tampilan menu Colors

Pengaturan
tampilan warna sintax pada Editor Turbo Pascal memang bukan suatu
kewajiban, dan tidak akan berpengaruh terhadap proses program. Tetapi hal ini
bermanfaat pada saat proses pembuatan/pengetikan program, dimana perbedaan
warna item-item sintax akan
membantu kita dalam pembacaan program.
2.4.1.2.Menggunakan
prosedur
Selanjutnya
kita modifikasi program tadi, dengan menambahkan prosedur sehingga menjadi
seperti dibawah ini :
Program Persegipanjang menggunakan
prosedur
|
Pada
program tanpa prosedur maka seluruh statement dituliskan di dalam
blok program utama, sehingga ketika program semakin besar maka blok program
utama semakin padat. Tetapi bila menggunakan prosedur maka di dalam blok
program utama akan lebih sedikit, karena hanya berisi nama prosedur yang
dibutuhkan dan statement tambahan lainnnya yang dibutuhkan. Pada contoh
diatas nama prosedur yang dipanggil di dalam blok program utama yaitu Hitung_Luas dan Hitung_Keliling
dan arah pemanggilan prosedur digambarkan dengan garis putus-putus berwarna
merah agar lebih jelas.
Bila dituliskan di Editor Turbo Pascal kira-kira
tampilannya seperti dibawah ini. Untuk melihat hasilnya, seperti biasa silahkan
tekan Ctrl + F9. Bila program sudah dieksekusi maka kedua program tersebut
(program dengan prosedur atau tanpa prosedur) akan memberikan hasil yang sama,
tetapi dari teknik pembuatan program jelas berbeda.

Tampilan di Editor Turbo Pascal,
Program
Persegipanjang menggunakan prosedur
Ketika
kita membuat suatu program tanpa prosedur maka seluruh statement yang
terdapat di dalam program utama akan dieksekusi secara beruntun (sequential)
dari atas ke bawah, sedangkan bila menggunakan
prosedur, maka program utama hanya akan mengeksekusi prosedur-prosedur
yang dipanggil, bila prosedur tersebut dipanggil di dalam program utama, jadi bila untuk sementara kita
tidak membutuhkannya, maka cara mudah yang dapat kita lakukan yaitu tidak usah
menghapusnya tetapi cukup dengan tidak memanggilnya di dalam blok program
utama.
![]() |
|

![]() |
|||||
![]() |
|||||
![]() |

![]() |
|||||
![]() |
|||||
|
|||||

![]() |
8
Arah eksekusi program utama ketika terdapat prosedur,
maka akan memanggil prosedur dan melakasanakan statement yang terdapat di dalam
prosedur
2.4.1.3.Variabel Global dan Variabel Lokal
Untuk lebih memudahkan kita memahami variabel lokal dan
variabel global, mari kita modifikasi listing prorgram di atas,
perubahannya hanya sedikit yaitu, memindahkan penulisan variabel ls ke
dalam Procedure Hitung_luas , dan variabel kel dipindahkan ke
dalam Procedure Hitung_keliling, sehingga menjadi seperti dibawah ini.

Program Persegipanjang menggunakan prosedur dengan variabel lokal
Variabel p dan l pada listing program di
diatas, bersifat global sehingga dapat dikenali baik di program utama maupun
didalam Procedure Hitung_luas dan Procedure Hitung_keliling,
variabel semacam itulah yang dimaksud dengan variabel global. Sedangkan
variabel ls dan variabel kel bersifat lokal dan hanya dikenali
oleh program itu sendiri, variabel seperti itu disebut variabel lokal. Bila
variabel lokal dipanggil diluar prosedur tersebut maka tidak akan dikenali dan
program menjadi error, sebagai bukti mari
kita sedikit modifikasi listing program di atas, output program
yang terdapat pada masing-masing program kita pindahkan ke dalam blok program
utama, sehingga di dalam setiap prosedur hanya terdapat satu statement
saja, hasilnya seperti dibawah ini.

Program
Persegipanjang , bila variabel lokal dipanggil dari
luar
Bila
program tersebut dicompile maka akan terjadi error
karena variabel ls dan kel tidak dikenali (unknown identifier)
di dalam blok program utama. Prosedur yang terdapat di dalam program pada
listing diatas adalah contoh prosedur tanpa parameter.. Bila prosedur tidak
memiliki parameter maka tanda kurung setelah nama prosedur tidak perlu
disertakan. Agar listing
program di atas tidak terjadi error ketika
dicompile, maka dapat dilakukan
cara sebagai berikut :
1.
Dibuat bersifat global
Supaya suatu variabel bersifat global, maka harus
dideklarasikan di atas modul yang menggunakannya.
2.
Dikirim
sebagai parameter ke modul yang membutuhkannya.
Bagaimana caranya?, apa yang dimaksud dengan parameter?,
semoga tulisan berikut ini bisa menjawab kedua pertanyaan tersebut.
2.4.2.
Penulisan Fungsi (Function)
Apa
yang dimaksud dengan fungsi?. Fungsi tidak jauh berbeda dengan prosedur, yaitu
suatu modul program terpisah dari progam utama yang diletakan dalam blok
tersendiri yang berfungsi sebagai bagian dari program. Namun fungsi memiliki
perbedaan mendasar dengan prosedur yaitu : fungsi memberikan nilai balik (return)
sedangkan prosedur tidak. Cara penulisan fungsi di Turbo Pascal seperti dibawah
ini :
Cara Penulisan Fungsi
|
|||
![]() |
Struktur blok
program beserta Fungsi
Jika kita ketikan di editor Turbo Pascal, kira-kira
tampilannya seperti terlihat pada gambar dibawah ini :

Tampilan di Editor Turbo Pascal,
2.4.2.1. Program
Persegipanjang dengan Fungsi
Sama seperti prosedur, untuk
mengakses setiap Fungsi kita harus memanggil namanya. Fungsi juda dapat
memiliki parameter, tetapi parameter yang terdapat dalam fungsi selalu
merupakan parameter masukan (input parameter). Tipe hasil di
dalam suatu fungsi merupakan tipe nilai balik (return) yang diberikan oleh fungsi. Bila kita
perhatikan listing program diatas, terdapat sebuah Fungsi/Function dengan
nama Luas yang memiliki parameter
p dan l, sedangkan tipe nilai balik (return)
yang dihasilkan oleh fungsi tersebut adalah integer. Pada contoh
diatas Luas digunakan sebagai nama fungsi, dan didalam fungsi tersebut, Luas
digunakan sebagai variabel untuk menampung hasil perhitungan pada fungsi
tersebut.
Apakah suatu modul program harus dibuat menjadi fungsi
atau prosedur ?, jawabannya adalah terserah anda, karena ini semua tergantung
dari kebutuhan dan kemampuan seorang programmer. Namun biasanya fungsi
digunakan bila suatu modul program mengembalikan suatu nilai sedangkan prosedur
digunakan untuk menghasilkan sekumpulan aksi.
2.5.
LARIK (ARRAY)
Larik (Array) adalah suatu bentuk struktur data yang menampung satu atau lebih dari satu data yang sejenis (bertipe data sama), yang diwakili oleh satu nama variabel.
Setiap elemen atau anggota larik dapat dikenali atau diakses melalui suatu indeks.
Larik berdimensi satu disebut vektor.
Larik berdimensi dua disebut matriks.
Larik berdimensi lebih dari dua disebut tensor.
Mendefinisikan
Larik :
a. nama_array
: array [1..n] of tipe_data;
contoh : A : array [ 1..10] of integer;
b. tipe_data nama_array [n];
contoh : integer A[10];
c. type larik : array [1..n] of tipe_data;
nama_array :
larik;
contoh : type larik : array [1..10] of integer; A : larik;
Operasi Larik :
membaca / mengisi larik
mencetak / menampilkan
larik
menggeser isi larik
menggabungkan
beberapa larik
menguraikan
satu larik
mengurutkan
isi larik
mencari elemen dalam larik
2.5.1. Membaca
/ mengisi Larik
Proses membaca atau mengisi suatu larik, dimulai dengan mendefinisikan array disertai dengan jumlah elemen yang akan disimpan, kemudian dengan memakai instruksi
perulangan satu persatu elemen diisi dengan indeks yang berurutan mulai dari 1 hingga indeks maksimum.
Berikut ini disajikan dua algoritma untuk mengisi suatu larik. Algoritma yang pertama tidak menggunakan prosedur, algoritma yang kedua menggunakan pro sedur.
Algoritma
IsiLarik_1
{ membaca atau mengisi larik tanpa menggunakan prosedur }
Deklarasi
const N = 10; integer A[N]; integer indeks;
Deskripsi
for
( indeks = 1 to N step 1)
write ( “Masukkan elemen ke-“, indeks)
read ( A[indeks] );
endfor.
Algoritma IsiLarik_2
{ membaca atau mengisi larik dengan menggunakan prosedur }
Deklarasi
const
N=100;
integer A[N]; integer K;
prosedur Baca_Larik ( input integer M, output integer A[ ] );
Deskpripsi
write ( “Masukkan Jumlah Elemen Larik ( < 100 ) : “);
read ( K ); Baca_Larik ( K, A);
prosedur Baca_Larik ( input integer M, output integer A[ ] )
{ prosedur membaca / mengisi larik }
Deklarasi
integer indeks;
Deskripsi
for
( indeks = 1 to M step 1
)
write ( “Masukkan elemen ke-“, indeks );
read ( A[indeks] );
endfor.
2.5.2.
Menampilkan Isi Larik
Berikut ini disajikan sebuah prosedur untuk menampilkan isi suatu larik dengan M buah elemen. Prosedur ini dapat dipanggil oleh algoritma yang memerlukan prosedur untuk menampilkan sebuah larik.
prosedur Cetak_Larik ( input integer M, input integer A[ ]
)
{ prosedur untuk menampilkan isi suatu larik atau array }
Deklarasi
integer indeks;
Deskripsi
for
( indeks = 1 to M step 1 )
write ( A[indeks] );
endfor.
2.6.
Matriks / Larik Dua Dimensi
Salah satu struktur data larik yang juga banyak digunakan dalam berbagai aplikasi adalah matriks atau larik 2D (dua dimensi), satu untuk menunjukkan baris dan yang lainnya menunjukkan kolom. Susunan angka berikut ini menunjukkan matriks 4 x 5
( 4
baris dan 5 kolom).
10
|
12
|
7
|
9
|
16
|
8
|
15
|
10
|
11
|
25
|
13
|
8
|
34
|
23
|
7
|
45
|
27
|
6
|
5
|
17
|
Mengisi suatu matriks berdimensi 4 x 5 dilakukan baris demi baris, mulai dari baris 1 dengan mengisi kolom 1 sampai dengan kolom 5, kemudian pindah ke baris 2 dan mengisi kolom 1
sampai dengan kolom 5, dst.
Algoritma Isi_Matriks_4x5
{ algoritma mengisi suatu matriks 4 x 5 }
Deklarasi
const
baris=4, kolom=5;
integer brs, kol;
integer A[baris] [kolom];
Deskripsi
for
( brs=1 to baris step 1 )
for
( kol=1 to kolom step 1 )
write ( “elemen baris-“, brs, “kolom-“, kol );
read ( A[brs][kol] );
endfor.
endfor.
Menampilkan isi dari matriks 4x5 diatas adalah sebagai berikut.
Algoritma Tampilkan_Isi_Matriks
{ algoritma menampilkan isi matriks 4 x 5 }
Deklarasi
const baris=4, kolom=5;
integer brs, kol;
integer A[baris] [kolom];
Deskripsi
for
( brs=1 to baris step 1 )
for
( kol=1 to kolom step 1 ) write ( A[brs] [kol] ); endfor.
write ( );
endfor.
Prosedur untuk mengisi dan menampilkan elemen-elemen matriks berdimensi N x M
disajikan berikut ini.
prosedur Isi_Matriks ( input integer N, input integer M, output integer A[ ] )
{ prosedur untuk mengisi matriks berdimensi N x M }
Deklarasi
integer brs, kol;
Deskripsi
for
( brs=1 to N step 1 )
for
( kol=1 to M step 1 )
write ( “elemen baris-“, brs, “kolom-“, kol );
read ( A[brs][kol] );
endfor.
endfor.
prosedur Tampil_Matriks ( input integer N, input integer M, input integer A[ ]
)
{ prosedur untuk menampilkan isi matriks berdimensi N x
M }
Deklarasi
integer brs, kol;
Deskripsi
for
( brs=1 to N step 1 )
for ( kol=1 to M step 1 ) write ( A[brs] [kol] ); endfor.
endfor.
BAB III
PENUTUP
3.1.KESIMPULAN
3.2.SARAN
DAFTAR PUSTAKA
-
Jogianto Hartono,
MBA, Ph. D., “Konsep Dasar Pemrograman Bahasa C”, Andi Yogyakarta, 2003
-
Rinaldi Munir, “Algoritma
dan Pemrograman dalam Bahasa Pascal dan C Buku 1”, Informatika Bandung,
2004.
-
Rinaldi Munir, “Algoritma
dan Pemrograman dalam Bahasa Pascal dan C Buku 2”, Informatika Bandung,
2001.
-
Ir. Abdul kadir, “Pemrograman
Pascal Menggunakan Turbo Pascal 7.0/Borland Pascal 7.0 Membahas Pemrograman
Berorientasi Objek Buku 2”, Andi Yogyakarta, 2002.
-
IlmuKomputer.com
No comments:
Post a Comment