Unordered List

Sabtu, 13 Juni 2015

Membuat Struktur Data Karyawan dengan metode Linked List menggunakan bahasa pemrograman C++

10.34


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 <iostream>
#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 :)) 




























Written by

We are Creative Blogger Theme Wavers which provides user friendly, effective and easy to use themes. Each support has free and providing HD support screen casting.

0 komentar:

Posting Komentar

 

© 2013 Membuat Struktur Data Karyawan Dengan Metode Struct menggunakan bahasa pemrograman c++. All rights resevered. Designed by Templateism

Back To Top