Professional Documents
Culture Documents
Script
Program
Pascal
Gentra Aditya Putra
Alphabet7.Blogspot.com
gentra.a@gmail.com
(Seluruh script yang terdapat pada artikel ini bebas untuk digunakan, disalin, dimodifikasi, maupun
disebarluaskan selama tidak disalahgunakan untuk kejahatan.)
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');
1
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 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);
2
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.
3
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
0000000000000000
0000000000000000
4
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.
5
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.