Struktur Data Modul 02 Array

Modul 2 – ARRAY

I.

TUJUAN
1. Memahami konsep dan implementasi Array dalam bahasa C.
2. Memahami penggunaan Array dalam aplikasi sehari-hari.

II.

DASAR TEORI

Array atau sering disebut juga sebagai larik adalah sebuah struktur data yang menyimpan
sekumpulan elemen dengan tipe yang sama dan disimpan dalam memori computer yang
kontigu (saling bersebelahan urut, tidak ada skip) dan kapasitas elemen terdefinisi sebelumnya.
Akses setiap elemen harus melalui indexnya. Index larik haruslah tipe data yang menyatakan
keterurutan (order) seperti integer atau character. Array merupakan tipe data yang statis atau
static data type karena lebar nya tidak bisa berubah-ubah setelah kita mendeklarasikan
lebarnya. Oleh karena itu, kita juga tidak dapat men-delete elemen array, hanya dapat
mengubahnya. Berikut ilustrasi dari sebuah array dgn nama A dan memiliki 3 elemen pada
memory:


A

Kotak kotak yang dicetak tebal adalah array nya, pegindexan array secara

0

integer dimulai dari angka 0.

1Gambar tersebut merepresentasikan sebuah array dimana dalam memory
sebuah array tersusun secara berurut.

2
Pada beberapa compiler ada yang mengijinkan isi dari array melebihi batas maximum dari
pendeklarasian, namun kemungkinan yang terjadi karena data yang terletak pada index tidak
cover dalam array adalah nilai tersebut bisa saja mengoverwrite nilai lain yang ada pada
alamat memory tersebut.

1


Pendeklarasian Larik
Untuk mendeklarasikan sebuah larik dalam bahasa C menggunakan cara yang sama
seperti mendeklarasikan variabel biasa, hanya perlu diberi lebar indexnya dengan
memberi tanda kurung siku ‘[ ]’.
// hal ini berarti: A merupakan array dengan tipe integer dengan lebar 20
(cacah elemen max ada 20 buah)
int A[20];

Pengoprasian Larik
Untuk melakukan pengoprasian terhadap Larik, yang di perlukan adalah permainan
pada indexnya.
B=A[1]+A[2]

Kapan Menggunakan Larik?
Larik digunakan bila kita memiliki sejumlah data yang bertipe sama dan kita perlu melakukan
penyimpanan sementara untuk selanjutnya diproses.
Misalkan kita mempunyai 10 mahasiswa, maka dapat dibangun struktur array of mahasiswa.

III.


DEMO

//file header.h
#include
#include
#include
#include






typedef char string[20]; // string adalah tipe baru typedef
struct
{
int NIM;
string Nama;
float IPK;
}Mhs;

typedef Mhs Kelompok[10]; //Kelompok: tipe baru setara dengan array of Mhs
void InitMhs(Mhs *m, int nim, char nama[], float ipk);
//IS: m terdefinisi, belum ada isinya
//FS: nim, nama, ipk terdefinisi dan ada isinya sbg input bagi m
void PrintMhs(Mhs m);
//IS: m terdefinisi dan sudah ada isinya
//FS: tercetak isi elemen data m ke layar komputer
void InitKelompok(Kelompok *K);
//IS: K terdefinisi, belum ada isinya
//FS: K berisi yaitu semua NIM dari elemen data K di set 0, sebagai control

2

void InitAnggotaKelompok(Kelompok *K, int nim, char nama[], float ipk, int
index);
//IS: K terdefinisi, nim, nama, dan ipk terdefinisi dan sudah ada isinya,
//
semuanya inputan utk K, index terdefinisi dan sudah ada isinya (salah
//
satu angka dari 0 sd MAX), index adalah indeks dari K dimana ke

//
elemennya akan dimasukkan seorang Mhs
//FS: Elemen ke-index dari K akan berisi Mhs dengan NIM=nim, Nama=nama, dan
//
IPK=ipk
void PrintKelompok(Kelompok K);
//IS: K terdefinisi dan sudah ada isinya atau kosong //FS:
tercetak data-data dari semua elemen K yang efektif

//file source.c
#include "header.h"
void InitMhs(Mhs *m, int nim, char nama[], float ipk)
{
(*m).NIM=nim;
strcpy((*m).Nama,nama);
(*m).IPK=ipk;
}
void PrintMhs(Mhs m)
{
printf("%d %s %4.2f\n",m.NIM,m.Nama,m.IPK);

}
void InitKelompok(Kelompok *K)
{
int i;
for(i=0;i