Você está na página 1de 4

#include <stdio.

h>

#include <conio.h>

#include <stdlib.h>

struct motor

float volts;

float amps;

};

typedef struct motor motor;

void main()

motor m;

motor *pm;

m.volts = 10;

m.amps = 20;

pm = &m;

printf("isi m bagian volts diakses secara langsung : %.2f",m.volts);

printf("\nisi m bagian amps diakses secara langsung : %.2f",m.amps);

getch();

printf("\nisi m bagian volts diakses melalui pm : %.2f",(*pm).volts);

printf("\nisi m bagian amps diakses melalui pm : %.2f",(*pm).amps);

getch();

}
Ketiklah kode program di atas

1. Apa guna dari baris 5 – 9?

Jawab: Baris ke 5-9 merupakan deklarasi awal variabel baru struct yaitu variabel
motor. Di dalam variabel motor terdapat dua variabel yaitu float volts dan float
amps. Pada baris ke 9 terdapat typedef untuk mendefinisi tipe struct motor.

2. Apa beda baris 21 – 22 dengan baris 25 – 26?

Jawab: Pada baris 13 dan 14 telah dideklarasi bahwa variabel m dan pointer pm
menggunakan type data struct motor. Pada baris 16 dan 17 telah dideklarasi nilai
volts dan amps dengan menggunakan pemanggil m. Kemudian pada baris 21 dan 22, nilai
tersebut ditampilkan dengan memanggil nilai volts dan amps menggunakan variabel m
yang bertipe data struct motor. Namun pada pada baris 25 dan 26, nilai volts dan
amps ditampilkan dengan memanggil pointer pm yang menunjuk ke variabel m.

3. Jelaskan cara mengakses field sebuah struct menggunakan pointer!

Jawab: Pertama kita harus mendeklarasikan nama variabel struct dan isi variabel
struct (struct motor{float volts;float amps;};), mendeklarasi struct adalah tipe
data (typedef struct motor motor;)serta mendeklarasi variabel yang menggunakan
struct (motor m;motor *pm;). Kemudian kita mendeklarasi pointer (pm = &m;).
Kemudian akses variabel seperti akses pointer biasa ditambah dengan dot(.) dan
elemen variabel struct (printf("\nisi m bagian amps diakses melalui pm : %.2f",
(*pm).amps);).

4. Tambahkan kode sesudah baris 26 untuk mengubah nilai m.volts menjadi 30 dan m.amps
menjadi 40. Kemudian tampilkan isi m.volts dan m.amps. Akses dilakukan melalui
pointer pm menggunakan operator ->

Jawab: Setelah baris ditambahkan perintah (pm->volts = 30;pm->amps = 40;) untuk


merubah nilai volts dan amps. Kemudian kita tampilkan m.volts dan m.amps dengan
perintah (printf("isi m bagian volts yang telah berubah diakses secara langsung :
%.2f",m.volts);printf("\nisi m bagian amps yang telah berubah diakses secara
langsung : %.2f",m.amps);)

5. Tambahkan hal berikut pada program di atas

 deklarasikan pm2 sebagai variabel pointer to motor

 sesudah baris ke 26 salin nilai pm ke pm2

 Tampilkan nilai m menggunakan pm2

Jawab:

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

struct motor

{
float volts;

float amps;

};

typedef struct motor motor;

void main()

motor m;

motor *pm;

m.volts = 10;

m.amps = 20;

pm=&m;

printf("isi m bagian volts diakses secara langsung : %.2f",m.volts);

printf("\nisi m bagian amps diakses secara langsung : %.2f",m.amps);

getch();

printf("\n\nisi m bagian volts diakses melalui pm : %.2f",(*pm).volts);

printf("\nisi m bagian amps diakses melalui pm : %.2f",(*pm).amps);

getch();

pm->volts = 30;

pm->amps = 40;

printf("\n\nisi m bagian volts setelah dirubah : %.2f",m.volts);

printf("\nisi m bagian amps setelah dirubah : %.2f",m.amps);

getch();
motor **pm2;

pm2=&pm;

printf("\n\nisi m bagian volts diakses melalui pm2 : %.2f",(**pm2).volts);

printf("\nisi m bagian amps diakses melalui pm2 : %.2f",(**pm2).amps);

getch();

Você também pode gostar