c++ structure

untuk dowload file PDF klik disini
untuk dowload file yang word klik disini

STRUCTURE

v STRUCTURE
               Structure / struktur digunakan untuk mengelompokkan sejumlah data yang memiliki tipe data yang berbeda. Variable – variable yang membentuk sebuah struktur dinamakan dengan Elemen Struktur. Dalam bahasa Pascal Struktur dikenal sebagai record.
Text Box: struct 
{
elemen_struktur;
.....
.....
} nama_tipe_struktur;








/* Nama File : struct1.cpp */
#include<conio.h>
#include<iostream.h>
main()
{
struct
{
int nilai;
char nim[5];
char nama[15];
} mahasiswa;
clrscr();
cout<<"masukan NIM = ";
cin>>mahasiswa.nim;
cout<<"masukan Nama = ";
gets(mahasiswa.nama);
cout<<"masukan Nilai Akhir = ";
cin>>mahasiswa.nilai;
cout<<"\n\nData Yang di Inputkan adalah : \n\n";
cout<<"NIM = "<<mahasiswa.nim<<endl;
cout<<"Nama = "<<mahasiswa.nama<<endl;
cout<<"Nilai Akhir = "<<mahasiswa.nilai<<endl;
getch();
}

v STRUKTUR DENGAN ARRAY

Struct 
  {
       Elemen_struktur1 array ;
       Elemen_struktur2 array ;
            ………….........        ;
   } nama_struktur [index array] ;
 
Struktur pada array digunakan untuk mengelompokan variable – variabel yang dijadikan array. Elemen struktur berisikan variable yang dijadikan array.
Deklarasi :
Contoh struktur array :
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>

main()
{
   int i,n;
   struct
   {
      char nim[9];
      char nama[15];
      float nilai;
   } mhs[5];

   clrscr();
cout<<”masukkan banyak mahasiswa : “;cin>>n;
   for(i=1; i<=n; i++)
   {
      cout<<"Masukkan NIM\t\t= "; cin>>mhs[i].nim;
      cout<<"Masukkan Nama\t\t= "; cin>>mhs[i].nama;
      cout<<"Masukkan Nilai Akhir\t= "; cin>>mhs[i].nilai;
      cout<<endl;
   }
   cout<<endl<<endl;
   cout<<"-------------------------------------------"<<endl;
   cout<<"Data ke-|  NIM   |  Nama  |Nilai Akhir|"<<endl;
   cout<<"-------------------------------------------"<<endl;

   for(i=1; i<=n; i++)
   {
      cout<<" "<<setiosflags(ios::left)<<setw(7)<<i;
      cout<<" "<<setiosflags(ios::left)<<setw(8)<<mhs[i].nim;
      cout<<" "<<setiosflags(ios::left)<<setw(8)<<mhs[i].nama;
      cout<<" "<<setiosflags(ios::right)<<setw(11)<<setprecision(2)<<mhs[i].nilai<<endl;
   }
  cout<<"-------------------------------------------"<<endl;
   getch();
}

LATIHAN STRUCT ARRAY !!!
Rancangan Masukan

Text Box: “ TOKO SEPATU KACA “
=====================

Input No Transaksi            : <input>
Input Banyak nya Transaksi : <input>
================================
Transaksi Penjualan ke - .... :
 Input kode sepatu  : <input>
 Input Merk  : <input>
 Input Harga  : <input>
 Jumlah Beli  : <input>














Rancangan Keluaran

Text Box: *** TOKO SEPATU KACA ***
=====================
No transaksi : <tampil>

Transaksi Penjualan ke - ... :
 Kode Sepatu : <tampil>
 Merk sepatu  : <tampil>
 Harga sepatu : <tampil>
 Jumlah Beli   : <tampil>
 Total harga   : <tampil>

<tampilan berulang sesuai banyaknya perulangan>
--------------------------------------
Total Pembelian : Rp. <tampil>
Diskon     : Rp. <tampil>
Total bayar    : Rp. <tampil>
--------------------------------------
Ingin input transaksi lagi [Y/T] ? <input>






















Ketentuan Soal !!!!
1.      Kelompokkan variabel yang dijadikan array dengan deklarasi struct array.


Kodesepatu
Merk
Harga
Jumlahbeli
totalharga
 







2.      Input Transaksi penjualan, seperti kode sepatu, merk, harga dan jumlah beli dapat berulang sebanyak = banyak transaksi yang diinput.
3.      total harga  didapat dari jumlah beli dikali harga
4.      Total pembelian  didapat dari jumlah keseluruhan dari total harga.
5.      diskon didapat dari : jika total pembelian > 450000 maka diskon 15% dari total pembelian. Jika total pembelian > 300000 maka diskon 10%  dari total pembelian. Selain itu tidak dapat diskon.
6.      total bayar = total pembelian  - diskon
7.      Jika ingin mengulang transaksi kembali maka jawab ‘Y’ diakhir program. Selain itu maka selesai dari program.
Jawaban

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
main()
{
char notrans[15],lagi;
int i,n,topem=0,diskon,tobay;
struct
{
char kode[5],merk[20];
int harga,jumbel,tohar;
}toko[10];

atas:
clrscr();
cout<<"\t \"\TOKO SEPATU KACA\"\ "<<endl;
cout<<"\t========================="<<endl<<endl;
cout<<"Input No. Transaksi       : ";cin>>notrans;
cout<<"Input Banyaknya Transaksi : ";cin>>n;
cout<<"========================="<<endl<<endl;
for(i=1;i<=n;i++)
{
cout<<"Transaksi Penjualan Ke- "<<i<<" :"<<endl;
cout<<"Input Kode Sepatu : ";cin>>toko[i].kode;
cout<<"Input Merk        : ";cin>>toko[i].merk;
cout<<"Input Harga       : ";cin>>toko[i].harga;
cout<<"Input Jumlah Beli : ";cin>>toko[i].jumbel;
}
clrscr();
cout<<"\t *** TOKO SEPATU KACA *** "<<endl;
cout<<"\t========================="<<endl<<endl;
cout<<"No. Transaksi     : "<<notrans<<endl<<endl;
for(i=1;i<=n;i++)
{
cout<<"Transaksi Penjualan Ke- "<<i<<" :"<<endl;
cout<<"Kode Sepatu       : "<<toko[i].kode<<endl;
cout<<"Merk Sepatu       : "<<toko[i].merk<<endl;
cout<<"Harga Sepatu      : "<<toko[i].harga<<endl;
cout<<"Jumlah Beli       : "<<toko[i].jumbel<<endl;
toko[i].tohar=toko[i].harga*toko[i].jumbel;
cout<<"Total Harga       : "<<toko[i].tohar<<endl;
topem=topem+toko[i].tohar;
}
cout<<"----------------------------"<<endl<<endl;
cout<<"Total Pembelian   : "<<topem<<endl;
if (topem>450000)
diskon=0.15*topem;
else if (topem>300000)
diskon=0.10*topem;
else
diskon=0;
cout<<"Diskon            : "<<diskon<<endl;
tobay=topem-diskon;
cout<<"Total Bayar       : "<<tobay<<endl;
cout<<"----------------------------"<<endl<<endl;
cout<<"Ingin Input Transaksi Lagi [Y/T] ? : ";cin>>lagi;
if(lagi=='Y'||lagi=='y')
goto atas;
else
getch();
}


v  STRUKTUR ARRAY IF
Penggunaan struktur array yaitu mengelompokkan variabel yang dijadikan array, namun dengan penambahan struktur kondisi IF.

#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
char nama[20],nim[9];
int i,n,total=0;
struct
{
 char kode[4],materi[30];
 int biaya;
} kursus[10];
printf(" PENDAFTARAN KURSUS KOMPUTER BSI \n");
printf("----------------------------------------------\n");
printf("masukkan nama siswa  : ");gets(nama);
printf("masukkan nim : ");scanf("%s",&nim);
printf("masukkan jumlah data : ");scanf("%d",&n);
printf("pilihan materi kursus \n");
printf("of1 = OFFICE (WORD ,EXCEL, POWERPOINT \n");
printf("ph1 = PHOTOSHOP \n");
for(i=1;i<=n;i++)
{
 printf("masukkan kode materi KURSUS : ");scanf("%s",&kursus[i].kode);

if (strcmp(kursus[i].kode,"of1")==0||strcmp(kursus[i].kode,"OF1")==0)
 {
  strcpy(kursus[i].materi,"microsoft OFFICE");
  kursus[i].biaya=350000;
 }
else
{
  strcpy(kursus[i].materi,"photoshop");
  kursus[i].biaya=550000;
 }
} //menutup for perulangan array
 printf("HASIL \n");
printf("=====================================\n");
printf(" NO  ||      MATERI KURSUS           ||  BIAYA       || \n");
printf("=====================================\n");
for (i=1;i<=n;i++)
{
printf(" %-4d||%-30s||Rp.%11d|| \n" , i,kursus[i].materi,kursus[i].biaya);
total=total+kursus[i].biaya;
}
printf("=====================================\n");
printf("jumlah total bayar : %10d \n",total);
getch();
}

LATIHAN STRUCT ARRAY IF  !!!

ö RANCANGAN MASUKAN                             RANCANGAN KELUARAN


SALON KECANTIKAN
“BE A WOMAN”
========================
                                               
MASUKKAN NAMA CUSTOMER   : (INPUT)
INPUT JUMLAH PERAWATAN     : (INPUT)
-------------------------------------------------
INPUTAN PERAWATAN,
INPUT KODE PERAWATAN           : (INPUT)
INPUT KODE KAPSTER        : (INPUT)

 

STRUK PEMBAYARAN
“BE A WOMAN”
=============================
CUSTOMER : (TAMPIL)

RINCIAN PERAWATAN,
-------------------------------------------------------------
|NO | KAPSTER |  JENIS |  BIAYA1 | BIAYA2  | TOTAL|
-------------------------------------------------------------
  ...     ............    .......     ...........   ..........       .......
  ...     ............    .......     ...........   ..........       .......
<hasil tampil berulang sebanyak jumlah perawatan>

 ------------------------------------------------------------
TOTAL BAYAR : Rp. (TAMPIL)
*** TERIMA KASIH ***
 















KETENTUAN !
1.      Kelompokkan variabel yang dijadikan array (struct – array)


STRUCT :
-. KODE PERAWATAN
-. KODE KAPSTER
-. KAPSTER
-. JENIS PERAWATAN
-. BIAYA1
-. BIAYA2
-. TOTAL
 





2.      kode perawatan menentukan jenis perawatan dan biaya1. Gunakan if.
Kode Perawatan
Jenis Perawatan
Biaya1
LUR1
LULUR REMPAH
25.000
SPA2
SPA
55.000

3.      Kode Kapster menentukan Kapster dan Biaya2. Gunakan switch case.
Kode Kapster
Kapster
Biaya2
A
PONARI
5.000
B
GARENG
6.000

4.      Total = biaya1 + biaya2.
5.      Total bayar = jumlah dari total permasing-masing perawatan.
6.       
v STRUKTUR FUNGSI ARRAY
Penggabungan struct – array dan pembuatan fungsi.

Cot struct fungsi array:

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
void hitung (int*uts,int*uas,int*rata);
void hitung (int*uts,int*uas,int*rata)
{
*rata=(*uts+*uas)/2;
}

main()
{
   int i,n;
   struct
   {
      char nim[9];
      char nama[15];
      int a,b,c;
   } mhs[5];
   clrscr();
   cout<<”masukkan jumlah data : ”;cin>>n;
   for(i=1; i<=n; i++)
   {
      cout<<"Masukkan NIM\t\t= "; cin>>mhs[i].nim;
      cout<<"Masukkan Nama\t\t= "; cin>>mhs[i].nama;
      cout<<"Masukkan Nilai UTS\t= "; cin>>mhs[i].a;
      cout<<"Masukkan Nilai UAS\t= "; cin>>mhs[i].b;
      cout<<endl;
   }
   cout<<endl;
   cout<<"-------------------------------------------"<<endl;
   cout<<"Data ke-|  NIM   |  Nama  |UTS|UAS|Rata "<<endl;
   cout<<"-------------------------------------------"<<endl;
   for(i=1; i<=n; i++)
   {
      cout<<" "<<setiosflags(ios::left)<<setw(7)<<i;
      cout<<" "<<setiosflags(ios::left)<<setw(8)<<mhs[i].nim;
      cout<<" "<<setiosflags(ios::left)<<setw(8)<<mhs[i].nama;
      cout<<" "<<setiosflags(ios::right)<<setw(3)<<mhs[i].a;
      cout<<" "<<setiosflags(ios::right)<<setw(3)<<mhs[i].b;
      hitung(&mhs[i].a,&mhs[i].b,&mhs[i].c);
      cout<<" "<<setiosflags(ios::right)<<setw(4)<<mhs[i].c<<endl;
   }
  cout<<"-------------------------------------------"<<endl;
   getch();
}











LATIHAN STRUCT FUNGSI ARRAY !!!

o   RANCANGAN MASUKAN

Text Box: SERVICE “MOTOR ASTRO”
============================
Input Nama Kasir : <input>
Input Jumlah Data  : <input>

Transaksi ke - .....
Input no plat motor    : <input>
Input kode servis [S1/S2/S3] : <input>












o   RANCANGAN KELUARAN
Text Box: LAPORAN HARIAN PENDAPATAN SERVICE ”MOTOR ASTRO”
================================

Nama Kasir : <tampil>
---------------------------------------------------------------------
| NO | NO PLAT | JENIS SERVIS | BIAYA | PAJAK | TOTAL |
--------------------------------------------------------------------- 
 ….       ……..          …………         Rp.……   Rp...…     Rp..…...
 ….       ……..          …………         Rp.……   Rp..…      Rp.......
 <berulang sebanyak data yang diinput>
---------------------------------------------------------------------
TOTAL PENDAPATAN HARI INI : Rp.  <TAMPIL>

Mau input data lagi [Y/T] ? <INPUT>

                   
















Ketentuan soal !!!
1.      Kelompokkan variabel yang mengalami array dengan deklarasi struct array.


Noplat
kodeservis
Jenisservis
Biaya
Pajak
total
 







2.      Input No plat motor, kode servis dan cash berulang sebanyak jumlah data yang diinput.
3.      Kode Servis menentukan Jenis servis dan biaya servis (gunakan struktur switch case).
Kode servis
Jenis Servis
Biaya Servis
A
Servis – ganti oli
Rp. 90000
B
Servis – ganti spare part
Rp. 150000
C
Servis – wash
Rp. 70000





4.      Gunakan pembuatan fungsi untuk pembuatan rumus :
·         pajak diberikan 10 % dari biaya servis.
·         total didapat dari biaya + pajak.
5.      total pendapatan didapat dari jumlah dari keseluruhan total.
6.      input data lagi, jika jawab Y maka input jumlah data lagi. Jika jawab T maka selesai dari program.


Tidak ada komentar: