INSTRUKSI
Buatlah sebuah fungsi
untuk menghapus nim yang diinputkan oleh user.
Contoh tampilan:
NIM yang mau dihapus:
2205376
NIM dengan nama
Andrew S ditemukan dan telah dihapus
KODE PROGRAM
#include "iostream.h"
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
#include "string.h"
typedef struct TNode
{
long nim;
char nama[25];
TNode *next;
}TNode;
TNode*head;
TNode*tail;
void init()
{
head=NULL;
tail=NULL;
}
int isEmpty()
{
if (head==NULL)
return 1;
else
return 0;
}
void insertdepan();
void insertbelakang();
void inserttengah();
void cari();
void hapus();
void tampil();
main()
{
int pil;
do
{
cout<<"\n \tPROGRAM UTAMA\n";
cout<<" ===========================\n";
cout<<"| 1. Tambah Data Di Depan |\n";
cout<<"| 2. Tambah Data Di Tengah |\n";
cout<<"| 3. Tambah Data Di Akhir |\n";
cout<<"| 4. Mencari Data |\n";
cout<<"| 5. Menghapus Data |\n";
cout<<"| 6. Tampilkan |\n";
cout<<"| 7. Keluar |\n";
cout<<" ===========================\n\n";
cout<<"Pilihan Anda = ";cin>>pil;
switch (pil)
{
case 1 : insertdepan(); break;
case 2 : inserttengah(); break;
case 3 : insertbelakang(); break;
case 4 : cari(); break;
case 5 : hapus();break;
case 6 : tampil(); break;
}
} while (pil!=7);
return pil;
}
void insertdepan()
{
TNode *baru;
baru=new TNode;
cout<<"\n\n------------------------------------";
cout<<"\nNIM\t: ";
cin>>baru->nim;
cout<<"Nama\t: ";
gets(baru->nama);
cout<<"------------------------------------\n\n";
baru->next=NULL;
if (isEmpty()==1)
{
head=baru;
head->next=NULL;
}
else
{
baru->next=head;
head=baru;
}
getch();
}
void insertbelakang()
{
TNode *baru, *bantu;
baru = new TNode;
cout<<"\n\n------------------------------------";
cout<<"\nNIM\t: ";
cin>>baru->nim;
cout<<"Nama\t: ";
gets(baru->nama);
cout<<"------------------------------------\n\n";
baru->next=NULL;
if(isEmpty()==1)
{
head=baru;
head->next=NULL;
}
else
{
bantu=head;
while (bantu->next!=NULL)
bantu=bantu->next;
bantu->next=baru;
}
}
void inserttengah()
{
TNode*baru, *bantu;
long nimbaru;
baru = new TNode;
cout<<"\n\n------------------------------------";
cout<<"\nNIM\t: ";
cin>>baru->nim;
cout<<"Nama\t: ";
gets(baru->nama);
cout<<"------------------------------------\n\n";
cout<<"\nTambah Tengah Setelah NIM - ";
cin>>nimbaru;
baru->next=NULL;
if (isEmpty()==1)
{
head=baru;
head->next=NULL;
}
else
{
bantu=head;
while (bantu->next!=NULL && bantu->nim!=nimbaru)
bantu=bantu->next;
baru->next=bantu->next;
bantu->next=baru;
}
}
void cari(){
TNode *bantu ;
bantu=head;
long caridata;
cout<<"\n\n------------------------------------";
cout<<"\nNIM Yang Dicari \t: ";
cin>>caridata;
int ketemu=0;
if (isEmpty()==0)
{
while (bantu!=NULL)
{
bantu->nim;
if(caridata==bantu->nim)
{
cout<<"\n\n>>> Data Yang Anda Cari Ditemukan <<<";
cout<<"\n NIM yang dicari : "<nim;
cout<<"\n Nama Yang Bersangkutan Adalah "<nama;
cout<<"\n\n";
ketemu=1;
}
bantu=bantu->next;
}
if (ketemu==0)
{
cout<<"Data Tidak Ditemukan";
}
}
else cout<<"Data Masih Kosong";
getch();
}
void hapus_simpul(long caridata)
{
struct TNode *bantu,*hapus;
if (head==NULL) {
cout<<"\n Data List Kosong ";
}
else
{
if ((head->nim==caridata)==1)
{
hapus=head;
head=hapus->next;
cout<<"\n\n>>> Data Telah Dihapus <<<";
cout<<"\n NIM yang dihapus : "<nim;
cout<<"\n NIM dengan nama "<nama <<" ditemukan dan telah dihapus";
cout<<"\n\n";
free(hapus);
}
else
{
bantu=head;
while ((caridata==bantu->next->nim!=1) && (bantu->next!=NULL))
{
bantu=bantu->next;
}
hapus=bantu->next;
if (hapus!=NULL)
{
if (hapus!=tail) { bantu->next=hapus->next;
}
else
{
tail=bantu;
tail->next=NULL;
}
cout<<"\n\n>>> Data Telah Dihapus <<<";
cout<<"\n NIM yang dihapus : "<nim;
cout<<"\n NIM dengan nama "<nama <<" ditemukan dan telah dihapus";
cout<<"\n\n";
free(hapus);
}
}
}
}
void hapus()
{
long cari;
cout<<"\nNIM yang akan dihapus :";
cin>>cari;
hapus_simpul(cari);
}
void tampil()
{
TNode *bantu;
int brs=2,i;
cout<<"\n";
bantu=head;
while (bantu!=NULL)
{
cout<<"\n----------------------------------------\n";
cout<nim;
cout<<" "<nama<<"\n";
brs++;
bantu=bantu->next;
}
cout<<"\n----------------------------------------\n";
cout<<"Tekan ENTER untuk Kembali Ke Program Utama\n\n";
getch();
}
TAMPILAN PROGRAM
#include "iostream.h"
#include "stdio.h"
#include "stdlib.h"
#include "ctype.h"
#include "string.h"
typedef struct TNode
{
long nim;
char nama[25];
TNode *next;
}TNode;
TNode*head;
TNode*tail;
void init()
{
head=NULL;
tail=NULL;
}
int isEmpty()
{
if (head==NULL)
return 1;
else
return 0;
}
void insertdepan();
void insertbelakang();
void inserttengah();
void cari();
void hapus();
void tampil();
main()
{
int pil;
do
{
cout<<"\n \tPROGRAM UTAMA\n";
cout<<" ===========================\n";
cout<<"| 1. Tambah Data Di Depan |\n";
cout<<"| 2. Tambah Data Di Tengah |\n";
cout<<"| 3. Tambah Data Di Akhir |\n";
cout<<"| 4. Mencari Data |\n";
cout<<"| 5. Menghapus Data |\n";
cout<<"| 6. Tampilkan |\n";
cout<<"| 7. Keluar |\n";
cout<<" ===========================\n\n";
cout<<"Pilihan Anda = ";cin>>pil;
switch (pil)
{
case 1 : insertdepan(); break;
case 2 : inserttengah(); break;
case 3 : insertbelakang(); break;
case 4 : cari(); break;
case 5 : hapus();break;
case 6 : tampil(); break;
}
} while (pil!=7);
return pil;
}
void insertdepan()
{
TNode *baru;
baru=new TNode;
cout<<"\n\n------------------------------------";
cout<<"\nNIM\t: ";
cin>>baru->nim;
cout<<"Nama\t: ";
gets(baru->nama);
cout<<"------------------------------------\n\n";
baru->next=NULL;
if (isEmpty()==1)
{
head=baru;
head->next=NULL;
}
else
{
baru->next=head;
head=baru;
}
getch();
}
void insertbelakang()
{
TNode *baru, *bantu;
baru = new TNode;
cout<<"\n\n------------------------------------";
cout<<"\nNIM\t: ";
cin>>baru->nim;
cout<<"Nama\t: ";
gets(baru->nama);
cout<<"------------------------------------\n\n";
baru->next=NULL;
if(isEmpty()==1)
{
head=baru;
head->next=NULL;
}
else
{
bantu=head;
while (bantu->next!=NULL)
bantu=bantu->next;
bantu->next=baru;
}
}
void inserttengah()
{
TNode*baru, *bantu;
long nimbaru;
baru = new TNode;
cout<<"\n\n------------------------------------";
cout<<"\nNIM\t: ";
cin>>baru->nim;
cout<<"Nama\t: ";
gets(baru->nama);
cout<<"------------------------------------\n\n";
cout<<"\nTambah Tengah Setelah NIM - ";
cin>>nimbaru;
baru->next=NULL;
if (isEmpty()==1)
{
head=baru;
head->next=NULL;
}
else
{
bantu=head;
while (bantu->next!=NULL && bantu->nim!=nimbaru)
bantu=bantu->next;
baru->next=bantu->next;
bantu->next=baru;
}
}
void cari(){
TNode *bantu ;
bantu=head;
long caridata;
cout<<"\n\n------------------------------------";
cout<<"\nNIM Yang Dicari \t: ";
cin>>caridata;
int ketemu=0;
if (isEmpty()==0)
{
while (bantu!=NULL)
{
bantu->nim;
if(caridata==bantu->nim)
{
cout<<"\n\n>>> Data Yang Anda Cari Ditemukan <<<";
cout<<"\n NIM yang dicari : "<
cout<<"\n Nama Yang Bersangkutan Adalah "<
cout<<"\n\n";
ketemu=1;
}
bantu=bantu->next;
}
if (ketemu==0)
{
cout<<"Data Tidak Ditemukan";
}
}
else cout<<"Data Masih Kosong";
getch();
}
void hapus_simpul(long caridata)
{
struct TNode *bantu,*hapus;
if (head==NULL) {
cout<<"\n Data List Kosong ";
}
else
{
if ((head->nim==caridata)==1)
{
hapus=head;
head=hapus->next;
cout<<"\n\n>>> Data Telah Dihapus <<<";
cout<<"\n NIM yang dihapus : "<
cout<<"\n NIM dengan nama "<
cout<<"\n\n";
free(hapus);
}
else
{
bantu=head;
while ((caridata==bantu->next->nim!=1) && (bantu->next!=NULL))
{
bantu=bantu->next;
}
hapus=bantu->next;
if (hapus!=NULL)
{
if (hapus!=tail) { bantu->next=hapus->next;
}
else
{
tail=bantu;
tail->next=NULL;
}
cout<<"\n\n>>> Data Telah Dihapus <<<";
cout<<"\n NIM yang dihapus : "<
cout<<"\n NIM dengan nama "<
cout<<"\n\n";
free(hapus);
}
}
}
}
void hapus()
{
long cari;
cout<<"\nNIM yang akan dihapus :";
cin>>cari;
hapus_simpul(cari);
}
void tampil()
{
TNode *bantu;
int brs=2,i;
cout<<"\n";
bantu=head;
while (bantu!=NULL)
{
cout<<"\n----------------------------------------\n";
cout<
cout<<" "<
brs++;
bantu=bantu->next;
}
cout<<"\n----------------------------------------\n";
cout<<"Tekan ENTER untuk Kembali Ke Program Utama\n\n";
getch();
}
TAMPILAN PROGRAM








0 komentar:
Posting Komentar