Data Structures
Week ke - 1
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:
• 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.
[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
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.
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.
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,
Contoh:
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
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.
Ada beberapa operasi yang dapat dilakukan pada array. Operasi ini meliputi:
• Traversing an array
Data Structures
• Searching an element in an 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.
Dalam hal ini jumlah array yang dapat digunakan adalah mulai dari indeks [0][0]
sampai dengan indeks [x-1][y-1].
Data Structures
Contoh:
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.
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
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.
Contoh:
Array 3 dimensi:
int A[2][2][3]
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.
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:
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:
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;
}
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
- Digunakan untuk membuat struktur daya yang kompleks seperti tree, linked list, stack,
queue, dan graphs
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
C - Arrays
https://www.tutorialspoint.com/cprogramming/c_arrays.htm
Structures In C, http://asic-world.com/scripting/structs_c.html
Data Structures