Friday, 30 October 2015

Struktur Data Dan Algoritma Lanjutan Beserta Contoh Kodingnya


Koding C Plus Plus di bawah ini adalah jawaban kuis pelajaran Algoritma dan Struktur data Lanjutan , namanya entah stack atau queue . ane lupa lagi . yang pasti kodingnya di bawah ini , semoga bermanfaat 
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
//#include <alloc.h>

using namespace std;

typedef struct TNode
{
    char nrp;
    char nama[25];
  TNode *next;
}TNode;

TNode*head;

void init()
{
  head=NULL;
}

int isEmpty()
{
  if (head==NULL)
    return 1;
    else
    return 0;
}

int pil;
void pilih();
void buat_baru();
void tambah_belakang();
void tambah_depan();
void hapus_belakang();
void hapus_depan();
void cari();
void tampil();

struct simpul
{
    char nrp[10], namamhs [30], alamat[50];
    float ipk;
    struct simpul *next;
} mhs, *baru, *awal=NULL, *akhir=NULL,*hapus,*bantu;


int main()
{
    do
    {
        //clrscr();
        cout<<"Created By : Rino Abdullah\n";
        cout<<"____________________________\n";
        cout<<"DATA MAHASISWA\n"<<endl;
         cout<<"____________________________\n";
        cout<<"1. Tambah Depan\n"<<endl;
         cout<<"____________________________\n";
        cout<<"2. Tambah Belakang\n"<<endl;
         cout<<"____________________________\n";
        cout<<"3. Hapus Depan\n"<<endl;
         cout<<"____________________________\n";
        cout<<"4. Hapus Belakang\n"<<endl;
         cout<<"____________________________\n";
        cout<<"5. Cari Data\n"<<endl;
         cout<<"____________________________\n";
        cout<<"6. Tampilkan\n"<<endl;
         cout<<"____________________________\n";
        cout<<"7. Selesai\n"<<endl;
         cout<<"____________________________\n";
        cout<<"Pilihan Anda : [harap Isi dengan angka 1 Sampai 7]\t";
        
        cin>>pil;
        pilih();
    } while(pil!=6);
    return 0;
}

void pilih()
{
    if(pil==1)
        tambah_depan();
    else if(pil==2)
        tambah_belakang();
    else if(pil==3)
        hapus_depan();
     else if(pil==4)
        hapus_belakang();
      else if(pil==5)
        cari();
        else if(pil==6)
            tampil();
    else
        cout<<"selesai";
}

void buat_baru()
{
    baru=(simpul*)malloc(sizeof(struct simpul));
    cout<<"input nrp    : ";cin>>baru->nrp;
    cout<<"input nama    : ";cin>>baru->namamhs;
    cout<<"input alamat    : ";cin>>baru->alamat;
    cout<<"input ipk    : ";cin>>baru->ipk;
    baru->next=NULL;
}

void tambah_belakang()
{
    buat_baru();
    if(awal==NULL)
    {
        awal=baru;
    }
    else
    {
        akhir->next=baru;
    }
    akhir=baru;
    akhir->next=NULL;
    cout<<endl<<endl;
    tampil();
}

void tambah_depan()
{
    buat_baru();
    if(awal==NULL)
    {
        awal=baru;
        akhir=baru;
        akhir->next=NULL;
    }
    else
    {
        baru->next=awal;
        awal=baru;
    }
    cout<<endl<<endl;
    tampil();
}

void hapus_depan()
{
    if (awal==NULL)
        cout<<"Kosong";
    else
    {
        hapus=awal;
        awal=awal->next;
        free(hapus);
    }
   cout<<endl<<endl;
    tampil();
}

void hapus_belakang()
{
    if (awal==NULL)
        cout<<"Kosong";
    else if(awal==akhir)
    {
         hapus=awal;
         awal=awal->next;
         free(hapus);
    }
    else
    {
        hapus=awal;
        while(hapus->next!=akhir)
             hapus=hapus->next;
        akhir=hapus;
        hapus=akhir->next;
        akhir->next=NULL;
        free(hapus);
    }
    cout<<endl<<endl;
    tampil();
}

void cari()
{
    TNode *bantu ; 
    bantu=head;
    char caridata, nrp, namamhs;
  cout<<"\n\n------------------------------------";
  cout<<"\nNRP Yang Dicari  \t: ";
  cin>>caridata;
 int ketemu;
  if (isEmpty()==0)
      {
        while (bantu!=NULL)
        {
          bantu->nrp;
          if(caridata==bantu->nrp)
          {
              cout<<"\n\n>>> Data Yang Anda Cari Ditemukan <<<";
              cout<<"\n NRP yang dicari : ";cin>>nrp;
              ketemu=1;
              cout<<"\n Nama Yang Bersangkutan Adalah ";cin>>namamhs;
              cout<<"\n\n";
          }
          bantu=bantu->next;
        }
        if (ketemu==0)
        {
          cout<<"Data Tidak Ditemukan";
        }
      }
        else cout<<"Data Masih Kosong";
     
      getch();
}

void tampil()
{
     if (awal==NULL)
          cout<<"Kosong";
     else
     {
         bantu=awal;
         while(bantu!=NULL)
         {
            cout<<"     nrp      : "<<bantu->nrp;
            cout<<"  nama     : "<<bantu->namamhs;
            cout<<"  alamat : "<<bantu->alamat;
            cout<<"     ipk    : "<<bantu->ipk;
            cout<<endl;
            bantu=bantu->next;
         }
     }
     getch();
}
Previous Post
Next Post
Related Posts

0 Komentar: