Source code yang kami gunakan:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct barang // deklarasi item sebagai struct
{
char nama[20];
int kode;
int jumlah;
int produksi;
int kadaluarsa;
barang *nxt; // Pointer untuk node selanjutnya
};
barang *mulai_ptr = NULL;
barang *saat_ini;
int pilihan = 0;
int kode = 1;
void tambah_barang_di_akhir()
{
barang *temp, *temp2;
temp = new barang;
cout << "Masukkan Nama Barang : ";cin >> temp->nama;
//cout << "Masukkan Kode Barang : ";cin >> temp->kode;
temp->kode = kode;
kode++;
cout << "Masukkan Jumlah Barang : ";cin >> temp->jumlah;
cout << "Masukkan Tahun Produksi : ";cin >> temp->produksi;
cout << "Masukkan Tahun Kadaluarsa : ";cin >>
temp->kadaluarsa;
temp->nxt = NULL;
if (mulai_ptr == NULL)
{
mulai_ptr = temp;
saat_ini = mulai_ptr;
}
else
{
temp2 = mulai_ptr;
while (temp2->nxt != NULL)
{
temp2
= temp2->nxt;
}
temp2->nxt
= temp;
}
}
void jumlahbarang()
{
barang *temp;
temp= mulai_ptr;
int jml=0;
if(temp == NULL)
cout <<
"List kosong!\n" << endl;
else
{
while(temp!=
NULL)
{
jml
= jml+temp->jumlah;
temp
= temp->nxt;
}
}
cout <<
"Total Quantity barang = " << jml << endl;
getch();
}
void mxmn()
{
barang *temp;
temp= mulai_ptr;
int
max=temp->jumlah;
int
min=temp->jumlah;
char nmmx[20];
int kdmx=0;
char nmmn[20];
int kdmn = 0;
if(temp == NULL)
cout <<
"List kosong!\n" << endl;
else
{
while(temp!=
NULL)
{
if(temp->jumlah>=max)
{
max
= temp->jumlah;
strcpy(nmmx,temp->nama);
kdmx
= temp->kode;
}
if(temp->jumlah<=min)
{
min
= temp->jumlah;
strcpy(nmmn,temp->nama);
kdmn
= temp->kode;
}
temp
= temp->nxt;
}
}
cout <<
"Barang dengan qty terbesar adalah " << nmmx <<
"\nkode barang : " << kdmx << "\nDengan Quantity
:" << max << "\n\n" << endl;
cout <<
"Barang dengan qty terkecil adalah " << nmmn <<
"\nkode barang : " << kdmn << "\nDengan Quantity
:" << min << endl;
getch();
}
void tahuun()
{
barang *temp;
temp= mulai_ptr;
int
max=temp->produksi;
int
min=temp->produksi;
char nmmx[20];
int kdmx=0;
char nmmn[20];
int kdmn = 0;
if(temp == NULL)
cout <<
"List kosong!\n" << endl;
else
{
while(temp!=
NULL)
{
if(temp->produksi>=max)
{
max
= temp->produksi;
strcpy(nmmx,temp->nama);
kdmx
= temp->kode;
}
if(temp->produksi<=min)
{
min
= temp->produksi;
strcpy(nmmn,temp->nama);
kdmn
= temp->kode;
}
temp
= temp->nxt;
}
}
cout <<
"Barang dengan tahun terbesar adalah " << nmmx <<
"\nkode barang : " << kdmx << "\nDengan Tahun
:" << max << "\n\n" << endl;
cout <<
"Barang dengan tahun terkecil adalah " << nmmn <<
"\nkode barang : " << kdmn << "\nDengan Tahun
:" << min << endl;
getch();
}
void tampilkan_list()
{
barang *temp;
temp = mulai_ptr;
int i=1;
//cout << endl;
if (temp == NULL)
cout << "List kosong!\n" << endl;
else
{
while (temp != NULL)
{
cout << "Data ke - " << i <<
"\n";
cout << "Nama : " << temp->nama <<
"\n";
cout << "Kode : " << temp->kode <<
"\n";
cout << "Jumlah : " << temp->jumlah
<<"\n";
cout << "Tahun Produksi
: " << temp->produksi <<"\n";
cout << "Tahun Kadaluarsa : " <<
temp->kadaluarsa <<"\n\n";
temp = temp->nxt;
i++;
}
cout << "Akhir dari list!\n" << endl;
}
getch();
}
void delete_mulai_barang()
{
barang *temp;
temp = mulai_ptr;
mulai_ptr = mulai_ptr->nxt;
delete temp;
}
void delete_akhir_barang()
{
barang *temp1, *temp2;
if (mulai_ptr == NULL)
cout << "List kosong!" << endl;
else
{
temp1 = mulai_ptr;
if (temp1->nxt == NULL)
{
delete
temp1;
mulai_ptr = NULL;
}
else
{
while (temp1->nxt != NULL)
{
temp2
= temp1;
temp1 = temp1->nxt;
}
delete temp1;
temp2->nxt = NULL;
}
}
}
void move_saat_ini_on ()
{
if (saat_ini->nxt == NULL)
cout << "Kamu berada pada akhir list." << endl;
else
saat_ini = saat_ini->nxt;
}
void move_saat_ini_back ()
{
if (saat_ini == mulai_ptr)
cout << "Kamu berada pada awal list" << endl;
else
{
barang *sebelum;
sebelum = mulai_ptr;
while (sebelum->nxt != saat_ini)
{
sebelum
= sebelum->nxt;
}
saat_ini = sebelum;
}
}
void main()
{
mulai_ptr = NULL;
menu:
{
clrscr();
cout << "Masukkan pilihan Anda : " << endl;
cout << "1. Tambah Data." << endl;
cout << "2. Liat list barang." << endl;
cout << "3. Total Jumlah Barang" << endl;
cout << "4. Jumlah barang terbesar dan terkecil"
<< endl;
cout << "5. Tahun terkecil dan terbesar" << endl;
cout << "6. OUT !" << endl;
cout << endl << " >> ";
cin >> pilihan;
switch (pilihan)
{
case 1 : clrscr(); tambah_barang_di_akhir(); break;
case 2 : clrscr(); tampilkan_list(); break;
case 3 : clrscr(); jumlahbarang(); break;
case 4 : clrscr(); mxmn(); break;
case 5 : clrscr(); tahuun(); break;
case 6 : _exit(0);
default :
cout << "Pilihan salah!" << endl;
getch(); break;
}
}
goto menu;
}
0 komentar:
Posting Komentar