cara penyimpanan, pengorganisasian dan pengaturan data di dalam media penyimpanan komputer agar dapat
digunakan secara efisien.
Data adalah representasi dari fakta dunia nyata. Fakta atau keterangan tentang kenyataan yang disimpan,
direkam atau direpresentasikan dalam bentuk angka, karakter, gambar, suara, atau simbol yang dapat digunakan
untuk dijadikan informasi. Data juga sering didefinisikan sebagai informasi yang belum terolah.
Contoh: 10 29 11 31 12 32 13 30 14 30 15 29
Tipe Data
Tipe data adalah himpunan semua nilai yang mungkin dari suatu data.
Secara umum tipe data di dalam bahasa pemrograman bisa dikelompokkan menjadi berbagai jenis. Berikut ini
beberapa jenis tipe data yang umum digunakan:
Tipe data sederhana (Ordinary) adalah tipe data yang sudah ada dan dijadikan standar dalam bahasa
pemrograman tertentu. Isi dari tipe data sederhana ini adalah data-data tunggal.
c. Character / Char
Merupakan tipe data yang digunakan untuk menampung data berupa karakter. Karakter ini hanya boleh terdiri
dari 1 digit, berupa huruf ’a’, ’A’, ’x’, atau bilangan ’0’, ’1’, ’5’, ’9’ atau berupa karakter-karakter khusus
lainnya, seperti ’#’, ’@’, ’&’, ’$’ dsb.
d.Boolean
Tipe data boolean adalah tipe data yang biasanya digunakan untuk menentukan kondisi suatu variabel bernilai
benar (true) atau salah (false).
Jadi tipe data ini hanya berisi nilai True atau False, tetapi beberapa bahasa pemrograman menggunakan nilai 1
untuk kondisi benar (true) dan nilai 0 untuk kondisi salah (false).
Pada tipe data terstruktur setiap perubah bisa menyimpan lebih dari sebuah nilai data. Masing-masing nilai data
disebut komponen. Karakteristik data bertipe tersetruktur ditentukan berdasarkan cara penstrukturan dan cara
mengakses masing-masing komponen.
a. Array (Larik)
•Array adalah tipe data yang berisi beberapa data yang ditampung dalam satu variabel yang memiliki tipe data yang
sama (homogen).
•Masing masing data yang tertampung dalam sebuah array akan ditandai menggunakan indeks.
•Array dapat dibuat lebih dari satu dimensi, misalnya untuk meng-gambarkan matriks perlu menggunakan array dua
dimensi, dengan indeks baris dan kolom.
•Akses data individu pada sebuah array dengan menyebut indeksnya.
b. Record (Rekaman)
•Record adalah koleksi dari obyek-obyek yang tipenya tidak harus sama (heterogen) dan akses terhadap obyek tersebut
dilakukan dengan menyebut nama obyeknya.
Contoh:
c. String
•Tipe data string digunakan untuk menampung sebuah atau beberapa karakter sekaligus dapat berupa angka, huruf
atau karakter khusus lainnya. Dalam bahasa pemrograman C, variabel string merupakan sebuah array karakter atau
sebuah pointer yang menunjuk ke sebuah variabel char yang diakhiri dengan karakter null.
Untuk mendeklarasikan sebuah pointer kosong pada memory diguna-kan perintah *malloc(size_t size)
TOPIK 2
TOPIK 3
3.1 linked list Lanjutan
Linked list (senarai berantai) adalah sejumlah node yang dihubungkan secara linier dengan bantuan pointer.
Linked List Lurus dengan pointer tunggal. Jadi dalam satu struktur simpul hanya ada satu elemen atau field atau variabel
yang bertipe pointer yang isinya adalah alamat simpul berikutnya atau next node.
Ilustrasi :
Linked List Lurus dengan pointer ganda, yaitu ada dua buah pointer. jenis linked list yang terdiri dari 3 bagian yaitu isi
informasi node, pointer yang menunjuk node berikutnya (next) dan pointer yang menunjuk node sebelumnya (previous).
Kelebihan dari double linked list adalah memungkinkan list ditelusuri dari dua arah. Sehingga, dapat melakukan proses
searching yang fleksibel dibandingkan dengan linear linked list.
ilustrasi :
Circular Singly Linked List dimana pengembangan dari linear linked list. Struktur pembentuk nodenya sama. Hanya saja
tidak ada nilai NULL pada node tail melainkan pointer pada node tail akan merujuk pada node head sehingga
menciptakan efek melingkar ‘sesuai arah jarum jam’.
4.Circular Doubly-Linked List
Circular Doubly Linked list adalah linked list dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu 1
field pointer yang menunjuk pointer berikutnya (next), 1 field menunjuk pointer sebelumnya (prev), serta sebuah field
yang berisi data untuk node tersebut dengan pointer next dan pre-nya menunjuk ke dirinya sendiri secara circular.
sehingga menciptakan efek melingkar baik menurut ‘arah jarum jam’ maupun ‘arah kebalikannya’.
TOPIK 4
4.1 operasi-operasi linked list
Insert
Istilah Insert berarti menambahkan sebuah simpul baru ke dalam suatu linked list.
IsEmpty
Find First
Find Next
Retrieve
Fungsi ini mengambil elemen yang ditunjuk oleh now. Elemen tersebut lalu dikembalikan oleh fungsi.
Update
Fungsi ini mengubah elemen yang ditunjuk oleh now dengan isi dari sesuatu.
Delete Now
Fungsi ini menghapus elemen yang ditunjuk oleh now. Jika yang dihapus adalah elemen pertama dari linked
list (head), head akan berpindah ke elemen berikutnya.
Delete Head
Fungsi ini menghapus elemen yang ditunjuk head. Head berpindah ke elemen sesudahnya.
Clear
4.2 contoh-contoh
struct nodemhs {
char nama[10];
float ip;
---------------------------------------------------------------------------------------------------------------------------------------
-----
head = NULL;
p = (struct nodemhs*)malloc(sizeof…);
p->ip = 4.0;
p->next = NULL;
TOPIK 5
5.1 stack
•Stack adalah konsep penyusunan data dalam bentuk tumpukan data dengan konsep LIFO ( Last In First Out ).
1. Push : Digunakan untuk menambah elemen pada stack pada tumpukan paling atas
fungsinya :
•Tambah satu (increment) nilai Top of STACK terlebih dahulu setiap kali ada penambahan elemen stack, asalkan stack
masih belum penuh, kemudian isikan nilai baru ke stack berdasarkan indeks Top of Stack setelah ditambah satu
(diincrement).
2. Pop : Digunakan untuk mengambil elemen pada tumpukan paling atas
fungsinya :
•Ambil dahulu nilai elemen teratas stack dengan mengakses top of stack, tampilkan nilai yang akan diambil
terlebih dahulu, baru diincrement nilai Top of Stack sehingga jumlah elemen stack berkurang.
Void Pop(Stack* S)
{ int X;
if (IsEmpty(*S))
{
X = -99999l
}
Else
{
X = (*S).Data[(*S).TOP];
(*S).TOP--;
return X;
}
4. IsEmpty : Fungsi yang digunakan untuk mengecek apakah stack sudah kosong
fungsinya :
•Dengan cara memeriksa Top of Stack, jika sudah sama dengan MAX_STACK-1 maka full, jika belum (masih lebih kecil
dari MAX_STACK-1) maka belum full.
Int IsFull(Stack S)
{
return 1;
else
return 0;
}
5. IsFull : Fungsi yang digunakan untuk mengecek apakah stack sudah penuh
fungsinya :
•Dengan cara memeriksa Top of STACK, jika masih -1 maka berarti stack masih kosong .
•Int IsEmpty(Stack S)
{
if (S.TOP == -1)
return 1;
else
return 0;
}
TOPIK 6
Queue/ antrian
•Queue atau antrian adalah barisan elemen yang apabila ditambah maka penambahannya berada di posisi belakang dan
jika dilakukan pengambilan elemen dilakukan di elemen paling depan (front).
• Benda yang pertama masuk ke dalam queue akan menjadi benda pertama yang dikeluarkan dari queue.
operasi-operasi queue
Untuk menambahkan elemen ke dalam antrian, penambahan elemen selalu ditambahkan di elemen paling
belakang. dan Penambahan elemen selalu menggerakkan variabel Tail dengan cara increment counter Tail.
untuk menghapus elemen terdepan/pertama dari Antrian. Dengan cara mengurangi counter Tail dan menggeser
semua elemen antrian kedepan.
•IsEmpty : Fungsi yang digunakan untuk mengecek apakah queue sudah kosong
Untuk memeriksa apakah Queue masih kosong ? Dengan cara memeriksa nilai Tail, jika Tail = -1 maka berarti
Queue masih kosong. Kita tidak memeriksa Head, karena head adalah tanda untuk kepala (elemen pertama
dalam antrian) yang tidak akan berubah-ubah.
•IsFull : Fungsi yang digunakan untuk mengecek apakah queue sudah penuh
Untuk memeriksa apakah Queue sudah penuh ? Dengan cara memeriksa nilai Tail, jika Tail >= MAX-1 maka
full, jika belum (masih lebih kecil dari MAX_STACK-1) maka belum full.
•Front : pointer bantu yang digunakan untuk menunjuk element yang paling depan.
•Rear : pointer bantu yang digunakan untuk menunjuk element yang paling belakang.
TOPIK 7