Langsung ke konten utama

Kumpulan Script Pascal

Pada kesempatan ini penulis ingin menuliskan beberapa script Pascal yang penulis buat sendiri. Namun penulis mohon maaf bila terdapat kekurangan pada script-script dibawah ini mengingat penulis sendiri masih belajar dalam pemrograman Pascal. Script-script dibawah ini ditujukan untuk compiler Turbo Pascal For Windows 1.5 dan telah penulis coba sendiri keberhasilannya. Namun bila anda memiliki saran untuk penulisan script-script dibawah ini atau memiliki kritik terhadap script-script ini, anda dapat mengirimkan penulis e-mail, maupun comment terhadap posting ini. Bagi anda yang belum memiliki compiler Turbo Pascal For Windows 1.5, anda dapat mendownloadnya di http://community.borland.com/article/0,1410,20803,00.html . Baiklah, selamat mencoba.

(Seluruh script yang terdapat pada artikel ini bebas untuk digunakan, disalin, dimodifikasi, maupun disebarluaskan selama tidak disalahgunakan untuk kejahatan.)

Program Diskriminan Persamaan Kuadrat

Masih ingatkah anda terhadap pelajaran Diskriminan Persamaan Kuadrat ? Yap, pelajaran Matematika yang identik dengan rumus D = b2 - 4a dan pernyataan jika D > 0 maka persamaan kuadrat memiliki 2 akar real yang berlainan, dan lain-lain. Program dibawah ini dapat mempermudah anda dalam penghitungan nilai Diskriminan.

Program dpk;
Uses wincrt;
var
a,b,c,D,xxx:real;
begin
clrscr;
 writeln('Diskriminan Persamaan Kuadrat');
 writeln('=============================');
 writeln;
 writeln;
 write('Ketikkan nilai "a": ');readln(a);
 write('Ketikkan nilai "b": ');readln(b);
 write('Ketikkan nilai "c": ');readln(c);
 writeln;
 clrscr;
 writeln('Hasil');
 writeln;
 writeln('Rumus : D = b x b - 4 x a x c');
 writeln('          = ',b:0:0,' x ',b:0:0,' - 4 x ',a:0:0,' x ',c:0:0);
 xxx := -4*a*c;
 d := b*b+xxx;
 writeln;
 writeln;
 writeln('Diskriminan= ',d:0:2);
  if d > 0 then
   begin
   writeln('D > 0');
   writeln('Maka, persamaan kuadrat memiliki dua akar real yang berlainan.');
   end;
  if d = 0 then
   begin
   writeln('D = 0');
   writeln('Maka, persamaan kuadrat memiliki dua akar yang sama(akar kembar),');
   writeln('real, dan rasional.');
   end;
  if d < 0 then
   begin
   writeln('D < 0');
   writeln('Maka, persamaan kuadrat tidak memiliki akar real atau kedua');
   writeln('akarnya tidak real(imajiner).');
   end;
 gotoxy(60,1);writeln('a = ',a:0:2);
 gotoxy(60,2);writeln('b = ',b:0:2);
 gotoxy(60,3);writeln('c = ',c:0:2);
end.


Program Sistem Persamaan Linear Dengan Dua Variabel

Bagi anda yang masih duduk di bangku kelas X SMA tentunya tahu pelajaran sistem persamaan  linear dua variabel atau yang terkadang disingkat SPLDV. Setelah meng-compile script dibawah ini, anda dapat dengan mudah mengerjakan soal-soal dasar SPLDV. Namun penulis menyarankan agar anda tidak terlalu terpaku menggunakan program ini dalam mengerjakan soal karena bila anda ketergantungan dengan suatu kemudahan teknologi, otak anda akan tumpul karena jarang digunakan. So, gunakan program ini secukupnya saja ya.

program spldv;
uses wincrt;
var
a,b,c,p,q,r,n,x,y:real;
begin
clrscr;
writeln('SPLDV');
writeln('-----');
writeln('ax + by = c');
writeln('px + qy = r');
writeln;
gotoxy(2,6);write('Nilai a = ');readln(a);
gotoxy(25,6);write('Nilai b = ');readln(b);
gotoxy(48,6);write('Nilai c = ');readln(c);
gotoxy(2,8);write('Nilai p = ');readln(p);
gotoxy(25,8);write('Nilai q = ');readln(q);
gotoxy(48,8);write('Nilai r = ');readln(r);
clrscr;
writeln('SPLDV');
writeln('=====');
writeln(a:0:0,'x + ',b:0:0,'y = ',c:0:0);
writeln(p:0:0,'x + ',q:0:0,'y = ',r:0:0);
writeln;
writeln('Hasil:');
n:= p/a;
y:= (c*n-r)/(b*n-q);
x:= (c-b*y)/a;
writeln('x = ',x:0:2);
writeln('y = ',y:0:2);
writeln;
end.

Program Faktorial

Apakah anda ingat bab Peluang pada pelajaran Matematika kelas XI Semester Ganjil. Faktorial merupakan bagian dari bab Peluang ini dimana anda harus mengerti faktorial sebelum melangkah ke Permutasi. Faktorial merupakan operasi Matematika (dilambangkan dengan tanda seru “!”) dimana bilangan yang diawali oleh 1 dikalikan dengan bilangan berikutnya secara berulang-ulang. Misalnya 6! = 1 x 2 x 3 x 4 x 5 x 6 = 720 dan 4! = 1 x 2 x 3 x 4 = 24. Program dibawah ini dapat mempermudah anda dalam menghitung nilai-nilai yang besar untuk operasi Faktorial, namun perlu anda ketahui bahwa program ini memiliki kelemahan yaitu tidak bisa mengoperasikan nilai di atas 33. Jadi batas maksimal pengoperasian program ini adalah 33!, jika anda memaksa mencoba mengoperasikannya di atas nilai 33, program tersebut akan mengeluarkan pesan Error sebagai berikut : “Runtime error 205 at 0001:0095”. Hingga saat ini penulis masih belum bisa mengatasi kelemahan program tersebut dan masih mencari cara untuk mengatasinya. Bila anda berhasil menemukan solusi untuk masalah ini, tolong informasikan penulis mengenai hal tersebut, kita saling membantu satu sama lain. Oke???!

program faktorial;
uses wincrt;
var
i,n:integer;
h:real;
begin
clrscr;
writeln('Faktorial!');
writeln('!!!!!!!!!!');
writeln;
writeln('Nilai Faktorial (Maks. 33) : ');readln(n);
h:=1;
for i := 1 to n-1 do
begin
h:= h * (1+i);
end;
clrscr;
writeln('Faktorial');
writeln('=========');
writeln('Hasil ',n,'! = ',h:0:0);
end.


Program Konversi Bilangan Desimal Ke Binary (Biner)

“Wah, pelajaran apa nih. Ko, baru denger ada pelajaran kaya gini...” Yap, program yang satu ini memang terdengar asing di telinga beberapa orang (dan bukan bagian dari pelajaran SMA), namun bagi anda yang merupakan seorang maniak komputer, mungkin sudah pernah mendengar kata “binary” atau biner. Biner merupakan kumpulan angka-angka 16 digit yang hanya terdiri dari dua angka saja yaitu “0” dan “1” dimana setiap angka tersebut mewakili perintah masing-masing. Angka “0” berarti tidak ada tegangan listrik dan angka “1” berarti ada tegangan listrik. Hal itulah yang terjadi pada prosesor komputer. Dimana pada waktu 1 per sekian detik prosesor memutus dan menghubungkan tegangan listrik pada unitnya yang kemudian kode-kode tersebut dirubah menjadi perintah-perintah yang akan dijalankan oleh komputer (begitulah yang dikatakan oleh guru saya, semoga ingatan saya benar...). Contoh angka biner yaitu 0000000011010001 yang bila diproses oleh komputer akan menjadi angka 209. Bingung? Wajar bagi anda yang baru pertama kali mengenal angka biner untuk bingung (karena penulis juga bingung 7 keliling saat guru penulis menjelaskan hal ini).
Baiklah, kali ini penulis akan jelaskan bagaimana hal ini bisa terjadi. Sebenarnya angka 16 digit ini memiliki arti sebagai berikut bila semua angkanya adalah 1:
Uraian 1
1    1    1    1    1    1    1  1   1  1  1   1  1   1  1  1
215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20
Dan tidak memiliki arti (alias nol) jika angka-angkanya adalah 0 (nol):
Uraian 2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Apakah anda sudah mengerti hingga tahap ini ?
Oke, sekarang penulis akan menjelaskan bagaimana mengubah angka biner menjadi angka desimal terlebih dahulu.
A.      Mengubah Angka Biner Menjadi Angka Desimal
Berdasarkan uraian diatas, kita cari nilai dari setiap digit angka-angka tersebut (INGAT, hanya angka 1 yang berarti disini (uraian 1), angka nol tidak berarti disini karena hanya memiliki nilai nol (uraian2)). Setelah itu kita jumlahkan nilai dari setiap digit angka 1 tersebut.
Contoh: Angka 0000000000010001 memiliki nilai 17.
Bila kita melihat uraian 1 dan 2 diatas dimana angka 1 bernilai 20 hingga 215 dari kanan ke kiri dan angka 0 tidak berarti apapun maka kita dapat menuliskannya sebagai berikut (sebaiknya penulisan angka biner dimulai dari kanan ke kiri):
0  0   0   0   0 0  0  0   0  0  0   1   0  0  0   1
0  0   0   0   0 0  0  0   0  0  0   24  0  0  0   20
0+0+0+0+0+0+0+0+0+0+0+16+0+0+0+1 = 17
Dapat anda lihat dari contoh tersebut, pertama-tama kita harus mencari nilai dari angka tersebut:
Angka 1 yang pertama (pembacaan dibaca dari kanan ke kiri) memiliki nilai 20 dan angka 1 yang ke-5 memiliki nilai 24 (sisa angka nol lainnya dapat diabaikan karena tidak berpengaruh dalam proses ini).
Setelah mendapatkan nilai dari angka-angka tersebut, jumlahkanlah nilai-nilai dari angka-angka tersebut:
Angka 1 yang pertama =  1
Angka 1 yang kelima    = 16   +
Jumlah                             = 17                  (Hasilnya merupakan angka desimal dari angka biner tersebut)

B.      Mengubah Angka Desimal Menjadi Angka Biner
Sebenarnya hal ini cukup mudah, anda cukup membalikkan jalan pikir prosedur pada langkah A. Berapakah angka biner dari 17 ? Menjawab pertanyaan tersebut anda cukup memikirkan bilangan 2 pangkat berapa sajakah di antara 20 hingga 215 yang bila dijumlah, hasilnya adalah 17. Tentu jawabannya adalah 20 dan 24, setelah itu anda tinggal menentukan posisi angka tersebut dalam format biner (INGAT, penulisan angka biner dimulai dari kanan), mengacu pada uraian 1, angka 20 terdapat pada urutan pertama (dari kanan) dan 24 terdapat pada urutan ke-5 (dari kanan), sisanya adalah 0. Kini anda dapat menuliskan angka biner tersebut. 0000000000010001.

Oke, setelah anda paham dengan apa yang dimaksud dengan bilangan biner, sekarang anda dapat membuat programnya. Selamat bekerja.


program des2bin;
uses wincrt;
var
dec,des:integer;
bin: string;
begin
clrscr;
writeln('Konversi Bilangan Desimal Ke Biner');
writeln('==================================');
writeln;
Write('Masukkan bilangan : ');Readln(dec);
des:=dec;
bin:='';
repeat
if(dec mod 2 = 0)
then bin:='0'+bin
else bin:='1' + bin;
dec:=dec div 2;
until dec=0;
if length(bin) <> 16 then
begin
repeat
bin := '0' + bin;
until length(bin) = 16;
end;
writeln(des,' = ',bin,' (Biner)');
end.




Program Konversi Bilangan Binary (Biner) Ke Desimal

Jika tadi kita membuat program untuk mengubah angka desimal ke biner. Maka kali ini kita akan melakukan hal sebaliknya, kita akan membuat program yang dapat mengubah angka biner ke desimal.

program bin2des;
uses wincrt;
Function Pkt(X :real;n : integer):real;
var t : real;
m : integer;
Begin
m:=abs(n);
if (x<>0) and (n=0) then pkt:=1
else if n >0 then
pkt:=x*pkt(x,n-1)
else if (n < 0) then pkt := 1/(x*pkt(x,m-1));
end;
var
bin: string;
i,x:integer;               
des:real;
begin
clrscr;
des:=0;
repeat
writeln('Konversi Bilangan Biner Ke Desimal');
writeln('==================================');
writeln;
writeln('Bilangan Biner (16 digit) : ');readln(bin);
if length(bin) > 16 then
begin
clrscr;
gotoxy(18,27);writeln('Digit nilai yang anda masukkan melebihi 16.');gotoxy(1,1);
end;
until length(bin) <= 16;
for i:= 1 to 16 do
begin
case i of                                                       
1: x:=16;2: x:=15;3: x:=14;4: x:=13;5: x:=12;6: x:=11;7: x:=10;8: x:=9;
9: x:=8;10: x:=7;11: x:=6;12: x:=5;13: x:=4;14: x:=3;15: x:=2;16: x:=1;
end;
if bin[i] = '1' then
des:= des + pkt(2,x-1);
if bin[i] = '0' then des:= des + 0;
end;
clrscr;
writeln('Hasil Konversi');
writeln('==============');
writeln;
writeln(bin,' (biner) = ',des:0:0,' (desimal)');
end.

Pos populer dari blog ini

"Program Login" Menggunakan Pascal

Setelah lama ga ketemu Pascal. Penulis iseng-iseng nyobain untuk ngoprek-ngoprek lagi program Pascal. Dan sesuai dugaan, banyak materi dan kode-kode yang penulis udah lupa dari pascal :p
Kali ini penulis nyoba bikin program (tepatnya sebagian kecil program :p) untuk sistem login. Ya, cuma program iseng-iseng aja sih, ga memiliki nilai guna pada dasarnya, tapi lumayan buat yang masih baru-baru mau mencoba pemrograman Pascal :)
Prinsip kerja program ini simple (seperti sistem login pada umumnya, namun dengan keamanan yang sangat rendah, maklum amatir ^^v). Pertama, pengguna menginputkan data username dan passwordnya, lalu program akan memverifikasikannya, jika benar maka pengguna akan dibawa ke layar berikutnya. Namun jika salah, maka pengguna memiliki kesempatan 2 kali untuk mengulang menginputkan datanya.

My Third Java Program: "Program Menghitung IP Mahasiswa"

Masih berkutat di dunia Java. Kali ini penulis mencoba bereksperimen dengan JTable. Setelah 2-3 hari pusing ngutak-atik JTable (maklum masih newbie ^_^), nyari-nyari cara buat meng-inputkan data ke dalam tabel itu, akhirnya dapet juga petuah dari orang yang udah mahir Java di forum DIC (dreamincode.net).
Here's a sneak peek at the program :)