Bubble Sort 
Berikut adalah program Bubble Sort dalam bahasa Pascal dengan menggunakan prosedur untuk swapnya, semoga bisa dijadikan referensi

{ Program Pengurutan Data dengan BUBLE SORT
TUGAS II Praktikum PASCAL
(C) April 1998
}

uses crt;

var
i,j,k,jumlah:integer;
bil:array[1..20] of integer;

procedure swap(var a,b:integer);
var
dum:integer;
begin
dum:=a;
a:=b;
b:=dum;
end;


begin
clrscr;
writeln('Program Sorting dengan BUBBLE SORT');
writeln;
write('Masukkan banyak bilangan yang akan di-sort : ');
readln(jumlah);
i:=1;
while i<=jumlah do
begin
write('Elemen bilangan ke ',i,' : ');
readln(bil);
inc(i);
end;
clrscr;
writeln('Hasil Sorting : ');
for j:=1 to jumlah-1 do
for k:=j+1 to jumlah do
if bil[j]>=bil[k] then swap(bil[j],bil[k]);
for i:=1 to jumlah do writeln(bil);
readln;
end.


[ add comment ]   |  permalink  |   ( 0 / 0 )
Pengenalan Pascal (Part 10) 
Procedure dan Function

Procedure dan Function adalah salah satu cara untuk membagi-bagi satu program utuh ke dalam sub program atau modul-modul, sehingga akan lebih mudah bagi kita ataupun orang lain untuk mempelajari algoritma dan aliran program. Di dalam Turbo Pascal, penulisan procedure dan function diletakkan di sebelah atas setelah pendeklarasian tipe data, variabel ataupun konstanta global. Dikatakan global, sebab di dalam procedure dan function, akan dapat dijumpai pemesanan variabel yang hanya dapat digunakan di dalam procedure atau function itu sendiri dan tidak akan dapat digunakan dalam procedure atau function lainnya maupun di dalam program utama. Demikian juga, kita akan dapat menjumpai variabel yang nilainya dipassing / dilewatkan dari pemanggilan procedure atau function tersebut. Hal ini biasa dikenal sebagai passing parameter, dimana pada saat kita memanggil procedure atau function tersebut, kita wajib mengisikan nilai pada variabel passingnya, yang nanti nilai tersebut akan dikirim ke dalam procedurenya untuk selanjutnya diproses.

Penulisan procedure sebagai berikut:
Procedure namaprocedure;
var
…;
begin
…;
…;
end;
Procedure namaprocedure (a,b:integer);
var
…;
begin
…;
…;
end;

Untuk memanggil procedure, kita cukup menuliskan nama procedurenya saja.
Berikut adalah contoh programnya:
{ Program Deret Pascal }
uses crt;
var
hasil:real;
baris:array[1..30,1..30] of integer;
procedure hitung;
var
l,k:integer;
begin
baris[2,1]:=1;
baris[2,2]:=1;
baris[2,3]:=1;
l:=1;
repeat
baris[l,1]:=1;
for k:=2 to l-1 do baris[l,k]:=baris[l-1,k-1]+baris[l-1,k];
baris[l,k+1]:=1;
l:=l+1;
until l>hasil;
end;
procedure tampil;
var
l,j,k:integer;
begin
l:=1;
repeat
for j:=1 to (35-2*(l-1)) do write(' ');
for k:=1 to l do
if (baris[l,k+1]<10) then write(baris[l,k],' ')
else
if (baris[l,k+1]<100) then write(baris[l,k],' ')
else
write(baris[l,k],' ');
writeln;
l:=l+1;
until l>hasil;
end;
begin
clrscr;
write('Input Batasan : ');
readln(hasil);
hitung;
tampil;
readln;
end.

Jika sama-sama merupakan bagian dari program yang utuh, lalu apakah perbedaan antara procedure dan function? Jika procedure hanya bertindak sebagai penggalan program, maka function akan mengembalikan suatu nilai apabila kembali kepada program utama atau ke tempat dimana dia dipanggil. Function lebih sering digunakan untuk melakukan suatu operasi perhitungan baik yang sederhana maupun yang rumit sekalipun, sehingga kita cukup memanggil function tertentu untuk mendapatkan nilai atau hasil perhitungan yang kita inginkan. Misalnya function untuk mengkonversi bilangan desimal ke bilangan heksadesimal atau yang lainnya.

Berikut adalah contohnya:
{
Program Konversi Biner ke Desimal
Created by Yulius Candra Wahyu Kurniawan
(C) 1997
}
uses crt;
var
biner:string;
function convert(biner:string):real;
var
i,m,x,code,dum,hasil:integer;
begin
m:=0;
hasil:=0;
for i:=length(biner) downto 1 do
begin
val(biner,x,code);
dum:=x*trunc(exp(m*ln(2)));
hasil:=hasil+dum;
inc(m);
end;
convert:=hasil;
end;
begin
clrscr;
write('Input Bilangan Biner : ');
readln(biner);
write('Bilangan Desimalnya : ',convert(biner):3:0);
readln;
end.



[ add comment ]   |  permalink  |   ( 0 / 0 )
Pengenalan Pascal (Part 9) 
Variabel Array

Apakah variabel array itu? Kita dapat mengartikan bahwa variabel array adalah variabel yang mempunyai indeks atau nomor atau urutan tertentu, dimana satu variabel dapat mempunyai nilai yang berlainan antara yang satu dengan lainnya dengan tipe data yang sama. Sebagai contoh, jika saya memiliki variabel array bernama data yang mempunyai batasan 1 sampai dengan 5, artinya saya akan mempunyai variabel data pertama, kedua, ketiga, keempat dan kelima, dimana masing-masing variabel ini dapat mempunyai nilai yang berbeda, asalkan masih tipe data yang sama. Pertanyaannya adalah, jika kita dapat memesan variabel sebanyak yang kita mau, mengapa kita masih membutuhkan variabel array? Variabel array sangat membantu kita di dalam efisiensi program, sehingga untuk memasukkan nilai ke dalam beberapa variabel, kita cukup memasukkan satu perintah saja di dalam sebuah looping, sehingga semua variabel array akan terisi sesuai dengan urutan indeksnya. Bandingkan jika kita harus mengisi nilai variabel dengan nama yang bermacam-macam, yang tentunya akan menghasilkan kode-kode program yang panjang.
Pemesanan variabel array adalah sebagai berikut:
Var data:array[1..10] of integer;
Berikut adalah contoh programnya:

{ Program Deret Pascal }
uses crt;
var
hasil:real;
baris:array[1..30,1..30] of integer;
l,j,k:integer;
begin
clrscr;
write('Input Batasan : ');
readln(hasil);
baris[2,1]:=1;
baris[2,2]:=1;
baris[2,3]:=1;
l:=1;
repeat
baris[l,1]:=1;
for k:=2 to l-1 do baris[l,k]:=baris[l-1,k-1]+baris[l-1,k];
baris[l,k+1]:=1;
l:=l+1;
until l>hasil;
l:=1;
repeat
for j:=1 to (35-2*(l-1)) do write(' ');
for k:=1 to l do
if (baris[l,k+1]<10) then write(baris[l,k],' ')
else
if (baris[l,k+1]<100) then write(baris[l,k],' ')
else
write(baris[l,k],' ');
writeln;
l:=l+1;
until l>hasil;
readln;
end.



[ add comment ]   |  permalink  |   ( 0 / 0 )
Pengenalan Pascal (Part 8) 
Tipe Variabel String

Variabel String digunakan untuk menyimpan data berupa teks atau kalimat. Dalam hal ini apabila kita mempunyai sederetan bilangan, kita bisa saja menyimpannya ke dalam variabel string, namun konsekuensinya bilangan-bilangan ini akan dianggap sebagai kalimat atau teks, sehingga tidak dapat dilakukan untuk operasi perhitungan.
Berikut ini adalah perintah-perintah yang biasa digunakan sehubungan dengan manipulasi variabel string.
Concat : untuk menggabung dua buah string
Var
S: String;
Begin
S := Concat('ABC', 'DEF'); { 'ABCDE' }
end.
Copy : untuk mengambil sebagian string dari suatu string
var S: String;
begin
S := 'ABCDEF';
S := Copy(S, 2, 3); { 'BCD' }
end.
Delete : untuk menghapus sebagian string dari suatu string
Var
s: string;
Begin
s := 'Honest Abe Lincoln';
Delete(s,8,4);
Writeln(s); { 'Honest Lincoln' }
end.
Insert : untuk menyisipkan string ke dalam suatu string yang sudah ada
Var
S: String;
Begin
S := 'Honest Lincoln';
Insert('Abe ', S, 8); { 'Honest Abe Lincoln' }
end.
Length : untuk menghitung panjang karakter dari suatu string
Var
S: String;
Begin
Readln (S);
Writeln('"', S, '"');
Writeln('length = ', Length(S));
end.
Pos : untuk mencari suatu string di dalam string yang sudah ada
var S: String;
begin
S := ' 123.5';
{ Convert spaces to zeroes }
while Pos(' ', S) > 0 do
S[Pos(' ', S)] := '0';
end.


[ add comment ]   |  permalink  |   ( 0 / 0 )
Pengenalan Pascal (Part 7) 
Lebih jauh tentang Operator Logika

Sebagaimana sudah dibahas, bahwa sebuah operator logika dapat berupa NOT, AND ataupun OR. Hasil yang akan kita peroleh dengan menggunakan operator yang berbeda tentu saja akan menghasilkan output yang berbeda pula. Sebuah operator logika dapat dimanfaatkan untuk menggabungkan dua buah kondisi atau keadaan, dimana masing-masing kondisi tersebut akan memiliki nilai logika masing-masing.
Langsung saja akan kita perhatikan contoh program berikut ini: (catatan; program berikut ini memakai operator logika pada pencabangan)

Uses crt;
Var
a,b,i:integer;
Begin
Clrscr;
a:=1;
i:=2;
If (a=1) and (i=2) then
Begin
write(a);
end
else
begin
write(i);
end;
End.

Sesuai dengan sifat pencabangan bahwa alur program akan mengerjakan salah satu blok program, yang diperoleh dari pernyataan apabila benar dan apabila salah. Untuk contoh diatas operator AND yang digunakan akan menghasilkan nilai benar, sebab dua kondisi yang ada masing-masing bernilai benar, yaitu nilai variabel a=1 dan nilai variabel i=2. Demikian juga apabila operator AND diatas kita ubah menjadi OR, maka akan didapatkan hasil yang sama. Untuk dapat menentukan hasil dari operator logika, kita kembali lagi harus mengetahui tabel kebenaran seperti yang sudah dibahas pada pertemuan yang lalu.
Tidak hanya dapat digunakan di dalam pencabangan, operator logika dapat pula dipakai di dalam looping, contohnya sebagai berikut:

Uses crt;
Var
a,b,i:integer;
Begin
Clrscr;
a:=1;
i:=2;
While (a<=2) and (i>1) then
Begin
write(a);
end
End.

Pada contoh diatas, karena yang digunakan operator AND berarti looping akan dikerjakan apabila kondisi 1 dan kondisi 2 bernilai benar. Jika salah satu saja bernilai salah, maka akibatnya looping tidak akan dikerjakan. Hal ini berbeda jika kita menggunakan operator OR. Sesuai dengan tabel kebenaran, untuk operator OR akan bernilai benar apabila salah satu saja atau kedua-duanya kondisi tersebut bernilai benar.

Menggunakan fasilitas Debug

Debug adalah suatu istilah di dalam komputer yang diyakini berarti mencari kesalahan dalam program yang kita kerjakan. Istilah aslinya didapat pada saat seorang ahli komputer mengetahui ada yang tidak beres dalam komputernya dan ternyata dia menemukan seekor kutu (bug) yang mati terjepit diantara komponen-komponen di dalam komputer. Sejak saat itulah, proses mencari kesalahan yang terjadi pada komputer dikenal dengan nama proses debug.
Di dalam Pascal, proses debug diawali dengan memasukkan variabel-variabel yang akan diperiksa nilainya dan dilakukan proses trace atau menjalankan satu demi satu instruksi program, sehingga kita akan dapat dengan mudah mengetahui algoritma ataupun alur program dan tentunya juga akan dapat menemukan kesalahan yang kita buat dengan tidak sengaja.
Pertama-tama kita menekan tombol CTRL+F7 untuk memasukkan variabel-variabel yang akan kita periksa. Daftar variabel tersebut akan muncul di bawah editor Pascal. Lalu untuk melakukan trace, kita tinggal menekan tombol F7 berulang-ulang dari awal hingga akhir program.


[ add comment ]   |  permalink  |   ( 0 / 0 )

| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Next> Last>>