Hallo.....
Saya mencoba berbagi sedikit ilmu tentang penggunaan Struct pada program c++.
Struktur (struct) sendiri adalah kumpulan dari variabel yang dinyatakan dengan sebuah nama, dengan sifat setiap variabel dapat memiliki tipe yang berlainan.
Tipe data struct secara umum adalah untuk menyimpan paket (sekumpulan) data ke dalam satu buah nama variabel saja. Kumpulan data tersebut diikat sedemikian rupa menjadi satu. Kumpulan data di dalam sebuah struct bisa mempunyai tipe data dasar yang beraneka ragam. Kumpulan data dalam sebuah struct sangat dianjurkan membentuk sebuah kesatuan makna berkaitan dengan nama struct-nya.
Saya mencoba berbagi sedikit ilmu tentang penggunaan Struct pada program c++.
Struktur (struct) sendiri adalah kumpulan dari variabel yang dinyatakan dengan sebuah nama, dengan sifat setiap variabel dapat memiliki tipe yang berlainan.
Tipe data struct secara umum adalah untuk menyimpan paket (sekumpulan) data ke dalam satu buah nama variabel saja. Kumpulan data tersebut diikat sedemikian rupa menjadi satu. Kumpulan data di dalam sebuah struct bisa mempunyai tipe data dasar yang beraneka ragam. Kumpulan data dalam sebuah struct sangat dianjurkan membentuk sebuah kesatuan makna berkaitan dengan nama struct-nya.
Ini merupakan salah satu contoh struct
struct item{
int kode;
int Qty;
{ produksi produk[10];
{ produksi produk[10];
Contoh di atas menunjukkan bahwa dibuat struct bernama “item” dengan isian data kode dan Qty (Quantity). Sedangkan nama variabelnya adalah produksi produk. Dalam kasus tersebut variabel data dibuat berupa array dengan ukuran 10. Artinya kita akan membuat array untuk menampung data struct item (pada produksi produk) sebanyak 10. Konsep struct seringkali dikaitkan dengan array karena logikanya penyimpanan data itu tidak cukup satu item saja, tetapi lebih dari itu.
Nah berikut ini adalah contoh koding penggunaan struct dalam sebuah program "Penyimpanan Data Barang"
Source Code :
#include<stdio.h>
#include<conio.h>
struct produksi {
int tahun ;
int Expired;
};
struct item{
int kode;
int Qty;
produksi produk[10];
};
int data;
item brg[10];
int i,j;
void menu1 (){
char ulang = 'n' ;
do{
printf("\nMasukan data barang\n");
printf("---------------------------\n");
printf("Kode Barang : " );
scanf ("%d", &brg[data].kode);
printf("\nQuantity : ");
scanf ("%d",&brg[data].Qty);
printf("\nTahun : ");
scanf ("%d", &brg[data].produk[data].tahun);
printf("\nExpired : ");
scanf ("%d", &brg[data].produk[data].Expired);
printf("\ntambah lgi(y/n)? ");
scanf("%s",&ulang);
data++;
}while(ulang == 'y');
}
void menu2()
{
printf("\nKode\t\tQuantity\t\tTahun\t\tExpired ");
for(int k = 0; k < data; k++){
printf("\n%d\t\t%d\t\t\t%d\t\t%d",brg[k].kode,brg[k].Qty,brg[k].produk[k].tahun,brg[k].produk[k].Expired);
}
}
void menu3(int &i, int &j) {
int temp;
for (i= 0 ; i < data; i++)
{
for (j = 0 ; j < data ; j++)
{
if( brg[i].Qty < brg[j].Qty )
{
temp = brg[j].Qty;
brg[j].Qty = brg[i].Qty;
brg[i].Qty = temp;
}
}
}
printf("\nQuantity Terbesar adalah %d \n",temp);
for (i= 0 ; i < data; i++)
{
for (j = 0 ; j < data ; j++)
{
if( brg[i].Qty > brg[j].Qty )
{
temp = brg[j].Qty;
brg[j].Qty = brg[i].Qty;
brg[i].Qty = temp;
}
}
}
printf("\nQuantity Terkecil adalah %d
\n",temp);
}
void menu4() {
int total = 0;
for (int i = 0; i < data ;i++)
{
total += brg[i].Qty;
}
printf("\nTotal Kuantiti : %d ",total);
printf("\n ");
}
void menu5(int &i, int &j){
int temp;
for (i= 0 ; i < data; i++)
{
for (j = 0 ; j < data ; j++)
{
if( brg[i].produk[i].tahun < brg[j].produk[j].tahun )
{
temp = brg[j].produk[j].tahun;
brg[j].produk[j].tahun = brg[i].produk[i].tahun;
brg[i].produk[i].tahun= temp;
}
}
}
printf("\nTahun Produksi Terbesar adalah %d \n",temp);
for (i= 0 ; i < data; i++)
{
for (j = 0 ; j < data ; j++)
{
if( brg[i].produk[i].tahun > brg[j].produk[j].tahun)
{
temp = brg[j].produk[j].tahun;
brg[j].produk[j].tahun = brg[i].produk[i].tahun;
brg[i].produk[i].tahun= temp;
}
}
}
printf("\ntahun Produksi Terkecil
adalah %d \n",temp);
}
void main () {
int pilihan=0;
do {
printf("\n\tMenu\n");
printf("------------------------\n");
printf("1.Tambah Data Barang\n");
printf("2.Lihat Data Barang\n");
printf("3.Data Barang Dengan Kuantiti Terkecil Dan Terbesar\n");
printf("4.Total kuantiti\n");
printf("5.Tahun Produksi Terkecil Dan Terbesar\n");
printf("6.Keluar\n");
printf("Masukan pilihan anda : ");
scanf("%d",&pilihan);
switch (pilihan){
case 1: menu1();
break;
case 2 : menu2();
break;
case 3 : menu3(i,j);
break;
case 4 : menu4 ();
break;
case 5 : menu5 (i,j);
break;
case 6 : break;
default :
printf ("\n\t\tMaaf,Inputan anda salah !\n\tsilahkan masukan Kembali
pilihan anda!\n");
break;
}
} while (pilihan != 6);
getch();
Dan inputannya sebagai berikut..
Penyimpanan Data
Barang
Sistem gudang ini terdiri dari 5 menu utama, yaitu tambah
data barang, Lihat Data, Kuantiti Terkecil & Terbesar, total Kuantiti,
Tahun Produksi Terkecil dan Terbesar.
Menu 1. Tambah
data
Disini kita diminta menambah data sesuai dengan identitas
data yang diperlukan. Terdapat beberapa identitas data yang diminta yaitu Kode
Barang, Quantiti, Tahun Produksi barang tersebut, dan tahun expired barang
tersebut.
Setelah kita
selesai memasukan data barang, secara otomatis akan ada pilihan tambahan,
apakan kita ingin memasukan data barang lagi atau tidak. Jika kita tekan yes,
maka akan muncul kembali permintaan data barang untuk barang ke-2 yang ingin
masukan identitasnya (lihat gambar).
Tetapi jika kita
menekan “n”, maka menu utama akan muncul. Seperti gambar diatas.
Menu 2. Lihat
Data Barang.
Jikan kita memilih menu ini, maka akan muncul semua
data dari barang – barang yang sudah kita masukan.
Menu 3. Data
Barang Dengan Kuantiti Terkecil dan Terbesar.
Ketika kita memilih menu ini, program akan
memberitahukan Berapa kuantiti terkecil, dan terbesar, berdasarkan data yang kita masukan.
Menu 4. Total
Kuantiti
Pada pilihan ini
kita dapat melihat total kuantiti barang secara keseluruhan di dalam sistem
penyimpanan data barang.
Menu 5. Tahun
Produksi Terkecil dan Terbesar
Di menu ini, kita
juga bisa melihat Tahun produksi terkecil dan terbesar data yang kita masukan.
Menu 6. Keluar
Program akan break, atau keluar secara otomatis. Tidak
ada lagi Menu Utama.
Sekitar share pemahaman dari saya, semoga bermanfaat bagi kalian.. :)