Anda di halaman 1dari 14

LECTURE NOTES

Data Structures
Week ke - 1

Introduction to Data Structure


LEARNING OUTCOMES

1. Explain the concept data structure and its usage in Computer Science

OUTLINE MATERI :

1. Introduction

2. Array

3. Pointer

4. Struct

5. Nested Struct
ISI MATERI

1. Introduction

Program yang baik merupakan program yang didefinisikan sebagai program yang:

• berjalan dengan benar

• mudah dibaca dan dipahami

• mudah untuk di-debug, dan

• mudah dimodifikasi.

Sebuah program tidak diragukan lagi harus memberikan hasil yang benar, tetapi selain itu
juga harus berjalan secara efisien. Sebuah program dikatakan efisien jika dijalankan
dalam waktu minimum dan dengan ruang memori minimum. Untuk menulis program
yang efisien kita perlu menerapkan konsep manajemen data tertentu.

Konsep manajemen data adalah tugas kompleks yang mencakup kegiatan seperti
pengumpulan data, organisasi data ke dalam struktur yang sesuai, dan mengembangkan
dan memelihara rutinitas untuk jaminan kualitas.

Struktur data adalah bagian penting dari manajemen data dan dalam materi ini akan
menjadi perhatian utama kita. Struktur data pada dasarnya adalah sekelompok elemen
data yang disatukan di bawah satu nama, dan yang mendefinisikan cara tertentu untuk
menyimpan dan mengatur data di komputer sehingga dapat digunakan secara efisien.

Struktur data digunakan di hampir setiap program atau sistem perangkat lunak. Beberapa
contoh umum dari struktur data adalah array, linked list, queue, stack, binary tree, dan
hash table.

Data Structures
2. Array

Array adalah suatu tipe data terstruktur yang bertipe data sama dan berjumlah tetap
(berdasarkan apa yang ditentukan) dan diberi suatu nama tertentu (sesuai variable).
Elemen – elemen array tersusun secara berurutan. Susunan tersebut membuat array
memiliki alamat yang bersebelahan/ berdampingan dalam memori sesuai dengan besar
pemakaian memori tipe data yang digunakan.

Namun, perlu diingat bahwa walaupun elemen-elemennya tersusun secara berurutan,


array tetap dapat diakses secara acak di dalam memori. Array juga dapat berupa array 1
dimensi, 2 dimensi, bahkan n-dimensi.

[0] [1] [2] [3] [4] [5] [6] [7] [8] index
8 23 41 50 15 60 20 30 55 value
1d2 1d4 1d6 1d8 1da 2dc 2de 1e0 1e2 address
Gambar 1. Ilustrasi array 1 dimensi

2.1. Array Declaration

Setiap variable harus dideklarasi sebelum digunakan. Konsep yang sama berlaku
untuk variable array. Sebuah array harus dideklarasi sebelum digunakan, seperti
berikut:

• Data type: jenis data yang dapat disimpan, misalnya, int, char, float,
double.
• Name: untuk mengidentifikasi array.
• Size: jumlah maksimum data yang dapat disimpan oleh array.

Array dideklarasi dengan sintaksis berikut:

data_type array_name[size];
contoh:
char nama[26];

Data Structures
contoh diatas berarti memesan tempat dimemori computer sebanyak 26 tempat
dengan indeks yang dapat digunakan dari indeks sampai dengan indeks 25.

2.2. Storing values in arrays

Ketika mendeklarasikan sebuah array, kita hanya mengalokasikan ruang untuk


elemen-elemennya, tidak ada value yang disimpan dalam array. Ada tiga cara
untuk menyimpan value pada array, yaitu: Inisialisasi elemen array selama
deklarasi, input value untuk masing-masing elemen dari keyboard, dan
menetapkan value ke elemen individu.

Gambar 2. Menyimpan value pada array

Initialize the elements during declaration

Elemen array dapat diinisilisasi pada saat deklarasi, sama seperti variable lainnya.
Ketika sebuah array diinisilisasi, kita perlu memberikan nilai untuk setiap elemen
dalam array. Array diinisilisasi dengan menulis,

Type array_name[size]={list of values};

Contoh:

int list[5] = {2, 1, 3, 7, 8};

Sebuah array dengan nama list dinyatakan memiliki cukup ruang untuk
menyimpan 5 elemen. Elemen pertama, yaitu list[0] diberi nilai 2. Demikian pula,
elemen kedua dari array, yaitu list[1], diberi nilai 1, dan seterusnya.

Data Structures
[0] [1] [2] [3] [4]
int list[5] = {2, 1, 3, 7, 8}; 2 1 3 7 8

Gambar 3. Ilustrasi elemen array

Input values for the elements from keyboard

Array dapat diinisialisasi dengan memasukkan nilai dari keyboard. Dalam metode
ini, while/do-while atau loop for dieksekusi untuk memasukkan nilai untuk setiap
elemen array. Sebagai contoh, lihat code yang ditunjukkan pada gambar 4. Dalam
code, kita mulai dari indeks i pada 0 dan memasukkan nilai untuk elemen pertama
dari array. Karena array memiliki 5 elemen, kita harus memasukkan nilai untuk
elemen yang indeksnya bervariasi dari 0 hingga 4.

int i, list [5];


for(i=0; i<5;i++)
scanf(“%d”, &list[i]);
Gambar 4. Code untuk input setiap elemen array

Assign values to individual elements

Cara ketiga adalah menetapkan nilai ke elemen individual array dengan


menggunakan operator penugasan (assignment operator). Nilai apapun yang
dievaluasi ke tipe data sebagai array dapat ditetapkan ke elemen array individual.
Pernyataan statement penugasan dapat ditulis sebagai berikut:

list[3] = 7; // disini, 7 ditugaskan ke elemen keempat dari array yang ditentukan


sebagai list[3].

2.3. Operation on Arrays

Ada beberapa operasi yang dapat dilakukan pada array. Operasi ini meliputi:

• Traversing an array

• Inserting an element in an array

Data Structures
• Searching an element in an array

• Deleting an element from an array

• Merging two arrays

• Sorting an array in ascending or descending order

2.4. 2 Dimension Array

Array satu dimensi diatur secara linier hanya dalam satu arah. Namun terkadang,
kita perlu menyimpan data dalam bentuk grid atau tabel. Di sini, konsep array
satu dimensi diperluas untuk menggabungkan struktur data dua dimensi. Array
dua dimensi ditentukan menggunakan dua subskrip di mana subskrip pertama
menunjukkan baris dan yang kedua menunjukkan kolom. Kompiler C
memperlakukan array dua dimensi sebagai array dari array satu dimensi. Gambar
5 menunjukkan array dua dimensi yang dapat dilihat sebagai array dari array.

Gambar 5. Array 2 Dimensi

Array apa pun harus dideklarasikan sebelum digunakan. Deklarasi statement


memberitahu compiler nama array, tipe data setiap elemen dalam array, dan
ukuran setiap dimensi. Array dua dimensi dideklarasikan sebagai:

data_type array_name[row size][column size];

Dalam hal ini jumlah array yang dapat digunakan adalah mulai dari indeks [0][0]
sampai dengan indeks [x-1][y-1].

Data Structures
Contoh:

Int matrix [3][3]=


{
{11, 12, 13},
{21, 22, 23},
{31, 32, 33}
};

Contoh diatas berarti program akan memasukkan kumpulan angka yang


berjumlah 9 tersebut ke dalam array matrix yang akan menghasilkan:

Matrix[0][0]= 11
Matrix[0][1]= 12
Matrix[0][2]= 13
Matrix[1][0]= 21
Matrix[1][1]= 22
Dan seterusnya.

Matrix yang dapat digunakan adalah mulai dari indeks [0][0] sampai dengan
[2][2] yang bila dihitung akan berjumlah 9 buah.

2.5. Multi-Dimensional Arrays

Array multidimensi secara sederhana adalah array dari array. Karena kita
memiliki satu indeks dalam array satu dimensi, dua indeks dalam array dua
dimensi, dengan cara yang sama, kita memiliki n indeks dalam larik n-dimensi
atau larik multidimensi. Sebaliknya, array n-dimensi ditentukan menggunakan n
indeks. Array n-dimensi array m1 x m2 x m3 x … x mn adalah kumpulan elemen
m1 x m2 x m3 x … x mn. Dalam array multidimensi, elemen tertentu ditentukan
dengan menggunakan n subskrip sebagai A[I1][I2][I3]...[In], di mana

I1 <= M1, I2 <= M2, I3 <= M3, ... In <= Mn

Data Structures
Sebuah array multi-dimensi dapat berisi indeks sebanyak yang diperlukan dan
kebutuhan memori meningkat dengan jumlah indeks yang digunakan. Namun,
dalam praktiknya, hampir tidak menggunakan lebih dari tiga indeks dalam
program apa pun. Gambar 6 menunjukkan array tiga dimensi. Array memiliki tiga
halaman, empat baris, dan dua kolom.

Gambar 6. Array 3 Dimensi

Contoh:

Array 3 dimensi:

int A[2][2][3]

Array 3 dimensi akan menyimpan 2 x 2 x 3 = 12 elemen.

3. Pointer

Pointer adalah suatu variable yang berisi alamat memori dari suatu variable lain. Pointer
dilambangkan dengan operator “*” dan biasanya digunakan untuk memanipulasi isi
variable di dalam memori.

Contoh penggunaannya adalah

Data Structures
int a = 5;
int b = 3;
int *p;
p = &a;

Pada potongan program di atas dapat dilihat bahwa terdapat 3 buah variable yaitu a, b,
dan pointer p. variable a bernilai 5, variable b bernilai 3.

Pada //1 p menerima alamat dari a, dalam hal ini operator “&” digunakan untuk
mengambil alamat dari variable a, jadi setelah statemen //1 dijalankan maka pointer p
akan memiliki alamat dari a.

Untuk mengambil nilai dari alamat yang dipegang oleh pointer p dapat dilakukan dengan
cara seperti statement //2. Dengan memanggil *p maka nilai dari variable a (alamat yang
dipegang oleh p) akan diambil, dari contoh di atas nilai tersebut diberikan ke variabel b.

Seperti penggunaan array dalam sebuah variabel, sebuah pointer juga dapat
menggunakan array. Seperti contoh berikut ini:

int *ap[10];

Dari contoh di atas dapat dilihat bahwa variabel ap adalah sebuah kumpulan variabel
yang dapat menyimpan 10 alamat dari variabel lain. Indeks dari pointer tersebut dimulai
dari *ap[0] sampai dengan *ap[9].

4. Struct

Dalam Bahasa C, struct adalah sebuah tipe data terstruktur yang menyatukan satu set
variabel yang dapat berbeda tipe datanya ke dalam sebuah object. Deklarasi sebuah struct
terdiri dari sebuah list variabel, baik satu variabel atau lebih sesuai dengan kebutuhan
pengguanaan struct. Total memory yang digunakan oleh sebuah struct tergantung dengan
jumlah memory yang digunakan oleh masing – masing variabel di dalam struct.

Data Structures
Contoh:

Untuk mendeklarasikan sebuah struct dapat menggunakan keyword “Struct” yang diikuti
dengan mendeklarasikan variabel.

struct students {
char name [50];
int age;
float height, weight;
}

Untuk membuat sebuah variabel baru dari tipe struct yang telah dibuat, dapat
dideklarasikan dengan statement sebagai berikut:

Struct students Budi;

Dari statement di atas, telah dideklarasikan sebuah variabel dengan nama “Budi”.
Variabel ini mempunyai 4 property, sebuah variabel dengan tipe data char yang
dinamakan “name”, sebuah variabel dengan tipe data int yang dinamakan “age” dan dua
buah variabel dengan tipe data float yang dinamakan “height” dan “weight”.

Untuk mengakses ke 4 nilai dari property tersebut dapat dilakukan dengan cara:

Strcpy (Budi.name, “Budi”);


Budi.age = 20;
Budi.height = 170.25;
Budi.weight = 75.20;

5. Nested Struct

Sebuah struct dapat ditempatkan di dalam struct lainnya, sehingga sebuah struct dapat
menjadi member dari struct lain. Untuk mendeklarasikannya terdapat 2 cara, yaitu
dengan langsung mendeklarasikan struct tersebut dalam sebuah deklarasi (tetapi Teknik

Data Structures
ini tidak direkomendasikan), cara kedua dan yang termudah, adalah dengan
mendeklarasikan kedua (atau lebih) struct tersebut ke dalam deklarasi yang terpisah.

Contoh:

Struct Name {
Char first_name[20];
Char mid_name[20];
Char last_name[20];
}
Struct Date {
Int dd;
Int mm;
Int yy;
}
Struct student {
Char nim[10];
Name name;
Date DOB;
}

Untuk penggunaannya dapat dilakukan seperti contoh berikut ini:

Student student1;
Strcpy(student1.name.first_name, “Budi”);
Strcpy(student1.name.mid_name, “Hartono”);
Strcpy(student1.name.last_name, “Manurung”);
Strcpy(student1.nim, “1100010444”);
Student1.DOB.dd = 18;
Student1.DOB.mm= 10;
Student1.DOB.yy=1992;

Data Structures
SIMPULAN

Pointer biasanya digunakan dalam Bahasa C dengan berbagai kepentingan, contohnya:

- Digunakan untuk menyampaikan informasi antar function

- Memungkinkan programmer mengembalikan banyak item data dari sebuah function


melalui parameternya atau mengirimkan array dan string sebagai parameter

- Menyediakan cara alternatif untuk mengakses suatu elemen dalam array

- Digunakan untuk membuat struktur daya yang kompleks seperti tree, linked list, stack,
queue, dan graphs

- Digunakan untuk melakukan dynamic memory allocation dari sebuah variabel.

Beberapa operasi yang dapat dilakukan dalam array adalah traversal, insertion, searching,
deletion, merging, dan sorting

Struct pada dasarnya adalah sebuah tipe data yang dapat disesuaikan dengan keinginan user
untuk menyimpan sebuah informasi (tipe data dapat berbeda) menjadi satu kesatuan, sedangkan
sebuah array hanya dapat menyimpan informasi dengan tipe data yang sama. Merupakan sebuah
collection of variable dalam satu buah nama. Variabel yang disimpan dalam sebuah struct dapat
berbeda tipe data dan memiliki nama yang berbeda, yang dapat digunakan untuk memilih
variabel yang igin digunakan dalam struct.

Data Structures
DAFTAR PUSTAKA

Thareja, R. (2014). Data Structures Using C (second). Oxford University Press.


https://doi.org/10.1136/adc.67.4.533

C - Arrays
https://www.tutorialspoint.com/cprogramming/c_arrays.htm

Structures In C, http://asic-world.com/scripting/structs_c.html

Data Structures

Anda mungkin juga menyukai