Anda di halaman 1dari 36

LAPORAN

PEMOGRAMANAN BAHASA PASCAL

DISUSUN OLEH :
KELOMPOK 3

 Rahmat Hidayat W.B (202102031)  Hernayanti Amir (202102039)


 Ridwan (202102016)  Hasrah (202102023)
 M. Zulfikar (202102009)  Sahrul (202102050)
 Putri Yasmin (202102014)  Muhammad Sakib (202102023)
 Sawariah (202102033)  Akbar (202102002)

Prodi Bisnis Digital

Institut Teknologi dan Bisnis Muhammadiyah


Polewali Mandar 2022
KATA PENGANTAR

Assalamu’alaikum Wr. Wb.

Segala Puji bagi Allah sebesar pujian yang dapat memenuhi kesyukuran atas nikmat-
Nya kepada kita semua sehingga penyusunan laporan ini dapat terselesaikan. Rahmat yang
paling utama dan salam yang paling sempurna semoga terlimpah kepada penutup para Nabi
dan Rasul Muhammad saw pembawa agama yang sangat bijaksana dan terpelihara dari
segala macam perubahan dan pergantian berkat pemeliharaan Allah Rabb al ‘Alamiin sampai
hari akhir.

Laporan ini mengenai tentang Pemrograman Bahasa Pascal yang disusun untuk
memenuhi salah satu tugas mata kuliah Algoritma dan Pemrograman Dasar. Laporan ini
disusun selain bertujuan untuk memenuhi tugas juga untuk memeberikan penjelasan
mengenai Pemrograman Bahasa Pascal.

Penulis sangat berterimakasih kepada berbagai pihak yang telah memberikan


dorongan, bantuan, serta doa nya sehingga laporan ini dapat selesai tepat pada waktunya.
Namun demikian, penulis meminta masukan berupa saran dan kritikan dari seluruh pihak.

Besar harapan kami semoga laporan ini dapat bermanfaat bagi semua pihak yang
memerlukannya. Amin.

Wassalamu’alaikum Wr. Wb.

Wonomulyo, 17 Februari 2022

penulis
DAFTAR ISI
KATA PENGANTAR
DAFTAR ISI
BAB I.PENDAHULUAN.............................................................................1
LATAR BELAKANG......................................................................................................................1
RUMUSAN MASALAH.................................................................................................................2
TUJUAN......................................................................................................................................2

BAB II.PEMBAHASAN..............................................................................3
PENGERTIAN PASCAL.................................................................................................................3
MENGENAL TIPE DATA...............................................................................................................4
DEFINISI TIPE DATA....................................................................................................................4
IF THEN ELSE DALAM PASCAL....................................................................................................5
PERNYATAAN PERULANGAN......................................................................................................6
PENGERTIAN PROSEDUR DAN FUNGSI....................................................................................13
PENDEFINISIAN FUNGSI...........................................................................................................18
SORTING (PENGURUTAN DATA)..............................................................................................27
REKURSIF.................................................................................................................................31

BAB III.PENUTUP....................................................................................32
KESIMPULAN............................................................................................................................32
BAB I
PENDAHULUAN

LATAR BELAKANG

Pascal adalah bahasa tingkat tinggi (high level language) yang orientasinya pada segala
tujuan, dirancang oleh Profesor Niklaus Wirth dari Technical University of Zurich,
Switzerland. Nama Pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli
matematik dan filosofer 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 membantu mengajar program komputer secara sistematis, khususnya untuk
memperkenalkan pemrograman terstruktur.

Dalam waktu singkat, Pascal telah menjadi bahasa yang populer di kalangan 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 dibandingkan dengan bahasa-bahasa komputer tingkat
tinggi yang lainnya.

Standar Pascal adalah bahasa Pascal yang didefinisikan oleh K.Jensen dan Niklaus Wirth.
Penerapan nyata dari standar Pascal banyak yang berbeda dengan seperti apa yang telah
didefinisikan oleh K. Jensen dan Niklaus Wirth. Standar Pascal di Eropa didefinisiakn oelh
ISO (International Standards Organization) dan di Amerika oleh kerjasama antara ANSI
(American National Standar Institute) dengan IEEE (Intitute of Electrical and Electronic
Engineer).

Beberapa versi dari Pascal yang telah beredar di pasaran, di antaranya 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 Pascal banyak digemari, karena terutama bersifat interaktif,
seperti interpreter saja layaknya. Selain itu Turbo Pascal mengikuti definisi dari standar
Pascal seperti yang didefinisikan oleh K. Jensen dan Niklaus Wirth di Pascal User Manual
dan Report. Turbo PASCAL adalah copyright dari Borland Inc. dan dapat digunakan pada
sistem operasi PC-DOS, MS-DOS, CPM-86 dan CP/M-80. Berikut yang penulis pakai adalah
Turbo Pascal versi 7.0.

RUMUSAN MASALAH

1. pengertian pascal
2. mengenal tipe data
3. definisi tipe data
4. if then else dalam pascal
5. pernyataan perulangan
6. pengertian prosedur dan fungsi
7. pendefinisian fungsi
8. sorting (pengurutan data)
9. rekursif
TUJUAN

 Agar lebih memahami asal cerciptanya Bahasa pemograman pascal


 Menjelaskan tipe dapa apa saja yang digunakan dalam pemograman
 Memberikan beberapa contoh pemograman pascal
BAB II
PEMBAHASAN
PENGERTIAN PASCAL

Pascal adalah bahasa pemrograman yang pertama kali di buat oleh Profesor Niklaus Wirth,
seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971.
Dengan mengambil nama dari matematikawan Perancis, Blaise Pascal, yang pertama kali
menciptakan mesin penghitung, Profesor Niklaus Wirth membuat bahasa Pascal ini sebagai
alat bantu untuk mengajarkan konsep pemrograman komputer kepada mahasiswanya. Selain
itu, Profesor Niklaus Wirth membuat Pascal juga untuk melengkapi kekurangan-kekurangan
bahasa pemrograman yang ada pada saat itu.

Pascal adalah bahasa tingkat tinggi yang orientasinya pada segala tujuan, dirancang oleh Prof.
Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama Pascal diambil
sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan filosofi terkenal abad 17 dari
Prancis.

    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 pemrograman
terstruktur. Pada perkembangannya banyak versi-versi pascal yang beredar, antara lain: MS-
Pascal, Apple Pascal, Turbo Pascal, dll. Pascal merupakan salah satu bahasa pemrograman
tingkat tinggi yang berbasis text (bukan visual). Dari sekian banyak varian Pascal, Turbo
Pascal (Borland) adalah yang paling terkenal. Seperti halnya Basic dengan Visual Basic-nya,
Pascal pun memiliki tingkatan lebih tinggi yaitu Delphi / Kylix.

MENGENAL TIPE DATA

DEFINISI VARIABLE

Suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam
proses program yang nilainya bisa diubah – ubah sesuai kebutuhan

1. Variable boleh gabungan huruf dan angka, tetapi tidak boleh diawali dengan
angka

2. Tidak boleh menggunakan spasi

3. Tidak boleh ada symbol – symbol khusus kecuali underscore

4. Jumlah karakter bebas tapi hanya 32 karakter pertama yang dipakai

SYARAT VARIABLE

Jenis data atau nilai yang dapat ditampung oleh sebuah variable

Untuk semua Bahasa pemrograman sudah memiliki tipe data standar


DEFINISI TIPE DATA

Jenis data atau nilai yang dapat ditampung oleh sebuah variable

Untuk semua Bahasa pemrograman sudah memiliki tipe data standar

JENIS TIPE DATA

Tipe Data Standar adalah tipe data dasar yang sering digunakan dalam pemrograman (Tipe
data primitive)

Tipe Data Terstruktur adalah tipe data yang dapat digunakan untuk menampung beberapa tipe
data pada sebuah variable sehingga saling berhubungan dan dapat disusun dalam satu struktur

MACAM – MACAM TIPE DATA STANDAR

Tipe data integer adalah tipe data yang terdiri dari angka bulat (tidak mengandung nilai
pecahan atau nilai desimal). Nilai ini bisa berbentuk angka positif maupun negatif, contohnya
3, 99, 1114, -44, 10000, atau 128730123.

 Tipe data real adalah tipe data angka yang mengandung nilai pecahan (baik positif
maupun negatif), seperti: 3.14, 99.99, atau 679073.22
 Tipe data char adalah Char adalah semua tombol yang terdapat pada keyboard atau
lebih lengkapnya semua karakter yang terdapat pada kode ASCII.
 Tipe data boolean adalah tipe data yang hanya bisa diisi dengan 1 diantara 2 nilai:
true atau false (benar atau salahMacam – macam tipe data TERSTRUKTUR
 Array atau larik terdiri atas bagian-bagian komponen yang memiliki tipe data sama.
Dalam penyimpanannya array selalu mempunyai jumlah komponen yang tetap yang
ditunjukkan oleh indeksnya.
 Record terdiri dari komponen yang memiliki tipe data berbeda – beda

Contoh membuat aplikasi sederhana pascal


Program Menghitung Luas Persegi Panjang

program Luas_Persegi_Panjang;

var

panjang : integer;

lebar : integer;

luas : integer;
begin

write ('Masukan Panjang = ');read(panjang);

write ('Masukan Lebar = ');read(lebar);

luas:=panjang*lebar;

writeln('Luas Persegi panjang = ',luas);

end.

IF THEN ELSE DALAM PASCAL

Pada dasarnya, kondisi IF THEN ELSE adalah tambahan dari kondisi IF THEN.


Bagian ELSE digunakan untuk menjalankan kode program apabila sebuah kondisi tidak
terpenuhi.

Contoh Kode Program Percabangan IF THEN ELSE Pascal

Berikut contoh program pertama kita:

program struktur_if_then_else;

uses crt;

var

  angka: integer;

begin

  clrscr;

  angka := 4;

  if (angka > 5) then

    begin

      writeln('Variabel "angka" lebih besar dari 5');

    end

  else

    begin
      writeln('Variabel "angka" lebih kecil dari 5');

    end;

  readln;

end.

PERNYATAAN PERULANGAN

Pengulangan (loop) merupakan bentuk yang sering ditemui di dalam suatu program aplikasi.
Dalam hampir setiap program yang kompleks mutlak memerlukan suatu perulangan dan
percabangan. Tujuan perulangan disini adalah untuk mengulang statement atau blok
statement berulang kali sesuai sejumlah yang ditentukan pemakai. Pengulangan dapat
dilakukan sejumlah kali, atau sampai kondisi berhenti dan pengulangan tercapai. Di dalam
bahasa Pascal, dikenal tiga macam perulangan, yaitu dengan menggunakan pernyataan For,
While-Do, dan Repeat…Until.

Pernyataan FOR

Pernyataan for adalah konstruksi pengulangan tanpa kondisi, artinya instruksi-instruksi di


dalam badan pengulangan diulangi sejumlah kali yang di spesifikasikan oleh pemrogram.
Dalam hal ini, jumlah pengulangan sudah diketahui sebelum konstruksi pengulangan
eksekusi. Perulangan dengan pernyataan For digunakan untuk mengulang pernyataan atau
satu blok pernyataan berulang kali sejumlah yang ditentukan. Jumlah pengulangan diketahui
atau dapat ditentukan sebelum eksekusi. Untuk mencacah beberapa kali pengulangan
dilakukan, diperlukan sebuah peubah (variable) pencacah (counter). Peubah ini nilainya
selalu bertambah satu setiap kali pengulangan dilakukan. Jika cacah pengulangan sudah
mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti. Perulangan
dengan pernyataan For dapat berbentuk perulangan positif, perulangan negatif dan
perulangan tersarang.

Perulangan Positif

Perulangan positif adalah perulangan dengan penghitung dari kecil ke besar atau
pertambahan positif. Perulangan positif dapat dibentuk dengan menggunakan pernyataan For-
To-Do, dengan bentuk umum:

For variabel-kontrol:=nilai awal To nilai akhir Do


pernyataan
Contoh perulangan positif :
Contoh 1. Mencetak “saya sedang belajar for” sebanyak 5 kali. 

Program cetak;
Uses wincrt;
Var
I:Integer;
Begin
For I:= 1 to 5 Do Writeln(‘sedang belajar for’);
End.

Contoh 2. Menjumlahkan deret 1 sampai N (1+2+3…+N). N adalah bilangan bulat


positif.

Program penjumlahan_deret;
Uses wincrt;
Var
N :integer;
I :integer;
Jumlah:integer;
Begin
Write (‘berapa N ?’);readln(N);
Jumlah:=0;
For I := 1 to N do
Begin
Jumlah := jumlah + i
End;
Writeln (‘jumlah deret = ‘ , jumlah);
End.

Perulangan Negatif

Perulangan negatif adalah perulangan dengan penghitung dari besar ke kecil atau
pertambahan negatif. Perulangan negatif dapat dibentuk dengan menggunakan pernyataan
For-DownTo-Do, dengan bentuk umum:
For variabel-kontrol := nilai awal DownTo nilai akhir Do
penyataan

Contoh perulangan negatif :

Contoh 3. Mencetak menurun angka 5 sampai dengan 1

Program cetak_menurun;
Uses wincrt;
Var
I:integer;
Begin
For I:=5 downto 1 do
Begin
Writeln(I);
End;
End.

Perulangan Bersarang
Perulangan bersarang adalah perulangan yang berbeda di dalam perulangan yang lainnya.
Perulangan yang lebih dalam akan diproses terlebih dahulu sampai habis, kemudian
perulangan yang lebih luar baru akan akan bertambah, mengerjakan perulangan yang lebh
dalam lagi mulai dari nilai awalnya dan seterusnya.

Contoh perulangan bersarang:

Contoh 4. Mencetak matrix:

111213
212223
313233
414243
515253

Program cetak2;

Uses wincrt;
Var
I,J:Integer;
Begin
For I:=1 to 5 Do
Begin
For j:=1 to 3 Do
Begin
Write(I:8,J:3);
End;
Writeln;
End;
End.
Pernyataan WHILE

Pada struktur WHILE, aksi (atau runtunan aksi) akan dilaksanakan berulang kali selama
kondisi bernilai true. Jika kondisi bernilai false, badan pengulangan tidak akan dilaksanakan,
yang berarti pengulangan selesai. Yang harus diperhatikan adalah pengulangan harus
berhenti. Pengulangan yang tidak pernah berhenti menandakan bahwa logika pemrograman
tersebut salah. Pengulangan berhenti apabila kondisi bernilai false. Agar kondisi suatu saat
bernilai false, maka di dalam badan pengulangan harus ada instruksi yang mengubah nilai
variabel kondisi.

while kondisi do
aksi

Contoh 1. Perulangan dengan while

Program perulanganwhile;
Uses wincrt;
Var
I:integer;
Begin
writeln('Program Perulangan dengan While');
I:=1;
While i<= 10 do
Begin
Writeln(i); I:=i+1;
End;
End.

Contoh 2. Menghitung rata-rata dengan while dengan syarat nilai tidak boleh nol.

Program rerata2;
uses wincrt;
var i,x,jumlah:integer;
rerata:real;
begin
writeln('Masukan nilai-nilai (0 untuk berhenti)=');
readln(x);
i:=0;
while x<>0 do
begin
i:=i+1;
jumlah:=jumlah+x;
read(x);
end;
rerata:=jumlah/i;
writeln(‘Jumlah=’,jumlah);
writeln(‘Rerata=’,rerata);
end.

Pernyataan REPEAT

REPEAT...UNTIL berfungsi hampir sama dengan WHILE...DO. Pada REPEAT...UNTIL,


looping akan berhenti justru ketika kondisi bernilai TRUE. Selain itu kondisi akan diuji pada
akhir perulangan sehingga blok di dalam perulangan akan dijalankan minimal satu kali
walaupun kondisi yang ada masih FALSE. Repeat – Until digunakan untuk mengulang
statement-statemen atau blok statement sampai (Until) kondisi yang diseleksi di Until tidak
terpenuhi. 

Perbedaannya, pengulangan Repeat-Until dengan While-Do terletak pada letak pengecekan


kondisi. Jika pada pernyataan While-Do kondisi dicek pada awal blok pernyataan yang harus
diulang, sedangkan pada pernyataan Repeat Until, kondisi dicek pada akhir blok pernyataan
yang harus diulang. Perbedaan yang lain, bila pernyataan while mengulang pernyataan
selama kondisi masih terpenuhi, pernyataan repeat..until mengulang pernyataan selama
kondisi belum terpenuhi. Bentuk umum penyataan repeat..until adalah sebagai berikut.

Repeat
(pernyataan-pernyataan yang akan diulang)
until kondisi

Contoh 1. program mencetak 5 bilangan bulat pertama menggunakan repeat-until

Program cetak;
Uses wincrt;
Var
i : Integer;
Begin
i:=0;
Repeat
i:= i+1;
Writeln (i);
Until i=5;
End.

Contoh 2. Program mencetak ulangan ke-1 sampai ke-10

Uses wincrt;
Var
n : integer;
Begin
n:= 1;
Repeat
Writeln ('Ulangan ke :',n);
n:= n + 1;
Until n >= 10;
Readln;
End.

Contoh 3. Program menghitung berat badan ideal

program berat_badan;
uses wincrt;
var
t,m:real;
j:char;
begin
repeat
begin
write('Masukkan tinggi badan Anda=');readln(t);
m:=((t-100)-(0.1*(t-100)));
writeln('Berat ideal Anda= ',m:2:0);
write('Anda Ingin menghitung lagi?=');readln(j);
end;
until (j<>'y');
end.

Pernyataan Repeat – Until tersarang

Repeat – Until tersarang adalah suatu perulangan Repeat – Until yang satu berada didalam
perulangan Repeat – Until yang lainnya.

Contoh 4: Program mencetak baris dan kolom menggunakan repeat until bersarang

Program Perulangan_Repeat_2;
Var I, J : Integer;
Begin
I:= 0;
Repeat
I:= I + 1;
J:= 0;
Repeat
J:= J + 1;
Writeln (I : 5, J : 5);
Until J = 3;
Until j = 3;
End.

Contoh 5: program menghitung gaji bersih pegawai. 

Input : nama, alamat, golongan (A dan B), dan status (tidak menikah, janda, duda, sudah
menikah). Jika termasuk golongan A maka gaji pokok Rp.500.000. Jika golongan B maka
gaji pokok Rp.1000.000. jika status sudah menikah maka mendapatkan tunjangan sebesar 10
% dari gaji pokok, selain itu tidak mendapatkan tunjangan. Gaji bersih pegawai adalah gaji
pokok + tunjangan. Output : nama, alamat, golongan, status, tunjangan, total gaji.

Program gaji;
uses crt;
var
gapok: longint;
gaji,tunj: real;
gol: char;
nama, alamat, status: string;
begin
clrscr;
write('Masukkan nama : '); readln(nama);
write('Masukkan alamat : '); readln(alamat);
repeat
write('Masukkan golongan : '); readln(gol);
gol := UpCase(gol);
until (gol = 'A') or (gol = 'B');
repeat
write('Masukkan status : '); readln(status);
until (status='tidak menikah') or (status='janda') or
(status = 'duda') or (status='sudah menikah');
if gol = 'A' then
gapok := 500000
else
gapok := 1000000;
if status = 'sudah menikah' then
tunj := 0.1 * gapok
else
tunj := 0;
gaji := gapok + tunj;
clrscr;
writeln('Nama anda adalah ',nama,' dan beralamat di ',alamat);
write('Anda bekerja di Golongan ',gol);
writeln(' sehingga gaji pokok anda sebesar Rp', gapok);
writeln('Status anda adalah ', status);
writeln('Sehingga anda mendapat tunjangan sebesar Rp', tunj:0:0);
writeln('Berdasarkan hal tersebut, total gaji anda sebesar Rp', gaji:0:0);
readln;
end.

PENGERTIAN PROSEDUR DAN FUNGSI

Di dalam pemrograman prosedur dan fungsi memiliki pengertian yang sama yaitu sebagai
sebuah program terpisah (sub-program) yang berfungsi untuk mengerjakan tugas tertentu.

Tujuan dibuatnya prosedur atau fungsi adalah untuk memudahkan dalam proses ngoding,
karena setiap tugas atau fungsi nantinya dapat di kelompokan ke dalam satu blok program
(sub-program) yang terpisah dari program utama. sehingga proses yang kelihatannya rumit
dapat di pecah menjadi bagian-bagian yang lebih sederhana.

Selain itu ketika kita sudah mendefinisikan suatu prosedur atau fungsi, maka cukup
membuatnya sekali saja dan seterusnya jika ingin menggunakannya kita hanya perlu
memanggilnya dari program utama, hal ini membuat program lebih efisien karena tidak perlu
membuat perintah yang sama berulang-ulang.

 Perbedaan Fungsi dan Prosedur

Walaupun tujuan fungsi dan prosedur sama sebagai sub program namun keduanya memiliki
sifat dan ciri-ciri yang berbeda. Berikut ini adalah perbedaannya:

Perbedaan pertama terletak pada cara pendeklarasiannya, prosedur di deklarasi menggunakan


kata kunci procedure, sedangkan fungsi memakai function.

Perbedaan yang kedua, prosedur tidak memiliki tipe data sedangkan fungsi mempunyai tipe
data

Karena fungsi memiliki tipe data maka fungsi akan mengembalikan nilai sesuai dengan tipe
nya saat fungsi tersebut dipanggil.

 Pendefinisian Prosedur

Mendefinisiakan prosedur artinya menuliskan nama prosedur, konstanta, variabel dan


menjabarkan aksi apa yang akan dilakukan, termasuk deklarasi parameter jika ingin
menggunakannya.

Berikut ini bentuk umum pendefinisian prosedur di pascal:

Program Nama_Program;
Procedure Nama_Prosedur;

Begin

........

........

End;

Begin

.........

.........

End.

Setiap prosedur mempunyai nama yang unik, sebaiknya nama prosedur diawali dengan kata
kerja misalnya HitungKeliling, CariBilangan, CetakNilai dan lain sebagainya.

Contoh Program Prosedur di Pascal

Program Procedure_1 ;

uses crt;

//Mendefinisikan prosedur

procedure CetakHello;

begin

writeln('Hello World');

end;

Begin

//Memanggil prosedur

CetakHello;
end.

Pada program di atas kita membuat prosedur CetakHello tanpa menggunakan parameter


dengan aksi yang di lakukan yaitu mencetak kalimat Hello World.

Prosedur tersebut di panggil pada program utama dengan cara menyebutkan nama
prosedur CetakHello.

Hasil Keluaran

Program Procedure_2 ;

uses crt;

var

bil1,bil2, hasil: integer;

//Mendefinisikan prosedur

procedure HitungPenjumlahan(var a,b :integer);

begin

hasil:=a+b;

writeln('Hasil Penjumlahan ',a,'+',b,'=',hasil);

end;

Begin

write('Masukan bilangan pertama : '); readln(bil1);

write('Masukan bilangan kedua : '); readln(bil2);

//Memanggil prosedur

HitungPenjumlahan(bil1,bil2);
end.

Pada program kedua kita membuat prosedur dengan nama HitungPenjumlahan prosedur ini


membawa dua parameter yakni variabel a dan b masing-masing bertipe integer.

Variabel a dan b merupakan variabel lokal, dimana ruang lingkup aksesnya hanya pada
prosedur itu sendiri, tidak dapat di akses oleh prosedur lain ataupun pada program utama.

Prosedur HitungPenjumlahan akan menjumlahkan nilai yang dilewatkan dari parameternya


dan di simpan pada variabel hasil. variabel hasil merupakan variabel global yang dapat di
akses oleh seluruh prosedur yang ada dalam program.

Saat program di jalankan, pengguna akan memasukan bilangan pertama dan kedua yang di
tampung pada variabel bil1 dan bil2 (keduanya merupakan variabel global) yang kemudian
nilainya menjadi pelewatan parameter pada prosedur HitungPenjumlahan.

Hasil Keluaran

Program Procedure_3 ;

uses crt;

var

i, N : integer;

a, t : real;

L : real;

//Mendefinisikan prosedur

procedure HitungLuasSegitiga(alas, tinggi :real; var luas : real);

begin

luas:=(alas*tinggi)/2;

end;
Begin

write('Banyaknya segitiga : '); readln(N);

for i:=1 to N do

begin

writeln ('HITUNG LUAS SEGITIGA-',i);

write ('Masukan alas : ');readln(a);

write ('Masukan tinggi : ');readln(t);

//Memanggil prosedur

HitungLuasSegitiga(a,t,L);

writeln('Luas segitiga = ',L:0:2);

writeln();

end;

end.

Pada contoh prosedur yang ketiga kita membuat program untuk menghitung sejumlah N luas
segitiga dengan menggunakan prosedur HutungLuasSegitiga dengan melewatkan 3 parameter
yakni alas, tinggi dan luas yang masing-masing bertipe real. Prosedur ini akan mengerjakan
instruksi untuk menghitung luas segitiga dengan rumus luas=(alas*tinggi)/2;

Karena program akan menghitung sejumlah N luas segitiga, maka kita perlu melakukannya
dengan menggunakan perulangan for do. Nilai N akan menjadi batas perulangan akan
dilakukan.

Pengguna akan memaukan alas dan tinggi segitiga yang di tampung pada variabel a dan t
yang merupakan variabel global, yang selanjutnya nilainya akan di lewatkan pada
prosedur HutungLuasSegitiga.
PENDEFINISIAN FUNGSI

Pendefinisian fungsi sama halnya dengan prosedur, yang membedakan pada kata kunci
menggunakan function sebelum nama fungsi di deklarasikan.

Selain itu fungsi juga memiliki tipe yang mendefinisikan tipe nilai yang diberikan oleh
fungsi, tipe dapat berupa tipe dasar atau bentukan. Nantinya fungsi akan mengembalikan nilai
sesuai dengan tipe fungsi tersebut.

Perlu diketahui setiap variabel/konstanta yang di deklarasikan di dalam fungsi hanya dapat
digunakan dalam fungsi itu sendiri(tidak untuk fungsi lain atau program utama), hal ini kita
kenal dengan istilah variabel lokal.

Berikut ini bentuk umum mendefinisikan fungsi di pascal

Program Nama_Program;

Function nama_fungsi(daftar_parameter): type;

Begin

........

........

End;

Begin

.........
.........

End.

Contoh Program Fungsi di Pascal

Program Fungsi_1;

uses crt;

Function HitungPerkalian(Var a,b : integer):integer;

begin

HitungPerkalian:=a*b;

end;

Var x,y : integer;

Begin

Writeln('Silahkan masukan Angka: ');

write('Nilai X : ');readln(x);

write('Nilai Y : ');readln(y);

writeln;

write(x,' x ',y,' = ',HitungPerkalian(x,y));

readln;

end.
Pada program di atas kita membuat program untuk menghitung perkalian dua buah bilangan
menggunakan fungsi HitungPerkalian dengan parameter a dan b bertipe integer. Fungsi ini
akan mengembalikan nilai dengan mengalikan bilangan a dan b. Variabel a dan b merupakan
variabel lokal pada fungsi tersebut.

Pada bagian main program di deklarasikan variabel x dan y dengan tipe integer, nantinya
pengguna akan memasukan nilai x dan y dan nilai tersebut akan dilewatkan pada parameter
fungsi HitungPerkalian.

Program Fungsi_2;

uses crt;

Function genap(var x:integer): boolean;

Begin

genap:=(x mod 2=0);

End;

Var

bil: integer;

begin

clrscr;

write('Masukan bilangan : '); readln(bil);

if genap(bil) then

begin

writeln(bil,' adalah bilangan genap');

end

else

begin

writeln(bil,' adalah bilangan ganjil');

end;
readln;

end.

Pada contoh program yang kedua, untuk menentukan apakah suatu bilangan yang dimasukan
merupakan bilangan genap atau ganjil tentunya menggunakan function.

Fungsi di definisikan dengan nama genap yang membawa sebuah parameter x dengan tipe
integer. Fungsi genap bertipe boolean yang mana fungsi ini akan menghasilkan nilai
balik true atau false.

Fungsi genap akan mengerjakan instruksi untuk melakukan operasi modulus 2 terhadap nilai
x, jika menghasilkan nilai 0 maka fungsi tersebut bernilai true (artinya nilai x adalah genap).

Pada main program pengguna akan memasukan bilangan yang di tampung pada variabel bil
yang kemudian di cek kondisi jika fungsi genap bernilai true maka program menampilkan
bilangan genap sedangkan jika false akan menampilkan bilangan ganjil.

Program Fungsi_3;

uses crt;

Function faktor(bilangan :integer) : real;

Begin

If bilangan = 0 then faktor := 1

Else

Faktor := faktor(bilangan-1)*bilangan;

End;

Var

n : integer;
begin

clrscr;

write('Berapa Faktorial Dari = '); readln(n);

writeln(n,' faktorial = ', faktor(n):0:0);

readln;

end.

Pada contoh yang ketiga program tentang faktorial, fungsi yang kita definisikan sebenarnya
sudah mengimplementai algoritma rekursif.

Fungsi yang di definisikan adalah faktor bertipe real dengan sebuah parameter bertipe
integer. Fungsi ini akan mengerjakan instruksi untuk menghitung faktorial suatu bilangan.

 Pengertian Array

Array adalah suatu tipe atau struktur data yang dapat menyimpan sekumpulan elemen dengan
tipe yang sama, yang mana setiap elemen dapat di akses secara langsung melalui indeks nya.
tipe data indeks bisa berupa karakter atau integer.

Mendeklarasikan Array

Untuk menggunakan array di pascal, kita terlebih dahulu harus mendeklarasinya, maksudnya
di sini kita perlu menentukan seberapa banyak jumlah elemen array yang akan digunakan,
perlu diketahui juga bahwa jumlah elemen larik tidak dapat diubah, ditambah atau dikurangi
selama program berjalan. Berikut ini adalah contoh cara mendeklarasikan array:

var

A: array[0..4] of integer;

A merupakan array yang berukuran 5 buah elemen yang bertipe integer, dengan indeks array
di mulai dari 0 sampai indeks ke 4 jadi totalnya adalah 5 elemen array.
Secara default indeks array dimulai dari 0, walaupun begitu kita dapat mendeklarasikan array
dengan indeks yang dimulai dari 1

var

A: array[1..4] of integer;

ini berarti elemen array A hanya berjumlah 4 karena indeks array dimulai dari 1.

Contoh Program Array Sederhana

program Contoh1;

var

nilai: array [0..4] of integer;

begin

nilai[0]:=80;

nilai[1]:=67;

nilai[2]:=56;

nilai[3]:=90;

nilai[4]:=78;

writeln('Nilai indeks ke 0 : ',nilai[0]);

writeln('Nilai indeks ke 1 : ',nilai[1]);

writeln('Nilai indeks ke 2 : ',nilai[2]);

writeln('Nilai indeks ke 3 : ',nilai[3]);

writeln('Nilai indeks ke 4 : ',nilai[4]);

end.
Perhatikan pada program di atas array yang di deklarasikan berjumlah 5 elemen dari indeks
ke 0 sampai 4 dengan tipe integer.

nilai pada indeks ke-0 kita isi dengan dengan nilai 80, indeks ke-1 67, indeks ke-2 adalah 56
indeks ke-3 adalah 90 dan indeks ke-4 adalah 78. kemudian kita tampilkan di
layar console dengan perintah writeln(). Hasilnya seperti output berikut:

Contoh Program Array dengan Perulangan For do

program Contoh2;

var

nilai: array [1..50] of integer;

n,i: integer;

begin

write ('Masukan banyak data : '); readln (n);

for i := 1 to n do

begin

write ('Masukan nilai pada indeks ke-',i,' : '); readln (nilai[i]);

end;

//Tampilkan nilai dalam array

writeln('------------------------');

for i := 1 to n do

begin

writeln ('Nilai pada indeks ke-',i,' : ',nilai[i]);


end;

end.

Pada contoh yang kedua coba perhatikan pada bagian deklarasi array yang kita deklarasikan
dimulai dari indeks ke-1 sampai 50. secara default indeks array dimulai dari 0 namun kita
dapat menentukan dari indeks keberapa elemen array yang akan kita gunakan, dalam hal ini
elemen array pada indeks ke 0 tidak akan kita gunakan.

Program di atas kita menggunakan perulangan for do untuk melakukan perulangan pada


perintah input setiap nilai pada masing-masing indeks. dengan menggunakan parameter nilai
n sebagai batas perulangan. Karena jumlah elemen yang kita deklarasikan hanya sebanyak 50
elemen maka nilai n yang akan di masukan tidak boleh lebih dari 50.

Contoh hasil output-nya seperti berikut:

Program Menghitung Nilai Rata-rata Menggunakan Array

program Contoh3;

var

x: array [1..100] of integer;

n,i,jmh : integer;

rata :real;

begin

write ('Masukan banyak data : '); readln (n);

jmh :=0;
for i := 1 to n do

begin

write ('Masukan nilai ke',i,':'); readln (x[i]);

jmh := jmh + x[i];

end;

rata :=jmh / n ;

writeln ('jumlah :',jmh);

writeln ('rata-rata:',rata:0:2);

readln;

end.

Pada contohyang ketiga tentang program pascal menggunakan array, kita membuat program
untuk menghitung nilai rata-rata. Setiap nilai akan di simpan pada elemen array x dengan
indeks sebanyak 100 elemen bertipe integer.

Ada beberapa variabel yang digunakan yaitu n, i dan jmh dengan tipe integer dan variabel
rata dengan tipe real. variabel n berfungsi sebagai nilai pembatas sampai di mana perulangan
akan dijalankan, nilai i berfungsi sebagai deret nilai yang akan di ulang dan menjadi nilai
indeks array yang akan di akses. variabel jmh berfungsi untuk menampung setiap nilai x[i]
yang di masukan pengguna dan terakhir variabel rata berfungsi untuk menampung hasil
pembagian antara jumlah data dan banyaknya data (n).

Program akan di awali dengan user memasukan banyaknya data (n), perulangan for do akan


berjalan sampai nilai i <=n.

Saat perulangan berlangsung pengguna akan memasukan setiap nilai ke dalam array x dengan
mengacu pada indeks ke-i (x[i]).

Variabel jmh pada awalnya kita inisialisasikan dengan nilai 0, kemudian saat pengguna
memasukan nilai maka nilai tersebut akan dijumlahkan dan di tampung pada variabel jmh.

Saat kondisi bernilai false maka perulangan akan berhenti dan program akan menghitung
jumlah seluruh bilangan yang dimasukan dan nilai rata-rata dari bilangan tersebut.
Dapat di lihat pada hasil output diatas banyaknya data adalah 5 dengan setiap nilai
anggotanya adalah 78+98+67+90+56=389 maka rata-rata=389/5 hasilnya 77.8

SORTING (PENGURUTAN DATA)

Pengurutan data atau sorting merupakan jenis operasi penting dalam pengolahan data yang
banyak diterapkan dalam permasalahan sehari-hari. Saat ini telah dikenal beberapa
metode Pengurutan data, yaitu seleksi langsung (straight selection), gelembung (buble-sort
atau excenge sort), penyisipan langsung (straight insertion), penyisipan biner (binary
insertion), Shell sort (diminishing increment sort), quick sort (partition excenge sort), Radix
sort serta merge sort (two_way merge sort). Metode penyisipan biner dikembangkan dengan
menggabungkan metode penyisipan langsung dan metode pencarian biner. Dalam metode ini,
metode pencarian biner digunakan untuk menentukan lokasi penyisipan data yang akan
diurutkan.  

Metode penyisipan

Memasukkan data yang belum urut kemudian diurutkan sekaligus disimpan ke memori
(array)

Contoh :

Data : 23, -5, 2, 80, 16

Urut : ascending dari kecil ke besar

Contoh proses algoritma

Posisi antar Data 1 : Data 2 : - Data 3 : Data 4 : Data 5 :


kosong 23 5 2 80 16
Data
23 -5 -5 -5 -5
[1]
Data
23 2 2 2
[2]
Data
23 23 16
[3]
Data
80 23
[4]
Data
80
[5]

Contoh Coding Program :

program Contoh31(input, output);

uses wincrt;

{$R-}

{Program yang mengurutkan nilai-nilai pada array}

{Integer yang dimasukkan oleh pemakai}

{Sorting metode penyisipan digunakan untuk}

{memerlukan Daftar agar tetap urut}


Const

Teks = 'Masukkan bilangan (0 untuk stop) : ';

type

TipeArray = array[1..100] of integer;

var

ArrayInteger : TipeArray;

DataItem, JumlahItem : Integer;

 
procedure DaftarArray(var ArrayInt :TipeArray; JumlahElemen :Integer);

 
{procedure untuk menampilkan isi daftar pada ArrayInt}

var

indek : Integer;

begin
write(' Isi Daftar ',JumlahElemen,'Item :');

for indek :=1 to JumlahElemen do

Write(ArrayInt[indek]:4);

writeln

end;

 
procedure sisip(var ArrayInt : TipeArray; ItemBaru, JumlahElemen :integer);

 
{prosedur untuk menyisipkan item baru ke dalam}

{arrayint untuk memelihara arrayint dalam keadaan}

{urut secara ascending}

 
var

lokasi,indek:Integer;

begin

if JumlahElemen =1 then

ArrayInt[1] := ItemBaru

else

if ItemBaru > ArrayInt[JumlahElemen-1] then

ArrayInt[JumlahElemen]:=ItemBaru

else

begin

lokasi :=1;

while ItemBaru > ArrayInt[lokasi] do

Lokasi := lokasi+1;
for indek :=JumlahElemen downTo lokasi do

ArrayInt[indek] :=ArrayInt[indek-1];

ArrayInt[lokasi] :=ItemBaru

end;

DaftarArray(ArrayInt,JumlahElemen)

end;

 
begin

{program utama}

{Masukkan data}

write (teks);

readln(DataItem);

JumlahItem :=0;

while DataItem <> 0 do

begin

JumlahItem:=JumlahItem +1;

sisip(ArrayInteger,DataItem,JumlahItem);

write(teks);

readln(DataItem)

end;

 
{Daftar sudah urut}

 
DaftarArray(ArrayInteger,JumlahItem)

end.
REKURSIF
Program Pangkat Rekursif menggunakan bahasa Pascal

program Pangkat_Rekursif;
uses crt;

function pangkat(a : integer; n : integer):integer;


begin
     if n = 0 then
     begin
         pangkat := (1);
     end
     else
     begin
         pangkat := (a*pangkat(a, n-1));
     end;
end;

var
   b, x, hasil_pangkat : integer;
begin
    write('Masukkan bilangan yang akan dipangkatkan : ');
    readln(b);
    write('Masukkan jumlah pangkat : ');
    readln(x);

    clrscr;

    writeln('======================================');
    writeln('|           PROGRAM PANGKAT (REKURSIF)          |');
    writeln('|                          SRI WAHYUNI                               |');
    writeln('|                              1400018214                                  |');
    writeln('|                           <08 JUNI 2015>                              |');
    writeln('======================================');
    writeln(' ');
    writeln('b = ', b);
    writeln('x = ', x);
    writeln(' ');

    hasil_pangkat := pangkat(b, x);


    writeln('b^x = ', b,'^',x);
    writeln('    = ',hasil_pangkat);
end.

Hasil Compile :
BAB III
PENUTUP
KESIMPULAN

sejarah singkat lahirnya bahasa pascal. Nama 'PASCAL' diambil dari seorang matematikawan
asal Prancis yang juga merupakan pioner dari perkembangan komputer. pada tahun 1641
pada usia 18 tahun ,Blaise Pascal telah membangun sebuah mesin aritmatika pertama yang
kemudian diperdebatkan sebagai komputer pertama. menurut sejarah yang ada, pada sekitar
tahun 1950, Blaise Pascal telah meninggalkan dunia geometri dan fisika dan memfokuskan
dirinya ke bidang agama, seperti yang dituangkan dalam tulisannya yang
berjudul contemplate the greatness and the misery of man . sampai akhirnya ia meninggal
dunia pada 19 agustus 1662. mula mula komputer dibuat dengan bahasa mesin dan
assembly. bahasa pemrograman jenis ini merupakan bahasa yang memiliki tingkat kesulitan
yang tinggi sehingga susah untuk dimengerti dan dimodifikasi. dengan demikian
pemrograman seperti itu tentu akan memakan biaya dan waktu yang besar.  maka untuk
mengatasinya dibuatlah bahsa pemrograman tingkat tinggi, yang di desain , yang didesain
menyerupai bahasa manusia (bahasa inggris) . salah satu bahasa tersebut adalah PASCAL.

         bahasa pascal sendiri selesai dikembangkan pada tahun 1970 oleh Niklaus Wirth. tujuan
diciptakannya bahasa pascal adalah untuk memudahkan para mahasiswa untuk mempelajari
pemrograman program komputer secara sistematis. bahasa pascal merupakan bahasa
pemrograman yang memliki struktur yang paling teratur. dibanding bahasa pemrograman
yang lain. maka dari itu bahasa pemrograman pascal sangat populer di kalangan akademisi.
sedangkan dunia industri, memang bahasa C++ lah yang merajai.

selain bahasa pascal original, bahasa yang pernah populer di dunia pascal adalah UCSD
Pascal yang berjalan di bawah sistem operasi P-System UCSD. sistem ini dikembangkan di
Universitas Calivornia yang dipimpin oleh Bowles. sistem operasi itu sendiri dikembangkan
menggunakan bahasa UCSD pascal.

       pada tahun 1978 UCSD pascal juga digunakan untuk mengembangkan interpreter 6502
oleh Richard Gleaves dan Mark Allen. yang kemudian menjadi dasar pembentukan Apple
pascal yang dibentuk oleh Apple Computer. selanjutnya Apple computer merilis
implementasi objek pascal untuk pertama kalinya, yaitu versi terbaru Apple pascal yang
mendukung adanya pemrograman berarah objek yang lebih dikenal dengan OOP ( Object
oriented Programming)
setelah melalui beberapa proses pen-standar-an oleh ISO, akhirnya pada tahun 1993, Pascal
Standards Committee mempublikasikan ekstensi objek ke dalam bahasa pascal standar.

Anda mungkin juga menyukai