Anda di halaman 1dari 4

Tugas Struktur Data

Nama : Anas Farikh


NIM : 13.11.0049

PROGRAM STUDI TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
AMIKOM PURWOKERTO

2013
POINTER DALAM STRUKTUR DATA DINAMIS
Pointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatu variabel lain.
Bentuk Umum: tipe_data *nama_pointer;
Contoh:
int *nilai;
char *huruf;
Pendeklarasian variabel pointer menggunakan tanda * sebelum nama variabelnya.
Sedangkan untuk menampilkan nilai yang ditunjuk oleh suatu variabel pointer, juga digunakan
operator *
Untuk menampilkan alamat tempat penyimpanan nilai yang ditunjuk oleh suatu variabel
pointer, digunakan operator &
Struktur data dinamis adalah struktur data yang dapat bertambah maupun berkurang sesuai dengan
kebutuhan di saat program berjalan. Struktur data dinamis dapat mengalokasikan blok-blok memori
sesuai dengan yang diinginkan dalam program yang dirangkai (link) dengan menggunakan struktur
pointer. Bila blok memori tidak digunakan lagi, maka blok memori tersebut dilepas untuk keperluan lain.
Contoh Program 1:
#include <stdio.h>
#include <stdlib.h>
void main() {
int *p;
p=(int *) malloc (sizeof(int));
*p=10;
printf("%d\n",*p);
free(p);
}
outputnya

Perintah malloc digunakan untuk mengalokasikan memori dengan jumlah tertentu, dalam hal ini
adalah ukuran memori dari integer, yaitu 4 byte. Type casting dilakukan supaya mengubah pointer
generic (pointer void) yang dihasilkan oleh malloc menjadi pointer integer. Fungsi free digunakan untuk
melepaskan blok memori yang tidak digunakan. Parameter dari sizeof() adalah sebuah obyek atau
sebuah tipe data.
Contoh Program 2:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
struct rec {
int i;
float f;
char c;
};
void main() {
struct rec *p;
p=(struct rec *) malloc (sizeof(struct rec));
(*p).i=10;
(*p).f=3.14;
(*p).c='a';
printf("%d %f %c\n",(*p).i,(*p).f,(*p).c);
free(p);
getch();
}
Outputnya

Seperti dalam operator (tanda operasi) pada umumnya, masing-masing memiliki derajat
(precedence). Dalam bahasa C, tanda . memiliki derajat lebih tinggi dari pada tanda *. Oleh karena
itu maka*p harus berada di dalam tanda kurung.
Contoh Program 3:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main() {
int *a;
int b;
a=&b;
b=10;
printf(" Nilai b : %d \n", b);
printf(" Alamat b : %p \n\n", &b);
printf(" Niai A : %p \n", a);
printf(" Alamat A : %p \n", &a);
printf(" Niali rujukan A : %d \n\n", *a);
a=(int *)malloc(sizeof(int)); // --> memasukan alamat pada memori swap
*a=25;
// free(a); --> menghapus alamat kosong dari a di swap
printf(" Niai A : %p \n", a);
printf(" Alamat A : %p \n", &a);
printf(" Niali rujukan A : %d \n\n", *a);
a=(int *)malloc(sizeof(int)); // --> memasukan alamat pada memori swap
*a=35;
printf(" Niai A : %p \n", a);
printf(" Alamat A : %p \n", &a);
printf(" Niali rujukan A : %d \n\n", *a);
printf("\n\n");
getch();
}
Output Program