Struktur, Union, dan Enumerasi Disertai Contoh, Tugas & Latihan - TeachMeSoft

Struktur, Union, dan Enumerasi Disertai Contoh, Tugas & Latihan

Struktur, Union, dan Enumerasi Disertai Contoh, Tugas & Latihan


Materi

STRUKTUR
Struct (atau yang dikenal dengan struktur) adalah sekumpulan variabel yang masing-masing dapat berbeda tipe dan dikelompokkan ke dalam satu nama (menurut Pascal, struktur juga dikenal sebagai record). Struktur membantu mengatur data-data yang rumit, khususnya dalam program yang besar, karena struktur membiarkan sekelompok variabel diperlakukan sebagai satu unit dari pada sebagai entity yang terpisah.

Salah satu contoh struktur tradisional adalah record daftar gaji karyawan, dimana karyawan digambarkan dengan susunan lambang seperti nama, alamat, nomor jaminan sosial, gaji dan sebgainya. Beberapa dari lambang tersebut biasanya berupa struktur , nama mempunyai komponen begitu juga alamat gaji.

Struktur ini sering digunakan untuk mendefinisikan suatu record data yang disimpan di dalam file. Struktur termasuk ke dalam tipe data yang dibandingkan (derived data type), yang disusun dengan menggunakan obyek tipe lain
Contoh :
struct mhs
{
    char *nama;
    char *nim;
    int tts, tas;
    float akhir;
    char aksara;
}

Kata kunci struct menunjukkan definisi struktur, dan identitas mhs menunjukan structure tag. Dengan demikian terdapat tipe data baru bernama struct mhs, yang terdiri dari nama mahasiswa, nilai tes tengah semester, tes akhir semester, nilai akhir dan huruf aksara, yang masing-masing disebut dengan filed.

Dapat dituliskan dengan :
struct mhs x, y[100], *z;

Variabel x adalah variabel tunggal, y adalah variabel array dengan 100 lokasi memori dan z adalah variabel pointer, yang kesemuanya masing-masing berisi filed di atas. Jadi, variabel y adalah daftar nama, nilai tts, tas, akhir dan huruf aksara dari 100 mahasiswa.

Sehingga dapat ditulis:
struct mhs
{
    char *nama;
    char *nim;
    int tts, tas;
    float akhir;
    char aksara;
} x, y[100], *z;   

Inisialisasi juga dapat dilakukan dengan :
struct mhs x = {"Garfield", 80, 60, 76.8, 'A'};

Untuk mengakses anggota dari struktur digunakan salah satu dari dua operator, yaitu operator titik(.), atau operator panah (->) tergantung tipe variabel yang dideklarasikan. Jika variabel tunggal (misal x) maka digunakan operator titik, sedangkan jika variabel pointer (misal z) diguakan operator panah.
cout<< x.nama;
cout<< z->nama;


DASAR STRUKTUR
Misal ada permasalahan grafis yang melibatkan koordinat x dan y. Objek dasar yang akan dibuat struktur adalah titik koordinatnya, yang diasumsikan sebagai koordinat x dan y dan keduanya bilangan bulat.

Deklarasi dari koordinat x dan y adalah :
struct point
{
     int x;
     int y;
}

Kata kunci struct mengenalkan deklarasi struktur yang mana deklarasi list terlampir di kurung kurawal {}, nama pilihan yang disebut structure tag mengikuti kata struct.

Dekalarasi struktur yang tidak diikuti oleh variabel list tidak menyediakan tempat penyimpanan; deklarasi struktur hanya menjelaskan template atau bentuk stuktur. Kalau deklarasi di tag, tag dapat digunakan dalam definisi contoh struktur. Sebagai contoh, memberikan deklarasi point diatas.
struct point pt;

Variabel pt yang berupa struktur tipe struct point. Sebuah struktur dapat diletakan di depan dengan mengikuti difinisinya dengan daftar inisialisasi, masing-masing adalah lambang konstanta.


UNION
Sama seperti struct, union juga merupakan tipe data yang dibangkitkan, dimana anggotanya menggunakan secara bersama ruang penyimpanan memori yang sama, berbeda dengan struktur yang masing-masing variabel menempati lokasi memori yang berbeda.

Jumlah bytes yang digunakan untuk menyimpan union adalah sedikitnya cukup untuk menyimpan data terbesar yang ditangani. Tipe union umumnya digunakan untuk menangani satu, dua atau tiga variabel dengan tipe yang mirip.


 ENUMERASI
C++ menyediakan tipe data yang dapat didefinisikan oleh pemrogram disebut dengan enumerasi. Enumerasi, didefinisikan dengan menggunakan kata kunci enum, adalah sekumpulan konstanta integer yang direpresentasikan dengan identikasi tertentu.

Nilai dalam enum dimulai dari 0, dapat diubah dengan nilai lainnya dan menaik dengan penambahan 1 untuk nilai selanjutnya.
Contoh :
enum bulan {JAN, PEB, MAR, APR, MEI, JUN, JUL, AUG, SEP, OKT, NOP, DES};

Deklarasi tersebut akan menciptakan tipe baru yaitu enum bulan, yang secara otomatis menunjukan deret nilai 0 unuk JAN hingga 11 untuk DES. Nilai bulan ini dapat diubah menjadi 1 hingga 12 dengan cara :
enum bulan {JAN = 1, PEB, MAR, APR, MEI, JUN, JUL, AUG, SEP, OKT, NOP, DES};



Contoh Program


Contoh ke-1 Program struktur, jalanan dan analisis hasilnya
ALgoritma :
  1. Mulai
  2. Deklarasi struktur stok : nama, jml
  3. Masukan stok.nama
  4. Masukkan sto.jml
  5. Tampilan stok.nama
  6. Tampilkan stok.jml
  7. Selesai
Source code :
#include <iostream>

using namespace std;

struct stok{
char nama [50];
int jml;
}stoks;

main(){
cout<<" Masukan nama barang = "; cin>>stoks.nama;
cout<<" Masukan jumlah barang = "; cin>>stoks.jml;
cout<<"----------------------------------\n";
cout<<"Informasi "<<stoks.nama<<" = "<<stoks.jml<<endl;

}
Running program :
Running program struct C++


Contoh ke-2  Program struct yang dimodifikasi dari latihan 1, jalankan dan analisis hasinya
Source code :
#include <iostream>

using namespace std;

struct stok{
char nama [50];
int jml;
};

struct stok stoks; //perubahan disini

main(){
cout<<" Masukan nama barang = "; cin>>stoks.nama;
cout<<" Masukan jumlah barang = "; cin>>stoks.jml;
cout<<"----------------------------------\n";
cout<<"Informasi "<<stoks.nama<<" = "<<stoks.jml<<endl;

}

Running program :
program struct yang dimodifikasi dari latihan 1


Contoh ke-3 Program untuk mengakses stuct berikut, jalankan dan analisis hasilnya
Source code :
#include <iostream>

using namespace std;

struct data_tgl{
int tgl, bln, thn;
};

struct teman{
char nama[20];
char j_kel[1];
struct data_tgl tgl;
};

struct teman info;

main(){
cout<<" Masukan nama = "; cin>>info.nama;
cout<<" Masukan jumlah kel = "; cin>>info. j_kel;
cout<<" Masukan tanggal = "; cin>>info.tgl.tgl;
cout<<" Masukan bulan = "; cin>>info. tgl.bln;
cout<<" Masukan tahun = "; cin>>info. tgl.thn;
cout<<"----------------------------------\n";
cout<<"Informasi "<<endl;
cout<<"Nama = "<<info.nama<<endl;
cout<<"Jml kel = "<<info. j_kel<<endl;
cout<<"Tgl lahir = "<<info.tgl.tgl<<"-"<<info.tgl.bln<<"-"<<info.tgl.thn<<endl;

}


Running program :
Latihan 3. Cobalah program untuk mengakses stuct berikut, jalankan dan analisis hasilnya.


Contoh ke-4 Program untuk mengakses stuct dan enum berikut, jalankan dan anlisis hasilnya
Source code :
#include <iostream>

using namespace std;

enum j_kel(pria, wanita);

int main();

struct siswa {
int nis;
char nama[20];
j_kel kelamin;
}A;

//INPUT DATA
A.nis = 5014;
A.nama = "Naruto";
A.kelamin = pria;

//OUTPUT
{
cout<<"\nNIS = "<<A.nis<<endl;
cout<<"Nama + "<<A.nam;
cout<<"\nJenis kelamin = "<<A.kelamin;
}
Running program :



Contoh ke-5 Program enum
Source code :
#include <iostream>

using namespace std;

enum bulan{JAN=1, PEB, MAR, APR, MEI, JUN, JUL, AGU,SEP, OKT, NOP,DES};

main(){
enum bulan Bulan;
char *namaBulan[]=
{ "","Januari", "Pebruari", "Maret", "April", "Mei", "Juni", "Juli",
"Agustus", "September", "Oktober","Nopember", "Desember"
};

for (int Bulan=JAN; Bulan<=12; Bulan ++){
cout<<"Bulan ke-"<<Bulan<<" "<<namaBulan[Bulan]<<endl;}
}
Running program :
Running program enum dan C++, menampilkan bulan




Tugas

  1. Diketahui deklarasi tipe data struktur sebagai berikut :
    struct
    {
        float jari;
        float keliling;
        float luas;
    } lingkaran;
    Buatlah algoritma dan program untuk menghitung luas dan keliling lingkaran dengan deklarasi tersebut.
  2. Buatlah algoritma dan program struktur untuk menghitung luas dan keliling segitiga.
  3. Buatlah algoritma dan struktur untuk identifikasi KTM masing-masing
  4. Buatlah algoritma dan program struktur untuk database penjualan terdiri atas :
    1. Kode barang
    2. Nama barng
    3. Jumlah barang
    4. Harag Barang
    5. Tanggal pembelian
    6. Discont
  5. Buat sebuah program untuk menghitung gaji harian pegawai, bila diketaui ketentuan sebagai berikut :
    1. Gaji per jam = 500
    2. Bila jumlah jam kerja hari itu > 7 jam, maka kelebihannya dihitung lembur yang besarnya 15 x gaji per jam.
    3. Input : Jumlah jam kerja
    4. Output : Gaji harian pengawai
    5. Tentukan sendiri variabel-variabel yang dibutuhkan pada program ini.


Jawaban


Pending




Disqus comments