Anda di halaman 1dari 31

Modul 6 Struct

MODUL VI
STRUCT

6.1 Tujuan
1. Mahasiswa dapat memahami definisi dan kegunaan struct
2. Mahasiswa dapat mengetahui bagaimana mengimplementasikan struct dalam
program.

6.2 Dasar Teori


Suatu struktur adalah pengelompokan dari variabel-variabel yang bernaung
dalam satu nama yang sama. Berbeda dengan suatu larik yang berfungsi dengan
kumpulan elemen-elemen larik bertipe sama dalam satu nama, suatu struktur dapat
terdiri dari kumpulan variabel-variabel yang berbeda tipenya dalam dama satu nama.
Variabel-variabel yang membentuk suatu struktur ini selanjutnya di sebut dengan
elemen atau anggota struktur. Dengan demikian suatu struktur di mungkinkan dapat
berisi dengan elemen-elemen data bertipe int,float,char dan lainya.
6.2.1 Deklarasi Struktur
Struck digunakan apabila data yang ingin dikelompokkan memiliki tipe
data yang berbeda. Bentuk umum dari pendeklarasian struct adalah sebagai
berikut:
Typedef struct
{
Tipe_data_1 variabel_1;
Tipe_data_1 variabel_2;
Tipe_data_n_variabel_n;
}nama_struct;

Sebuah variabel harus dideklarasikan menggunakan nama strucknya.


Bentuk umum pendeklarasian variabel strucknya adalah sebagai berikut:
Nama_struct variabel_1,variabel_2,……,variabel_n;

Praktikum algoritma dan pemrograman 2019 Modul VI – 1


Modul 6 Struct

Selain deklarasi variabelnya ada hal yang harus diperhatikan juga yaitu
cara untuk mengisi dan memanggil nilai yang ada di dalam sebuah struct. Cara
pengisian dan pemanggilan nilainya adalah sebagai berikut:
//untuk pengisian nilai
Variabel_struct.field_struct=nilai;
//untuk pemanggilan nilai
Gunakan perintah printf atau cout lalu gunakan format
variabel_struck.field_struck
Untuk memanggil nilainya

sebagai contoh untuk mengisi nilai dan memanggil nilainya pada struct
sebagai berikut:
//untuk mengisi nilai
Dosen1.nip=41277006024;
Dosen1.nama=”Adam mukharil b”
Dosen1.alamat=”bandung”;
Atau
Scanf(“%1i”,&dosen1.nip);
Scanf(%1i”,&dosen1.nama);
Scanf(%1i”,&dosen1.alamat);

//untuk memanggil nilai


Printf(“%1i\n”,dosen1.nip);
Printf(“%1i\n”,dosen1.nama);
Printf(“%1i\n”,dose1.alamat);

6.2.2 Cara Mengakses Anggota Struktur


Bila struktur dideklarasikan sebagai sebuah variable biasa, maka cara
pengaksesan anggota struktur menggunakan tanda titik (.). Bila struktur
dideklarasikan sebagai sebuah variabel pointer, maka cara pengaksesan
anggota struktur menggunakan tanda (->). Bila struktur dideklarasikan
sebagai pointer sebagai array, maka cara pengaksesan anggota struktur
menggunakan tanda titik (.)
6.2.3 Cara Mengakses Anggota Struktur dengan array, pointer, fungsi
6.2.3.1 Struktur dalam array
Pada subbab sebelumnya telah dipelajaribagaimana cara untuk
mendeklarasikan sebuah variabel dengan tipe dara struct yang telah
dibuat. Tapimdari cara pendeklarasian tersebuat timbul suatu
permasalahn yaitu bagaimana kalau deklarasi variabel struct-nya sangat
banyak? Permasalahn tersebut dapat dipecahkan dengan cara

Praktikum algoritma dan pemrograman 2019 Modul VI – 2


Modul 6 Struct

mendeklarasikan variabel structnya menggunakan variabel array. Cara


seperti itu sering disebut sebagai array of struct.
Contoh kasusnya adalah sebuah struct yang menampung 100 data dosen.
Untuk memecahkan masalahnya buatlah struct data_dosen yang nantinya akan
digunakan untuk mendeklarasikan variabel dosen yang bertipe array.
Untuk lebih jelasnya buatlah program berikut ini:
#include <stdio.h>
#include <stdlib.h>

#define maks 100 //maksimal array

Typedef struct
{
Long int nip;
Char nama[31];
Char alamat[51];
}data_dosen;

Data_dosen dosen[maks];//array of struct

Int main(int argc, char *argv[])


{
Int I,j;
Printf(“Berapa data dosen? “);scanf(“%i,&j);
Printf(“\n”);
For(i=0;i<j;i++)
{
Printf(“data dosen ke-%i\n”,i+1);
Printf(“----------------\n”);
Printf(“NIP : “);scanf(“%1i”,&dosen[i].nip);
Printf(“Nama : “);fflush(stdin);
Gets(dosen[i].nama);
Printf(“Alamat : “);fflush(stdin);
Gets(dosen[i].alamat);
Printf(“\n\n”);
}
For(i=0;i<j;i++)
{
Printf(“data dosen ke-%i\n”,i+1);
Printf(“------------------\n”);
Printf(“NIP = %1i\n”,dosen[i].nip);
Printf(“Nama = %s\n”,dosen[i].nama);
Printf(“Alamat = %s\n”,dosen[i].alamat);
Printf(“\n\n”);
}
System(“PAUSE”);
Retun 0;
}

Praktikum algoritma dan pemrograman 2019 Modul VI – 3


Modul 6 Struct

6.2.3.2. Struktur dalam Fungsi.


Suatu struktur juga dapat digunakan untuk argumen/parameter suatu fungsi
(function).

Gambar 6.1 struktur dalam fungsi

6.2.3.3 Struktur dalam Pointer.

Gambar 6.2 struktur dalam pointer

Praktikum algoritma dan pemrograman 2019 Modul VI – 4


Modul 6 Struct

6.2.4 Struct Bersarang


Nesting Structures adalah data structure di dalam data structure, dengan
cara penggunaan tipe structure yang telah dideklarasikan sebelumnya menjadi
bagian dari anggota data structure lain.
Contoh penulisan :

struct anak{
string nama;
int umur;
};
struct siswa{
anak anak; //nesting
int noInduk;
float niaiUjian;
};

6.2.5 Deklarasi struct dengan menggunakan typedef


Typedef adalah perintah atau keyword bahasa C yang dipakai untuk
memberikan nama lain atau alias dari tipe data.
6.2.5.1 Cara Penggunaan Typedef Struct
Salah satu penggunaan typedef yang banyak dipakai adalah ketika di
kombinasikan dengan struct. Tujuannya juga sama yakni mempersingkat
penulisan.
Sebagai contoh awal, berikut kode program dengan tipe data struct tanpa
typedef :
#include <stdio.h>

struct Siswa {
char nama[50];
char sekolah[50];
unsigned int uangSaku;
};

int main(void)
{
struct Siswa siswa01;

strcpy(siswa01.nama, "Andri Wahyudi");


strcpy(siswa01.sekolah, "SMA 1 Bayan");
siswa01.uangSaku = 10000;

printf("%s bersekolah di %s ", siswa01.nama, siswa01.sekolah);


printf("dengan uang saku %i per hari\n", siswa01.uangSaku);

Praktikum algoritma dan pemrograman 2019 Modul VI – 5


Modul 6 Struct

return 0;
}

Hasil Kode Program:

Praktikum algoritma dan pemrograman 2019 Modul VI – 6


Modul 6 Struct

6.3 JOBSHEET

1 Ubahlah #include <stdio.h> #include <iostream> Untuk mendeklarasi


program using namespace std; struct biasa {
struct biasa { int x;
disamping int x; struct nomor { int y;
untuk int y; int angkatan, nim, umur; int z;
menampilkan int z; }; dengan cara mengisi
nilai x= }; int main (){
int main (){
angkatan, dan int main (){ struct nomor data = {18, 10,
struct biasa data =
y= 3 angka {18, 10, 18};
struct biasa data = 18};
terakhir NIM {18, 10, 18}; dan nilai akan ditampilkan
anda dan z= cout << "angkatan = " << pada output dan %d akan
umur anda. printf ("x = %d\n", data.angkatan << endl; medeklarasikan int pada
data.x); cout << "nim = " << data.nim masing masing variabel
printf ("y = %d\n", << endl;
data.y); cout << "umur = " <<
printf ("z = %d", data.umur;
data.z); }
}
2 Ubahlah #include <stdio.h> #include <iostream> Menampilkan perintah
program using namespace std;
output ("Tanggal
struct ttl {
disamping int tgl, bln, thn; struct nomor { lahir”) di hasil running
untuk }; int tgl, bln, thn; dengan menampilkan hasil
menampilkan }; struct ttl tanggal =
tanggal, bulan, int main (){ {31, 12, 1999}; sesuai
struct ttl tanggal = int main (){ variabel
dan tahun lahir {31, 12, 1999}; struct nomor tanggal = {31,
anda. struct ttl {
printf ("Tanggal lahir 12, 1999}; int tgl, bln, thn;
= %d/%d/%d", tanggal.tgl, };
tanggal.bln, tanggal.thn); cout << "Tanggal lahir = " <<

Praktikum algoritma dan pemrograman 2019 Modul VI – 7


Modul 6 Struct

} tanggal.tgl << "/" << tanggal.bln <<


"/" << tanggal.thn;
}
3 Ubahlah #include <stdio.h> #include <iostream> Dengan mengisi nilai dari
program using namespace std; struct umr_tgl {
struct umr_tgl { int umur, tgl, bln,
disamping int umur, tgl, bln, struct nomor { thn;
untuk thn; int tgl, bln, thn, umur;
}; dengan nilai struct
menampilkan }; };
umr_tgl data = {18,
tanggal, bulan, 31, 12,1999};
int main(){ int main (){
dan tahun lahir struct umr_tgl data = struct nomor tanggal = {31, Menampilkan seluruh nilai
beserta umur {18, 31, 12, 1999}; 12, 1999, 18}; tersebut dengan umur
anda. menggunakan baris baru
printf ("Tanggal lahir cout << "Tanggal lahir = " << setelah ditampilkan
= %d/%d/%d", data.tgl, tanggal.tgl << "/" << tanggal.bln <<
data.bln, data.thn); "/" << tanggal.thn; menggunakan \nUmur.
printf ("\nUmur = %d", cout << endl << "Umur = " <<
data.umur); tanggal.umur;
}
}
4 Ubahlah #include <stdio.h> #include <iostream> Menampilkan spefikasi
program using namespace std; laptop dengan
struct laptop {
disamping char merk [20]; struct laptop { menggunakan tipe data char
untuk char tipe [20]; char merk [20]; dengan contoh char merk
menampilkan char vga [20]; char tipe [20]; [20]; sebagai variabel
spesifikasi int harga; char vga [20]; yang dideklarasi dengan
char pemilik[20]; int harga;
laptop yang }; char pemilik[20]; mengisi struct laptop
anda miliki, }; data = {"Thosiba",
meliputi merek, int main (){ "Unknow", "Unknow",
4500000, "Andri"};
tipe, VGA, dan struct laptop data = int main (){
harga laptop. {"Thosiba", "Unknow", struct laptop data =
"unknow", 4500000, "Andri"}; {"Thosiba", "Unknow", "Unknow", menampilkan output
Tampilkan juga printf ("Spesifikasi 4500000, "Andri"}; printf ("\n-Merk
nama anda = %s", data.merk);

Praktikum algoritma dan pemrograman 2019 Modul VI – 8


Modul 6 Struct

sebagai pemilik laptop:\n"); Dengan %s sebagai


laptop. printf ("\n-Merk = cout << "Spesifikasi
%s", data.merk); laptop:\n"; deklarasi untuk tipe data
printf ("\n-Tipe = cout << "-Merk\t = " <<
%s", data.tipe); data.merk << endl; char
printf ("\n-VGA = cout << "-Tipe\t = " << Dan hasil runnging
%s", data.vga); data.tipe << endl;
printf ("\n-Harga = cout << "-VGA\t = " << menampilkan nilai data dari
Rp.%d", data.harga); data.vga << endl; {
printf ("\n-Pemilik = cout << "-Harga\t = Rp." << char merk [20];
%s", data.pemilik); data.harga << endl; char tipe [20];
} cout << "-Pemilik = " << char vga [20];
data.pemilik << endl; int harga;
} char pemilik[20];
};
5 Ubahlah #include <stdio.h> #include <iostream> <string.h> akan
program #include <string.h> #include <string.h>
menampilkan char yang
struct nim_ganjil{ using namespace std;
disamping char nama[50], nim banyak dengan sekaligus
untuk [20]; struct nim_ganjil{ seperti char nama[50],
menampilkan }wili, deki, ana, ajis, char nama[50], nim [20]; nim [20];
anggota andri; }wili, deki, ana, ajis, andri; }wili,deki,ana,ajis,
kelompok anda. andri; dengan itu akan
int main(){ int main(){ dideklarasikan dan menuju
NIM ganjil strcpy (wili.nama, strcpy (wili.nama, "wilitama
menampilkan 4 "Wili Tama Tantosa"); tantosa”); fungsi utama dengan
anggota strcpy (wili.nim, strcpy (wili.nim, mengisi data dilanjutkan
kelompok, dan "F1B118062"); "F1B118062"); dengan stcpy akan
strcpy (deki.nama, strcpy (deki.nama, "nama, mengcopy isi variabel yang
NIM genap "Decky Ardhyanwipa J"); Decky Ardhyanwipa J ");
akan strcpy (deki.nim, strcpy (deki.nim,
satu ke variabel lain
menampilkan 5 "F1B118019"); "F1B118019"); Dan ditampilkam masing
anggota strcpy (ana.nama, "Sri strcpy (ana.nama, "Sri dewi masing Nama dan NIM
kelompok, Dewi Yuliana Atmaja "); yuliana"); menggunakan ouput dengan
strcpy (ana.nim, strcpy (ana.nim, "F1B118024"); %s yang menunjukkan char
dengan nama "F1B118024"); strcpy (ajis.nama, "mohamad
anda diurutan strcpy (ajis.nama, abdul ajis"); sebagai tipe data yang

Praktikum algoritma dan pemrograman 2019 Modul VI – 9


Modul 6 Struct

pertama. "mohamad abdul ajis"); strcpy (ajis.nim, digunakan


strcpy (ajis.nim, "F1B118011");
"F1B118011"); strcpy (andri.nama, "Andri
strcpy (andri.nama, Wahyudi");
"Andri Wahyudi"); strcpy (andri.nim,
strcpy (andri.nim, "F1B118010");
"F1B118010");
cout << "Nama \t= " <<
printf ("Nama\t= andri.nama << endl;
%s\n", andri.nama); cout << "NIM \t= " <<andri.nim
printf ("NIM\t= %s\n", << endl;
andri.nim); cout << "Nama \t= " <<
printf ("Nama\t= wili.nama << endl;
%s\n", wili.nama); cout << "NIM \t= " <<wili.nim
printf ("NIM\t= %s\n", << endl;
wili.nim); cout << "Nama \t= " <<
printf ("Nama\t= deki.nama << endl;
%s\n", deki.nama); cout << "NIM \t= " <<deki.nim
printf ("NIM\t= %s\n", << endl;
deki.nim); cout << "Nama \t= " <<
printf ("Nama\t= ana.nama << endl;
%s\n", ajis.nama); cout << "NIM \t= " <<ana.nim
printf ("NIM\t= %s\n", << endl;
ajis.nim); cout << "Nama \t= " <<
printf ("Nama\t= ajis.nama << endl;
%s\n", ana.nama); cout << "NIM \t= " <<ajis.nim
printf ("NIM\t= %s\n", << endl;
ana.nim);
}
}
6 Buatlah #include <stdio.h> #include <iostream> Program ini digunakan untuk
program untuk #include <conio.h> #include <conio.h> menampilkan data dengan
struct nim_ganjil{ using namespace std;
memasukkan char nama[50], nim menggunakan tipe data char
nama dan NIM [20], no_hp [20]; struct iya_gan{ dan juga tipe data for dalam
dan kontak }data[5]; char nama [50], nim [20], perulangannya.
anggota no_hp [20];

Praktikum algoritma dan pemrograman 2019 Modul VI – 10


Modul 6 Struct

kelompok anda. int main (){ }data [5];


NIM ganjil int i;
for (i = 0; i < 5; main (){
menampilkan 4 i++){ for (int i = 0; i < 5; i++){
anggota printf cout << "=======MASUKKAN
kelompok dan ("====Masukkan Data DATA ANDA=======" << endl;
NIM genap Anda====\n"); cout << "Nama = ";
printf ("Nama gets (data[i].nama);
akan \t= "); cout << "NIM = ";
menampilkan 5 gets (data[i].nim);
anggota gets(data[i].nama); cout << "No.HP = ";
kelompok printf ("NIM \t= gets (data[i].no_hp);
dengan nama "); }
gets cout << endl;
anda diurutan (data[i].nim); cout << "DATA YANG SUDAH
pertama. printf ("No. HP DIMASUKKAN\n";
\t= "); for (int i = 0; i < 5; i++){
gets cout << data[i].nama <<
(data[i].no_hp); " ";
} cout << "(" <<
printf ("\nData - data data[i].nim << ") ";
yang telah dimasukkan\n"); cout << data[i].no_hp;
for (i = 0; i < 5; cout << endl;
i++){ }
printf ("%5s", }
data[i].nama);
printf ("(%5s)",
data[i].nim);
printf ("\t%s",
data[i].no_hp);
printf ("\n");
}
}
7 Buat program #include <stdio.h> #include <iostream> Saat kita menjalankan
untuk #include <conio.h> #include <conio.h> program ini maka kita akan
using namespace std;
memasukkan menginputkan data beruapa

Praktikum algoritma dan pemrograman 2019 Modul VI – 11


Modul 6 Struct

tanggal lahir typedef struct { tanggal bulan dan tahun


anggota char tgl_lahir [50]; typedef struct { lahir, sehingga saat data
}kucing; char tgl_lahir [50];
kelompok anda. }kambing; selesai di inputkan akan
Akhiran NIM 0- int main (){ keluar sesuai dengan
3 memasukkan int i; main (){ inputan pertama
4 data. NIM 4-6 kucing ttl[5]; kambing ttl[5];
for (i = 0; i < 5; for (int i = 0; i < 5; i++){
memasukkan 5 i++){ cout << "Masukkan
data. NIM 7-9 printf tanggal lahir anda (DDMMYYYY) = ";
memasukkan 6 ("Masukkan tangal lahir anda gets (ttl[i].tgl_lahir);
data. (DDMMYYYY) = ");
gets }
(ttl[i].tgl_lahir); cout << endl;
printf ("\n"); cout << "Data yang telah
} dimasukkan\n";
printf ("Tanggal lahir for (int i = 0; i < 5; i++){
yang telah dimasukkan\n"); cout << ttl[i].tgl_lahir
for (i = 0; i < 5; << endl;
i++){ }
printf ("%5s\n", }
ttl[i].tgl_lahir);
}
}
8 Uabahlah #include <stdio.h> #include <iostream> Struct juga bisa membantu
program using namespace std; kita untuk menampilkan
struct identitas {
disamping, int tgl; struct identitas { data. Contohnya data diri.
tambahkan char bln [20]; int tgl;
variabel tempat int thn; char bln [20];
lahir dan umur char tmpt_lhr [50]; int thn;
int umur; char tmpt_lhr [50];
pada struct. }; int umur;
Lalu isikan };
tanggal lahir typedef struct identitas
anda. data; typedef struct identitas data;

Praktikum algoritma dan pemrograman 2019 Modul VI – 12


Modul 6 Struct

int main (){ int main (){


data diri; data diri;
printf ("Masukkan tgl cout << "Masukkan tgl lahir =
lahir = "); ";
scanf ("%d", cin >> diri.tgl;
&diri.tgl); cout << "Masukkan bln lahir =
printf ("Masukkan bln ";
lahir = "); cin >> diri.bln;
scanf ("%s", cout << "Masukkan thn lahir =
&diri.bln); ";
printf ("Masukkan thn cin >> diri.thn;
lahir = "); cout << "Masukkan tempat lahir
scanf ("%d", = ";
&diri.thn); cin >> diri.tmpt_lhr;
printf ("Masukkan cout << "Masukkan umur = ";
tempat lahir = "); cin >> diri.umur;
scanf ("%s",
&diri.tmpt_lhr); cout << endl << "Umur anda
printf ("Masukkan umur adalah " << diri.umur << " dengan
anda = "); tempat tanggal lahir ";
scanf ("%d", cout << diri.tmpt_lhr << " "
&diri.umur); << diri.tgl << "/" << diri.bln <<
"/" << diri.thn;
printf("\nData }
Anda\n");
printf ("Anda berumur
%d dengan tempat tanggal
lahir anda adalah %s,
%d/%s/%d", diri.umur,
diri.tmpt_lhr, diri.tgl,
diri.bln, diri.thn);
}
9 Buat program #include <stdio.h> #include <iostream> Pada program di samping
untuk #include <cstring>
main (){ using namespace std; structdideklarasikan
menginput data typedef struct {
buku seperti char pengarang

Praktikum algoritma dan pemrograman 2019 Modul VI – 13


Modul 6 Struct

kolom [50]; main (){ menggunakan typedefdi


disamping. char jdl_buku typedef struct pustaka{
[100]; char pengarang [50]; dalam fungsi utama, dimana
Dengan data char penerbit char jdl_buku [100];
pengarang [100]; char penerbit [100]; charpengarangmerupaka
tetap. Akhira int jml_hlmn; int jml_hlmn;
NIM 0-3 }pustaka[4]; }buku_baru[4]; n isi dari struct
memasukkan 3 pustaka buku_baru = strcpy (buku_baru.pengarang, buku_barumemiliki nilai
data. NIM 4-6 {"Boy Candra"}; "Boy Candra");
memasukkan 4 int i;
yang telah ditetapkan
data. NIM 7-9 printf ("Masukkan cout << "Masukkan 4 judul buku kemudian untuk anggota
memasukkan 5 judul buku, penerbit dan yang ditulis oleh " << buku_baru <<
data.
jumlah halaman dengan endl; structyang lainnya diisi
pengarang %s\n", buku_baru); for (int i = 0; i < 4; i++){
for (i = 0; i < 4; cout << "Judul buku = "; secara dinamis dan
i++){ cin >>
printf ("Judul buku_baru[i].jdl_buku; ditampilkan dengan perintah
buku = "); cout << "Nama penerbit =
scanf ("%s", "; coutatau printf
&buku_baru[i].jdl_buku); cin >>
printf buku_baru[i].penerbit;
("Penerbit = "); cout << "Jumlah halaman
scanf ("%s", = ";
&buku_baru[i].penerbit); cin >>
printf ("Jumlah buku_baru[i].pengarang;
halaman = "); }
scanf ("%d", cout << endl << "Daftar buku
&buku_baru[i].jml_hlmn); dengan pengarang " << buku_baru;
printf ("\n"); for (int i = 0; i < 4; i++){
} cout <<
printf ("Daftar buku buku_baru[i].jdl_buku << " dengan
dengan pengarang %s", penerbit " << buku_baru[i].penerbit
buku_baru); << " dan jumlah halaman " <<
for (i = 0; i < 4; buku_baru[i].jml_hlmn;
i++){ cout << endl;
printf ("%s }

Praktikum algoritma dan pemrograman 2019 Modul VI – 14


Modul 6 Struct

dengan penerbit %s dan %d }


halaman\n",
buku_baru[i].jdl_buku,
buku_baru[i].penerbit,
buku_baru[i].jml_hlmn);
}
}
10 Buatlah #include <stdio.h> #include <iostream> Pada pemrograman di
using namespace std;
program unutk struct kambing { samping
char vga [50]; struct kambing {
menampilkan double char vga [50]; structkambingdiletakkan
kpsts_hdd, kpsts_ram; double kpsts_hdd;
spesifikasi }; double kpsts_ram; di dalam struct
struct kucing { };
laptop anda char merk [50], tipe struct kucing { kucingyang
dengan metode [50]; char merk [50], tipe [50];
menjadikannya
int harga; int harga;
struct struct kambing gitu; struct kambing gitu; structbersarang.
}; };
besarang. Isi Kemudian diakses dan diisi
int main (){ int main (){
data meliputi struct ganteng spek = struct ganteng spek = pada fungsi utama dengan
{"Thosiba", "Unknow", {"Thosia", "Unknow", 4500000,
Struct 1: merk, 4500000, {"", 1000, 2}}; {"unknow", 1000, 2}}; cara struct ganteng
printf ("-Merk = cout << "-Nama = " <<
tipe, harga. {"Thosiba",
%s\n", spek.merk); spek.merk << endl;
Struct 2: jenis printf ("-Tipe = cout << "-Tipe = " << "Unknow", 4500000,
%s\n", spek.tipe); spek.tipe << endl;
VGA, kapasitas printf ("-Harga = cout << "-Harga = " <<
{"", 1000, 2}};
HDD, dan Rp.%d\n", spek.harga); spek.harga << endl; Kemudian isi dari anggota –
kapasitas RAM. printf ("-VGA = %s\n", cout << "-VGA = " <<
spek.gitu.vga); spek.gitu.vga << endl; anggota structtersebut
printf ("-Kapasitas cout << "-Kapasitas HDD = " <<
HDD = %.1f GB\n", spek.gitu.kpsts_hdd << " GB" << ditampilkan dengan perintah
spek.gitu.kpsts_hdd); endl;
printf ("-Kapasitas cout << "-Kapasitas RAM = " << coutatau printf.

Praktikum algoritma dan pemrograman 2019 Modul VI – 15


Modul 6 Struct

RAM = %.1f GB", spek.gitu.kpsts_ram << " GB" <<


spek.gitu.kpsts_ram); endl;
} }
11 Buatlah #include <stdio.h> #include <iostream> Pada pemrograman di
program untuk #include <conio.h> #include <conio.h>
using namespace std; samping
menampilkan struct akhir {
spesifikasi int harga; struct bayar { structbayardengan
laptop anda int total; int harga;
dengan metode }; int total; variable jumlahdiletakkan
};
struct struct 1 { di dalam structtokoyang
bersarang isi char laptop [100]; struct toko {
data meliputi : int jmlh; char laptop[100];
memiliki variabeljml [4].
Struct 1 struct akhir jumlah; int jmlh; Kemudian anggota
:merek,tipe,har }jml[4]; struct bayar jumlah;
ga.
}jml[4]; structtokodiisi dengan
int main (){
Struct 2 : jenis int i; int main(){ nama laptop dan jumlah
VGA, kapasitas for (i = 0; i < 3; int i;
HDD, dan i++){ for (i=0; i < 3; i++){ kemudian untuk
kapasitas RAM printf ("Nama cout<<"Nama barang yang akan
barang yang akan dibeli = dibeli = "; structbayar diisi dengan
"); cin>>jml[i].laptop;
scanf ("%s", cout<<"Jummlah barang = ";
harga dari laptop dan total
&jml[i].laptop); cin>>jml[i].jmlh; dari belanja pelanggan,
printf ("Jumlah cout<<"Harga satuan barang =
barang = "); Rp."; pengisian dilakukan secara
scanf ("%d", cin>>jml[1].jumlah.harga;
&jml[i].jmlh); cout<<endl; dinamis menggunakan
printf ("Harga }
satuan barang = Rp."); for (i = 0; i < 3; i++){ perulangan fordan
scanf ("%d", jml[i].jumlah.total =
&jml[i].jumlah.harga); jml[i].jmlh * jml[i].jumlah.harga; kemudian ditampilkan
printf ("\n"); }
} system ("cls");
sebagai struk belanja
for (i = 0; i < 3; cout<<"==========TOKO

Praktikum algoritma dan pemrograman 2019 Modul VI – 16


Modul 6 Struct

i++){ TOKOAN==========\n";
cout<<"|Nama barang\t| Jumlah
jml[i].jumlah.total = | Harga Satuan(Rp.) |
jml[i].jmlh * Total |\n";
jml[i].jumlah.harga; for (i = 0; i < 3; i++){
} printf ("|%s
system ("cls"); |%d | %d | %d |\n",
printf jml[i].laptop, jml[i].jmlh,
("==========TOKO LAPTOP jml[i].jumlah.harga,
GAUL==========\n"); jml[i].jumlah.total);
printf ("|Nama }
barang\t| Jumlah | Harga }
Satuan(Rp.) | Total
|\n");
for (i = 0; i < 3;
i++){
printf ("|%s
|%d | %d
| %d |\n",
jml[i].laptop, jml[i].jmlh,
jml[i].jumlah.harga,
jml[i].jumlah.total);
}
}
12 Buatlah struct #include <stdio.h> #include <iostream> Pada program di samping,
bersarang #include <conio.h> #include <conio.h>
using namespace std; struct kucingdengan
untuk aplikasi struct kucing {
kasir pada int harga; struct kucing { anggota harga dan total
toko laptop. int total; int harga;
NIM ganjil }; int total; diletakkan di dalam struct
};
menghitung struct kambing { kambing dengan variabel
pembelian 3 char laptop [100]; struct kambing {
buah laptop, int jmlh; char laptop [100];
jumlah. Struct kambing
dan NIM struct kucing jumlah; int jmlh; memiliki alias dengan nama
genap }jml[4]; struct kucing jumlah;

Praktikum algoritma dan pemrograman 2019 Modul VI – 17


Modul 6 Struct

menghitung }jml[4]; jml [4].Pengisian


pembelian 4 int main (){
int i; int main (){ anggota dari masing –
buah laptop. for (i = 0; i < 4; i++){ for (int i = 0; i < 4;
Sertakan total printf ("Masukkan i++){ masing structdilakukan
belanja pada nama barang = "); cout << "Nama barang
struct yang fflush (stdin); = "; menggunakan perulangan
gets (jml[i].laptop); cin >>
anda buat. printf ("Jumlah jml[i].laptop; fordan kemudian
barang = "); cout << "Jumlah
ditampilkan sebagai struk
scanf ("%d", barang = ";
&jml[i].jmlh); cin >> jml[i].jmlh; belanja
printf ("Harga barang cout << "Harga
per satuan (Rp.)= "); satuan barang = ";
scanf ("%d", cin >>
&jml[i].jumlah.harga); jml[i].jumlah.harga;
printf ("\n"); cout << endl;
} }
for (i = 0; i < 4; i++){ for (int i = 0; i < 4;
jml[i].jumlah.total = i++){
jml[i].jmlh * jml[i].jumlah.total
jml[i].jumlah.harga; = jml[i].jmlh *
} jml[i].jumlah.harga;
system ("cls"); }
printf ("------------------ system ("cls");
------------------------------ cout << "-----------------
\n"); -------------------------------
printf ("|=========TOKO \n";
LAPTOP KAMPRET cout << "|=========TOKO
JAYA=============|\n"); LAPTOP BIASA
printf ("------------------ AJA=================|\n";
------------------------------ cout << "-----------------
\n"); -------------------------------
printf ("|NAMA BARANG \n";
|JUMLAH |HARGA(Rp.) cout << "|NAMA BARANG
|TOTAL |\n"); |JUMLAH |HARGA(Rp.)
for (i = 0; i < 4; i++){ |TOTAL |\n";

Praktikum algoritma dan pemrograman 2019 Modul VI – 18


Modul 6 Struct

printf ("|%s for (int i = 0; i < 4;


\t|%d\t|%d\t|%d\n", i++){
jml[i].laptop, jml[i].jmlh, cout << "|" <<
jml[i].jumlah.harga, jml[i].laptop << " \t|" <<
jml[i].jumlah.total); jml[i].jmlh << " \t|" <<
} jml[i].jumlah.harga << "\t|" <<
int total = 0; jml[i].jumlah.total;
for (i = 0; i < 4; i++){ cout << endl;
total += }
jml[i].jumlah.total ; int total = 0;
} for (int i = 0; i < 4;
printf (" i++){
TOTAL(Rp.) = %d\n", total +=
total); jml[i].jumlah.total;
} }
cout << "
TOTAL(Rp.) = " <<
total;
}
13 Gunakan #include <stdio.h> #include <iostream> Pada program di samping
fungsi untuk #include <conio.h> #include <conio.h>
using namespace std; structkucingdengan
menghitung struct kucing {
total belanja int harga; struct kucing { anggota harga dan total
pada latihan int total; int harga;
}; int total; dideklarasikan variable
sebelumnya
};
(jobsheet 12) struct kambing {
structnya di dalam
char laptop [100]; struct kambing { structkambingdengan
int jmlh; char laptop [100];
struct kucing jumlah; int jmlh; anggotanya yaitu laptop dan
}jml[4]; struct kucing jumlah;
}jml[4]; jumlah.
int total (){ Structkambingmemiliki
int i; int total (){
for (i = 0; i < 4; i++){ int i; variable structbernama

Praktikum algoritma dan pemrograman 2019 Modul VI – 19


Modul 6 Struct

jml[i].jumlah.total = for (i = 0; i < 4; i++){ jml[4].Pengisian harga,


jml[i].jmlh * jml[i].jumlah.total
jml[i].jumlah.harga; = jml[i].jmlh * namalaptop, dan
} jml[i].jumlah.harga;
} } jmlhdilakukan di fungsi
}
int ttl_harga (){ utama dengan perulangan
int total = 0, i; int ttl_harga (){
for (i = 0; i < 4; i++){ int total = 0, i; for, kemudian perhitungan
total += for (i = 0; i < 4; i++){
jml[i].jumlah.total ; total +=
total belanja menggunakan
} jml[i].jumlah.total ; fungsi ttl_harga()yang
printf (" }
TOTAL(Rp.) = %d\n", cout << " telah didefinisikan
total); TOTAL(Rp.) = " <<
} total; sebelumnya. Lalu output
}
int main (){ yang ditampilkan berupa
int i, ttl; int main (){
for (i = 0; i < 4; i++){ for (int i = 0; i < 4; struk belanja dengan daftar
printf ("Masukkan i++){
nama barang = "); cout << "Nama barang
belanja dan total belanja
fflush (stdin); = "; pelanggan
gets (jml[i].laptop); cin >>
printf ("Jumlah jml[i].laptop;
barang = "); cout << "Jumlah
scanf ("%d", barang = ";
&jml[i].jmlh); cin >> jml[i].jmlh;
printf ("Harga barang cout << "Harga
per satuan (Rp.)= "); satuan barang = ";
scanf ("%d", cin >>
&jml[i].jumlah.harga); jml[i].jumlah.harga;
printf ("\n"); cout << endl;
} }
total(); total ();
system ("cls"); system ("cls");
printf ("------------------ cout << "-----------------

Praktikum algoritma dan pemrograman 2019 Modul VI – 20


Modul 6 Struct

------------------------------ -------------------------------
\n"); \n";
printf ("|=========TOKO cout << "|=========TOKO
LAPTOP gaul LAPTOP gaul
JAYA=============|\n"); JAYA=============|\n";
printf ("------------------ cout << "-----------------
------------------------------ -------------------------------
\n"); \n";
printf ("|NAMA BARANG cout << "|NAMA BARANG
|JUMLAH |HARGA(Rp.) |JUMLAH |HARGA(Rp.)
|TOTAL |\n"); |TOTAL |\n";
for (i = 0; i < 4; i++){ for (int i = 0; i < 4;
printf ("|%s i++){
\t|%d\t|%d\t|%d\n", cout << "|" <<
jml[i].laptop, jml[i].jmlh, jml[i].laptop << " \t|" <<
jml[i].jumlah.harga, jml[i].jmlh << " \t|" <<
jml[i].jumlah.total); jml[i].jumlah.harga << "\t|" <<
} jml[i].jumlah.total;
ttl_harga(); cout << endl;
}
} ttl_harga();
}
14 Ubahlah #include <stdio.h> #include <iostream> Pada program disamping,
program pada #include <conio.h> #include <conio.h>
using namespace std; struct di deklarasikan
latihan typedef struct {
jobsheet 13, typedef harga; typedef struct { menggunakan
gunakan typedef total; int harga;
}kucing; int total; typedefsehingga nama
typedef unutk
}kucing;
mengganti typedef struct { dari structdapat
nama semua typedef laptop [100]; typedef struct {
tipe data yang diletakkan diakhir setelah
typedef jmlh; typedef laptop [100];
anda kucing jumlah; typedef jmlh; pendeklarasian elemen
gunakan. }kambing; kucing jumlah;
}kambing; struct. Fungsi total
kambing jml[4];

Praktikum algoritma dan pemrograman 2019 Modul VI – 21


Modul 6 Struct

kambing jml[4]; didefinisikan dan digunakan


int total (){ int total (){ sebagai penghitung total
int i; int i;
for (i = 0; i < 4; i++){ for (i = 0; i < 4; i++){ belanjaan ketika dipanggil di
jml[i].jumlah.total = jml[i].jumlah.total
jml[i].jmlh * = jml[i].jmlh * fungsi utama
jml[i].jumlah.harga; jml[i].jumlah.harga;
} }
} }

int ttl_harga (){ int ttl_harga (){


int total = 0, i; int total = 0, i;
for (i = 0; i < 4; i++){ for (i = 0; i < 4; i++){
total += total +=
jml[i].jumlah.total ; jml[i].jumlah.total ;
} }
printf (" cout << "
TOTAL(Rp.) = %d\n", TOTAL(Rp.) = " <<
total); total;
} }

int main (){ int main (){


int i, ttl; for (int i = 0; i < 4;
for (i = 0; i < 4; i++){ i++){
printf ("Masukkan cout << "Nama barang
nama barang = "); = ";
fflush (stdin); cin >>
gets (jml[i].laptop); jml[i].laptop;
printf ("Jumlah cout << "Jumlah
barang = "); barang = ";
scanf ("%d", cin >> jml[i].jmlh;
&jml[i].jmlh); cout << "Harga
printf ("Harga barang satuan barang = ";
per satuan (Rp.)= "); cin >>
scanf ("%d", jml[i].jumlah.harga;
&jml[i].jumlah.harga); cout << endl;

Praktikum algoritma dan pemrograman 2019 Modul VI – 22


Modul 6 Struct

printf ("\n"); }
} total ();
total(); system ("cls");
system ("cls"); cout << "-----------------
printf ("------------------ -------------------------------
------------------------------ \n";
\n"); cout << "|=========TOKO
printf ("|=========TOKO LAPTOP GAUL
LAPTOP GAUL JAYA=============|\n";
JAYA=============|\n"); cout << "-----------------
printf ("------------------ -------------------------------
------------------------------ \n";
\n"); cout << "|NAMA BARANG
printf ("|NAMA BARANG |JUMLAH |HARGA(Rp.)
|JUMLAH |HARGA(Rp.) |TOTAL |\n";
|TOTAL |\n"); for (int i = 0; i < 4;
for (i = 0; i < 4; i++){ i++){
printf ("|%s cout << "|" <<
\t|%d\t|%d\t|%d\n", jml[i].laptop << " \t|" <<
jml[i].laptop, jml[i].jmlh, jml[i].jmlh << " \t|" <<
jml[i].jumlah.harga, jml[i].jumlah.harga << "\t|" <<
jml[i].jumlah.total); jml[i].jumlah.total;
} cout << endl;
ttl_harga(); }
ttl_harga();
} }
15 Buatlah #include <stdio.h> #include <iostream> Pada program disamping,
program #include <conio.h> #include <conio.h>
using namespace std; struct didefinisikan di luar
untuk typedef struct {
menghitung char sayur[30]; typedef struct { fungsi utama dengan
belanjaan int harga,jml; string sayur;
}beli; int harga,jml; typedef, lalu fungsi total
sayur
}beli;
disebuah int total(int i,int j){
dengan parameter
toko. Buatlah int x; int total(int i,int j){ digunakan untuk
fungsi untuk x=i*j; int x;

Praktikum algoritma dan pemrograman 2019 Modul VI – 23


Modul 6 Struct

memasukkan printf("Total belanja anda x=i*j; menghitung total belanjaan


data sayur = %d",x); cout<<"Total belanja anda
} = "<<x; ketika fungsi tersebut
belanjaan, }
dan gunakan int main(){ dipanggil di fungsi utama
parameter beli ybeli; int main(){
pada fungsi printf("Masukkan nama sayur beli ybeli;
yang ingin di beli = "); cout<<"Masukkan nama sayur
tersebut. scanf("%s",&ybeli.sayur[30] yang ingin di beli = ";
); cin>>ybeli.sayur;
printf("Masukkan harga cout<<endl<<"Masukkan
sayur = "); harga sayur = ";
scanf("%d",&ybeli.harga); cin>>ybeli.harga;
printf("Masukkan jumlah cout<<endl<<"Masukkan
sayur sayur yang ingin di beli = jumlah sayur yang ingin di beli
"); = ";
scanf("%d",&ybeli.jml); cin>>ybeli.jml;
total(ybeli.harga,ybeli.jml total(ybeli.harga,ybeli.jm
); l);
} }
16 Buatlah #include <stdio.h> #include <iostream> Pada program disamping,
program #include <conio.h> #include <conio.h>
using namespace std; fungsi total yang bertipe
untuk struct beli {
menghitung char sayur[20]; struct beli { void menggunakan
belanjaan int harga,jml; string sayur;
sayur di }; int harga,jml; struct beli yang telah
};
sebuah toko void total(struct beli apa){ dideklarasikan sebelumnya
buatlah fungsi int hasil; void total(struct beli apa){
untuk sebagai parameternya
hasil = apa.harga*apa.jml; int hasil;
memasukkan printf("Total belanja anda hasil = apa.harga*apa.jml; dengan apa sebagai
data sayur = %d",hasil); cout<<"Total belanja anda
belanjaan
} = "<<hasil; variable structnya.
}
int main(){ Kemudian ketika fungsi
struct beli ybeli; int main(){

Praktikum algoritma dan pemrograman 2019 Modul VI – 24


Modul 6 Struct

printf("Masukkan nama sayur beli ybeli; tersebut dipanggil di fungsi


yang ingin di beli = "); cout<<"Masukkan nama sayur
scanf("%s",&ybeli.sayur); yang ingin di beli = "; utama, fungsi tersebut akan
printf("Masukkan harga %s = cin>>ybeli.sayur;
",ybeli.sayur); cout<<endl<<"Masukkan menghitung total belanjaan
scanf("%d",&ybeli.harga); harga "<<ybeli.sayur<<" = ";
printf("Masukkan jumlah cin>>ybeli.harga; yang telah diinputkan
sayur %s yang ingin dibeli = cout<<endl<<"Masukkan
",ybeli.sayur); jumlah sayur "<<ybeli.sayur<<"
scanf("%d",&ybeli.jml); yang ingin di beli = ";
total(ybeli); cin>>ybeli.jml;
total(ybeli);
}
}
17 Buatlah #include <stdio.h> #include <iostream> Pada program disamping,
using namespace std;
program struct spesifikasi { diterapkan
char* vga struct spesifikasi {
untuk [3]={"UNKNOW”UNKNOW","NVDIO char* vga [3]={"UNKNOW ", structbersarang dimana
GEFORE 9940MX"}; "UNKNOW", "NVidia GT920mx"};
menampillkan double double structspesifikasi
kpsts_hdd[3]={500,1000,500}; kpsts_hdd[3]={500,1000,500};
spesifikasi double double diletakkan bersama
laptop kpsts_ram[3]={8,16,10}; kpsts_ram[3]={8,4,2}; variablenya di dalam
}; };
anggota struct laptop { struct laptop { structlaptop. Kedua
char* merk char* merk
kelompok [3]={"Thosiba","Asus","acer"}; [3]={"Thosiba","Asus","Acer"}; structtersebut memiliki
char* tipe char* tipe
anda dengan [3]={"UNKNOW","UNKNOW","Aspire E [3]={"Unknow","Unknow","Aspire E elemen – elemen yang telah
14"}; 14"};
metode struct int int diisi dan memiliki tipe
harga[3]={4500000,6000000,4000000 harga[3]={4500000,6000000,400000
bersarang sebagai array. Kemudian
}; 0};
menggunakn struct spesifikasi main; struct spesifikasi main;
kedua isi dari
}; };

Praktikum algoritma dan pemrograman 2019 Modul VI – 25


Modul 6 Struct

array seperti int main (){ int main (){ structtersebut diakses di
struct laptop saya; struct laptop saya;
contoh int i; cout << "Data laptop fungsi utama
printf("Data laptop anggota anggota : "<<endl<<endl;
disamping. Isi : \n\n"); for(int i = 0; i < 3; dan kemudian ditampilkan
for(i = 0; i < 3; i++){ i++){
data meliputi : printf("Data : \n"); cout << "Data : isinya dengan perintah
printf ("-Merk = "<<endl;
Struct 1: %s\n", saya.merk[i]); cout << "-Nama = " coutatau printf.
merk, tipe, printf ("-Tipe = <<saya.merk[i] << endl;
%s\n", saya.tipe[i]); cout << "-Tipe = "
harga. printf ("-Harga = <<saya.tipe[i] << endl;
Rp.%d\n", saya.harga[i]); cout << "-Harga = "
Struct 2: jenis printf ("-VGA = <<saya.harga[i] << endl;
VGA, %s\n", saya.main.vga[i]); cout << "-VGA = " <<
kapasitas printf ("-Kapasitas saya.main.vga[i] << endl;
HDD = %.1f GB\n", cout << "-Kapasitas
HDD, dan saya.main.kpsts_hdd[i]); HDD = " <<saya.main.kpsts_hdd[i]
kapasistas printf ("-Kapasitas << " GB" << endl;
RAM RAM = %.1f GB\n\n", cout << "-Kapasitas
saya.main.kpsts_ram[i]); RAM = " <<saya.main.kpsts_ram[i]
} << " GB" << endl;
}} cout << endl;
}

}
18 Perhatikan #include <stdio.h> #include <iostream> Pada program disamping,
urutan input #include <cstring> #include <cstring>
using namespace std; using namespace std; yang dideklarasikan adalah
dan output
data pada union Data { union Data { sebuah uniondengan nama
kedua char nama[100]; char nama[100];
char nim[20]; char nim[20]; Data. Semua elemen –
program
char matkul[10]; char matkul[10];
disamping. float nil_matkul; float nil_matkul; elemen yang terdapat di
Temukan }; };
perbedaanyya dalam unionmenempati
int main( ) { int main( ) {

Praktikum algoritma dan pemrograman 2019 Modul VI – 26


Modul 6 Struct

, lalu union Data data; union Data data; alamat memori yang sama
bandingkan strcpy(data.nama,"Andri strcpy(data.nama,"Andri
Wahyudi"); Wahyudi "); sehingga sedikit
hasil eksekusi printf("Nama\t\t: cout << "Nama\t\t: "
kedua %s\n",data.nama ); <<data.nama<< endl; membedakannya dari
program strcpy(data.nim,"F1B118010" strcpy(data.nim,"F1B118010
struct
disamping. ); ");
printf("NIM\t\t: cout << "NIM\t\t: " <<
%s\n",data.nim); data.nim<< endl;
strcpy(data.matkul,"Alprog" strcpy(data.matkul,"Alprog
); ");
printf("Mata Kuliah\t: cout << "Mata Kuliah\t: "
%s\n",data.matkul); <<data.matkul<< endl;
data.nil_matkul=88.8; data.nil_matkul=88.8;
printf("Nilai anda\t: cout << "Nilai anda\t: "
%.1f",data.nil_matkul); << data.nil_matkul;
return 0; return 0;
} }
19 Buatlah #include <stdio.h> #include <iostream> Pada program disamping,
program
struct point using namespace std; structpointtelah
struct dengan {
memasukkan int a, b, c, d; struct Point dideklarasikan bersama
data struct }; {
int a, b, c, d; elemen – elemennya.
yang
int main() };
jumlahnya {
Kemudian elemen – elemen
dinamis int p, q, r, s; int main() tersebut diakses di fungsi
menggunakan struct point p1; {
pointer. struct point *p2 = &p1; int p,q,r,s; utama menggunakan
Mahasiswa printf("Masukkan nilai struct Point p1;
dengan NIM
pertama = "); struct Point *p2 = &p1; pointer*p2. Cara
scanf("%i",&p); cout<< "Masukkan nilai
ganjil printf("Masukkan nilai pertama = "; pengaksesan elemen
membuat 3 kedua = "); cin>>p;
structpointdengan
kali masukkan scanf("%i",&q); cout<< "Masukkan nilai
printf("Masukkan nilai kedua = ";

Praktikum algoritma dan pemrograman 2019 Modul VI – 27


Modul 6 Struct

data, NIM ketiga = "); cin>>q; pointer *p2adalah dengan


genap scanf("%i",&r); cout<< "Masukkan nilai
membuat 4
printf("Masukkan nilai ketiga = "; tanda ->
keempat = "); cin>>r;
kali masukkan scanf("%i",&s); cout<< "Masukkan nilai
data. *p2={p,q,r,s}; keempat = ";
printf("%i %i\n",p2->a,p2- cin>>s;
>b); *p2={p,q,r,s} ;
printf("%i %i",p2->c,p2- cout<< p2->a << " "<<p2-
>d); >b<<endl;
} cout<< p2->c <<" " <<p2-
>d;
return 0;
}
20 Buatlah #include <stdio.h> #include <iostream> Pada program disamping,
program using namespace std;
struct datadiri{ structdatadiri beserta
struct untuk char* struct datadiri{
mengisi data nama,nim,jurusan,fakultas; string elemennya telah
nama, NIM, }; nama,nim,jurusan,fakultas;
}; dideklarasikan dan akan
jurusan, dan
int main()
fakultas { int main ()
diakses di fungsi utama
menggunakan struct dadiri kita; { dengan variable struct yang
pointer, struct datadiri *sama = string a,b,c,d;
dengan &kita; struct datadiri kita; bertipe pointer kemudian
menerapkan printf("Masukkan Nama anda struct datadiri *sama =
: "); &kita; setelah meminta input untuk
struct scanf("%s", &sama->nama); cout<<"Masukkan Nama anda
betingkat. printf("Masukkan NIM anda : : "; mengisi elemen struct
"); cin>>a;
scanf("%s", &sama->nim); cout<<"Masukkan NIM anda : yang masih kosong, isi dari
printf("Masukkan Jurusan ";
anda : "); cin>>b;
elemen – elemen tersebut
scanf("%s", &sama- cout<<"Masukkan Jurusan akan ditampilkan dengan
>jurusan); anda : ";
printf("Masukkan Fakultas cin>>c;

Praktikum algoritma dan pemrograman 2019 Modul VI – 28


Modul 6 Struct

anda : "); cout<<"Masukkan Fakultas perintah cout atau


scanf("%s", &sama- anda : ";
>fakultas); cin>>d; printf.
printf("\nData Mahasiswa : *sama= {a,b,c,d};
\n"); cout<<endl<<"Data
printf("\nNama : %s", sama- Mahasiswa : "<<endl;
>nama); cout<<"Nama : "<<sama-
printf("\nNIM : %s", sama- >nama<<endl;
>nim); cout<<"NIM : "<<sama-
printf("\nJurusan : %s", >nim<<endl;
sama->jurusan); cout<<"Jurusan : "<<sama-
printf("\nFakultas : %s", >jurusan<<endl;
sama->fakultas); cout<<"Fakultas : "<<sama-
} >fakultas;
}

Praktikum algoritma dan pemrograman 2019 Modul VI – 29


Modul 6 Struct

6.4 KESIMPULAN
1. Struktur adalah pengelompokan dari variabel-variabel yang bernaung dalam satu
nama yang sama. Struck digunakan apabila data yang ingin dikelompokkan
memiliki tipe data yang berbeda.
2. Bila struktur dideklarasikan sebagai sebuah variable biasa, maka cara
pengaksesan anggota struktur menggunakan tanda titik (.). Bila struktur
dideklarasikan sebagai sebuah variabel pointer, maka cara pengaksesan anggota
struktur menggunakan tanda (->). Bila struktur dideklarasikan sebagai pointer
sebagai array, maka cara pengaksesan anggota struktur menggunakan tanda titik
(.).

Praktikum algoritma dan pemrograman 2019 Modul 1 – 30


Modul 6 Struct

DAFTAR PUSTAKA
Anonim. 2019.”Modul Praktikum Algoritma dan Pemrograman”.Laboratorium Jaringan dan
Komputer.Jurusan Teknik Elektro.Fakultas Teknik.Universitas Mataram

Bachtiar, Adam Mukharil.2017.pemrograman C dan C++.Bandung: informatika

Hartono,Jogiyanto.1993.konsep dasar pemrograman bahasa C.Yogyakarta:Andi

Raharjo,Budi.2006.borland pemrograman C++ builder.Bandung:informatika

Praktikum algoritma dan pemrograman 2019 Modul 1 – 31

Anda mungkin juga menyukai