Senin, 11 Agustus 2014

Belajar menggunakan struct pada C++

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.

Ini merupakan salah satu contoh struct
struct item{
 int kode;
 int Qty;
{  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.. :)

0 komentar:

Posting Komentar