Senin, 17 Mei 2010

akhirnya selesai juga. . . . . . .

Moment special in Today :
hari ini waktu na UAS Algoritma N Struktur data. . . . TA uda slese . . . itu pun ngerjanya dibantu ma temen, sementara karang Ujian Praktikum na. . . pa bs dibantu ma temen lagi yap . . .hehehehe. tp ky na uda gak bs ngnadelin bantuan temen nich. . . . ya pasrah za ez karang. . . .sambil nunggu detik-detik ujian dimulai. . . hehehe. . .ky pa za. . .
lbh baeg ngepost. . . .tp binun apa yang mau dipostingin . . . .
nich kepikiran ngepostingin tugas Akhirku aja. . . . may be, ntar ya yang butuh buad referensi . . .
tugas qu nich judulnya Penerapan Program Hashing Folding Dan Chaining . . . . .

// program hashing folding and chaining
#include
#include
#include
#include
#include
#include
const int MAX = 9;

typedef struct Node
{
int data;
Node* Prev;
Node* Next;
};

Node* hashTable[MAX]={NULL};
Node* top[MAX]={NULL};
//mendelarasikan peletakan record pada hash tabel
const int generate_hash_fold(const int data)
{
//mengubah inputan menjadi basis 8
int digit1;
int digit2;
int digit3;
int digit4;
int digit5;
int data_mod1;
int data_mod2;
int data_mod3;
int data_mod4;
int data_mod5;
int key;
int hashfold;
digit1 = data%10;
data_mod1 = floor(data/10);
digit2 = data_mod1%10;
data_mod2 = floor(data_mod1/10);
digit3 = data_mod2%10;
data_mod3 = floor(data_mod2/10);
digit4 = data_mod3%10;
data_mod4 = floor(data_mod3/10);
digit5 = data_mod4%10;
data_mod5 = floor(data_mod4/10);

key = digit1+digit3+digit5;
hashfold = key%10;
return (hashfold);//yaitu nilai terakhir dari data yang diubah menjadi basis 8
}


void insertData()
{
int data;// basis8;

cout<<"\nINSERT data\n"; cout<<"\n\nInput data : "; cin>>data;

int index=generate_hash_fold(data);
Node* input=new Node;

if(!input)
{
cout<<"Mistake : \nCann't will alocation new data.\n"<<<"Press any key to back MAIN MENU !\n"; getch(); return; } if(hashTable[index]==NULL) { input->data=data;
input->Next=NULL;
input->Prev=NULL;
hashTable[index]=input;
top[index]=input;
}
else
{
input->data=data;
input->Next=NULL;
input->Prev=top[index];
top[index]->Next=input;
top[index]=input;
}
cout<<"Press any key to back MAIN MENU !\n"<<<"PRINT data\n\n"; Node* Print; for(int index=0;index<10)><<"] : "; else cout<<"HashTable line to ["<<<"] : "; Print=hashTable[index]; if(Print!=NULL) { while(Print!=NULL) { cout<data;
Print=Print->Next;
if(Print!=NULL)
cout<<", "; } cout<<<"-"<<<"\nPress any key to back MAIN MENU !\n"<<<"\n\nSEARCH data\n"; cout<<"\n\nInput data will search: "; cin>>data;
int flag=0;
int index=generate_hash_fold(data);
Node* Print=hashTable[index];
if(Print!=NULL)
{
while(Print!=NULL)
{
if(Print->data==data)
flag++;
Print=Print->Next;
}
if(flag)
cout<<"Data find, totaling :"<<<"\n\n"; } if(!flag) cout<<"Data not find.\n\n"; cout<<"Press any key to back MAIN MENU !\n"<<<"DELETE data\n\n"; cout<<"Input data will delete : "; cin>>newdata;

int flag=0;
int index=generate_hash_fold(newdata);

Node* Print=hashTable[index];

if(Print!=NULL)
{
while(Print!=NULL)
{
if(Print->data==newdata)
{
if(Print->Prev==NULL)
{
Node* Temp=Print->Next;
hashTable[index]=Temp;
delete Print;
Print=Temp;
}
else if (Print->Next==NULL)
{
top[index]=Print->Prev;
top[index]->Next=NULL;
delete Print;
Print=top[index];
}
else
{
Node* TempPrev=Print->Prev;
Node* TempNext=Print->Next;
TempPrev->Next=TempNext;
TempNext->Prev=TempPrev;
delete Print;
Print=TempNext;
}
flag++;
}
else
Print=Print->Next;
}
if (flag==1)
cout<<"Data Already deleted !\n\n"; } if (flag==0) cout<<"Sory, data cann't find !\n"; cout<<"Pres any key to back MAIN MENU !\n"<<<" HASHING FOLDING AND CHINING \n\n"; cout<<" MAIN MENU \n\n"; cout<<" _______________________________________________\n"; cout<<"| |\n"; cout<<"| Press 1 to INSERT data |\n"; cout<<"| Press 2 to SEARCH data |\n"; cout<<"| Press 3 to PRINT data |\n"; cout<<"| Press 4 to DELETE data |\n"; cout<<"| Press 0 to QUIT |\n"; cout<<"|_______________________________________________|\n\n"; cout<<"Input your choise :"; cin>>opsi;
if(opsi==1)
insertData();
else if(opsi==2)
searchData();
else if(opsi==3)
printData();
else if(opsi==4)
deleteData();

else if(opsi==0)
break;
else
goto first;
}
while(opsi!=99);
}

Tidak ada komentar:

Posting Komentar

anybody yang mau komentar no problem, gak masalah smua .

monggo komentar. . . . .