Not seeing a Scroll to Top Button? Go to our FAQ page for more info. [C++] Double linklist Program Mahasiswa | -

My Imaginations

-
Follow Me

[C++] Double linklist Program Mahasiswa



By  Galeh Fatma Eko Ardiansa     Mei 22, 2014     
Assalamu'alaikum...
Berkaitan dengan materi yang sudah saya dapatkan di mata kuliah Algoritma dan struktur data yang berjudul linkedlist...kali ini saya akan berbagi sebuah program dimana didalamnya ada double linklist dan program ini bertujuan untuk gimana sih memasukkan banyak data dan menyimpan dalam suatu ruang memori komputer dan kita bisa menghapus, dan mencari data tersebut dengan hanya memasukkan namanya saja....ini source codenya bisa dicopas kok tenang aja.... :D

#include <iostream>
#include <stdlib.h>
using namespace std;

struct node
{
float angka;
string nama;
string alamat;
struct node *next;
struct node *back;
};

void insert(struct node *&kepala, struct node *&ekor)
{
struct node *nodebaru;
nodebaru = new struct node;
cin.ignore();
cout<<"\nMasukkan Nama\t: ";
getline(cin,nodebaru->nama);
cout<<"Masukkan Alamat\t: ";
getline(cin,nodebaru->alamat);
cout<<"Masukkan IP\t: ";
cin>>nodebaru->angka;
if (nodebaru->angka<=4){
nodebaru->next=nodebaru->back = NULL;
if (ekor != NULL)
{
ekor->next = nodebaru;
nodebaru->back=ekor;
ekor = nodebaru;
ekor->next=NULL;
}
else
{
ekor = kepala = nodebaru;
}
}
else{
cout<<"\nMaaf IP maksimal 4.....data ini tidak akan ditampilkan...\nSilahkan masukkan data dengan benar"<<endl;
system("pause");
}
}

void insertFirst(struct node *&kepala, struct node *ekor)
{
struct node *nodebaru;
nodebaru = new struct node;
cout<<"Masukkan Data Mahasiswa dari depan"<<endl;
cin.ignore();
cout<<"\nMasukkan nama Baru\t: ";
getline(cin,nodebaru->nama);
cout<<"Masukkan alamat Baru\t: ";
getline(cin,nodebaru->alamat);
cout<<"Masukkan IP Baru\t: ";
cin>>nodebaru->angka;
if (nodebaru->angka<=4){
if (kepala == NULL)
{
kepala = ekor =nodebaru;
nodebaru->next = nodebaru->back = NULL;
}
else
{
kepala->back = nodebaru;
nodebaru->next = kepala;
nodebaru->back = NULL;
kepala = nodebaru;
}
}else{
cout<<"\nMaaf IP maksimal 4.....\ndata ini tidak akan ditampilkan...terimakasih"<<endl;
system("pause");
}
}
void cari(struct node * kepala)
{
struct node * tempe, *nodebaru;
nodebaru = new struct node;
cin.ignore();
cout<<"Coba deh masukin NAMA yang dicari : ";
getline(cin, nodebaru->nama);
tempe=kepala;
if (tempe->nama == nodebaru->nama)
{
cout<<"------------------------------------";
cout<<"\n|| Naaaahhhh tuh KETEMU kan....!! ||\n";
cout<<"------------------------------------";
cout<<"\n\nNama\t: "<<tempe->nama<<endl;
cout<<"Alamat\t: "<<tempe->alamat<<endl;
cout<<"IP\t: "<<tempe->angka<<endl;
}
else
{
while(tempe != NULL)
{
if (tempe->nama == nodebaru->nama)
{
cout<<"------------------------------------";
cout<<"\n|| Naaaahhhh tuh KETEMU kan....!! ||\n";
cout<<"------------------------------------";
cout<<"\n\nNama\t: "<<tempe->nama<<endl;
cout<<"Alamat\t: "<<tempe->alamat<<endl;
cout<<"IP\t: "<<tempe->angka<<endl;
break;
}
tempe = tempe->next;
}
if(tempe == NULL)
cout<<"\nYaaahhh gak ada tuuh...coba deh cek lagi datanya..."<<endl;
}
}
void ss(struct node * kepala,struct node * ekor){//sisipkan
struct node *nodebaru, *set,*seb,*tempe=kepala;
string x;
nodebaru= new struct node;
cout<<"Nih kalo mau inputin data lagi...."<<endl;
cin.ignore();
cout<<"\nMasukkan nama Baru\t: ";
getline(cin,nodebaru->nama);
cout<<"Masukkan alamat Baru\t: ";
getline(cin,nodebaru->alamat);
cout<<"Masukkan IP Baru\t: ";
cin>>nodebaru->angka;
if (nodebaru->angka<=4){
nodebaru->next=NULL;
nodebaru->back=NULL;
cin.ignore();
cout<<"\nMasukkan data sebelum Siapa : ";
getline(cin,x);
set=kepala;
do
{
seb = set; 
set = set->next; 
while (set->nama!=x);
nodebaru->back= seb;
nodebaru->next= set; 
set->back= nodebaru;
seb->next= nodebaru;  
}
}else{
cout<<"\nMaaf IP maksimal 4.....data ini tidak akan ditampilkan...terimakasih"<<endl;
system("pause");
}
}
void hapus(struct node *&kepala){
struct node *tempe=kepala,*nodebaru;
nodebaru= new struct node;
cin.ignore();
cout<<"Masukkan Nama yang dihapus : ";
getline(cin,nodebaru->nama);
nodebaru->next=nodebaru->back=NULL;
if (kepala->nama == nodebaru->nama)
{
kepala=kepala->next;
}
else
{
while(tempe->next != NULL)
{
if (tempe->next->nama == nodebaru->nama)
{
tempe->next=tempe->next->next;
break;
}
tempe = tempe->next;
}
}
cout<<"\nData Berhasil dihapus\n";
}
void hapusbelakang(struct node *&ekor){
struct node *tempe=ekor,*nodebaru;
nodebaru= new struct node;
cin.ignore();
cout<<"Masukkan Nama yang dihapus : ";
getline(cin,nodebaru->nama);
nodebaru->back=NULL;
if (ekor->nama == nodebaru->nama)
{
ekor=ekor->back;
}
else
{
while(tempe->back != NULL)
{
if (tempe->back->nama == nodebaru->nama)
{
tempe->back=tempe->back->back;
break;
}
tempe = tempe->back;
}
}
cout<<"\nData Berhasil dihapus\n";
}
void tampilbelakang(struct node *ekor){
struct node *tempe ;
tempe=ekor;
while( tempe != NULL)
{
cout<<"\nNama\t: "<<tempe->nama<<endl;
cout<<"Alamat\t: "<<tempe->alamat<<endl;
cout<<"IP\t: "<<tempe->angka<<endl;
tempe = tempe->back;
}
}
void tampilkan(struct node *kepala)
{
struct node *tempe;
tempe = kepala;
while(tempe != NULL)
{
cout<<"\nNama\t: "<<tempe->nama<<endl;
cout<<"Alamat\t: "<<tempe->alamat<<endl;
cout<<"IP\t: "<<tempe->angka<<endl;
tempe = tempe->next;
}
}
void menu(){
cout<<"\n+=========================== M e N u =========================+"<<endl;
cout<<"\t\t   1. Masukkan data link"<<endl;
cout<<"\t\t   2. Masukan Data Dari Depan"<<endl;
cout<<"\t\t   3. Cari Data"<<endl;
cout<<"\t\t   4. Hapus Data dari depan"<<endl;
cout<<"\t\t   5. Hapus Data dari balakang"<<endl;
cout<<"\t\t   6. Tambahkan Data dari Manapun"<<endl;
cout<<"\t\t   7. Tampilkan Data dari depan"<<endl;
cout<<"\t\t   8. Tampilkan Belakang"<<endl;
cout<<"\t\t   0. Keluar"<<endl;
cout<<"+=============================================================+"<<endl;
cout<<"Masukkan Pilihan Anda : ";
}
int main()
{
int m,j;
string x;
struct node *kepala, *tempe, *nodebaru, *ekor;
kepala = ekor = nodebaru = tempe = NULL;
do{
system("cls");
menu();
cin>>m;
switch (m){
case 1 :
system("cls");
cout<<"Masukkan berapa jumlah data : ";
cin>>j;
for(int i=1;i<=j;i++){
cout<<"\nAnda Menginputkan Data Ke- "<<i<<endl;
insert(kepala, ekor);
}
system("pause");
break;
case 2 :
system("cls");
cin.ignore();
cout<<"Kembali x "<<endl;
getline(cin,x);
if (x!="x"){
insertFirst(kepala, ekor);
}
else{
menu();
cout<<"\n";
}
system("pause");break;
case 3 :
system("cls");
cari(kepala);
system("pause");break;
case 4 :
system("cls");
hapus(kepala);
system("pause");break;
case 5 :
system("cls");
hapusbelakang(ekor);
system("pause");break;
case 6 :
system("cls");
ss(kepala,ekor);
system("pause");break;
case 7 :
system("cls");
cout<<"Nih Data yang anda inputkan tadi.....tapi dari depan...\n";
tampilkan(kepala);
system("pause");break;
case 8 :
system("cls");
cout<<"Nih Data yang anda inputkan tadi.....tapi dari belakang...\n";
tampilbelakang(ekor);
system("pause");break;
}
}while (m!=0);system("pause");
}
Oke sekian dulu...hehe...maaf ga ada penjelasan secara detailnya......selamat mengcopas ria.....
wassalamualaikum....:)

About Galeh Fatma Eko Ardiansa

If you can dream it, you can do it | Genius is one percent inspiration and ninety-nine percent perspiration | If you don’t make mistakes, you’re not working on hard enough problems | The best and most beautiful things in the world cannot be seen or even touched - they must be felt with the heart | I can't change the direction of the wind, but I can adjust my sails to always reach my destination.

Tidak ada komentar:

Posting Komentar


Formulir Kontak

Nama

Email *

Pesan *

Advertisement

Disqus Shortname