Program dengan Heap Sort (Sorting) dengan Pascal

Minggu, 29 Maret 2015 - Diposting oleh Unknown di 09.18
Contoh program Heap Sort 
dengan Pascal

Berikut source code program:

Program Heap_Sort;

uses crt;
type SArray = array [0..100] of string;
var n,i: integer;
    A: SArray;


procedure swap ( var a, b: string );
var temp: string;
begin

        temp := a;
        a := b;
        b := temp;
end;


procedure siftDown ( var A: SArray; start, akhir: integer );
var root, child: integer;
begin

        root := start;
        while ( root * 2 + 1 <= akhir ) do
        begin
            child := root * 2 + 1;
            if ( child < akhir ) and ( A[child] < A[child + 1] ) then
                 child := child + 1;

            if ( A[root] < A[child] ) then
            begin
                 swap ( A[root], A[child] );
                 root := child;
            end else
            break;
        end;
end;



procedure heapify ( var A: SArray; count: integer );
var start: integer;
begin

        start := (count - 1) div 2;
        while ( start >= 0 ) do
        begin
                siftDown (A, start, count-1);
                start := start - 1;
        end;
end;



procedure heapSort( var A: SArray; n: integer );
var akhir: integer;
begin
        heapify ( A, n );
        akhir:= n - 1;

        while ( akhir > 0 ) do
        begin
             swap( A[akhir],A[1]);
             akhir := akhir - 1;
             siftDown (A, 0, akhir);
        end;
end;


begin
clrscr;
        gotoxy(17,1);writeln('Program Sorting Secara Ascending');
        gotoxy(17,2);writeln('  Menggunakan Metode Heap Sort  ');
        writeln; writeln;

        write ( 'Inputkan Jumlah Data : ' ); readln (n);
        writeln;
                for i := 0 to n-1 do
                begin
                         write('Nama ke-',i+1:2,' : ');
                         readln(A[i]);
               end;
        writeln('---------------------------------------');

        heapSort ( A, n );
        writeln;
        writeln('Data setelah diurutkan  ');
        writeln;
                 for i := 0 to n-1 do
                 begin
                         writeln ('Nama ke-',i+1:2,' : ',A[i]);
                 end;
readkey;
end.


Dan berikut adalah tamilan output program diatas:

1. Tampilan saat program dijalankan

2. Tampilan saat jumlah data yang diinginkan diinput

3. Tampilan saat data diinputkan

4. Tampilan saat semua data telah diinput dan diurutkan



Program Factorial (Rekursif) Dengan Pascal

Kamis, 19 Maret 2015 - Diposting oleh Unknown di 06.57
Contoh Program "Factorial dengan Rekursif" 
dengan Pascal

Berikut Source Code Program:

Program Factorial;
uses crt;

var n:integer;

function factorial(n:integer):integer;
begin
        if (n=0) then
          factorial:=1
        else
          factorial:= n*factorial(n-1);
end;

begin
clrscr;
        write('Masukkan Angka : ');readln(n);
        writeln('Hasil ',n,'! : ',factorial(n));
readln;
end.

Dan berikut adalah output dari prorgam diatas:

1. Tampilan saat progam dijalankan

2. Tampilan saat angka yang ingin difaktorialkan dimasukkan


3. Tampilan hasil faktorial dari angka yang diinput


Program Data Mahasiswa Dengan Pascal

Sabtu, 14 Maret 2015 - Diposting oleh Unknown di 20.37
Contoh program "Data Mahasiswa" 
dengan Pascal

Berikut Source Code program:

Program Data_Mahasiswa;
Uses crt;

  Type Tabel_Mhs = Recor
     Nama  : String[10];
     NIM   : String[10];
     Nilai : Integer;
     Grade : String[10];
  End;

 Var

  Mhs  : Array[1..20] of Tabel_Mhs;
  Angka: Real;
  i, n: Integer;

        Begin
        clrscr;
        write('Masukkan banyak data : ');readln(n);
        for i:=1 to n do
        begin
          write('Nama Mahasiswa    : ');readln(Mhs[i].Nama);
          write('NIM Mahasiswa     : ');readln(Mhs[i].NIM);
          write('Nilai             : ');readln(Mhs[i].Nilai);

      if Mhs[i].Nilai >= 80 then
         Mhs[i].Grade:= 'A'
      Else if Mhs[i].Nilai >= 70 then
         Mhs[i].Grade:= 'B'
      Else if Mhs[i].Nilai >= 60 then
         Mhs[i].Grade:= 'C'
      Else if Mhs[i].Nilai >= 50 then
         Mhs[i].Grade:= 'D'
      Else if Mhs[i].Nilai < 50 then
         Mhs[i].Grade:= 'E';
         Writeln('Grade      : ',Mhs[i].Grade);readkey;
       End;

Begin
Clrscr;
gotoxy(1,2);Writeln('DATA REPORT':45);
gotoxy(1,4);Writeln('[----][-------------][---------------][-----------][-----------]');
gotoxy(1,5);Writeln('[ NO ][     Nama    ][      NIM      ][   Nilai   ][   Grade   ]');
gotoxy(1,6);Writeln('[----][-------------][---------------][-----------][-----------]');

For i:= 1 to n do
 Begin
 with Mhs[i] do
 begin
  gotoxy(1,6+i);Write('[    ][             ][               ][           ][           ]');
  gotoxy(1,7+i);Write(' ----  -------------  ---------------   ----------  ----------- ');
  gotoxy(4,6+i);Write(i);
  gotoxy(11,6+i);Write(Nama);
  gotoxy(27,6+i);Write(NIM);
  gotoxy(43,6+i);Write(Nilai);
  gotoxy(57,6+i);Write(Grade);

 End;
 Readkey;

 End;

 End;

 End.

Dan berikut adalah output dari program diatas.

1. Setelah semua data yang diinginkan telah diinput


2. Tabel hasil dari inputan diatas