Pertemuan Ke-5 - Binary Search Tree - LIUS PASKALIS TANAKA - 2101662612

Binary Tree, Ternary, Graph
Perbedaan dari ketiga hal diatas adalah sebagai berikut :
Binary tree hanya mempunyai anak maximum 2, dan tidak boleh ada looping
Ternary anaknya bisa lebih dari 2
Graph boleh ada looping

Apa itu Binary Search Tree ? (BST)
Tujuannya mencari kemudahan dalam pencariannya agar tidak looping.

Didalam Binary Search Tree ada 3 operation yaitu :
1. Find ()/Search() : Artinya Mencari Nilai pada BST
2. Insert() : untuk memasukan nilai pada BST
3. Remove : untuk menghapus nilai pada BST


Cara memasukan nilai dari Binary Search Tree
Sebelah kiri lebih kecil kanan lebih besar binary search tree atau
Boleh saja kiri lebih besar dan kanan lebih kiri, tetapi kebanyakan orang memakai yang kiri lebih kecil dan kanan lebih besar.


Berikut gambar dan penjelasan cara memasukan nilai pada binary search tree :

Disini kita akan memasukan nilai 35 pada BST, sudah dijelaskan bahwa jika nilai yg dimasukan lebih besar dari akarnya, maka dia akan ke kanan.





Disini angka 35 bertemu dengan angka 37, maka 35 lebih kecil dari 37, maka 35 ditaruh disebelah kiri

Setelah itu angka 35 bertemu dengan angka 32, dan 35 lebih besar dari 32, maka ditempatkan dikanan

Dan hasil akhirnya sebagai berikut 




Selanjutnya saya akan menjelasan tentang bagaimana delete nilai pada Binary Search Tree

Jika kita ingin menghapus nilai paling bawah, maka tinggal hapus saja


Jika kita ingin menghapus salah satu nilai yang kanan atau kiri, maka kita harus mengganti nilai yg telah dihapus sesuai prosedur BST. Disini yg kita pilih untuk menggantikan 37 adalah 35, kenapa ? karena 45 lebih besar dari 35, maka dia dikanan, dan 32 lebih kecil dari 35, maka dia dikiri. Kalo misalnya 32 yg kita pilih untuk menggantikan 37, sangatlah tidak cocok karena 35 lebih besar dari 32.





Jika kita ingin menghapus nilai dari akarnya sendiri maka kita mengambil data yang paling besar dari kiri, disini kita ambil 26 untuk menggantikan 30, karena 26 lebih besar dari antara yang lain dari posisi sebelah kiri.










Posted by
Unknown

More

Pertemuan ke-4 - Introduction to Tree, Binary Tree And Expression Tree - 2101662612 - LIUS PASKALIS TANAKA

Apa itu Tree Concept ?

Tree Concept adalah bentuk struktur data yang berkonsep berbentuk seperti pohon, mereka saling berhubungan antara elemen-elemen, dan turunan dari pohon tersebut bisa lebih dari 2

Contoh Tree Concept


Dari gambar diatas kita bisa mengambil istilah yaitu :

1. Degree of tree yaitu ada berapa banyak turunan dari Tree konsep tersebut, dari gambar diatas kita bisa menjawab ada 3 turunan yaitu (A,B,E), (A,C,F), (A,C,G)

2. Degree of C yaitu berupa anakdari elemen yang kita sebut, dari gambar diatas kita bisa menjawab ada 2 anakdari C, yaitu F dan G

3. Height yaitu jumlah hubungan turunan yang panjang, dari gambar diatas kita bisa menjawab yaitu ada 3, karena paling panjang ada 3 turunan, contohnya A,B,E

4. Parent of C yaitu atasan dari turunan C, dari gambar diatas kita bisa menjawab atasan dari C yaitu A

5. Children of A yaitu anak- anak pertama yang dia turunkan, dari gambar diatas kita bisa mejawab children dari A adalah B,C,D

6. Sibling of F yaitu saudara yang ada disebelahnya setelah diturunkan, dari gambar diatas kita bisa menjawab sibling dari F adalah G

7.  Ancestor of F yaitu atasan sampai yang atas selama masih berhubungan, dari gambar diatas kita bisa menjawab ancestor dari F yaitu A dan C

8. Descendant of C yaitu turunan sampai turunan sampai akhir , dari gambar diatas kita menjawab descendant dari C yaitu F dan G, dan kalau descendant dari A yaitu semua kita tulis  B, C, D dan seterusnya, karena mereka dalah turunan dari A


Apa Itu Binary Tree ?
Binary Tree adalah Struktur data yang berhubungan dengan berbentuk seperti pohon, Binary tree hanya bisa mempunyai turunan maximal 2, tidak boleh lebih dari 2


Binary Tree terbagi 4 macam yaitu 

1. Perfect Binary Tree yaitu mempunyai tingkat turunan yang sama dana mempunyai 2 child



2. Complete Binary Tree yaitu pohon biner yang mempunyai turunan 2 child dan 1 child



3. Skewed Binary Tree yaitu pohon biner yang hanya mempunyai turunan dengan 1 child saja



4. Balanced Binary Tree yaitu pohon biner yang jarak antara turunan tidak jauh






Apa itu Representasi Binary Tree ?

Representasi Binary Tree bisa dibilang, memasukan data dari bentuk pohon itu ke dalem tabel



(+) 0 1 2 merupakan isi dari Parent A dan parent A mempunyai 2 anak yaitu B dan C
(+) 3 tidak terisi, mengapa ? karena parent dari B hanya mempunyai 1 anak yaitu D, dan D terisi pada nomor 4
(+) 4 isinya D yang berasal dari anak B
(+) 5 6 merupakan isi anak dari C yaitu E dan F
(+) 7 8 9 10 tidak terisi, mengapa ? karena parent D tidak mempunyai anak, dan parent F juga tidak mempunyai anak
(+) 11 12 merupakan isi dari anak E yaitu G dan H




Apa itu Expression Tree Concept ?

yaitu cara menghubungkan notasi operasi dari bentuk pohon tersebut dengan cara prefix, postfix dan infix. Pengertian prefix, postfix dan infix sudah dijelaskan pada blog sebelumnya, tetapi saya akan menjelaskannya lagi setelah gambar ini.



Hasil dari :
Prefix : *+ab/-cde = operator di belakang operand
Postfix : ab+cd-e/* = operator dikanan operand
Infix : (a+b)*((c-d)/e) = operator ditengah-tengah operand

*NOTE : Penulisan Infix yang benar yaitu dengan pakai tanda kurung () jika bertemu operator kali *, contoh penulisan yang salah = a+b*c-d/e

Posted by
Unknown

More

Pertemuan Ke-3 - Linked List Implementation II - 2101662612 - LIUS PASKALIS TANAKA

STACK CONCEPT
Konsep Stack pada data strucktur yaitu seperti menyusun piring, yang pertama masuk maka dia yang teraKhir keluar, begitu sebaliknya, dia yang terakhir masuk maka dia yang awal keluar (LIFO = LAST IN FIRST OUT)




Ada 3 tipe stack oeprator :
1. Push() : menambahkan item kebagian atas tumpukan
2. Pop() : hapus item dari tumpukan
3. Top() : mengembalikan item teratas dari stack





Stack memiliki 2 variable :
1. TOP yaitu digunakan unutk menyimpan alamat elemen paling atas dari stack
2. MAX yaitu digunakan untuk menyimpan jumlah maximum elemen yang dapat disimpan oleh stack

Beberapa aplikasi yang menggunakan data stack :
1. Infix Evaluation
2. Postfix Evaluation
3. Prefix Evaluation
4. Infix to Postfix Conversion
5. Infix to Prefix Conversion
6. Depth First Search




Prefix yaitu operator yang ditulis sebelum operand
Infix yaitu operator yang ditulis bersamaan dengan operand atau operator ditengah operand
Postfix yaitu operator yang ditulis sesudah operan

note : operator yaitu seperti * / + - dan operand yaitu angkanya

untuk menentukan prefix dan postfix dari infix dapat dicari dengan rumus :
Prefix : operator - left operand - right operand
Postfix : left operand - right operand - operator



QUEUE CONCEPT
Konsep Queue ini seperti melakukan antiran, yaitu yang pertama masuk maka dia yang pertama keluar (FIFO = FIRST IN FIRST OUT)




Ada 3 tipe Queue operator :
1. Push()/Enqueue : Menambah data kebelakang antrian
2. Pop()/Dequeue : Hapus item dari depan antrian
3. Front() : mengembalikan barang paling depan dari antrian






Posted by
Unknown

More

PERTEMUAN KE-2 - LINKED LIST IMPLEMENTATION I - 2101662612 - LIUS PASKALIS TANAKA


Beberapa macam linked list :

1. Single Linked List
2. Polynomial Representation
3. Circular Single Linked List 
4. Doubly Linked List 
5. Circular Doubly Linked List 
6. Header Linked List 

SINGLE LINKED LIST
Linked list yang hanya mempunyai 1 pointer variabel saja, pointer tersebut hanya menunjuk ke data selanjutnya

Cara memasukan nilai pada linked list :
struct tnode{
     int value;
     struct tnode *next;
};
struct tnode *head = 0;

head merupakan elemen pertama dari linked list

Berikut contoh single linked list jika kita ingin menambah data dari depan :




    Berikut contoh single linked list jika kita ingin mengapus data depan :

    
    Berikut contoh single linked list jika kita ingin menghapus data dari tengah:




DOUBLY LINKED LIST

Doubly linked list berisi struktur dengan 2 link, satu berisi referensi ke data berikutnya, dan yang satunya lagi berisi referensi ke data sebelumnya.

Cara memasukan nilai pada doubly linked list :
      
struct tnode {
            int value;
            struct tnode *next;
            struct tnode *prev;
       };

       sturct tnode *head = 0;
sturct tnode *tail = 0;



tail merupakan elemen akhir pada doubly linked list




CIRCULAR SINGLE LINKED LIST

tipe linked list yang satu ini mempunyai node terakhir yang berisi pointer node yang awal, dan tidak ada penyimpanan nilai dalam daftar






CIRCULAR DOUBLY LINKED LIST 

tipe linked list ini mempunyai 2 pointer di setiap node





HEADER LINKED LIST

linked list ini tidak menunjuk pada node head atau node 
pertama, tetapi hanya menyimpan alamat node headernya





Posted by
Unknown

More

Pertemuan Ke-1 - Pointer, Array and Introduction to Data Structure - 2101662612 - Lius Paskalis Tanaka





ARRAY
Array adalah kumpulan dari nilai - nilai data bertipe sama (Homogen) dalam urutan tertentu yang menggunakan sebuah nama yang sama. Indeks dari array dimulai dari angka 0

Array dibagi ke berbagai macam :
1. One dimensional array
    contohnya :
    int array[3] = {9,8,7};
    indeks ke 0 = 9
    indeks ke 1 = 8
    indeks ke 2 = 7

2. Two dimensional array
    contohnya :
    int array[2][3] = {{8,6,5}, {7,8,9}};
    hasilnya :
    |8|6|5|
    |7|8|9|

3. Multi dimensional array
   array yang lebih dari satu dan bisa kita pakai dengan batas maximum 
   255 dimensi (dalam java) dan 920 dimensi (dalam C).

Beberapa operasi yang bisa dilakukan pada array :
1. Traversal
2. Insertion yaitu menambahkan data  dari array
3. Searching yaitu mencari data dari array
4. Deletion yaitu menghapus data dari array
5. Merging menggabungkan nilai data dari array
6. Sorting yaitu menyusun data secara urut (ascending/descending) dari array




POINTER
Pointer adalah data tipe yang nilainya mengacu pada nilai lain yang disimpan ditempat lain dalam memori komputer yang menggunakan alamatnya, atau juga pointer bisa dibilang sebuah variabel yang digunakan sebagai penunjuk alamat dari variabel lain.

Ada 2 tipe operator dalam pointer :
1. Ampersand (&) berguna sebagai mencari alamatnya
2. Asterisk (*) berguna sebagai mencari nilainya

Contoh penggunaan pointer :
int i = 100;
int *ix = &i;
nilai dari variabel i adalah 100
*ix berisi alamat variabel i
maka *ix adalah 100 karena didapati dari nilainya i

Perbedaan single dan double pointer dan jumlah maximal pointer
1. Single pointer berarti hanya satu kali menuju target pointer yang dituju
2. Double pointer berarti dua kali menuju target pointer yang dituju

Contohnya :
int p = 100;
int *q = &p;
int **r = &q;
yang tercetak adalah 100 karena pointer r merupakan double pointer maka dia mengarah ke q lalu ke p

Jumlah Maximal pointer yang bisa dibuat oleh C adalah 922 pointer.




STRUKTUR DATA
Struktur Data adalah susunan data, baik dalam memori komputer maupun pada penyimpanan disk

Beberapa contoh Struktur Data :
1. Array adalah kumpulan dari nilai - nilai data bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang sama.

2. Linked List adalah Struktur data yang sangat dinamis dimana elemen dapat ditambahkan atau dihapus dari mana saja dengan sesukanya sendiri. Element linked list disebut node

3. Queue adalah Element yang disisipkan pertama adalah yang pertama diambil, seperti halnya mengantri dibank, jika kita mengantri pertama maka kita juga yang akan pertama dilayani oleh admisi banknya.

4. Stacks adalah sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out) yang artinya dimana data yang terakhir masuk maka dia yang akan pertama keluar, contohnya pada tumpukan piring sehabis dicuci, piring terakhir yang habis selesai dicuci pastinya ada ditumpukan paling atas, dan ketika kita mau makan maka kita mengambil piring yang dari atas.

5. Binary Trees adalah sebuah pohon struktur data yang berisi kumpulan element atau disebut node, setiap node berisi pointer kiri, pointer kanan, dan element data




DATA TYPE
Data Type adalah kumpulan objek dan satu set operasi yang bekerja pada objek tersebut.
contoh data type yaitu int, char, array of char, float, dan lainnya.




ABSTRAK DATA TYPE
Abstrak Data Type adalah kupulan tipe data yang disusun menjadi satu dan tipe data tersebut bisa berbeda - beda, contoh dari abstrak data type adalah class dan struct

contoh pembuatan abstrak data type (ADT) :
struct dosen{
   int nik;
   char nama[30];
   char alamat[50];
};




Di sesi kedua kita kedatangan tamu dari luar yang bernama Samuel Theodorus yaitu alumni binusian 16 yang sekarang menjadi director dari perusahaan Elven Digital, perusahaan yang bergerak dibidang digital marketing. Di sesi kedua ini dia menjelaskan tentang gunanya struktur data bagi dunia pekerjaan atau perusahaan, dan dia juga menjelaskan tentang search engine optimization (SEO).


Lius Paskalis Tanaka
2101662612

Posted by
Unknown

More

Cari Blog Ini

Pertemuan Ke-5 - Binary Search Tree - LIUS PASKALIS TANAKA - 2101662612

Binary Tree, Ternary, Graph Perbedaan dari ketiga hal diatas adalah sebagai berikut : Binary tree hanya mempunyai anak maximum 2, dan tida...

Diberdayakan oleh Blogger.

Copyright © / Data Structure

Template by : Urang-kurai / powered by :blogger