Senin, 30 Maret 2015

Program Heap Sort pada Pascal



Selamat Pagi
Ini program Sorting dengan jenis Heap Sort. Programnya biasa, hanya menampilkan data yang di random oleh komputer. semoga program ini bermanfaat bagi kalian. ^^

Source Code

Program Heap_Sort;
uses crt;

Type    TIntArray = array[1..100] of integer;
var     data      : TIntArray;
        i         : integer;

Procedure SiftDown(var a: TIntArray ; start, ende :integer);
var root, child, swap : integer;
begin
 root:=start;
 while root*2-start+1<=ende do
 begin
  child:=root*2-start+1;
  if (child+1<=ende) and (a[child]<a[child+1]) then
  inc(child);
  if a[root]<a[child] then
  begin
   swap:=a[root];
   a[root]:=a[child];
   a[child]:=swap;
   root:=child;
  end
  else
  exit;
 end;
end;

Procedure heapify(var a: TIntArray);
var start, count : integer;
begin
 count:=length(a);
 start:=low(a)+count div 2-1;
 while start>=low(a) do
 begin
  siftdown(a, start, high(a));
  dec(start);
 end;
end;

Procedure heapsort(var a:TintArray);
var ende, swap : integer;
begin
 heapify(a);
 ende:=high(a);
 while ende>low(a) do
 begin
  swap:=a[low(a)];
  a[low(a)]:=a[ende];
  a[ende]:=swap;
  dec(ende);
  siftdown(a,low(a),ende);
 end;
end;

Begin
 clrscr;
 Randomize;
 gotoxy(28,1); writeln('>>> PROGRAM HEAP SORT <<<');
 writeln;
 writeln('Data Sebelum di Sorting : ');
 for i:=low(data) to high(data) do
 begin
  data[i]:=Random(high(data));
  write(data[i]:4);
 end;
 writeln;
 heapsort(data);
 writeln('Data Sesudah di Sorting : ');
 for i:=low(data) to high(data) do
 begin
  write(data[i]:4);
 end;
 readln
End.

Sabtu, 21 Maret 2015

Program menghitung FPB, KPK, Kombinasi, Permutasi pada Pascal

Selamat pagi. . .
Ini adalah Program Menghitung FPB, KPK, Kombinasi, Permutasi. Masih ingat? mungkin sebagian dari kalian masih ingat.
saya berbagi tentang program penghitungan keempat materi tadi yang mungkin membuat kalian kesulitan dalam menjawab soal-soal tersebut.
semoga bermanfaat pragram yang saya beri. Bahasa pemrograman yang saya gunakan adalah Bahasa Pascal dengan aplikasi Free Pascral. Apabila source code yang saya bagikan tidak mau compile di aplikasi Anda, tolong sesuaikan dengan aplikasi bawaan Anda.
Terima kasih. :)


//Nama : Muhammad Khairi Ihsan
//NIM  : J1F114037

Program FPB_KPK_Kombinasi_Permutasi;
uses crt;
var a,b,c,d,e,f,g,h,i,n,r : integer;
    fn,fr,fn_r        : real;
    Permutasi         : real;
    kombinasi         : real;
    jawab             : char;
    pilih             : shortint;

Function kpk_fpb(a,b : integer): integer;
 begin
  c:=0;
  c:=a mod b;
  if c>0
   then kpk_fpb:=kpk_fpb(b,c)
   else kpk_fpb:=b;
 end;

Function faktorial(d,e:real):real;
 begin
  if e>2
   then faktorial:=faktorial(d,e-1)*e
   else faktorial:=e;
 end;

Procedure FPB_KPK;
 begin
  repeat
  clrscr;
  gotoxy(26,1); writeln('>>> Menghitung FPB dan KPK <<<');
  gotoxy(26,2); writeln('==============================');
  writeln;
  write  ('Masukkan bilangan asli pertama = '); readln(f);
  write  ('Masukkan bilangan asli kedua   = '); readln(g);
  h:=kpk_fpb(f,g);
  writeln;
  writeln('FPB dari ',f,' dan ',g,' adalah ',h);
  writeln('KPK dari ',f,' dan ',g,' adalah ',f*g div h);
  writeln;
  write  ('Mau coba lagi [Y/T] ? '); readln(jawab);
  until upcase(jawab)='T';
  readkey;
 end;

Procedure C_P;
 begin
  repeat
  clrscr;
  gotoxy(20,1); writeln('>>> Menghitung Kombinasi dan Permutasi <<<');
  gotoxy(20,2); writeln('==========================================');
  writeln;
  write  ('Masukkan bilangan n = '); readln(n);
  write  ('Masukkan bilangan r = '); readln(r);
  i:=1;
  fn:=faktorial(i,n);
  fr:=faktorial(i,r);
  fn_r:=faktorial(i,n-r);
  kombinasi:=fn/(fr*fn_r);
  permutasi:=fn/(fn_r);
  writeln;
  writeln(n,' Kombinasi ',r,' = ',kombinasi:0:0);
  writeln(n,' Permutasi ',r,' = ',permutasi:0:0);
  write  ('Mau coba lagi [Y/T] ? '); readln(jawab);
  until upcase(jawab)='T';
  readkey;
 end;

Begin
 repeat
 clrscr;
 gotoxy(12,1);
 writeln('                   SELAMAT DATANG                       ');
 gotoxy(12,2);
 writeln('>>> PROGRAM MENCARI FPB, KPK, KOMBINASI, DAN PERMUTASI <<<');
               writeln;
 gotoxy(12,4);
 writeln('           [1] Mencari FPB dan KPK');
 gotoxy(12,5);
 writeln('           [2] Mencari Kombinasi dan Permutasi');
 gotoxy(12,6);
 writeln('           [0] Exit');
 gotoxy(12,7);
 writeln('           -----------------------------------');
 gotoxy(12,8);
 write  ('           Pilihan [0..2] : '); readln(pilih);
 case pilih of
 1 : FPB_KPK;
 2 : C_P;
 0 : EXIT;
 end;
 until pilih=0;
 readkey;
end.

Program Faktorial pada Pascal

Selamat Pagi . . .
Sedikit berbagi tentang Program Pencarian Faktorial pada Pascal. program ini menggunakan Free Pascal. apabila tidak compile di aplikasi Anda, maka sesuaikan lah dengan ketentuan aplikasi yang Anda gunakan

Screenshot Program
 
Gambar 1. Tampilan awal program

Gambar 2. Tampilan ketika angka diinput 


Gambar 3. Tampilan hasil perhitungan faktorial



Source Code


Program Faktorial;
uses crt;
var b     : integer;
    jawab : char;

Function faktorial(a:integer):longint;
 begin
  if a=1
   then faktorial:=1
   else faktorial:=a*faktorial(a-1);
 end;

Begin
 repeat
 clrscr;
 gotoxy(27,1); writeln('>>> Menghitung Faktorial <<<');
 gotoxy(27,2); writeln('============================');
 writeln;
 write  ('Angka Faktorial  = '); readln(b);
 writeln(b,' Faktorial (',b,'!) = ',faktorial(b));
 writeln;
 write  ('Mau coba lagi [Y/T] ? '); readln(jawab);
 until upcase(jawab)='T';
 readkey;
End.