1
A
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:
Kotak kotak yang dicetak tebal adalah array nya, pegindexan array secara
0
integer dimulai dari angka 0.
1
Gambar tersebut merepresentasikan sebuah array dimana dalam memory
sebuah array tersusun secara berurut.
2
2
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 ‘[ ]’.
int A[20];
// hal ini berarti: A merupakan array dengan tipe integer dengan lebar 20
(cacah elemen max ada 20 buah)
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 <stdio.h> #include <conio.h> #include <string.h> #include <windows.h>
typedef char string[20]; // string adalah tipe baru typedef struct
{
}Mhs;
int NIM; string Nama; float IPK;
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
3
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) {
void InitAnggotaKelompok(Kelompok *K, int nim, char nama[], float ipk, int index)
4
//file main.c
#include "header.h"
void main() {
int i,pilihan,n; int nim;
string name; float ipk;
Kelompok grupku;
do {
system("cls"); printf("=====menu=====");
printf("\n1.Inisialisasi Kelompok Mahasiswa"); printf("\n2.Isi n Mahasiswa pertama");
printf("\n3.Print Isi Kelompok Mahasiswa"); printf("\n0.Exit");
printf("\n\nmasukkan pilihan=");scanf("%d",&pilihan); switch(pilihan)
{
case 1: InitKelompok(&grupku);printf("\ndone");getch();break; case 2: printf("\n\nBanyakknya Mahasiswa yang akan dimasukan (Max 10):");scanf("%d",&n);
for(i=0;i<n;i++) //init 4 pertama dari keyword {
printf("NIM :");scanf("%d",&nim); printf("Nama:");scanf("%s",&name); printf("IPK :");scanf("%f",&ipk); printf("\n");
InitAnggotaKelompok(&grupku,nim,name,ipk,i); }
system("pause");break;
case 3:PrintKelompok(grupku);system("pause");break; }