Senin, 01 Mei 2017

Program Array Terstruktur (Modul 6)

            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.


1 komentar: