Membuat Struktur Data Karyawan dengan metode Linked List menggunakan pemrograman C++
Data Karyawan dengan metode Linked List sangat gampang sekali sobat , disini saya akan mencoba menampilkan contoh struktur data karyawan dari Perusahaan mebel XYZ dengan Double Linked List .
Disini Saya Menggunakan cross Platform IDE . CodeBlocks
Check This Out
Source Code : Karyawan Perusahaan Mebel XYZ ( Double Linked List )
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;
struct karyawan {
int no_id;
char nama[50];
char alamat[50];
char telepon[20];
karyawan *next;
karyawan *prev;
} *awal=NULL, *akhir, *baru, *bantu, *setelah, *sebelum, *hapus;
void buat_baru();
void sisip_depan();
void sisip_tengah();
void sisip_belakang();
void hapus_depan();
void hapus_tengah();
void hapus_belakang();
void cetak();
bool check(int checker);
main(){
int pilih;
menu :
cout<<"...: Data Karyawan Perusahaan MEBEL XYZ :...\n";
cout<<"1. Buat Data Baru.\n";
cout<<"2. Tambahkan data di depan.\n";
cout<<"3. Tambahkan data di tengah.\n";
cout<<"4. Tambahkan data di belakang.\n";
cout<<"5. Hapus Data di depan.\n";
cout<<"6. Hapus Data di tengah.\n";
cout<<"7. Hapus Data terakhir.\n";
cout<<"8. Cetak.\n";
cout<<"9. Keluar Program.\n";
cout<<"Pilihan : ";
cin>>pilih;
switch(pilih){
case 1 : buat_baru();
cout<<"--: Data pertama berhasil ditambahkan :--\n";
system("pause");
system("cls");
goto menu;
case 2 : sisip_depan();
system("pause");
system("cls");
goto menu;
case 3 : sisip_tengah();
system("cls");
goto menu;
case 4 : sisip_belakang();
system("cls");
goto menu;
case 5 : hapus_depan();
system("cls");
goto menu;
case 6 : hapus_tengah();
system("cls");
goto menu;
case 7 : hapus_belakang();
system("cls");
goto menu;
case 8 : cetak();
system("cls");
goto menu;
case 9 : return 0;
default : system("cls");
goto menu;
}
}
void buat_baru(){
baru = new karyawan;
cout<<"Masukkan No. : ";
cin>>baru->no_id;
cout<<"Masukkan Nama Karyawan : ";
gets(baru->nama);
cout<<"Masukkan Alamat Karyawan : ";
gets(baru->alamat);
cout<<"Masukkan Nomor Telepon Karyawan: ";
gets(baru->telepon);
baru->next = NULL;
baru->prev = NULL;
if(awal == NULL){
awal = akhir = baru;
}
}
void sisip_depan(){
buat_baru();
if(awal == NULL){
awal = baru;
}
else {
baru->next = awal;
awal->prev = baru;
awal = baru;
cout<<"--: Data berhasil ditambahkan di depan data sebelumnya:--\n";
}
}
void sisip_tengah(){
int letak;
baru = new karyawan;
cout<<"Masukkan No. : ";
cin>>baru->no_id;
cout<<"Masukkan Nama Karyawan : ";
gets(baru->nama);
cout<<"Masukkan Alamat Karyawan : ";
gets(baru->alamat);
cout<<"Masukkan Nomor Telepon Karyawan : ";
gets(baru->telepon);
cout<<"Data ini akan dimasukkan setelah No.: ";
cin>>letak;
baru->next = NULL;
baru->prev = NULL;
if ((awal == NULL) || (akhir == NULL)){
awal = akhir = baru;
cout<<"Data berhasil ditambahkan\n";
cout<<"Hanya ada 1 data\n";
system("pause");
}
else if (((awal->next == NULL) && (awal->prev == NULL)) || ((akhir->next == NULL) && (akhir->prev == NULL))){
cout<<"Penambahan GAGAL !!\n";
cout<<"Hanya ada 1 Data\n";
system("pause");
}
else {
if ( check(letak) == true){
setelah = awal;
while(setelah->no_id != letak){
setelah = setelah->next;}
baru->prev = setelah;
if (setelah->next == NULL){
baru->next = akhir;
setelah->next = baru;
akhir = baru;
akhir->next = NULL;
cout<<"Data berhasil ditambahkan\n";
system("pause");
}
else {
baru->next = setelah->next;
setelah->next->prev = baru;
setelah->next = baru;
cout<<"Data dengan No. ID : "<<baru->no_id<<" telah ditambahkan setelah nomor "<<letak<<"\n";
system("pause");
}
}
else {
cout<<"Data tidak dengan ID tersebut tidak ada\n";
system("pause");
}
}
}
void sisip_belakang(){
buat_baru();
if(awal==NULL){
awal=baru;
akhir=baru;
}
else {
akhir->next=baru;
baru->prev=akhir;
akhir=baru;
}
cout << endl;
}
void hapus_depan(){
if(awal==NULL){
cout << "KOSONG!!";
}
else if(awal->next==NULL){
hapus=awal;
awal=NULL;
akhir=NULL;
delete hapus;
}
else {
hapus=awal;
awal=hapus->next;
awal->prev=NULL;
delete hapus;
}
cout << endl;
cout << "TERHAPUS!!\n";
}
void hapus_tengah(){
if ((awal == NULL) || (akhir == NULL)){
cout<<"Penghapusan GAGAL !!\n";
cout<<"Tidak ada Data\n";
system("pause");
}
else if (((awal->next == NULL) && (awal->prev == NULL)) || ((akhir->next == NULL) && (akhir->prev == NULL))){
cout<<"Penghapusan GAGAL !!\n";
cout<<"Hanya ada 1 Data\n";
system("pause");
}
else if (((awal->next->next == NULL) && (awal->prev == NULL)) || ((akhir->next == NULL) && (akhir->prev->prev == NULL))){
cout<<"Penghapusan GAGAL !!\n";
cout<<"Hanya ada 2 Data\n";
system("pause");
}
else{
int letak;
cout<<"Pilih No. ID yang akan dihapus : ";
cin>>letak;
if ( check(letak) == true){
hapus = awal;
while(hapus->no_id != letak){
sebelum = hapus;
hapus = hapus->next;
}
hapus->prev->next = hapus->next;
hapus->next->prev = hapus->prev;
hapus = NULL;
cout<<"Data dengan No. ID : "<<letak<<" telah dihapus\n";
}
else {
cout<<"Data tidak dengan ID tersebut tidak ada\n";
system("pause");
}
}
}
bool check(int checker){
bantu = awal;
while (bantu != NULL){
if (bantu->no_id == checker)
return true;
bantu = bantu->next;
}
}
void hapus_belakang(){
if (((awal->next == NULL) && (awal->prev == NULL)) || ((akhir->next == NULL) && (akhir->prev == NULL))){
awal = NULL;
akhir = NULL;
cout<<"Semua data telah dihapus\n";
system("pause");
}
else {
hapus = akhir;
akhir->prev->next=NULL;
akhir = hapus->prev;
hapus = NULL;
cout<<"Data pada urutan terakhir sudah dihapus\n";
}
}
void cetak(){
if ((awal == NULL) || (akhir == NULL)){
cout<<"Data Kosong\n";
system("pause");}
else{
bantu = awal;
while (bantu != NULL){
cout<<"No. : "<<bantu->no_id<<"\n";
cout<<"Nama Kue : "<<bantu->nama<<"\n";
cout<<"Jenis Kue : "<<bantu->alamat<<"\n";
cout<<"Harga Kue : "<<bantu->telepon<<"\n";
cout<<"==============================================\n";
bantu = bantu->next;
cout<<endl;
}
system("pause");
}
}
Demikian Yang Bisa saya bantu yaa teman teman semoga bermanfaat bagi kita senua .
TerimaKasih Telah Mengunjungi Blog ini :))
0 komentar:
Posting Komentar