laporan resmi 29-32 konsep pemrograman [struct]
TRANSCRIPT
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 1/28
1
PRAKTIKUM 29Struct 1
A. Dasar Teori
Struktur adalah pengelompokan variabel-variabel yang bernaung dalam satu nama yangsama. Berbeda dengan array yang berisi kumpulan variabel -variabel yang bertipe sama
dalam satu nama, maka suatu struktur dapat terdiri atas variabel -variabel yang berbeda
tipenya dalam satu nama struktur. Struktur biasa dipakai untuk mengelompokkan beberapa
informasi yang berkaitan menjadi sebuah.
Variabel-variabel yang membentuk suatu struktur, selanjutnya disebut sebagai elemen dari
struktur atau field. Dengan demikian dimungkinkan suatu struktur dapat berisi elemen-elemen
data berbeda tipe seperti char, int, float, double, dan lain -lain.
Contoh sebuah struktur adalah informasi data tanggal date! yang berisi"
- day, month dan year
Mendefinisikan & Mendeklarasikan Struktur
Suatu struktur didefinisikan dengan menggunakan kata kunci struct. Contoh pendefinisian
sebuah tipe data struktur "
struct date {
int month;
int day;
int year;
};
#arena semua field-nya bertipe sama, bisa juga ditulis sbb "
struct date {
int month, day, year;
};
yang mendefinisikan sebuah tipe data struktur bernama date yang memiliki tiga buah elemen
field! berupa "
- day, month dan year
#eterangan untuk definisi struktur ini dapat dilihat lebih jelas pada gambar $%.&.
Selanjutnya untuk mendeklarasikan sebuah variabel today yang bertipe struktur date pernyataan
yang diperlukan seperti diilustrasikan pada gambar $%.$.
'ernyataan di atas menyatakan bah(a variabel today bertipe struktur date
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman –Struct 1
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 2/28
2
Mengakses le!en Struktur
)lemen dari suatu variabel struktur dapat diakses dengan menyebutkan nama variabel struktur
diikuti dengan operator titik *.+! dan nama dari elemen strukturnya. Cara penulisannya
sebagai berikut "
variabel_struktur.nama_field
Menginisialisasi Struktur
Sebuah struktur juga bisa diinisialisasi pada saat dideklarasikan. al ini serupa dengan inisialisasi
array, yaitu elemen-elemennya dituliskan di dalam sepasang kurung kura(al * *! dengan
masing-masing dipisahkan dengan koma. Deklarasi struktur didahului dengan kata kunci static,
contoh
static struct zodiak bintang = {"agitarius", !!, , !, !};
Arra" dan Struktur
)lemen-elemen dari suatu array juga dapat berbentuk sebuah struktur. /isalnya array yang dipakai
untuk menyimpan sejumlah data sis(a struct student!. 0rray struktur berdimensi satu inimembentuk suatu tabel, dengan barisnya menunjukkan elemen dari array-nya dan kolomnya
menunjukkan elemen dari struktur. Dalam hal ini maka deklarasi yang dibutuhkan adalah
sebagai berikut "
#define $%& !'
struct date { ((definisi dari ti)e date
int month;
int day;
int year;
};
struct )erson { ((definisi dari ti)e )ersonchar name*+';
struct date birthday;
};
((deklarasi dari variabel array student
struct )erson student*$%&;
yang artinya, mendeklarasikan array student yang memiliki elemen yang bertipe struct
person sebanyak /0#S. Setelah array student dideklarasikan, maka ruang yang
disediakan ditunjukkan dalam gambar $%.1.
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman –Struct 1
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 3/28
3
#. Perco$aan
&. 2ntuk semua program yang ada di modul teori Struktur & "
- #etikkan kembali program-program tsb
- 3alankan programnya
- 0nalisis 4 buatlah kesimpulan terhadap program-program tsb
a. 5isting 'rogram
#include stdio.h
#define $%& !'
struct date{
int month, day, year;
};
struct student {
char name*+';
struct date birthday;};
main/0 {
struct student data_mhs*$%&;
int i=', 1ml;
char lagi;
do
{
fflush/stdin0; ((ha)us sisa data dalam buffer keyboard
)rintf/"2n3ame 4 "0;
gets/data_mhs*i.name0;
fflush/stdin0; ((ha)us sisa data dalam buffer keyboard
)rintf/"5irthday /mm-dd-yyyy0"0;
scanf/"6d-6d-
6d",7data_mhs*i.birthday.month,7data_mhs*i.birthday.day,7data_mhs*i.birthday.year0
;
i88;
fflush/stdin0; ((ha)us sisa data dalam buffer keyboard
)rintf/"2n$au memasukkan data lagi *9(: "0;
lagi = getchar/0; ((ha)us susa data dalam buffer keyboard
} <hile/lagi == 9 >> lagi == y0;
1ml = i;
)rintf/"2n?%:% $%@%AB%2n"0;
for/i=';i1ml;i880
{
)rintf/"6d. 3ame2t2t4 6s",i8,data_mhs*i.name0;
)rintf/"2n 5irthday2t4 6d-6d-
6d2n2n",data_mhs*i.birthday.month,data_mhs*i.birthday.day,data_mhs*i.birthday.year
0;
}
}
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman –Struct 1
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 4/28
4
b. Capture 'rogram
c. 0nalisis 'rogram
'rogram ini adalah program untuk mendata tanggal lahir seseorang. Dalam prosesnya,digunakanlah struct yang berada pada struct. Struct pertama adalah struct untuk menyimpan
data mahasis(a yaitu berupa namaname*+'0 dan tanggal lahirdate!. 6anggal lahirdate!
sendiri sebenarnya adalah sebuah struct tersendiri yang memiliki bagian-bagian sendiri pula
yaitu bulanmonth!, hariday! dan tahunyear!.
'ertama untuk meminta input data, program melakukannya secara berulang atau looping
menggunakan do (hile dikarenakan proses input data pasti terjadi minimal sekali. Selanjutnya
untuk menampilkan data yang telah diinputkan ke struct tadi, digunakanlah looping for
sebanyak jumlah data yang ada pada struct.
$. Buatlah $ variabel today 4 tomorro<! bertipe struct date. 7silah variabel today dengan tanggal
hari ini. 6emukan tanggal untuk variabel tomorro<.
#eterangan"
- Berikan pengecekan untuk akhir bulan
- Berikan pengecekan untuk akhir tahun
- Berikan pengecekan untuk bulan 8ebruari di tahun kabisat
6ahun kabisat adalah "
- #elipatan 1, tapi bukan kelipatan &99
- #elipatan &99 yang juga merupakan kelipatan 199
a. 5isting 'rogram
#include stdio.h
#define $%& !'
struct date{
int day, month, year;
};
int cariCum@ari/int month,int year0;
main/0 {
struct date today,tomorro<;
int 1ml@ari = +';
char lagi;
)rintf/"2nDEFGE%$ DH3I%EA :%3GG%J 5HF&"0;
)rintf/"2n==========================================2n"0;
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman –Struct 1
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 5/28
5
do
{
)rintf/"2n$asukkan tanggal hari ini /mm-dd-yyyy02t4 "0;
scanf/"6d-6d-6d",7today.day,7today.month,7today.year0;
if/today.day 8 cariCum@ari/today.month,today.year00
{
if/today.month == !0
{
((Ganti tahun
tomorro<.day = ;
tomorro<.month = ;
tomorro<.year= today.year 8 ;
}
else
{
((Ganti bulan
tomorro<.day = ;
tomorro<.month = today.month 8 ;
tomorro<.year= today.year;
}
}
else{
tomorro<.day = today.day 8 ;
tomorro<.month= today.month;
tomorro<.year= today.year;
}
)rintf/"$aka tanggal besok adalah 2t2t4 6!d-6!d-
6d",tomorro<.day,tomorro<.month,tomorro<.year0;
fflush/stdin0; ((ha)us sisa data dalam buffer keyboard
)rintf/"2n2n$au memasukkan tanggal lagi *9(: "0;
lagi = getchar/0; ((ha)us sisa data dalam buffer keyboard
} <hile/lagi == 9 >> lagi == y0;
}
int cariCum@ari/int bulan,int tahun0
{
int daftar@ari* = {+,!K,+,+',+,+',+,+,+',+,+',+};
int 1um@ari = daftar@ari*bulan-;
if/bulan == ! 77 tahun 6 L == '0
{
if/tahun 6 '' M= ' >> tahun 6 L'' == '0
1um@ari = !N;
}
return 1um@ari;}
b. Capture 'rogram
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman –Struct 1
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 6/28
6
c. 0nalisis 'rogram
'rogram pencari tanggal esok hari menggunakan struct date yang digunakan sebagai
penampung tanggal hari initoday! dan tanggal besoktomorro<!. 'ada dasarnya program ini
cukup mudah karena kita hanya perlu menambahkan & di struct date today yang bagian
hariday!. :amun hal tersebut menjadi agak rumit apabila tanggal yang dimasukkan adalah
tanggal di akhir bulan seperti ;9 atau ;&.
#arena itu, perlu diketahui dulu berapa jumlah hari dalam bula tersebut. Disini dibuatlah
fungsi untuk mencari jumlah hari dalam satu bulan yaitu fungsi cariCum@ari/0. 0pabila bulan
yang dimasukkan adalah bulan $8ebruari!, maka perlu juga dicek apakah tahun yang
dimasukkan adalah tahun kabisat atau bukan sesuai kriteria pada soal karena bulan 8ebruari
jumlahnya berubah-rubah sesuai tahun kabisat tersebut.
;. Sebuah 'erusahaan 0yam goreng dengan nama
<erobak 8ried Chicken yang telah lumayan
banyak pelanggannya, ingin dibantu
dibuatkan program demi kelancaran
usahanya. <erobak 8ried Chickenmempunyai Daftar arga 0yam sebagaimana
disamping "
#etentuannya " setiap pembeli dikenakan pajak sebesar &9= dari total pembelian'etunjuk "
- <unakan tipe data struct
- Deklarasikan variabel bertipe array of struct- <unakan >t sebagai tabulasi untuk mengatur tampilan
- <unakan ?string.h@ jika diperlukan
a. 5isting 'rogram
#include stdio.h
#include string.h
struct datamenu {
char kode;
int 1umlah;
};
main/0
{
struct datamenu keran1ang*+';
int i = ',1,harga,total=';
char 1<b,1enis*O;
)rintf/":oko GPI-Gerobak Pried Ihicken2n"0;
)rintf/"2n?%P:%E @%EG%"0;
)rintf/"2n&ode Cenis @arga Der Dotong"0;
)rintf/"2n? ?ada E). Q'''.''"0;
)rintf/"2nD Daha E). L'''.''"0;
)rintf/"2n aya) E). +'''.''"0;
)rintf/"2n2n@arga belum termasuk )a1ak 4 ' 66"0;
)rintf/"2n2n$asukkan Desanan %nda"0;
do
{)rintf/"2nDesanan ke-6d",i80;
fflush/stdin0;
)rintf/"2nCenis *?(D(2t4 "0;
scanf/"6c",7keran1ang*i.kode0;
fflush/stdin0;
)rintf/"Cumlah 2t2t4 "0;
scanf/"6d",7keran1ang*i.1umlah0;
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman –Struct 1
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 7/28
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 8/28
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 9/28
9
PRAKTIKUM '(Struct 2
A. Dasar Teori
Struktur dan )ungsi
/ele(atkan sebuah struktur untuk menjadi parameter sebuah fungsi dapat dilakukan sama
dengan pengiriman parameter berupa variabel biasa. 8ungsi yang mendapat kiriman parameter
tersebut juga bisa mengirimkan hasil baliknya yang juga berupa sebuah struktur pass by
reference!.
Mele*atkan le!en Struktur ke dala! )ungsi
/ele(atkan parameter berupa elemen struktur dapat dilakukan sebagaimana pengiriman
parameter berupa variabel biasa, dapat dilakukan baik secara nilai pass by value! maupun
secara acuan pass by reference!.
main/0{
struct date {
int month;
int day;
int year;
} today;
...
cetak_tanggal/today.month, today.day, today.year0;
...
}
void cetak_tanggal/int mm, int dd, int yy0{
static char Snama_bulan* = {
"Brong month", "Canuary", "Pebruary", "$arch",
"%)ril", "$ay", "Cune", "Culy", "%ugust",
"e)tember", "Fctober", "3ovember", "?ecember"
};
)rintf/":odays date is 6s 6d, 6d2n",
nama_bulan*mm,dd,yy0;
}
6ampak bah(a elemen dari struktur dile(atkan ke fungsi memakai bentuk pengaksesan
elemen struktur, berupa "
cetak_tanggal/today.month, today.day, today.year0;
0pabila nilai suatu elemen struktur diharapkan akan diubah oleh fungsi, maka yang
dile(atkan haruslah berupa alamat dari elemen struktur pass by reference!. 2ntuk keperluan ini,
operator alamat ditempatkan di depan nama variabel struktur bukan di depan nama elemen
struktur!.
main/0 {struct koordinat {
int U;
int y;
} )osisi;
...
tukar_Uy/7)osisi.U, 7)osisi.y0;
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 2
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 10/28
10
...
}
void tukar_Uy/int Sa, int Sb0 {
int z;
z = Sa;
Sa = Sb;
Sb = z;
}
Mele*atkan Struktur ke dala! )ungsi
'ada program di atas misalnya, semua elemen dari struktur dikirimkan ke fungsi cetaktanggal!,
dengan maksud nilai elemen dari struktur akan ditampilkan di layar. 2ntuk keadaan seperti
ini, lebih baik kalau parameter fungsi diubah menjadi bentuk struktur, sehingga parameter
fungsi tidak lagi sebanyak tiga buah, melainkan hanya satu. Selengkapnya, perhatikan program
di ba(ah ini.
struct date {
int month;int day;
int year;
};
void cetak_tanggal/struct date0;
main/0 {
struct date today;
...
cetak_tanggal/today0;
...
}
void cetak_tanggal/struct date no<0 {
static char Snama_bulan* = {
"Brong month", "Canuary", "Pebruary", "$arch",
"%)ril", "$ay", "Cune", "Culy", "%ugust",
"e)tember", "Fctober", "3ovember", "?ecember"
};
)rintf/":odays date is 6s 6d, 6d2n2n",
nama_bulan*no<.month, no<.day, no<.year0;
}
#. Perco$aan
&. Buatlah program sbb"
Inut "Data mahasis(a yang terdiri atas nama, nilai 6ugas, nilai 26S, nilai 20S sebanyak n mahasis(a
+utut "
6ampilkan dalam bentuk tabel
:o, :', :ama /hs, :ilai tugas, nilai 26S, nilai 20S, nilai 0khir, <rade
:ilai 0khir $9= tugas E 19= 26S E 19=20S! dengan ketentuan sbb "
- :ilai akhir @ F9 " <rade 0
- :ilai akhir @ G9 " <rade B
- :ilai akhir @ H9 " <rade C
- :ilai akhir @ A9 " <rade D
- :ilai akhir ? A9 " <rade )Petun,uk "
- <unakan array of struct
- 'erhatikan contoh tampilan
- :ilai tambah, gunakan array sebagai parameter fungsi misal $ fungsi " input! dan
tampil!!
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 2
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 11/28
11
a. 5isting 'rogram
#include stdio.h
#include string.h
int 1umis<a;
struct nilai {
char nama*+';
float nilai:ugas,nilaiT:,nilaiT%;
};
void in)ut/struct nilai data*0;
void tam)il/struct nilai data*0;
main/0
{
struct nilai mahasis<a*+';
)rintf/"2n$H3G@A:T3G 3AJ%A %&@AE $%:% &TJA%@ &F3HD DH$EFGE%$%3"0;
)rintf/"2n=====================================================2n"0;
in)ut/mahasis<a0;
tam)il/mahasis<a0;
}
void in)ut/struct nilai data*0
{
int i;
fflush/stdin0;
)rintf/"2n5era)a 1umlah mahasis<a "0;
scanf/"6d",71umis<a0;
)rintf/"2n$asukan data mahasis<a"0;
)rintf/"2n=====================================================2n"0;
for/i=';i1umis<a;i880
{
)rintf/"2n?ata ke-6d",i80;
fflush/stdin0;
)rintf/"2n3ama2t2t= "0;
scanf/"6s",data*i.nama0;fflush/stdin0;
)rintf/"3ilai tugas2t= "0;
scanf/"6f",7data*i.nilai:ugas0;
fflush/stdin0;
)rintf/"3ilai T:2t= "0;
scanf/"6f",7data*i.nilaiT:0;
)rintf/"3ilai T%2t= "0;
scanf/"6f",7data*i.nilaiT%0;
}
}
void tam)il/struct nilai data*0
{
int i,1;
float akhir;
char grade;
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 2
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 12/28
12
)rintf/"2n2t2t2t2t?%P:%E 3AJ%A"0;
)rintf/"2n2t2t2t$%:%&TJA%@ &F3HD DH$EFGE%$%3"0;
)rintf/"2n=================================================================="0;
)rintf/"2n3o2t3ama $ahasis<a2t:ugas2tT:2tT%2t%khir2tGrade"0;
)rintf/"2n=================================================================="0;
for/1=';11umis<a;1880
{
akhir = /'.! S data*1.nilai:ugas0 8 /'.L S data*1.nilaiT%0 8 8 /'.L S
data*1.nilaiT:0;
if/akhir=K'0
grade = %;
else if/akhir=V'0
grade = 5;
else if/akhir=O'0
grade = I;
else if/akhir=Q'0grade = ?;
else
grade = H;
)rintf/"2n6d2t6s2t2t6.'f2t6.'f2t6.'f2t6.'f2t
6c",18,data*1.nama,data*1.nilai:ugas,data*1.nilaiT:,data*1.nilaiT%,akhir,grade0;
}
)rintf/"2n=================================================================="0;
)rintf/"2n2n:otal mahasis<a = 6d",1umis<a0;
}
b. Capture 'rogram
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 2
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 13/28
13
c. 0nalisis 'rogram
'ada program penghitung nilai akhir mata kuliah konsep pemrograman ini, digunakan
sebuah struct untuk menyimpan data nilai mahasis(a yang terdiri dari field nama, nilai tugas,
nilai 26S dan nilai 20S. Struct itu sendiri nantinya akan berupa array sehingga dapat
menyimpan data nilai dari beberapa mahasis(a pula.
2ntuk memasukkan atau menginput data, dibuatlah fungsi input! dengan parameter
array of struct nilai. 0rray of struct nilai tadi kemudian diisi secara looping satu persatu
hingga user menja(ab tidak :!.
6erakhir untuk menampilkan data yang telah diinputkan, dibuatlah fungsi tampil! dengan
parameter array of struct nilai itu pula. Data ditampilkan per struct, disetiap prosesnya
dicari nilai akhir sesuai ketentuan yang telah ada. #emudian nilai akhir tersebut diseleksi
menggunakan 78 untuk mencari grade dari mahasis(a tersebut.
$. 6oko I507SJ menjual baju jadi dengan berbagai ukuran dengan daftar harga sbb"
Ketentuan rosesn"a s$$ -
- 3ika membeli lebih dari &9 potong, akan mendapat diskon $9= dari jumlah harga, jika kurang
atau sama dengan &9 potong, maka tidak ada diskon
- 'ajak diberikan sebesar &9= dari harga-diskon!
Petun,uk -- <unakan >t sebagai tabulasi untuk mengatur tampilan
- <unakan ?string.h@ jika diperlukan
- <unakan array of struct
- <unakan array sebagai parameter fungsi misal $ fungsi " input! dan nota!!
a. 5isting 'rogram
#include stdio.h
#include string.h
struct databarang {char kode;
int 1umlah;
};
int n = ';
void in)ut/struct databarang data*0;
void tam)il/struct databarang data*0;
main/0
{
struct databarang keran1ang*+';
)rintf/"2t:oko Jaris"0;
)rintf/"2n2t?aftar @arga"0;
)rintf/"2n================================="0;
)rintf/"2nTkuran2t3ama2t@arga Der Dotong"0;
)rintf/"2n================================="0;
)rintf/"2n2t$%JJ2tE). +O.''',-"0;
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 2
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 14/28
14
)rintf/"2n$2t$H?AT$2tE). L+.''',-"0;
)rintf/"2nJ2tJ%EGH2tE). O!.''',-"0;
)rintf/"2n================================="0;
)rintf/"2n2n?a)atkan diskon !' 66 untuk )embelian lebih dari ' )otongM"0;
)rintf/"2nCangan lu)a, )a1aknya ya... ' 66 U /harga - diskon0"0;
in)ut/keran1ang0;
tam)il/keran1ang0;
}
void in)ut/struct databarang data*0
{
char 1<b;
)rintf/"2n2n================================="0;
)rintf/"2n$asukkan Desanan %nda"0;
do
{
)rintf/"2n2nDesanan ke-6d",n80;
fflush/stdin0;
)rintf/"2nTkuran *($(J2t4 "0;
scanf/"6c",7data*n.kode0;fflush/stdin0;
)rintf/"Cumlah 2t2t4 "0;
scanf/"6d",7data*n.1umlah0;
n88;
fflush/stdin0;
)rintf/"5eli lagi *y(n "0;
1<b = getchar/0;
}<hile/1<b == 9 >> 1<b == y0;
}
void tam)il/struct databarang data*0
{int 1,harga,total=',diskon;
char 1enis*V;
)rintf/"2n2n================================="0;
)rintf/"2n2n3ota 5elan1a %nda 4 2n"0;
)rintf/"2n2t2t2t:oko Jaris2n"0;
)rintf/"2n============================================================================"0;
)rintf/"2n3o2t3ama Tkuran2t@arga atuan2tRty2t?iskon2t2tCumlah @arga"0;
)rintf/"2n============================================================================"0;
for/1=';1n;1880
{
s<itch/data*1.kode0{
case 4 case s 4
strc)y/1enis,"$%JJ"0;
harga = +O''';
break;
case $4 case m 4
strc)y/1enis,"$H?AT$"0;
harga = L!''';
break;
case J4 case l 4
strc)y/1enis,"J%EGH"0;
harga = OL''';
break;
}
if/data*1.1umlah '0
diskon = harga S data*1.1umlah S '.;
else
diskon = ';
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 2
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 15/28
15
)rintf/"2n6d2t6s2t2tE). 6d2t6d2tE). 6Qd2tE). 6Kd",18, 1enis, harga,
data*1.1umlah,diskon, harga S data*1.1umlah - diskon0;
total = total 8 harga S data*1.1umlah - diskon;
}
)rintf/"2n============================================================================"0;
)rintf/"2n2t2t2t2t2t2tCumlah bayar2tE). 6Kd",total0;
)rintf/"2n2t2t2t2t2t2tDa1ak '662tE). 6Kd",total ( '0;
)rintf/"2n2t2t2t2t2t2t:otal bayar2tE). 6Kd",total 8 total ( '0;
)rintf/"2n2n2t2t:HEA$% &%A@ %:% &T3CT3G%339%2n"0;
}}
b. Capture 'rogram
Bagian input data "
Bagian cetak nota "
c. 0nalisis 'rogram
2ntuk program no $ ini, struct digunakan sebagai penyimpan pesanan yang telah
dimasukkan oleh user. Struct pesanan atau keranjang belanjastruct databarang! tersebut
terdiri dari dua field yaitu kode dan jumlah dari barang yang akan dibeli tersebut. ampir
sama dengan program pada soal pertama, pada program kasir 6oko 5aris ini menggunakan dua
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 2
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 16/28
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 17/28
17
PRAKTIKUM '1Struct '
A. Dasar Teori
3ika sebuah struktur mengandung banyak field dan diputuskan bah(a keseluruhan field-nya akan
diubah oleh fungsi, maka cara yang efisien adalah dengan mele(atkan passing! alamat dari
struktur. Dengan demikian pada pendefinisian fungsi, parameter formalnya berupa pointer yang
menunjuk ke struktur.
/asalah pointer ke struktur dapat diterapkan dalam program sebelumnya. 0rgumen dari
fungsi tukarKy! dapat disederhanakan menjadi satu argumen saja, yakni sebagai berikut "
void tukar_Uy/struct koordinat S)os_Uy0{
int z;z = /S)os_Uy0.U;
/S)os_Uy0.U = /S)os_Uy0.y;
/S)os_Uy0.y = z;
}
'ada definisi fungsi di atas,
struct koordinat S)os_Uy
menyatakan bah(a posKy adalah pointer yang menunjuk ke obyek bertipe struktur
koordinat. 0dapun penulisan "
/S)os_Uy0.U
menyatakan " elemen bernama K yang ditunjuk oleh pointer posKy
'erlu diperhatikan bah(a penulisan tanda kurung seperti pada contoh LposKy!.K merupakan
suatu keharusan. Sebab
S)os_Uy.U
mempunyai makna yang berbeda dengan
/S)os_Uy0.U
2ngkapan LposKy.K mempunyai makna yaitu " Myang ditunjuk oleh posKy.K M sebab
operator titik mempunyai prioritas yang lebih tinggi daripada operator L!.
#include stdio.h
struct koordinat {
int U;
int y;
};
void tukar_Uy/struct koordinat S0;
main/0{
struct koordinat )osisi;
)rintf/"$asukkan koordinat )osisi /U, y0 4 "0;
scanf/"6d, 6d", 7)osisi.U, 7)osisi.y0;
)rintf/"U, y semula = 6d, 6d2n", )osisi.U,)osisi.y0;
tukar_Uy/7)osisi0;
)rintf/"U,y sekarang= 6d, 6d2n", )osisi.U,)osisi.y0;}
void tukar_Uy/struct koordinat S)os_Uy0{
int z;
z = /S)os_Uy0.U;
/S)os_Uy0.U = /S)os_Uy0.y;
/S)os_Uy0.y = z;
}
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 3
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 18/28
18
Contoh eksekusi "
$asukkan koordinat )osisi /U, y0 4 +L, !
U, y semula = +L, !
U, y sekarang = !, +L
Bentuk semacam "
/S)os_Uy0.U
dapat ditulis dengan bentuk lain menjadi
)os_Uy-U
Dalam C operator -@ berupa tanda minus - diikuti dengan tanda lebih dari @! disebut sebagai
operator panah. Dengan menggunakan operator panah, maka fungsi tukarKy! dalam
program posisi$.c dapat ditulis menjadi
void tukar_Uy/struct koordinat S)os_Uy0{
int z;
z = )os_Uy-U;
)os_Uy-U = )os_Uy-y;
)os_Uy-y = z;}
#. Perco$aan
&. 2ntuk semua program yang ada di modul teori Struktur $ "
- #etikkan kembali program-program tsb
- 3alankan programnya
- 0nalisis 4 buatlah kesimpulan terhadap program-program tsb
cetak1.c
a. 5isting 'rogram
#include stdio.h
void cetak_tanggal/int, int, int0;
main/0
{
struct date {
int month, day, year;
} today;
)rintf/"Hnter the current date /mm-dd-yyyy04 "0;
scanf/"6d-6d-6d", 7today.month, 7today.day, 7today.year0;
cetak_tanggal/today.month, today.day, today.year0;
getch/0;
}
void cetak_tanggal/int mm, int dd, int yy0{
char Snama_bulan* = {
"Brong month", "Canuary", "Pebruary", "$arch",
"%)ril", "$ay", "Cune", "Culy", "%ugust",
"e)tember", "Fctober", "3ovember", "?ecember"
};
)rintf/":odays date is 6s 6d, 6d2n2n", nama_bulan*mm,dd,yy0;
}
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 3
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 19/28
19
b. Capture 'rogram
c. 0nalisis 'rogram
'ada percobaan ini struct digunakan untuk menyimpan tanggal sekarang yang terdiri dari field
bulan, hari dan tahunstruct date!. Selanjutnya struct date dile(atkan ke dalam fungsi
cetak_tanggal/0 dengan cara menjadikannya parameter satu persatu untuk masing-masing
elemen dalam struct date.
cetak2.c
a. 5isting 'rogram
#include stdio.hstruct date {
int month, day, year;
};
void cetak_tanggal/struct date0;
main/0 {
struct date today;
)rintf/"Hnter the current date /mm-dd-yyyy04 "0;
scanf/"6d-6d-6d", 7today.month, 7today.day, 7today.year0;
cetak_tanggal/today0;
}
void cetak_tanggal/struct date no<0
{
char Snama_bulan* = {
"Brong month", "Canuary", "Pebruary", "$arch", "%)ril", "$ay", "Cune",
"Culy", "%ugust", "e)tember", "Fctober","3ovember", "?ecember"
};
)rintf/":odays date is 6s 6d, 6d2n2n",nama_bulan*no<.month, no<.day, no<.year0;
}
b. Capture 'rogram
c. 0nalisis 'rogram
'ada percobaan ini masih sama dengan percobaan sebelumnyacetak&.c!. Struct masih
digunakan untuk menyimpan tanggal sekarang yang terdiri dari field bulan, hari dan
tahunstruct date!. 'erbedaannya disini adalah pada pemanggilan fungsi cetak_tanggal/0,
struct date langsung dijadikan parameter tanpa memecah elemennya satu persatu.
osisi1.c
a. 5isting 'rogram
#include stdio.h
void tukar_Uy/int S, int S0;
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 3
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 20/28
20
main/0
{
struct koordinat {
int U, y;
} )osisi;
)rintf/"$asukkan koordinat )osisi /U, y0 4 "0;
scanf/"6d, 6d", 7)osisi.U, 7)osisi.y0;
)rintf/"U, y semula = 6d, 6d2n", )osisi.U, )osisi.y0;
tukar_Uy/7)osisi.U, 7)osisi.y0;
)rintf/"U, y sekarang = 6d, 6d2n", )osisi.U, )osisi.y0;
getch/0;
}
void tukar_Uy/int Sa, int Sb0
{
int z;
z = Sa;
Sa = Sb;
Sb = z;
}
b. Capture 'rogram
c. 0nalisis 'rogram
'ada program ini, struct digunakan untuk menyimpan koordinat yang terdiri dari nilai K
dan ystruct koordinat!. Selanjutnya, program ini akan menukar isi dari masing-masing K
dan y tadi. #arena itu digunakanlah pointer agar perubahan variabel pada fungsi lain ikut
merubah nilai aslinya di fungsi main/0.
Nang dikirim ke fungsi tukar_Uy/0 adalah alamat dari masing-masing element struct date.
Nang kemudian pada fungsi tukar_Uy/0 nilai yang ditunjuk keduanya ditukar menggunakan
bantuan variabel ketiga yaitu O.
osisi2.c
a. 5isting 'rogram
#include stdio.h
struct koordinat {
int U, y;
};
void tukar_Uy/struct koordinat S0;
main/0 {
struct koordinat )osisi;
)rintf/"$asukkan koordinat )osisi /U, y0 4 "0;
scanf/"6d, 6d", 7)osisi.U, 7)osisi.y0;
)rintf/"U, y semula = 6d, 6d2n", )osisi.U, )osisi.y0;
tukar_Uy/7)osisi0;
)rintf/"U, y sekarang = 6d, 6d2n", )osisi.U, )osisi.y0;
}
void tukar_Uy/struct koordinat S)os_Uy0
{
int z;
z = /S)os_Uy0.U;
/S)os_Uy0.U = /S)os_Uy0.y;
/S)os_Uy0.y = z;
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 3
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 21/28
21
}
b. Capture 'rogram
c. 0nalisis 'rogram
'ada program ini, struct masih digunakan untuk menyimpan koordinat yang terdiri dari
nilai K dan ystruct koordinat!. Selanjutnya, program ini akan menukar isi dari masing-masing
K dan y tadi. #arena itu digunakanlah pointer agar perubahan variabel pada fungsi lain ikut
merubah nilai aslinya di fungsi main!.
'erbedaannya apabila pada soal posisi&.c yang dikirim sebagai parameter ke fungsi
tukarKy! adalah alamat dari masing-masing element struct date, pada percobaan ini yang
dikirim sebagai parameter ke fungsi tukarKy! adalah alamat dari struct koordinat tersebut.Nang selanjutnya pada fungsi tukarKy! nilai yang ditunjuk oleh struct koordinat pada kedua
fieldnya ditukar menggunakan bantuan variabel ketiga yaitu O.
$. Dengan menggunakan typedef, buatlah tipe data struct untuk menyimpan informasi
pega(ai misal tipe pega(ai! berupa " no 7D, nama, tgl lahir, jenis kelamin 5P'! dan gajiPbulan.
• Di main! deklarasikan sebuah var bertipe array of pega(ai misal em)*0
• panggil fungsi input! untuk memasukkan data-datanya dengan pengiriman parameter secara
pass by reference
• panggil fungsi tampil! untuk menampilkan semua data yang telah diinputkan dengan
pengiriman parameter secara pass by reference
Petun,uk -
- 2ntuk no id, gunakan auto increment tanpa input!
- 3ika diperlukan, gunakan fungsi strcpy! dari ?string.h@
a. 5isting 'rogram
#include stdio.h
int n;
struct date {
int hari, bulan, tahun;
};
struct datakarya<an {
int id,ga1i;
char nama*+!, 1enis;
struct date tglJahir;
};
ty)edef struct datakarya<an )ega<ai;
void in)ut/)ega<ai Sdata0;
void tam)il/)ega<ai Sdata0;
main/0
{
)ega<ai dataDega<ai*+';
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 3
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 22/28
22
)rintf/"2n?ata Dega<ai"0;
)rintf/"2n===================================2n"0;
fflush/stdin0;
)rintf/"2n5era)a 1umlah )ega<ai "0;
scanf/"6d",7n0;
in)ut/dataDega<ai0;
tam)il/dataDega<ai0;
}
void in)ut/)ega<ai Sdata0
{
int i;
)rintf/"2n===================================2n"0;
for/i=';in;i880
{
)rintf/"2n2n?ata )ega<ai ke-6d",i80;
fflush/stdin0;
)rintf/"2n3ama2t2t2t= "0;
scanf/"6s",/Sdata0.nama0;fflush/stdin0;
)rintf/":gl lahir *dd-mm-yyyy2t= "0;
scanf/"6d-6d-
6d",7/Sdata0.tglJahir.hari,7/Sdata0.tglJahir.bulan,7/Sdata0.tglJahir.tahun0;
fflush/stdin0;
)rintf/"Cenis &elamin *J(D2t= "0;
scanf/"6c",7/Sdata0.1enis0;
)rintf/"Ga1i )erbulan2t2t= "0;
scanf/"6d",7/Sdata0.ga1i0;
data88;
}
}
void tam)il/)ega<ai Sdata0
{
int i;
)rintf/"2n===================================2n"0;
)rintf/"2n?ata )ega<ai yang telah diin)utkan 2n"0;
for/i=';in;i880
{
)rintf/"2n?ata )ega<ai ke-6d",i80;
)rintf/"2n3ama2t2t= 6s",/Sdata0.nama0;
)rintf/"2n:anggal lahir2t= 6d-6d-6d",/Sdata0.tglJahir.hari,
/Sdata0.tglJahir.bulan,/Sdata0.tglJahir.tahun0;
if//Sdata0.1enis == J0
)rintf/"2nCenis &elamin2t= Jaki-laki"0;else
)rintf/"2nCenis &elamin2t= Derem)uan"0;
)rintf/"2nGa1i )erbulan2t= E). 6d",/Sdata0.ga1i0;
data88;
}
}
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 3
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 23/28
23
b. Capture 'rogram
c. 0nalisis 'rogram
'ada program input data pega(ai ini sebenarnya hamper mirip dengan program input data
yang lain. :amun perbedaanya disini struct karya<an terlebih dahulu diubah namanya
sehingga menjadi lebih singkat yaitu )ega<ai saja menggunakan perintah ty)edef. al ini
tentu saja memudahkan kita dalam penyebutan struct selanjutnya di dalam program.
Selanjutnya )ega<ai tadi dibuat sebagai array agar dapat menyimpan banyak data pega(ai.
'erbedaan lainnnya yang cukup mencolok disini adalah array of )ega<ai dikirimkan ke
fungsi secara pass by reference sehingga pada fungsi array of )ega<ai yang merupakan nama
lain dari array of struct karya(an tidak lagi diakses dengan indeksnya, namun langsung
menggunakan pointer contohnya /Sdata0.nama
;. /odifikasi program dari modul S62C6 $ soal no &.
- 2bah nama tipe data dengan menggunakan typedef
- 'anggillah fungsi input! dan tampil! dengan cara pass by reference
Petun,uk -2ntuk soal nomor $ 4 ;, perhatikan cara membaca array dengan menggunakan pointer,
buka kembali modul teori pointer to array
a. 5isting 'rogram
#include stdio.h
#include string.h
int 1umis<a;
struct nilai {
char nama*+';
float nilai:ugas,nilaiT:,nilaiT%;
};
ty)edef struct nilai daftar3ilai;
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 3
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 24/28
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 25/28
25
)rintf/"2n6d2t6s2t2t6.'f2t6.'f2t6.'f2t6.'f2t6c",18,/Sdata0.nama,
/Sdata0.nilai:ugas,/Sdata0.nilaiT:,/Sdata0.nilaiT%,akhir,grade0;
data88;
}
)rintf/"2n=================================================================="0;
)rintf/"2n2n:otal mahasis<a = 6d",1umis<a0;
}
b. Capture 'rogram
Bagian input data "
Bagian Qutput data "
c. 0nalisis 'rogram
/erupakan modifikasi dari soal struct $ praktikum ;9 soal no & program ini sama-sama
berfungsi untuk menghitung nilai akhir dari mata kuliah konsep pemrograman. 'erbedaannya
dalam program ini sudah menggunakan typedef sebagai peyingkat nama struct. Selain itu
dalam pemanggilan fungsi, yang dikirim ke fungsi sebagai parameter adalah alamat dari struct
yang telah ditypedef namanya tersebut.
#arena yang dikirim adalah alamat, maka yang menerima dalam fungsi adalah pointer.
Dengan bantuan pointer tersebut, pemanggilan nilai struct tidak perlu lagi menggunakan
indeks dari arraynya, cukup dengan pemanggilan nilai yang ditunjuk pointer tersebut.
1. 2ntuk soal no ; diatas, pada tampilan output, tambahkan informasi " nama 4 nilai akhir
mahasis(a yang tertinggi
Petun,uk-
- buatlah tipe data struct baru misal dengan nama maks dengan $ field " nama 4 nilai
untuk menyimpan informasi mahasis(a dengan nilai tertinggi
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 3
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 26/28
26
- Sertakan ?string.h@ agar bisa menggunakan fungsi strcpy! untuk mengcopy nama
a. 5isting 'rogram#include stdio.h
#include string.h
int 1umis<a;
struct nilai {char nama*+';
float nilai:ugas,nilaiT:,nilaiT%;
};
struct maks {
char nama*+';
float nilai;
};
ty)edef struct nilai daftar3ilai;
void in)ut/daftar3ilai S0;
void tam)il/daftar3ilai S0;
main/0
{
struct nilai mahasis<a*+';
)rintf/"2n$H3G@A:T3G 3AJ%A %&@AE $%:% &TJA%@ &F3HD DH$EFGE%$%3"0;
)rintf/"2n=====================================================2n"0;
in)ut/mahasis<a0;
tam)il/mahasis<a0;
}
void in)ut/daftar3ilai Sdata0
{
int i;
fflush/stdin0;
)rintf/"2n5era)a 1umlah mahasis<a "0;
scanf/"6d",71umis<a0;
)rintf/"2n$asukan data mahasis<a"0;
)rintf/"2n=====================================================2n"0;
for/i=';i1umis<a;i880
{
)rintf/"2n?ata ke-6d",i80;
fflush/stdin0;)rintf/"2n3ama2t2t= "0;
scanf/"6s",/Sdata0.nama0;
fflush/stdin0;
)rintf/"3ilai tugas2t= "0;
scanf/"6f",7/Sdata0.nilai:ugas0;
fflush/stdin0;
)rintf/"3ilai T:2t= "0;
scanf/"6f",7/Sdata0.nilaiT:0;
)rintf/"3ilai T%2t= "0;
scanf/"6f",7/Sdata0.nilaiT%0;
data88;
}
}
void tam)il/daftar3ilai Sdata0
{
int i,1;
float akhir;
char grade;
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 3
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 27/28
27
struct maks daftar$aks;
)rintf/"2n2t2t2t2t?%P:%E 3AJ%A"0;
)rintf/"2n2t2t2t$%:%&TJA%@ &F3HD DH$EFGE%$%3"0;
)rintf/"2n=================================================================="0;
)rintf/"2n3o2t3ama $ahasis<a2t:ugas2tT:2tT%2t%khir2tGrade"0;
)rintf/"2n=================================================================="0;
for/1=';11umis<a;1880
{
akhir = /'.! S /Sdata0.nilai:ugas0 8 /'.L S /Sdata0.nilaiT%0 8 8 /'.L S
/Sdata0.nilaiT:0;
if/1 == ' >> daftar$aks.nilai akhir0
{
strc)y/daftar$aks.nama,/Sdata0.nama0;
daftar$aks.nilai = akhir;
}
if/akhir=K'0
grade = %;
else if/akhir=V'0
grade = 5;else if/akhir=O'0
grade = I;
else if/akhir=Q'0
grade = ?;
else
grade = H;
)rintf/"2n6d2t6s2t2t6.'f2t6.'f2t6.'f2t6.'f2t6c",18,/Sdata0.nama,
/Sdata0.nilai:ugas,/Sdata0.nilaiT:,/Sdata0.nilaiT%,akhir,grade0;
data88;
}
)rintf/"2n=================================================================="0;
)rintf/"2n2n:otal mahasis<a2t= 6d",1umis<a0;)rintf/"2n2n3ilai :ertinggi"0;
)rintf/"2n3ama mahasis<a2t= 6s",daftar$aks.nama0;
)rintf/"2n3ilai2t= 6.!f",daftar$aks.nilai0;
}
b. Capture 'rogram
Bagian input data "
2110131036 |RENDRA BUDI HUTAMA
Laporan Praktikum Konsep Pemrograman– Struct 3
8/20/2019 Laporan Resmi 29-32 Konsep Pemrograman [Struct]
http://slidepdf.com/reader/full/laporan-resmi-29-32-konsep-pemrograman-struct 28/28
Bagian output data "
c. 0nalisis 'rogram
/asih merupakan modifikasi dari soal struct $ praktikum ;9 soal no &. 'rogram ini
merupakan program untuk mencari nilai akhir dari mata kuliah konsep pemrograman.
'erbedaannya dalam program ini sudah menggunakan pass by reference sesuai soal no ; pada pengiriman array of struct nilainya.
Sedikit tambahan pada program ini adalah adanya fitur untuk mengetahui nilai tertinggi
dari mahasis(a. 2ntuk itu diperlukanlah sebuah struct baru yang nantinya digunakan untuk
menyimpan data nilai tertinggi. Struct baru tersebut adalah struct maks. Defaultnya struct
maks akan bernilai sama dengan nilai element struct nilai pertama. :amun nantinya akan
berubah jika menemui nilai yang lebih besar darinya hingga pengulangan untuk penampilan
struct berakhir. Dan terkhir tinggal kita tampilkan isi dari masing-masing element dari struct
maks tadi.
%. Kesi!ulan
&. Suatu struct dapat diakses menggunakan variabel pointer.
$. Dalam penulisan pointer pada struct perlu diperhatikan bah(a penulisan tanda kurung
seperti pada contoh
/S)os_Uy0.U merupakan suatu keharusan.
SebabS)os_Uy.U
mempunyai makna yang berbeda dengan/S)os_Uy0.U
2ngkapan LposKy.K mempunyai makna yaitu " Myang ditunjuk oleh posKy.K M sebab
operator titik mempunyai prioritas yang lebih tinggi daripada operator L!.