Jumat, 06 Januari 2017

STRUCT Dalam C++

Definisi Struktur (struct) 


sendiri adalah kumpulan dari variabel yang dinyatakan dengan sebuah nama , dengan sifat setiap variabel dapat memiliki tipe yang berlainan.
Dalam pemrograman C++, jika kita membuat suatu program yang memerlukan berbagai tipe data yang akan digunakan. Tentunya dengan nama variable yang banyak pula. Dalam program yang sederhana, jika kita manggunakan sedikit variable tentu tidak jadi masalah. Akan tetapi jika kita akan membuat sebuah program yang lebih kompleks, dengan berbagai macam nama dan tipe variable dalam pendeklarasianya. Dengan struct, kita bisa mengelompokkan berbagai nama dan tipe variable tersebut sesuai dengan kelompoknya. Hal ini tentunya bisa berguna untuk memudahkan dalam mengelompokkan sebuah variable. Sebagai contoh umum, ada terdapat berbagai nama variable : nama, npm, alamat, dll. Variabel – variable tersebut dapat kita kelompokkan menjadi satu dengan nama data_mahasiswa. Kemudian jika terdapat variable mata_kuliah, nilai, sks, kelas, dll dapat kita kelompokkan menjadi satu dengan nama krs. Itulah sebagian gambaran umum tentang struct. Masih bingung karena bahasa yang terlalu beribet? Klo gitu, Langsung saja ke teori. Okey..
Dalam mendeklarasikan struct, ada beberapa cara penulisan yang biasa digunakan.
Pertama :
struct nama_struct {
tipe_data_1 nama_var_1;
tipe_data_2 nama_var_2;
tipe_data_3 nama_var_3;
……
};

Yang kedua adalah dengan deklarasi menggunakan typedef.
typedef struct {
tipe_data_1 nama_var_1;
.
.
tipe_data_n nama_var_n;
} nama_struct;
Kemudian untuk mendeklarasikan sebuah variable dengan tipe data struct yang telah dibuat sebelumnya adalah :

struct tipe_struct nama_variabel;
Jika pendeklarasian struct sebelumnya menggunakan typedef, maka untuk mendeklarasikan sebuah variable dengan tipe data struct adalah :

tipe_struct nama_variabel;
Dan untuk mengakses sebuah struct adalah dengan menggunakan operator titik (.)
nama_var_struct . nama_var_elemen;
NESTED STRUCT

Di dalam sebuah struct dapat dimungkinkan terdapat sebuah struct lagi. Jadi hal ini dapat diartikan struct di dalam struct. Hampir mirip nested loop, yaitu for di dalam for.
Contoh :

struct tanggal {
int hari;
int bulan;
int tahun;
};
struct karyawan {
char NIP [10];
char nama [20];
struct tanggal tgl_masuk;
float gaji;
};

STRUCT OF ARRAY
Sebuah struct yang di dalamnya tedapat variable dengan tipe data array.
Contoh :

struct data {
char nama[20];
char alamat[100];
};

ARRAY OF STRUCT
Sebuah array yang setiap data elemennya bertipe struct. Umumnya dipakai untuk menyimpan object data yang terstruktur, misal: data mahasiswa, karyawan, buku, barang, dsb.
Contoh :

typedef struct {
char npm [10];
char nama [20];
char alamat [30];
unsigned angkatan;
float ipk;
} mahasiswa ;
mahasiswa data[100];
// deklarasi var, menyiapkan 100 data dengan tipe data mahasiswa (struct yang telah dibuat sebelumnya).

CONTOH PROGRAM

Program untuk memasukkan data mahasiswa.
Source code :

#include “stdio.h”
#include “string.h”
#include “conio.h”
typedef struct {
char npm [10];
char nama [20];
char alamat [30];
int angkatan;
float ipk;
} mhs ;
void main()
{
mhs student[100];
char lagi = ‘y’; int i;
for( i = 0; lagi == ‘y’; i++)
{
printf(“nNPM = “); gets(student[i].npm);
printf(“Nama = “); gets(student[i].nama);
printf(“Alamat = “); gets(student[i].alamat);
printf(“Angkatan = “); scanf(“%i”, &student[i].angkatan);
printf(“IPK = “); scanf(“%f”, &student[i].ipk);
printf(“nMasukkan Lagi (y/t) ? “); lagi = getche(); flushall();
}
printf(“nnData yang sudah dimasukkan adalah:n”);
for( int j = 0; j < i; j++)
{
printf(“nNPM : %s”, student[j].npm);
printf(“nNama : %s”, student[j].nama);
printf(“nAlamat : %s”, student[j].alamat);
printf(“nAngkatan : %i”, student[j].angkatan);
printf(“nIPK : %f n”, student[j].ipk);
}
}


OUTPUT PROGRAM
Contoh Program

ANALISA PROGRAM

Dalam program di atas, kita mendeklarasikan sebuah struct dengan nama mhs. Dalam struct mhs, terdapat lima variable yang dideklarasikan, yaitu array npm, nama, alamat dengan tipe char, kemudian angkatan dengan tipe integer, serta ipk dengan tipe float.
Setelah mendeklarasikan sebuah struct, masuk ke fungsi main. Di dalam fungsi main, terlebih dahulu mendeklarasikan sebuah array student dengan tipe mhs dengan ukuran 100. Maksudnya kita bisa menginput sampai dengan 100 data mahasiswa ke dalam array student. Inilah yang disebut dengan array of struct seperti yang telah dijelaskan sebelumnya.
Kemudian program masuk ke dalam looping untuk memasukkan data. Maksud dari script gets(student[i].npm); adalah perintah untuk memasukkan seduah data ke array student yang mengakses variabel npm yang ada di dalam struct dengan urutan data ke i.
Looping akan berhenti jika user menginputkan karakter selain ‘y’ yang artinya keluar dari looping. Kemudian program akan menampilkan data yang sudah diinputkan.

UNION
Union memungkinkan suatu lokasi memori ditempati oleh 2 atau lebih variabel dengan tipe data berlainan. Jumlah memory yang diperlukan untuk menampung sebuah variabel union ditentukan oleh field terbesar. Jika elemen-elemen sebuah union terdiri dari data bertipe integer dan char maka memory yang dibutuhkan adalah sebesar int. Jika elemen-elemen sebuah union berupa int, float, dan char maka memory yang diperlukan adalah sebesar float.
Dalam pendeklarasian union, sama dengan cara mendeklarasikan sebuah struct. Cara mengakses union juga sama seperti struct.
Contoh :

union bil_bulat
{
unsigned int no;
unsigned char nama[2];
} ;

Sumber : https://gakpaketelor.wordpress.com/2009/03/06/struct-dalam-c/

Pengertian Fungsi dalam Pemograman C++

Fungsi / Function 



adalah satu blok kode yang melakukan tugas tertentu atau satu blok instruksi yang di eksekusi ketika dipanggil dari bagian lain dalam suatu program.
Tujuan pembuatan fungsi adalah :


  • Memudahkan dalam pembuatan program.
  • Menghemat ukuran program.
  • Keuntungan memakai fungsi :
  • Menguraikan tugas pemrograman rumit menjadi langkah-langkah yang lebih sederhana atau kecil.
  • Mengurangi duplikasi kode (kode yang sama ditulis berulang-ulang) dalam program.
  • Dapat menggunakan kode yang ditulis dalam berbagai program yang berbeda.
  • Memecah program besar menjadi kecil sehingga dapat dikerjakan oleh programmer-programmer atau dipecah menjadi beberapa tahap sehingga mempermudah pengerjaan dalam sebuah projek
  • Menyembunyikan informasi dari user sehingga mencegah adanya perbuatan iseng seperti memodifikasi atau mengubah program yang kita buat
  • Meningkatkan kemampuan pelacakan kesalahan, jika terjadi suatu kesalahan kita tinggal mencari fungsi yang bersangkutan saja dan tak perlu mencari kesalahan tersebut di seluruh program.
  • Bentuk umum Sebuah fungsi adalah sebagai berikut :
  • Tipedata namafungsi(daftarparameter)

/*Badan Fungsi*/
return nilaireturn; /* untuk tipe data bukan void */
}


Jenis-jenis fungsi pada C++
1. Void ( Fungi tanpa nilai balik )
Fungsi yang void sering disebut juga prosedur. Disebut void karena fungsi tersebut tidak mengembalikan suatu nilai keluaran yang didapat dari hasil proses fungsi tersebut.
Ciri-ciri dari jenis fungsi Void adalah sebagai berikut:
  • Tidak adanya keyword return.
  • Tidak adanya tipe data di dalam deklarasi fungsi.
  • Menggunakan keyword void.
  • Tidak dapat langsung ditampilkan hasilnya.
  • Tidak memiliki nilai kembalian fungsi

Keyword void juga digunakan jika suatu function tidak mengandung suatu parameter apapun.
Void : void tampilkan_jml (int a, int b){
int jml;
jml = a + b;
cout<<"hasil"<<jml;
getch();
 }

Contoh fungsi void :
#include <iostream.h>
#include <conio.h>
void volume(int &vol, int p, int l, int t){
vol = p*l*t; }
main(){
int pj,lb,tg, hsl;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
cout<<"Tinggi = ";cin>>tg;
volume(hsl,pj,lb,tg);
cout<<"nVolume = "<<hsl;
getch();
}
Hasilnya :



2. Non Void (Fungsi dengan nilai balik)
Fungsi non-void disebut juga function. Disebut non-void karena mengembalikan nilai kembalian yang berasal dari keluaran hasil proses function tersebut .
Ciri-ciri dari jenis fungsi non void adalah sebagai berikut:
  • Ada keyword return
  • Ada tipe data yang mengawali fungsi
  • Tidak ada keyword void
  • Memiliki nilai kembalian.
  • Dapat dianalogikan sebagai suatu variabel yang memiliki tipe data tertentu sehingga dapat langsung ditampilkan hasilnya

Non-void :
 int jumlah (int a, int b)

Contoh fungsi non void :
#include <iostream.h>
#include <conio.h>
int volume(int p, int l, int t)
{ int vol;
vol = p*l*t;
return vol; }
main(){
int pj,lb,hsl,tg;
cout<<"Panjang = ";cin>>pj;
cout<<"Lebar = ";cin>>lb;
cout<<"Tinggi = ";cin>>tg;
hsl=volume(pj,lb,tg);
cout<<"nLuasnya = "<<hsl;
getch();
}

Hasilnya :


Fungsi (Tanpa Nilai Balik, dengan Nilai Balik, Parameter)
Bahasa pemrograman C++ harus memiliki fungsi (funtion), minimal satu fungsi yaitu fungsi main(). Dalam C++, program merupakan kumpulan dari fungsi-fungsi, baik itu fungsi yang didefenisikan secara langsung dalam program maupun fungsi yang disimpan dalam suatu file header.
C++ mempunyai fungi utama yang disebut fungsi main ( ). Fungsi utama ini selalu ada dalam setiap program C++ dan compiler akan menjalankan program melalui perintah-perintah yang terdapat dalam fungsi ini.
Fungsi merupakan sub program yang berguna untuk membuat program dapat menjadi medular sehingga akan lebih mudah dipahami dan dapat digunakan kembali, baik untuk program itu sendiri maupun untuk program lain yang memiliki proses yang sama.
Pada bahasa pemrograman C++, fungsi dibedakan menjadi dua, yaitu user-defined function dan built-in function. user-defined function adalah fungsi-fungsi yang didefenisikan sendiri, sedangkan built-in function adalah fungsi-fungsi siap pakai yang telah disediakan oleh compiler.

1. Tanpa Nilai Balik
Dalam pemrograman C++ bukanlah bahasa prosedural, karena prosedur tidak mempunyai nilai balik. Untuk melakukan hal ini di dalam C++, maka harus membuat suatu fungsi dengan tipe void, yang berarti tidak memiliki nilai balik (return value). contoh:
void nama_fungsi (parameter)
{
Pernyataan_yang_akan_dilakukan;
……………
}
2. Dengan Nilai Balik
Berbeda dengan fungsi yang bertipe Void, fungsi dengan nilai balik berguna untuk melakukan suatu proses yang dapat mengembalikan sebuah nilai. Dalam fungsi ini harus didefenisikan tipe data dari nilai yang akan dikembalikan.
Sebagai contoh:
tipe_data nama_fungsi (parameter){
Pernyataan_yang_akan_dilakukan;
……………
return nilai_kembali;
}
3. Parameter
Sekarang akan dibuat fungsi dengan parameter sehingga hasil yang diberikan dapat bersifat dinamis, tentu saja bergantung dari nilai parameter yang dimasukkan.
Parameter yang terdapat pada pendefenisian suatu fungsi disebut dengan parameter formal, sedangkan parameter yang terdapat pada saat pemanggilan disebut dengan parameter aktual.
Jumlah serta tipe data antara parameter formal dan parameter aktual haruslah sesuai, jika tidak maka compiler akan menampilkan pesan kesalahan.
Ada 3 jenis parameter yang dapat dilewatkan pada sebuah fungsi dalam bahasa pemrograman C++, yaitu:

  • parameter masukan
  • parameter keluaran
  • parameter gabungan antara masukan dan keluaran.

Parameter masukan digunakan sebagai nilai masukan dalam sebuah fungsi. Nilai tersebut kemudian akan diproses oleh fungsi untuk menghasilkan sebuah nilai kembalian (return value).

Sumber : http://arsipbertuah.blogspot.co.id/2013/06/pengertian-fungsi-dalam-pemograman-c.html www.bsi.ac.id