
Oke…yang jadi fokus di postingan ini sebenarnya saya hanya ingin share contoh Linked List dalam bahasa pascal. Kodenya seperti ini :
PROGRAM LinkedList1;
CONST
Header ='------------ Menu Utama ------------';
Separator ='------------------------------------';
TYPE
DataString = STRING[30];
ListPointer = ^ListRecord;
ListRecord = RECORD
DataField : DataString;
NextField : ListPointer
END;
VAR
FirstPointer : ListPointer;
PROCEDURE BuildList(VAR FirstPointer : ListPointer;
DataItem : DataString);
VAR
ToolPointer : ListPointer;
BEGIN
NEW(ToolPointer);
ToolPointer^.DataField := DataItem;
ToolPointer^.NextField := FirstPointer;
FirstPointer:=ToolPointer
END;
PROCEDURE ReadList(FirstPointer : ListPointer);
VAR CurrentPointer : ListPointer;
BEGIN
CurrentPointer := FirstPointer;
WHILE CurrentPointer <> NIL DO
BEGIN
WRITELN(CurrentPointer^.DataField);
CurrentPointer := CurrentPointer^.NextField
END;
WRITELN
END;
PROCEDURE GetData(VARFirstPointer:ListPointer);
VAR Name:DataString;
BEGIN
WRITELN('Masukkan nama yang akan ditambahkan lalu tekan ENTER jika selesai.');
READLN(Name);
WHILE LENGTH(Name) <> 0 DO
BEGIN
BuildList(FirstPointer,Name); READLN(Name)
END
END;
PROCEDURE DisplayInfo(FirstPointer:ListPointer);
BEGIN
WRITELN(Separator);
WRITELN('Isi dari daftar:');
ReadList(FirstPointer);
WRITE('Tekan sembarang tombol untuk lanjut...');
READLN
END;
VAR Option : INTEGER;
BEGIN
WRITELN(Header);
WRITELN('1. Simpan data pada daftar.');
WRITELN('2. Tampilan daftar.');
Writeln('3. Tulis data ke teks ');
WRITELN('4. Keluar.');
WRITELN(Separator);
WRITE('Pilihan --> ');
READLN(Option);
CASE Option OF
1 : GetData(FirstPointer);
2 : DisplayInfo(FirstPointer);
3 : cetak(firstpointer);
4 : exit;
END;
Menu
END;
BEGIN
FirstPointer := NIL;
menu
END.
CONST
Header ='------------ Menu Utama ------------';
Separator ='------------------------------------';
TYPE
DataString = STRING[30];
ListPointer = ^ListRecord;
ListRecord = RECORD
DataField : DataString;
NextField : ListPointer
END;
VAR
FirstPointer : ListPointer;
PROCEDURE BuildList(VAR FirstPointer : ListPointer;
DataItem : DataString);
VAR
ToolPointer : ListPointer;
BEGIN
NEW(ToolPointer);
ToolPointer^.DataField := DataItem;
ToolPointer^.NextField := FirstPointer;
FirstPointer:=ToolPointer
END;
PROCEDURE ReadList(FirstPointer : ListPointer);
VAR CurrentPointer : ListPointer;
BEGIN
CurrentPointer := FirstPointer;
WHILE CurrentPointer <> NIL DO
BEGIN
WRITELN(CurrentPointer^.DataField);
CurrentPointer := CurrentPointer^.NextField
END;
WRITELN
END;
PROCEDURE GetData(VARFirstPointer:ListPointer);
VAR Name:DataString;
BEGIN
WRITELN('Masukkan nama yang akan ditambahkan lalu tekan ENTER jika selesai.');
READLN(Name);
WHILE LENGTH(Name) <> 0 DO
BEGIN
BuildList(FirstPointer,Name); READLN(Name)
END
END;
PROCEDURE DisplayInfo(FirstPointer:ListPointer);
BEGIN
WRITELN(Separator);
WRITELN('Isi dari daftar:');
ReadList(FirstPointer);
WRITE('Tekan sembarang tombol untuk lanjut...');
READLN
END;
procedure cetak(firstpointer:listPointer);
var jejek:text;
CurrentPointer : ListPointer;
begin
assign(jejek,'gundulmu.txt');
rewrite(jejek);
writeln(jejek,'Tertulis dengan Indah sebagai berikut :');
writeln(jejek);
Writeln(jejek,separator);
Writeln(jejek,'ISi dari daftar');
writeln(jejek);
CurrentPointer := FirstPointer;
WHILE CurrentPointer <> NIL DO
BEGIN
WRITELN(jejek,CurrentPointer^.DataField);
CurrentPointer := CurrentPointer^.NextField
END;
writeln;
writeln('Data telah di tulis ke gundulmu.txt, tinggal di lihat saja...');
readln;
close(jejek);
end;
PROCEDURE Menu;var jejek:text;
CurrentPointer : ListPointer;
begin
assign(jejek,'gundulmu.txt');
rewrite(jejek);
writeln(jejek,'Tertulis dengan Indah sebagai berikut :');
writeln(jejek);
Writeln(jejek,separator);
Writeln(jejek,'ISi dari daftar');
writeln(jejek);
CurrentPointer := FirstPointer;
WHILE CurrentPointer <> NIL DO
BEGIN
WRITELN(jejek,CurrentPointer^.DataField);
CurrentPointer := CurrentPointer^.NextField
END;
writeln;
writeln('Data telah di tulis ke gundulmu.txt, tinggal di lihat saja...');
readln;
close(jejek);
end;
VAR Option : INTEGER;
BEGIN
WRITELN(Header);
WRITELN('1. Simpan data pada daftar.');
WRITELN('2. Tampilan daftar.');
Writeln('3. Tulis data ke teks ');
WRITELN('4. Keluar.');
WRITELN(Separator);
WRITE('Pilihan --> ');
READLN(Option);
CASE Option OF
1 : GetData(FirstPointer);
2 : DisplayInfo(FirstPointer);
3 : cetak(firstpointer);
4 : exit;
END;
Menu
END;
BEGIN
FirstPointer := NIL;
menu
END.
Nah, Pusing? Saya juga….
Tapi jangan salah paham dulu, kode ini bukan saya yang buat. Saya hanya memodifikasi sedikit agar dia bisa menulis ke file teks. Mengenai alur program, masih saya pahami (dan sejak kemarin ngga paham-paham). Kode ini saya posting, siapa tahu ada yang membutuhkan listing program Linked List, entah untuk di pelajari, di utak-atik, memperbaiki nilai mata kuliah, atau hanya sekedar melampiaskan dendam masa lalu, saat masih menjadi mahasiswa dengan membanting kode ini.
Mungkin ada yang paham code ini? Silahkan dengan iklas di jelaskan, saya sedang butuh itu justru…..
Kalo yang ingin file *.pas, klik
Ok, sekian dulu semoga berguna………(AHP, 4 Januari 2010, 3:15)
a,, ini bikin prosedur baru ya
BalasHapuskalo di program utama gimana?
nice posting..
BalasHapus@yuling: Iya, kalo di program utama bisa, tapi jadi kurang fleksibel, dia ngga bisa muncul di menu utama....tapi langsung jalanin begitu saja, gimana kalo datanya masih kosong coba....
BalasHapus@anonim: Siapapun anda, terima kasih...
ni Dedicated to ank2 SI-33-02 kan Nan.?
BalasHapushehehehe
kalo ikhlas ntar tak kirimin buat nambah nilai gpp yak.?
hoho
>.<
@LIa: Betul2, buat kalian dan pengunjung setia blog ini.....silahkan2, santai aja li.....
BalasHapusweh mas adnan, suwun coy
BalasHapusOya, sami-sami...
BalasHapusaku dapat materi struktur data kok ga mudeng2 ya.. palagi linked list & Queue.. dah cari bahan mpe pucing7 keliling..dapat banyak tp msh tetep ga mudeng... ada yang bisa jelasin ga?? dengan bahasa yang mudah ya...
BalasHapussaya saja ga mudeng kok....
BalasHapustx yha sharenya .
BalasHapussaya juga ada nie link download contoh pascal :
http://belajar-pemrograman2.blogspot.com/2010/07/contoh-program-pascal.html
tx
gue coba ngelink biar semua pinter pemrograman kayak sampeyan mas....suwun
BalasHapuswah ini dia yg w cari... bwt perbaikan nilai kuliah w...
BalasHapusmakasi ya mas...
Ini skrip dari buku 'Learn Pascal In Three Days' Karangannya Sam A. Abolrous kan? Kenapa admin ( —[Adnane]— ) ngga' mencantumkan program ini dapet dari mana.
BalasHapusSebaiknya admin bercermin dulu deh, sebelum menyuruh orang untuk memberikan referensi link ke website ini.
Sebenarnya ini dari dosen saya...lalu saya modifikasi sedikit :p
BalasHapusbagus-bagus, pas banged, algi nyari tugas tentang ini... :)
BalasHapusmantap gan,,, maakasih,, berguna banget.. :)
BalasHapussip. bisa buat referensi tuk buat tugas. ^_^
BalasHapusmakasih.... sangat membantu dlm menyelesaikan tgs
BalasHapusmas kayak gimana contoh programnya linket list ganda, linked list berputar dan linked list banyak... ??
BalasHapusdi tunggu bantuanya mas...
kirim ke emaiq saja mas..
achmar_umar@yahoo.com
makasih banyak mas bro Kebetulan saya lagi mempelajari LinkedList
BalasHapusMatur Suwon mas bro ^^
BalasHapusngakak gua baca programnya gan.. pakek kata "gundul mu"
BalasHapusini single apa doble ?
BalasHapusThanks coding linked list ny. Sangat membantu. :)
BalasHapusmantap gan,,,sukses trussssss,,,,,,,
BalasHapusmau ngebantu atau minta bantuan sih sebenernya ???
BalasHapusSemua kunci nya ada di procedure mas
BalasHapusmakasih mas postingan nya berguna bagi saya