1.                  Buatlah masing-masing materi diatas dengan menggunakan sistem Menu !

Kode Untuk Menu Double Linked List :
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
typedef struct node *simpul ;
struct node
     {
   char Isi;
   simpul kanan;
   simpul kiri;
   };
void sisip_depan (simpul &DL, char elemen);
void Sisip_Tengah1 (simpul &DL,char elemen1, char elemen2);
void Sisip_Tengah2 (simpul &DL,char elemen1, char elemen2);
void Sisip_Belakang(simpul &DL, char elemen);
void Hapus_Depan (simpul &DL);
void Hapus_Belakang (simpul &DL);
void Hapus_Tengah (simpul &DL, char elemen);
void pilihan(simpul &DL,int pilih);
void cetak(simpul DL);

main()
 {
 int pilih;
 simpul DL=NULL;
     do
     {
         clrscr();
         cout<<"======================================="<<endl;
         cout<<"=== Laporan Praktikum Struktur Data ==="<<endl;
         cout<<"======================================="<<endl<<endl;
         cout<<" MENU DOUBLE LINKEDLIST "<<endl<<endl;
         cout<<" 1. Tambah Depan "<<endl;
         cout<<" 2. Tambah Belakang "<<endl;
         cout<<" 3. Tambah Tengah1 "<<endl;
         cout<<" 4. Tambah Tengah2 "<<endl;
         cout<<" 5. Hapus Depan "<<endl;
         cout<<" 6. Hapus Belakang "<<endl;
         cout<<" 7. Hapus Tengah "<<endl;
         cout<<" 8. CETAK "<<endl;
         cout<<" 9. Selesai "<<endl<<endl;
         cout<<" Pilihan No : ";
         cin>>pilih;
         pilihan(DL,pilih);
     }
     while(pilih <= 9);
     return 0;
 }

void sisip_depan (simpul &DL, char elemen)
{
 simpul baru;
 baru = (simpul)malloc(sizeof(simpul));
 baru->Isi =elemen;
 baru->kanan =NULL;
 baru->kiri;
if (DL ==NULL)
 DL=baru;
else
 {
  baru->kanan =DL;
  DL->kiri =baru;
  DL=baru;
 }
}

void Sisip_Tengah1 (simpul &DL,char elemen1, char elemen2)
{
 simpul bantu,baru;
 baru = (simpul) malloc(sizeof(simpul));
 baru->Isi = elemen1;
 baru->kanan =NULL;
 baru->kiri =NULL;
if (DL==NULL)
 cout<<"list kosong........."<<endl;
else if (DL->kanan ==NULL)
     cout<<"list hanya satu simpul......\n";
else
 {
  bantu =DL;
  while(bantu->kanan->Isi !=elemen2) bantu=bantu->kanan;
  baru->kanan=bantu->kanan;
  baru->kiri=bantu;
  bantu->kanan->kiri =baru;
  bantu->kanan=baru;
 }
}




void Sisip_Tengah2 (simpul &DL,char elemen1, char elemen2)
{
 simpul bantu,baru;
 baru = (simpul) malloc(sizeof(simpul));
 baru->Isi = elemen1;
 baru->kanan =NULL;
 baru->kiri =NULL;
if (DL==NULL)
  cout<<"list kosong........."<<endl;
else
  {
   bantu =DL;
   while(bantu->Isi !=elemen2) bantu=bantu->kanan;
   baru->kanan=bantu->kanan;
   baru->kiri=bantu;
   bantu->kanan->kiri =baru;
   bantu->kanan=baru;
  }
}

void Sisip_Belakang(simpul &DL, char elemen)
{
 simpul bantu,baru;
 baru = (simpul)malloc(sizeof(simpul));
 baru->Isi=elemen;
 baru->kanan=NULL;
 baru->kiri=NULL;
if(DL==NULL)
 DL=baru;
else
 {
  bantu=DL;
  while(bantu->kanan !=NULL)
  bantu=bantu->kanan;
  bantu->kanan=baru;
  baru->kiri=bantu;
 }
}


void Hapus_Depan (simpul &DL)
{
 simpul Hapus;
 if(DL==NULL)
 cout<<"likend list kosong.........."<<endl;
else
 {
  Hapus=DL;
  DL=DL->kanan;
  DL->kiri=NULL;
  Hapus->kanan=NULL;
  free(Hapus);
 }
}

void Hapus_Belakang (simpul &DL)
{
 simpul bantu,Hapus;
if(DL==NULL)
 cout<<"likend list kosong.........."<<endl;
else
 {
  bantu=DL;
  while(bantu->kanan->kanan !=NULL) bantu=bantu->kanan;
  Hapus=bantu->kanan;
  bantu->kanan =NULL;
  Hapus->kiri =NULL;
  free(Hapus);
 }
}

void Hapus_Tengah (simpul &DL, char elemen)
{
 simpul bantu,Hapus;
if(DL==NULL)
  cout<<"likend list kosong.........."<<endl;
else
 {
  bantu=DL;
  while(bantu->kanan->Isi !=elemen) bantu=bantu->kanan;
  Hapus=bantu->kanan;
  bantu->kanan->kanan->kiri =bantu;
  bantu->kanan=bantu->kanan->kanan;
  Hapus->kanan=NULL;
  Hapus->kiri =NULL;
  free(Hapus);
 }
}



void pilihan(simpul &DL,int pilih)
 {
           char elemen,elemen1,elemen2;
     if(pilih==1)
     {
         cout<<" Masukkan Huruf = ";cin>>elemen;
         sisip_depan(DL,elemen);
     }
     else if(pilih==2)
     {
           cout<<" Masukkan Huruf = ";cin>>elemen;
         Sisip_Belakang(DL,elemen);
     }
     else if(pilih==3)
     {
     cetak(DL);
         cout<<"\n Masukkan Huruf = ";cin>>elemen1;
         cout<<"\n Masukkan Huruf Sebelum = ";cin>>elemen2;

         Sisip_Tengah1(DL,elemen1,elemen2);
        }
      else if(pilih==4)
      {
           cetak(DL);
           cout<<"\n Masukkan Huruf = ";cin>>elemen1;
         cout<<"\n Masukkan Huruf sesudah = ";cin>>elemen2;
        Sisip_Tengah2(DL,elemen1,elemen2);
        }
       else if(pilih==8)
         cetak(DL);
         else if(pilih==5)
         Hapus_Depan(DL);
         else if(pilih==6)
         Hapus_Belakang(DL);
         else if(pilih==7)
         {
         cetak(DL);
         cout<<" Masukkan Bilangan Tengah Yang Ingin Dihapus = ";
         Hapus_Tengah(DL,elemen);
         }
     else
         cout<<" Selesai";
 }

void cetak(simpul DL)
{
simpul bantu;
     if(DL== NULL )
     cout<<"list kosong......"<<endl;
   else
   {
     bantu = DL;
      cout<<" Isi Linked List : ";
      while (bantu->kanan != NULL)
      {
           cout<<bantu->Isi<<"<==>";
         bantu=bantu->kanan;
      }
      cout<<bantu->Isi;
   }
   getch();
}


Hasil :
·         Penyisipan Simpul





·         Penghapusan Simpul














Kode Untuk Menu Single Linked List :

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
typedef struct node *simpul ;
struct node
     {
   char isi;
   simpul next;
   };
void sisip_depan(simpul &L, char elemen);
void sisip_belakang(simpul &L, char elemen);
void sisip_tengah1(simpul &L, char elemen1, char elemen2);
void sisip_tengah2(simpul &L, char elemen1, char elemen2);
void Hapus_Depan(simpul &L);
void Hapus_Belakang(simpul &L);
void Hapus_Tengah(simpul &L, char elemen);
void pilihan(simpul &L,int pilih);
void cetak(simpul L);

main()
 {
 int pilih;
 simpul L=NULL;
     do
     {
         clrscr();
         cout<<"======================================="<<endl;
cout<<"=== Laporan Praktikum Struktur Data ==="<<endl;   cout<<"======================================="<<endl<<endl;
         cout<<" MENU SINGLE LINKEDLIST "<<endl<<endl;
         cout<<" 1. Tambah Depan "<<endl;
         cout<<" 2. Tambah Belakang "<<endl;
         cout<<" 3. Tambah Tengah1 "<<endl;
         cout<<" 4. Tambah Tengah2 "<<endl;
         cout<<" 5. Hapus Depan "<<endl;
         cout<<" 6. Hapus Belakang "<<endl;
         cout<<" 7. Hapus Tengah "<<endl;
         cout<<" 8. CETAK "<<endl;
         cout<<" 9. Selesai "<<endl<<endl;
         cout<<" Pilihan No : ";
         cin>>pilih;
         pilihan(L,pilih);
     }
     while(pilih <= 9);
     return 0;
 }

 void sisip_depan(simpul &L, char elemen)
{
simpul baru;
baru = (simpul) malloc(sizeof(simpul));
baru->isi = elemen;
baru->next = NULL;
     if(L== NULL)
     L=baru;
   else
   {
     baru->next = L;
      L=baru;
   }
}

void sisip_belakang(simpul &L, char elemen)
{
simpul bantu, baru;
baru = (simpul) malloc(sizeof(simpul));
baru->isi = elemen;
baru->next = NULL;
     if(L== NULL )
     L=baru;
   else
   {
     bantu = L;
      while(bantu->next != NULL)
      bantu=bantu->next;
      bantu->next=baru;
   }
}

void sisip_tengah1(simpul &L, char elemen1, char elemen2)
{
simpul bantu, baru;
baru = (simpul) malloc(sizeof(simpul));
baru->isi = elemen1;
baru->next = NULL;
     if(L== NULL )
     cout<<"list kosong......"<<endl;
   else if (L->next ==NULL)
     cout<<"list hanya satu simpul......\n";
   else
   {
     bantu = L;
      while(bantu->next->isi != elemen2) bantu=bantu->next;
      baru->next = bantu->next;
      bantu->next = baru;
   }
}


void sisip_tengah2(simpul &L, char elemen1, char elemen2)
{
simpul bantu, baru;
baru = (simpul) malloc(sizeof(simpul));
baru->isi = elemen1;
baru->next = NULL;
     if(L== NULL )
     cout<<"list kosong......"<<endl;
   else if(L->next==NULL)
     cout<<"list hanya satu simpul......\n";
   else
   {
     bantu = L;
      while(bantu->isi != elemen2) bantu=bantu->next;
      baru->next = bantu->next;
      bantu->next = baru;
   }
}


void Hapus_Depan(simpul &L)
{
  simpul Hapus;
  if(L==NULL)
  cout<<"Linked List Kosong..";
  else
  {
   Hapus=L;
   L=L->next;
   Hapus->next=NULL;
   free(Hapus);
  }
}

void Hapus_Belakang(simpul &L)
{
  simpul bantu, Hapus;
  if(L==NULL)
  cout<<"Linked List Kosong..";
  else
  {
   bantu=L;
   while(bantu->next->next !=NULL) bantu=bantu->next;
   Hapus=bantu->next;
   bantu->next=NULL;
   free(Hapus);
  }
}

void Hapus_Tengah(simpul &L, char elemen)
{
  simpul bantu, Hapus;
  if(L==NULL)
  cout<<"Linked List Kosong..";
  else
  {
   bantu=L;
   while(bantu->next->isi !=elemen) bantu=bantu->next;
   Hapus=bantu->next;
   bantu->next=bantu->next->next;
   Hapus->next=NULL;
   free(Hapus);
  }
}


void pilihan(simpul &L,int pilih)
 {
           char elemen,elemen1,elemen2;
     if(pilih==1)
     {
         cout<<" Masukkan Huruf =";cin>>elemen;
         sisip_depan(L,elemen);
     }
     else if(pilih==2)
     {
           cout<<" Masukkan Huruf =";cin>>elemen;
         sisip_belakang(L,elemen);
     }
     else if(pilih==3)
     {
     cetak(L);
         cout<<"\n Masukkan Huruf =";cin>>elemen1;
         cout<<"\n Masukkan Huruf Sebelum =";cin>>elemen2;

         sisip_tengah1(L,elemen1,elemen2);
        }
      else if(pilih==4)
      {
           cetak(L);
           cout<<"\n Masukkan Huruf =";cin>>elemen1;
         cout<<"\n Masukkan Huruf sesudah =";cin>>elemen2;
        sisip_tengah2(L,elemen1,elemen2);
        }
       else if(pilih==8)
         cetak(L);
         else if(pilih==5)
         Hapus_Depan(L);
         else if(pilih==6)
         Hapus_Belakang(L);
         else if(pilih==7)
         {
         cetak(L);
         cout<<" Masukkan Bilangan Tengah Yang Ingin Dihapus = ";
         Hapus_Tengah(L,elemen);
         }
     else
         cout<<" Selesai";
 }


 void cetak(simpul L)
{
simpul bantu;
     if(L== NULL )
     cout<<"list kosong......"<<endl;
   else
   {
     bantu = L;
      cout<<" Isi Linked List : ";
      while (bantu->next != NULL)
      {
           cout<<bantu->isi<<"-->";
         bantu=bantu->next;
      }
      cout<<bantu->isi;
   }
   getch();
}




 
Hasil :

·         Penyisipan Simpul :



 






·         Penghapusan Simpul :