Program untuk Mengurutkan Data dengan Metode RADIX SORT

Jun 18, 2009 2 Comments by

Uses WinCrt;
Type
Pointer = ^TypeData;
TypeData = Record
Nilai : integer;
Berikutnya : Pointer;
End;
Pointer2 = Array[0..9] Of Pointer;
Var
List : Pointer;
Q : Pointer2;
{====================================================================}
{===================== MASUK DATA DARI DEPAN ========================}
{====================================================================}
Procedure Masuk_Depan(Var L : Pointer; X : Integer);
Var
Baru : Pointer;
Begin
New(Baru);
Baru^.Nilai := X;
Baru^.Berikutnya := Nil;
If L = Nil Then L := Baru
Else
Begin
Baru^.Berikutnya := L;
L :=Baru;
End;
End;
{====================================================================}
{======================= PROCEDURE INITIALIZATION ===================}
{====================================================================}
Procedure Initialization(Var Q : Pointer2);
Var
i : byte;
Begin
For i := 0 To 9 Do Q[i] := Nil;
End;
{====================================================================}
{=============== SUSUN DATA UNTUK TIAP MACAM DALAM ARRAY ============}
{====================================================================}
Procedure Susun(L : Pointer;Var Q1 : Pointer2);
Var
Bantu,Baru : Pointer;
i : Byte;
Begin
Bantu := L;
While Bantu Nil Do
Begin
New(Baru);
Baru^.Berikutnya := Nil;
Baru^.Nilai := Bantu^.Nilai;
Masuk_Depan(Q1[Baru^.Nilai],Baru^.Nilai);
Bantu := Bantu^.Berikutnya;
End;
End;
25
{====================================================================}
{=================== PROCEDURE CONCATINATION DATA ===================}
{====================================================================}
Procedure Concatination(L : Pointer2; Var Q1 : Pointer);
Var
Bantu,Baru : Pointer;
i : Byte;
Begin
For i := 0 To 9 Do
Begin
If L[i] Nil Then
Begin
Baru := L[i];
If Q1 = Nil Then Q1 := Baru
Else
Begin
Bantu := Q1;
While Bantu^.Berikutnya Nil Do
Bantu := Bantu^.Berikutnya;
Bantu^.Berikutnya := Baru
End;
End;
End;
End;
{====================================================================}
{========================= PROCEDURE CETAK DATA =====================}
{====================================================================}
Procedure Cetak(L : Pointer);
Var
Bantu : Pointer;
Begin
Bantu := L;
While Bantu Nil Do
Begin
Write(Bantu^.Nilai:3);
Bantu := Bantu^.Berikutnya;
End;
End;
{====================================================================}
{======================= PROCEDURE CETAK DATA =======================}
{====================================================================}
Procedure Cetak_Susunan(L : Pointer2);
Var
Bantu,Baru : Pointer2;
i : Byte;
Begin
For i := 0 to 9 do
Begin
Write(‘ Q[',i,'] =’);
If L[i] Nil Then
Begin
Bantu[i] := L[i];
While Bantu[i] Nil Do
Begin
Write(Bantu[i]^.Nilai:3);
Bantu[i] := Bantu[i]^.Berikutnya;
End;
26
End;
Writeln;
End;
End;
{====================================================================}
{========================== PROGRAM UTAMA ===========================}
{====================================================================}
Var
Bil,N : Byte;
Begin
New(List);
List:=Nil;
Initialization(Q);
Randomize;
Repeat
Bil:=Random(10);
Masuk_Depan(List,Bil);
N:=N+1;
Until N=20;
Writeln;
Writeln(‘ Mengurutkan Data Dengan Metode RADIX SORT’);
Writeln;
Writeln(‘ DATA SEBELUM DIURUTKAN ….’);
Cetak(List);
Writeln;
Susun(List,Q);
writeln;
Writeln(‘ HASIL PENGELOMPOKAN …’);
Cetak_Susunan(Q);
Writeln;
List:=Nil;
Concatination(Q,List);
Writeln(‘ HASIL PENGURUTAN SETELAH DIKELOMPOKKAN’);
Cetak(List);
writeln;
End.

Kata Kunci

radix sort, radix sort c, radix sort pascal.

Related posts:

  1. Aplikasi Stack pada Struktur Data untuk Mengkonversikan Notasi INFIX Menjadi POSTFIX
  2. Program untuk Mencari Akar Persamaan Kuadrat
  3. Program Data Pegawai
  4. Data Structure
  5. Program Data Mahasiswa
  6. Program Penilaian Mahasiswa
  7. Dianita Struktur data
  8. Pandapotan Struktur Data
  9. Program GJE (Gauss Jordan Exchange) dengan Pascal
  10. Program dengan Array of String
Data Structure, Pascal

About the author

Tulisan kiriman sahabat

2 Responses to “Program untuk Mengurutkan Data dengan Metode RADIX SORT”

  1. za says:

    ada g metode radix sort yang tidak menggunakan pointer

  2. rega says:

    Mas bantu bikin dalam algoritmanya donk buat radix sort di atas … makasih ya mas

Leave a Reply