Assalamu’alaikum
Wr, Wb, oke pada kesempatan kali ini saya akan membahas sebuah program yang
sama pada postingan sebelumnya tapi agakberbeda dengan postingan sekarang yaitu
array struktur, struktur ini biasanya banyak digunakan pada program menampilkan
struk kasir, struk bbm dan semacamnya.
Contoh pendeklarasian Struktur
Struct mahasiswa
{
Char nama[25];
Char nim[10];
Char jurusan[2];
Float ipk;
}mhs;
Disini saya mempunyai beberapa contoh
program struktur oke langsung saja tanpa berlama – lama kita masuk kecontoh pertama
Script Study Kasus
Praktikum 6.1
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
struct movies_t {
char title
[50];
int year;
} mine, yours;
void printmovie (movies_t movie);
int main()
{
char buffer
[50];
strcpy
(mine.title, "2001 A space Odyssey");
mine.year =
1968;
cout<<"Masukan judul film favorit:
";
cin.getline
(yours.title,50);
cout<<"Masukan tahun:";
cin.getline
(buffer,50);
yours.year =
atoi (buffer);
cout<<"Judul film favorit yang
ada:\n";
printmovie
(mine);
cout<<"Judul film favorit kamu
adalah:\n";
printmovie
(yours);
return 0;
}
void printmovie (movies_t movie)
{
cout<<movie.title;
cout<<"("<<movie.year<<")\n";
getch();
}
Hasil Running :
Pembahasan
Dalam
Program tersebut perupakan sebuah program menampilkan judul film favorit yang
ada dan judul film favorit user. Pertama – tam kita inputkan judul film favorit
kita dan juga tahun terbitnya. Dalam program tersebut menggunakan function
dimana daftar parameternya yaitu nama structnya dan variable pengganti
printmovie( movie_t movie)
untuk movie ini merupakan fariable pengganti dari mine
dan your, jadi nanti saat pemanggila function hanya perlu memanggil nama
fuctionnya dan daftar parameter nya
contohnya printmovie (mine);
jadi mine itu merupakan daftar parameter dari function
dan sekaligus nama object struct, jadi yang akan keluar outputnya yaitu
strcpy (mine.title, "2001 A space Odyssey");
mine.year = 1968;
karena dalam script tersebut menggunakan nama object
mine, maka variable mine itu akan masuk dan di gantikan ke dalam variable yang
terdapat dalam function yaitu movie, dan untuk memanggilnya kembali daftar
parameternya di ganti dengan mine saja seperti di atas, maka output yg akan keluar itu 2001 A space Odyssey (1968)
sedangkan untuk printmovie (your); kita nanti akan
menginputkan data menggunakan nama object struct your, setelah menginputkan datanya maka data yang di dalam nama
object struct your itu akan masuk ke variable movie yang terdapat di function. Sama
seperti mine, dan untuk memanggil outpunya, panggil function dengan dengan
daftar parameter your bukan mine jadi your punya output sendiri dan
mine juga mempunyai output tersendiri. Dan untuk mengakses struct itu dengan
cara “nama_object_struct.variable”
Script Study Kasus
Praktikum 6.2
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#define MAKS 20
main()
{
struct
data_tanggal
{ int tanggal;
int bulan;
int tahun;
};
struct
data_rekan
{ char
nama[21];
struct
data_tanggal tgl_lahir;
};
struct
data_rekan info_rekan[MAKS];
char tombol;
int i,
jum_rekan = 0;
puts("Data
rekan-rekan :\n");
do
{
printf("Nama :");
gets(info_rekan[jum_rekan].nama);
printf("tanggal lahir (xx-xx-xxxx):");
scanf("%d-%d-%d",&info_rekan[jum_rekan].tgl_lahir.tanggal,
&info_rekan[jum_rekan].tgl_lahir.bulan,&info_rekan[jum_rekan].tgl_lahir.tahun);
fflush(stdin);
jum_rekan++;
printf("\nMau memasukan lagi (Y/T)?");
tombol=
toupper(getch());
while
(!(tombol=='T' || tombol=='Y'))
tombol=toupper(getch());
printf("%c\n\n",tombol);
}
while
(tombol=='Y');
puts("\nData rekan : NAMA-TANGGAL LAHIR\n");
for(i=0;
i<jum_rekan; i++)
{
printf("%-20s %d-%d-%d\n", info_rekan[i].nama,
info_rekan[i].tgl_lahir.tanggal,
info_rekan[i].tgl_lahir.bulan,
info_rekan[i].tgl_lahir.tahun);
}
getch();
}
Hasil Running
Pembahasan
Program
diatas merupakan sebuah program yang menampilkan info renakn seperti nama dan
tanggal lahir, dan dalam program tersebut menggunakan struct. Untuk mengakses
struct yaitu nama_object_struct.variable_didalam struct. Dalam program tersebut
terdapat array dalam struct jadi jika terdapat array maka terdapat pengulangan,
dan disini menggunakan pengulangan do while.
Pertama
– tama masukan nama, dan nama tersebut menggunakan variable yang terdapat di
dalam struct data_rekan maka untuk mengaksesnya nama object struk.variable
gets(info_rekan[jum_rekan].nama);
setelah itu masukan tanggal lahir, dalam penginputan
tanggal lahir terdapat 3 penginputan yaitu tanggal, bula tahun dan variable itu
terdapat dalam struct juga, jadi dalam penginputan itu terdapat 3 variable.
scanf("%d-%d-%d",&info_rekan[jum_rekan].tgl_lahir.tanggal,
&info_rekan[jum_rekan].tgl_lahir.bulan,&info_rekan[jum_rekan].tgl_lahir.tahun);
nah di atas itu merupakan script 3 kali penginputan
karena terdapat 3 &, yang pertama info_rekan[jum_rekan].tgl_lahir.tanggal
itu menginputkan tanggal, untuk & yang ke 2 menginputkan bulan, dan untuk
& yang ke 3 menginputkan tahun. Scrip di atas terdapat 2 nama object struct
yaitu info_rekan[jum_rekan].tgl_lahir mengapa 2 karena nama object tgl_lahir
itu terdapat dalam struct info_rekan maka struct info rekan dan tgl_lahir
saling bersangkutan atau menyatu, maka jika akan melakukan input tanggal bulan
dan tahun maka nama object info rekan dibawa. Dan untuk [ jum_rekan] adalah
sebuah elemen array dimana jum_rekan pertama bernilai 0 dan jika kita
menginputkan : Y maka jum_rekan ini akan bertambah 1 karena script jum_rekan++;
tetapi jika kita menginput T maka jum_rekan tidak akan bertambah.
Setelah
itu untuk outpuntnya sama seperti diatas yaitu beri nama object struct.variable.
dan gunakan pengulangan karena saat awal penginputan menggunakan perulangan.
for(i=0;
i<jum_rekan; i++)
{
printf("%-20s %d-%d-%d\n", info_rekan[i].nama,
info_rekan[i].tgl_lahir.tanggal,
info_rekan[i].tgl_lahir.bulan,
info_rekan[i].tgl_lahir.tahun);
}
Script Study Kasus
Latihan 6.1
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
main()
{
struct
{
char nama[50];
char alamat[100];
int no_hp;
char ortu[50];
char pekerjaan[50];
char lulusan[50];
}
mahasiswa; //nama_object_struct
clrscr();
printf("Masukan Nama=");
scanf("%s",&mahasiswa.nama);
cout<<"Masukan Alamat ="; cin>>mahasiswa.alamat;
printf("Masukan Nomor HP = "); scanf("%d",&mahasiswa.no_hp);
cout<<"Masukan Nama Orang Tua = "; cin>>mahasiswa.ortu;
printf("Masukan Pekerjaan Orang Tua = "); scanf("%s",&mahasiswa.pekerjaan);
cout<<"Masukan Pendidikan Orang Tua = "; cin>>mahasiswa.lulusan;
cout<<"\n\n Data Yang di Masukan Adalah : \n\n";
printf("Nama = %s",mahasiswa.nama);
printf("Alamat = %s",mahasiswa.alamat);
printf("Nomor HP = %d",mahasiswa.no_hp);
cout<<"Nama Orang Tua = "<<mahasiswa.ortu<<endl;
cout<<"Pekerjaan Orang Tua = "<<mahasiswa.pekerjaan<<endl;
cout<<"Pendidikan Terakhir = "<<mahasiswa.lulusan<<endl;
getch();
return 0;
}
Hasil Running:
Pembahasan
Program
diatas merupakan sebuah program menggunakan struct dan program ini bisa
dibilang program penginputan data mahasiswa. Untuk membuat program ini
memerlukan nama, alamat, nomor hp, nama ortu, pekerjaan ortu, dan pendidikan
ortu, jadi terdapat 6 variable yang akan di gunakan, untuk variablenya bebas
asalkan mencerikan inputnya, dan variable tersebut terdapat didalam struct maka
untuk mengakses struct tersebut yaitu :
Nama_object_struct.variable
Jadi untuk menginputkan nama harus scanf("%s",&mahasiswa.nama);, untuk pengaksesan
input dan output sama saja yaitu Nama_object_struct.variable,
tetapi beda script pada input cin dan scanf ataupun output cout dan printf,
file – file tersebut memiliki script penulisan tersendiri (bisa liat discript)
Dan untuk
mengoutput karakter atau nilainya tinggal panggil nama_object.variable jadi
Printf(“ %s “,mahasiswa.nama);
Untuk pinginputan variablenya sama saja dengan input
nama tetapi beda variablenya. Dan outputnya pun sama seperti output nama,
tetapi berbeda variablnya.
Nah
itulah beberapa program array dalam struct dan juga pembahasan yang dapat saya
sharing, semoga ilmu yang saya bagikan dapat bermanfaat pagi kalian semua para
pembaca, mungkin sampai disini dulu sharing tentang pemrograman khususnya
program array dalam struct yang bisa saya posting. Dan Jangan lupa ya jika
kalian mempunyai kritik dan saran silahkan tambahkan pada kolom komentar.
Terima kasih atas kunjungan kalian.



sudah diperiksa
BalasHapus