Contoh penggunaan Pointer pada Struct

3
TUGAS ASD_POINTER PADA STRUCT Nama : Eko Kurniawan Subha NIM : 105060801111067 Tanggal : 16 Maret 2011 Dosen MK : Issa Arwani #include <stdio.h> #include <stdlib.h> #include <conio.h> struct motor{ float volts; float amps; }; typedef struct motor motor; void main() { motor m; // mendeklarasikan variabel m sebagai tipe data motor motor *pm; // mendeklarasikan variabel pointer yang menyimpan alamat // slot memori yang berisi data bertipe motor m.volts=10; m.amps=20; Mengakses Struct pm=&m; printf("isi m bagian volts diakses secara langsung= %f", m.volts); printf("\nisi m bagian amps diakses secara langsung= %f", m.amps); getch(); printf("\n\nisi m bagian volts diakses melalui pm= %f", (*pm).volts); printf("\nisi m bagian amps diakses melalui pm= %f", (*pm).amps); getch(); }

Transcript of Contoh penggunaan Pointer pada Struct

Page 1: Contoh penggunaan Pointer pada Struct

TUGAS ASD_POINTER PADA STRUCTNama : Eko Kurniawan Subha

NIM : 105060801111067

Tanggal : 16 Maret 2011

Dosen MK : Issa Arwani

#include <stdio.h>#include <stdlib.h>#include <conio.h>

struct motor{float volts;

float amps;};typedef struct motor motor;

void main(){

motor m; // mendeklarasikan variabel m sebagai tipe data motor motor *pm; // mendeklarasikan variabel pointer yang menyimpan alamat

// slot memori yang berisi data bertipe motor

m.volts=10; m.amps=20; Mengakses Struct

pm=&m;

printf("isi m bagian volts diakses secara langsung= %f", m.volts); printf("\nisi m bagian amps diakses secara langsung= %f", m.amps); getch();

printf("\n\nisi m bagian volts diakses melalui pm= %f", (*pm).volts); printf("\nisi m bagian amps diakses melalui pm= %f", (*pm).amps); getch();

}

Ketiklah kode program di atas

1. Apa guna dari baris 5 – 9?2. Apa beda baris 21 – 22 dengan baris 25 – 26?3. Jelaskan cara mengakses field sebuah struct menggunakan pointer!

Page 2: Contoh penggunaan Pointer pada Struct

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 ->

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

Penyelesaian

1. Fungsi Struct digunakan untuk mengelompokkan beberapa variabel baik dengan tipe data sama maupun tidak dengan nama variable baru. Pada program di atas, variabel volts dan amps dikelompokkan dengan nama variabel motor.

2. Pada baris 21-22, program langsung mengakses nilai dari statemen yang ada pada baris ke 16-17. Sedangkan pada baris 25-26, program mengakses nilai melalui pointer pm yang telah menyimpan alamat struct motor (menyimpan variabel volts dam amps).

3. Field suatu struktur dapat diakses dengan menggunakan operator titik (‘.’). Selain dapat menggunakan operator titik, untuk operasi pointer dapat juga digunakan operator ‘->’ atau operator ‘*’, seperti pada program di atas.

4.m.volts=30;m.amps=40;

printf("\n\nnilai m.volts menjadi %f", pm->volts);printf("\nnilai m.amps menjadi %f", pm->amps);

5. ……motor m;

motor *pm; motor *pm2;

m.volts=10; m.amps=20;

pm=&m;

Page 3: Contoh penggunaan Pointer pada Struct

printf("isi m bagian volts diakses secara langsung= %f", m.volts); printf("\nisi m bagian amps diakses secara langsung= %f", m.amps); getch();

printf("\n\nisi m bagian volts diakses melalui pm= %f", (*pm).volts); printf("\nisi m bagian amps diakses melalui pm= %f", (*pm).amps); pm2=&m;

printf("\n\nnilai m.volts menjadi %f", pm2->volts); printf("\nnilai m.amps menjadi %f", pm2->amps);

……….