Showing posts with label session. Show all posts
Showing posts with label session. Show all posts

Friday, August 26, 2016

Session 5 Stack and Application

Session 5 Stack and Application


Stack adalah tumpukan dari suatu data.
Dalam kehidupan stack bisa dinyatakan seperti tumpukan buku yg memiliki konsep:
- LIFO (Last in First Out) : buku yang terakir masuk akan pertama kali keluar
- FILO (First in Last Out) : buku yang pertama kali masuk akan keluar terakir

Dalam stack ada 2 variabel ;
TOP : untuk menunjukan data teratas pada stack
MAX : untuk menujukan jumlah data pada stack

Jika Top = NULL maka stack kosong
jika Top = Max - 1 berarti stack penuh.
Pada stack, jika menambah data maka TOP akan naik dan jika menghapus data TOP akan turun.

Operasi pada stack :
- is_empty(); = untuk mengecek stack kosong
- is_full(); = untuk mengecek stack penuh
- top(); atau peek(); = untuk kembali ke index top
- push(isi); = untuk menambah isi pada TOP didalam stack
- pop(); = untuk menghapus data dari TOP dalam stack

Queue adalah barisan/antrian dari suatu data

Queue memiliki 2 konsep
FIFO (First in First Out) : data yang pertama masuk akan keluar pertama
LILO (Last in Last Out) : data yang terakir masuk akan keluar terakir

Tipe Queue:
Preority Queue : antrian yang suatu datanya ada yang didahulukan
Circular Queue : antrian yang bersika sirkular

Depth First Search (DFS) dan Breadth First Search (BFS)

DFS : pencarian solusi dengan menelusuri lebih dahulu akar - akarnya,jika tidak ketemu pencarian akan dipindah ke node yang lain pada level yang sama

Keuntungan menggunakan metode DFS:
- Membutuhkan memori yang relative kecil, karena hanya node-node pada lintasan yang aktif saja yang disimpan.
- Secara kebetulan, metode depth-first search akan menemukan solusi tanpa harus menguji lebih banyak lagi.

Kekurangan dari metode DFS ini yaitu:
- Memungkinkan tidak ditemukannya tujuan yang diharapakan.
- Hanya akan menemukan 1 solusi pada setiap pencarian.

BFS : pencarian solusi dimana semua node pada level n akan ditelusuri terlebih dahulu

Keuntungan yang didapat apabila menggunakan metode BFS ini yaitu:
- Tidak akan menemui jalan buntu.
- Menjamin ditemukannya solusi (jika solusinya memang ada) dan solusi yang ditemukan pasti yang paling baik.
- Jika ada satu solusi maka bread-first search akan menemukannya.

Dan kekurangan dari metode BFS ini yaitu:
- Membutuhkan memori yang cukup banyak.
- Membutuhkan waktu yang cukup lama.

Get or watch

Read more »

Session 4 Introduction to Tree Binary Tree And Expression Tree

Session 4 Introduction to Tree Binary Tree And Expression Tree


Tree, apa itu tree? Tree merupakan kumpulan satu atau lebih node.

Tree memiliki 8 konsep, yaitu:
- Node di bagian atas disebut sebagai root.
- Garis yang menghubungkan orang tua anak itu adalah edge.
- Node yang tidak mempunyai anak adalah leaf.
- Node yang memiliki orang tua yang sama di sebut sibling.
- Degree dari node adalah banyak sub node dari degree tersebut.
- Height/Depth adalah tingkat maksimum dari node dalam sebuah pohon.
- Jika ada garis yang menghubungkan P untuk Q, lalu p disebut leluhur-Q, dan q adalah keturunan dari  P.
Tree
Dari gambar di atas di simpulkan:
Degree of tree = 3
Degree of C = 2
Height = 3
Parent of C = A
Children of A = B, C, D
Sibling of F = G
Ancestor of F = A, C
Descendant of C = F, G

Binary Tree Concept
- Pohon biner adalah sebuah struktur data pohon berakar di mana setiap node telah di paling dua anak-anak.
- Kedua-dua anak biasanya dibedakan kiri dan kanan anak anak.
- Node yang tidak memiliki anak disebut leaf.
Binary Tree
Di atas adalah contoh pohon biner yang memiliki 9 node,berakar pada simpul yang berisi 18.
Jika tidak berakar disebut juga daun node. yang berisi nomor 9, 12, 10 dan 23.


Berikut adalah tipe - tipe pada binary tree :
1. Perfect Binary Tree : dimana setiap tingkatan memiliki kedalaman yang sama.
Read more »

Monday, August 22, 2016

Session 2 Link List Inplementasi 1

Session 2 Link List Inplementasi 1


Di dalam struktur data, ada yang namanya struktur data statis, dan struktur data dinamis.

Struktur data statis adalah struktur data yang jumlah komponennya telah ditentukan dari awal, setelah itu baru bisa kita pakai.
Contoh : Array, array bisa menampung banyak data tapi kita awalnya menentukan dulu berapa banyak yang bisa di tampung array, jadi array termasuk statis.

Sturktur data dinamis adalah struktur data yang jumlah komponennya dinamis atau ditentukan setelah kita membuat data-datanya. Contoh : Memory Allocation dinamis, ia bisa menampung file kapanpun saat di butuhkan tanpa di batasi jumlahya.

Apa itu Link List?
Link list adalah tempat penyimpanan data sama seperti array hanya saja Link List bersifat dinamis yang artinya dapat dialokasikan disaat program run time, sehingga memberi tempat yang lebih efisien

Nama lain link list dalam bahasa melayu adalah : Serangai berantai.

Di dalam struktur data, ada yang namanya struktur data statis, dan struktur data dinamis.
Struktur data statis adalah struktur data yang jumlah komponennya telah ditentukan dari awal, setelah itu baru bisa kita pakai. Contoh : Array
Sturktur data dinamis adalah struktur data yang jumlah komponennya dinamis atau ditentukan setelah kita membuat data-datanya. Contoh : Link list

Berikut ini jenis - jenis link list :
A. Singly linked list : hanya menuju ke 1 arah (next)
B. Double linked list : menuju ke 2 arah (next dan previous)
C. Multiply linked list : menuju ke beberapa arah (lebih dari 2)
D. Circular Linked List : link list yang A menunjuk ke B dan B menunjuk A kembali

Berikut cara memasukan data pada link list :
Push Depan ( Head ) = yang di push adalah data baru yang diletakan di bagian depan
Push Tengah ( Current ) = yang di push adalah data baru yang diletakan di bagian tengah
Push Belakang ( Tail ) = yang di push adalah data baru yang diletakan di bagian belakang

Contoh coding Push depan:

head=tail=current=NULL;
if(head==NULL){
head = tail = current; //tail dan head akan menjadi 1tempat dengan curr
tail -> next=NULL //nilai tail menjadi NULL
} else {
current -> next=head; //curr menunjuk ke head
head==current; //head bergabung dengan curr
}




Contoh coding Push belakang:

if(head==NULL){
head = tail = current; //tail dan head akan menjadi 1tempat dengan curr
} else {
tail -> next =curr;
tail = curr; // tail gabung dengan curr
}
tail -> next =NULL; //nilai tail di NULL kan

}






www.binus.edu

Get or watch

Read more »

Sunday, August 7, 2016

Session 3 Array Linked List Dosen Tamu

Session 3 Array Linked List Dosen Tamu


Pada hari ini gue mau jelasin awal tentang perbedaan array dan linked list. Tapi ga akan se detail seperti yang kalian harapkan karena pada sesi ini sang dosen lebih banyak share untuk ubah mindset kita menjadi lebih baik, dan dosen lebih ke sisi memberi motivasi untuk kita semua.

Menurut saya sang penulis kuliah itu buka hanya untuk mengejar ilmu, tapi di masa kuliah kita di bimbing untuk memperluaskan mindset kita, dan percaya ga percaya kehidupan di kampus lebih besar di pake di dunia kerja di banding materi kuliah yang kita pelajari hhe. Tapi itu semua tergantung mindset dan pendapat orang lain, point of view orang pasti berbeda beda.

Oke langsung to the point aja deh. Materi yang akan saya jelaskan sebagai berikut.

Array
Apa itu array? Array adalah sekumpulan data yang homogen atau sama. Pada array kita mempersiapkan memory sesuai dengan apa yang kita deklarasikan. Jadi apabila kita booking memory untuk 100 data kita hanya bisa menampung 100 data, apabila lebih itu tidak akan bisa. Apabila kita terlalu memesan banyak memory dan tidak terpakai itu akan merugikan dan membuat program run lebih lama.

Linked List
Linked list sama seperti array hannya perbedaannya dia tidak statik atau dengan kata lain linked list ini menggunakan memory sesuai dengan banyaknya data yang diperlukan sehingga tidak membuat memorry terbuang percuma. Memory ada saat kita butuhkan, dan data yang di masukan bisa bebas.



www.binus.edu

Get or watch


Read more »

Friday, July 29, 2016

Session 1 Pointer Array Struct and Memory Allocation

Session 1 Pointer Array Struct and Memory Allocation


Oke pada hari ini gw mau bahas tentang materi perkuliahan gw, yaitu mata kuliah struktur data.

Awalnya kalian pasti binggung apa itu array, pointer?
Oke kita bahas sekarang.

Apa itu array? Array adalah kumpulan data yang memiliki type data yang sama (homogenus).
Elemen-elemen dari array disimpan berturut lokasi memori dan direferensikan oleh indeks

Dan indeks awal array di mulai dari 0, atau 0 – N-1.

Contoh : int array [5] = berarti indeks nya {0,1,2,3,4}

Array memiliki banyak dimensi, ada array 1 dimensi, 2 dimensi dan 4 dimensi (multi dimensi).

Contoh array 1 dimensi : array [5];

Contoh array 2 dimensi: array [3][5], berarti array tersebut mencakup 3 baris 5 kolom seperti di bawah :
A B C D E
Q F A F P
W G S G Y 

array yang terdepan di artikan sebagai baris, array ke 2 di artikan sebagai kolom untuk mudah mengingat gunakan istilah (baskom) atau baris kolom.

Penulisan array 2 dimensi boleh seperti ini : int array [6][0]; tp tidak boleh int array [0][6];

Contoh array multi dimensi: int array [3] [5] [3] [5];

Inisialisasi array dapat dilakukan sebagai berikut:
int array [ 5] = {90, 82, 78, 95, 88 };

Operasi dalam array:
• Traversal = menukar posisi atau biasa di sebut transpos seperti pada matriks.
Contoh: int array [3][3] = 1 2 3 di traversal menjadi 1 4 7
                                            4 5 6                                      2 5 8
                                            7 8 9                                      3 6 9
• Pemasangan
• Pencarian
• Penghapusan
• Penggabungan
• Keputusan

Apa itu pointer? Pointer adalah sebuah tipe data yang nilainya merujuk kepada nilai lain disimpan di tempat lain dalam memori komputer dengan menggunakan alamat, atau simple nya pointer akan menunjukan alamat memori dari data yang tersimpan.

Tanda “&” di gunakan untuk menampilkan alamat

Tanda “*” di gunakan untuk menampilkan isi

Penulisan array yang benar :

ptr = &angka;

Apabila *ptr = &angka berarti memberi alamat kepada nilai

Beberapa contoh umum dari struktur data meliputi:
– Arrays
– Linked lists
– Queues
– Stacks
– Binary trees
– Hash tables

Array
– Koleksi elemen serupa dengan data
– Unsur Data memiliki data yang sama jenis

Linked list (list bertaut) sangat dinamis, dimana data atau elemen dapat ditambahkan atau di hapus kapanpun programmer mau.

Queue/Antrian
Elemen yang telah di masukkan pertama akan menjadi pertama yang keluar, atau FIFO (First In First Out)
Contoh: Orang yang paling depan mengantri untuk masuk ke ATM adalah orang yang akan pertama kali masuk keluar pertama.
Queue



Stacks/Tumpukan
Pada stacks/tumpukan, yang pertama kali masuk itu akan terakhir keluar, atau yang terakhir masuk akan pertama kali keluar. LIFO (Last In First Out) / FILO (First In Last Out)
Contoh: Ada tumpukan buku, tumpukan buku yang paling atas adalah tumpukan yang pertama kali di ambil/keluar.

Pohon Biner
- Sebuah struktur data yang di definisikan sebagai sebuah koleksi elemen di sebut node.
- Setiap node berisi kiri pointer, kanan pointer dan elemen data.
Binary Tree 
Apa itu structure?
Sturucture hampir sama dengan array, namun structure bersifat heterogen. Ia merupakan kumpulan dari beberapa tipe data.

Contoh:
struct data {
Char nama [20];
int umur;
};


Apa itu Nested structure?
Nested structure merupakan dimana ada struct di dalam struct seperti contoh di bawah.
struct profile {
int age;
char name[100];
};
struct student {
struct profile p;
int score;
char grade;
};


Memory Allocation :
Dynamic : Bisa dij alankan sesudah runtime
Static : Di jalankan sebelum runtime


www.binus.edu

Get or watch



Read more »