You are on page 1of 9

TUGAS

STRUKTUR DATA

OLEH

NAMA

:ROMUALDUS AMA OLA IRAK WUTUN

NIM

:1406080014

JURUSAN ILMU KOMPUTER


FAKULTAS SAINS DAN TEKNIK
UNIVERSITAS NUSA CENDANA

2015

Bahasa C
#include <stdio.h>
#include <conio.h>
#define MAX 6
typedef struct
{ int data [
MAX];
int head;
int tail;
}
Queue;
Queue antrian;
void Create()
{
antrian.head=antrian.tail=-1;
}
int IsEmpty()
{ if(antrian.tail==-1)
return 1;
else
return 0;
} int IsFull()
{ if(antrian.tail==MAX-1)
return 1;
else
return 0;
}
void Enqueue(int data)
{ if(IsEmpty()==1)
{
antrian.head=antrian.tail=0;
antrian.data[antrian.tail]=data;
printf("%d masuk !",antrian.data[antrian.tail]);
void Tampil();
{ if(IsEmpty()==0)
{
for(int i=antrian.head;i<=antrian.tail;i++)
{
printf("%d ",antrian.data[i]);

}}
else
printf("Data Kosong !\n");
}
}
else
if(IsFull()==0)
{
antrian.tail++;
antrian.data[antrian.tail]=data;
printf("%d masuk !", antrian.data[antrian.tail]);
}
} int Dequeue()
{ int i;
int e=antrian.data[antrian.head];
for(i=antrian.head;i<=antrian.tail-1;i++)
{
antrian.data[i]=antrian.data[i+1];
}
antrian.tail--;
return e;
}
void Clear()
{
antrian.head=antrian.tail=-1;
printf("Data Clear");
}
void Tampil()

{ if (
IsEmpty()==0)
{
for (int i=antrian.head;i<=antrian.tail; i++)
{ printf("%d ",antrian.data[i]);
}}
else
{
printf("Data Kosong\n");
}}
void main()
{ int pil;
int data;
Create();
do
{
printf ("1. Enqueue\n");
printf ("2. Dequeue\n");
printf ("3. Tampil\n");
printf ("4. Clear\n");
printf ("5. Keluar\n");
printf ("--------------------------------------\n");
printf ("Masukkan Pilihan Anda -> ");
scanf("%d",&pil);
switch(pil){
case 1:
printf("Data : ");
scanf("%d",&data);

Enqueue(data);
break;
case 2:
printf("Elemen yang keluar : %d", Dequeue());
break;
case 3:
Tampil();
break;
case 4:
Clear();
break;
case 5:
break;
}
getch();
} while(pil!=5);

Bahasa Pascal

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;
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 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.

You might also like