INSTRUKSI
Buat program untuk menambahkan
node single linked-list non-circular dengan tiap node mengandung informasi nim
dan nama. Peletakan posisi node diurutkan berdasar nim secara ascending, jadi
bisa tambah depan, belakang maupun tambah di tengah. Isikan data nim dan nama
lengkap teman sebelah kiri dan kanan Anda.
KODE PROGRAM
#include "conio.h"
#include "iostream.h"
#include "stdio.h"
#include "string.h"
typedef struct TNode
{ int databaru;
char nama[25];
TNode *next;
}TNode;
TNode*head;
void init()
{
head=NULL;
}
int isEmpty()
{
if (head==NULL)
return 1;
else
return 0;
}
void menambah_didepan();
void menambah_dibelakang();
void menambah_ditengah();
void baca_maju();
main()
{
int pil;
do
{
cout<<"\nPILIHAN MENU\n";
cout<<"------------------------------------\n";
cout<<"º 1. Tambah Data Di Depan º\n";
cout<<"º 2. Tambah Data Di Akhir º\n";
cout<<"º 3. Tambah Data Di Tengah º\n";
cout<<"º 4. Tampilkan º\n";
cout<<"--------------------------------------\n";
cout<<"Pilihan Anda = ";cin>>pil;
switch (pil)
{
case 1 : menambah_didepan(); break;
case 2 : menambah_dibelakang(); break;
case 3 : menambah_ditengah(); break;
case 4 : baca_maju(); break;
}
} while (pil!=5);
}
void judul_lap()
{
cout<<"\n======================================== \n";
cout<<"\nTAMPILAN DATA !!!!! \n";
}
void menambah_didepan()
{
TNode *baru;
baru=new TNode;
cout<<"\n Masukkan Nama --> ";
cin>>baru->nama;
cout<<"\nMasukkan Nilai--> \n";
cin>>baru->databaru;
baru->next=NULL;
if (isEmpty()==1)
{
head=baru;
head->next=NULL;
}
else
{
baru->next=head;
head=baru;
}
getch();
}
void menambah_dibelakang()
{
TNode *baru, *bantu;
baru = new TNode;
cout<<"\n Masukkan Nama --> ";
cin>>baru->nama;
cout<<"\nMasukkan Nilai--> \n";
cin>>baru->databaru;
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 menambah_ditengah()
{
TNode*baru, *bantu;
int xdatabaru;
baru = new TNode;
cout<<"\n Masukkan Nama --> ";
cin>>baru->nama;
cout<<"\nMasukkan Nilai--> \n";
cin>>baru->databaru;
cout<<"\nTambah Tengah Setelah angka - \n";cin>>xdatabaru;
baru->next=NULL;
if (isEmpty()==1)
{
head=baru;
head->next=NULL;
}
else
{
bantu=head;
while (bantu->next!=NULL && bantu->databaru!=xdatabaru)
bantu=bantu->next;
baru->next=bantu->next;
bantu->next=baru;
}
}
void baca_maju()
{
TNode *bantu;
int brs=2,i;
judul_lap();
bantu=head;
while (bantu!=NULL)
{
cout<nama;
cout<<" "<databaru<<"\n";
brs++;
bantu=bantu->next;
}
cout<<"\n----------------------------------------\n";
cout<<"ENTER UNTUK MELANJUTKAN !!!";getch();
}
#include "iostream.h"
#include "stdio.h"
#include "string.h"
typedef struct TNode
{ int databaru;
char nama[25];
TNode *next;
}TNode;
TNode*head;
void init()
{
head=NULL;
}
int isEmpty()
{
if (head==NULL)
return 1;
else
return 0;
}
void menambah_didepan();
void menambah_dibelakang();
void menambah_ditengah();
void baca_maju();
main()
{
int pil;
do
{
cout<<"\nPILIHAN MENU\n";
cout<<"------------------------------------\n";
cout<<"º 1. Tambah Data Di Depan º\n";
cout<<"º 2. Tambah Data Di Akhir º\n";
cout<<"º 3. Tambah Data Di Tengah º\n";
cout<<"º 4. Tampilkan º\n";
cout<<"--------------------------------------\n";
cout<<"Pilihan Anda = ";cin>>pil;
switch (pil)
{
case 1 : menambah_didepan(); break;
case 2 : menambah_dibelakang(); break;
case 3 : menambah_ditengah(); break;
case 4 : baca_maju(); break;
}
} while (pil!=5);
}
void judul_lap()
{
cout<<"\n======================================== \n";
cout<<"\nTAMPILAN DATA !!!!! \n";
}
void menambah_didepan()
{
TNode *baru;
baru=new TNode;
cout<<"\n Masukkan Nama --> ";
cin>>baru->nama;
cout<<"\nMasukkan Nilai--> \n";
cin>>baru->databaru;
baru->next=NULL;
if (isEmpty()==1)
{
head=baru;
head->next=NULL;
}
else
{
baru->next=head;
head=baru;
}
getch();
}
void menambah_dibelakang()
{
TNode *baru, *bantu;
baru = new TNode;
cout<<"\n Masukkan Nama --> ";
cin>>baru->nama;
cout<<"\nMasukkan Nilai--> \n";
cin>>baru->databaru;
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 menambah_ditengah()
{
TNode*baru, *bantu;
int xdatabaru;
baru = new TNode;
cout<<"\n Masukkan Nama --> ";
cin>>baru->nama;
cout<<"\nMasukkan Nilai--> \n";
cin>>baru->databaru;
cout<<"\nTambah Tengah Setelah angka - \n";cin>>xdatabaru;
baru->next=NULL;
if (isEmpty()==1)
{
head=baru;
head->next=NULL;
}
else
{
bantu=head;
while (bantu->next!=NULL && bantu->databaru!=xdatabaru)
bantu=bantu->next;
baru->next=bantu->next;
bantu->next=baru;
}
}
void baca_maju()
{
TNode *bantu;
int brs=2,i;
judul_lap();
bantu=head;
while (bantu!=NULL)
{
cout<
cout<<" "<
brs++;
bantu=bantu->next;
}
cout<<"\n----------------------------------------\n";
cout<<"ENTER UNTUK MELANJUTKAN !!!";getch();
}
TAMPILAN PROGRAM



















