Jumat, 05 Juni 2015

Aksi Sosialisasi BIMBEL


Aksi Mengajar/BIMBEL

Hallo guys, kenalin nama saya Ardi Yuriansyah (1701290816) jurusan Teknik Informatika Binus Alam Sutera. disini saya menjadi volunteer di sebuah Sekolah Taman kanak-kanak yaitu TK. At-Taqwa di jalan Dewi Sartika, Serpong, Indonesia. Di TK tersebut memang tidak banyak muridnya seperti sekolah yang lain, dalam 1 kelas hanya terdapat sekitar 5-6 murid. jadi disini kita mengumpulkan semuanya dalam 1 ruangan agar mereka semua kebagian ilmu semuanya.
Nih guys berikut dokumentasinya selama kita mengajar


Day 1


Di hari pertama tanggal 5 mei 2015 kita mengajari mereka bagaimana cara mencuci tangan yang benar dan bersih. meskipun mereka belajar di sekolah yang sudah ada pengajarnya tetapi mereka belum tau semuanya bagaiamana cara mencuci tangan yang benar, mereka begitu antusias saat kita mengajarkanya cara mencuci tangan. 

Day 2


Di hari ke 2 pada tanggal 12 mei 2015, kami mengajarkan mereka membaca dan menghitung, mereka begitu antusias dan penuh semangat. meskipun tidak semuanya dengan cepat berhitung tetapi mereka pantang menyerah untuk mendapatkan ilmu dari kita.


Day 3


pada tanggal 19 mei, kami mengajarkan mereka membaca doa sebelum melakukan sesuatu, seperti doa sebelum makan, doa sebelum pulang sekolah, doa sebelum tidur dll. karena tk tersebut adalah sekolah islam maka kita ajarkan baca doa agar mereka terbiasa dan untuk di ingat selalu. 

Day 4


Pada tanggal 27 mei, adalah dimana kami terakhir mengajar di tempat tersebut. di hari terakhir ini kami mencoba mengulang pelajaran2 yang sudah kami ajarkan dan bernyanyi untuk perpisahan mereka untuk melangkah ke jenjang yang lebih tinggi lagi yaitu SD. di hari terakhir ini kami tidak akan menyianyiakan ilmu kami untuk mereka karena mereka masih butuh banyak untuk memperdalam ilmu.

Yuuppp!!! seklian laporan dari saya terima kasih.

teachforindonesia.org || Binus University

Kamis, 22 Mei 2014

Red Black Tree

Red-Balck Tree (RBT) adalah sebuah BST (binary search tree) dimana tiap simpul memiliki atribut warna yang bernilai merah atau hitam.
            RBT juga berguna dalam pemrograman fungsional karena RBT merupakan salah satu struktur data yang paling “persistent”, digunakan untuk membuat associative array dan himpunan yang bhisa mengambil kembali versi sebelumnya setelah perubahan. Versi “persistent” dari RBT memerlukan tambahan ruang O(log n) untuk setiap insersi atau delesi, selain waktu.
RBT isometri dari pohon 2-3-4. Artinya, untuk setiap 2-3-4 pohon, terdapat paling sedikit satu satu RBT dengan elemen data yang berurutan sama. Operasi insersi dan delesi pada pohon 2-3-4 equivalen dengan color-flipping (pertukaran warna) dan rotasi pada RBT. Ini membuat pohon 2-3-4 alat yang penting untuk memahami logika dibalik RBT, hal ini pula yang membuat berbagai text algoritma memperkenalkan pohon 2-3-4 sebelum RBT walaupun pohon 2-3-4 lebih jarang digunakan.
Red Black Tree adalah suatu BST( Binary Search Tree) dimana node-node dan edge-edge memiliki warna merah atau hitam. Warna dari root selalu hitam. Warna dari edge yang menghubungkan ayah dengan anaknya selalu berwarna sama dengan warna node anak tersebut. Selain atribut yang dimiliki oleh BST, kita memerlukan persyaratan berikut untuk memnentukan
validitas RBT :

Aturan pada Red Black Tree :
1.      Setiap simpul/node adalah berwarna merah atau hitam
2.      Akar selalu berwarna hitam
3.      Nilai sebuah node adalah lebih besar anak kirinya dan lebih kecil dari anak kanannya.
4.      Jika node berwarna merah, anaknya harus berwarna hitam
5.      Node berwarna merah secara berturut-turut tidak diperkenankan.
6.      Setiap path dari node yang menuju ke nil harus mengandung nilai yang sama dengan node yang berwarna hitam.
7.      Tree dikatakan setimbang jika selisih level dari anak kiri dan anak kanan maksimal dua.
8.      Node dibawah root yang berada pada level yang sama disebut sibling.

Aturan Insert pada Red Black Tree :
1.      Setiap node baru yang disisipkan  kedalam tree akan diberi warna merah.
2.      Jika kita memberi warna hitam  pada node baru yang  masuk, maka jumlah node dari root akan berbeda.
3.      Jika kita memasukkan node baru yang berwarna merah kedalam parent yang berwarna hitam tidak akan menjadi masalah, yang menjadi masalah adalah jika kita menyisipkan node baru ke dalam parent yang berwarna merah
4.      Jika parent berwarna merah kita akan membuat dua node merah yang berurutan, jadi kita harus melakukan rotasi atau pewarnaan ulang.

5.      Hal penting yang harus diingat adalah node yang tidak mempunyai daun harus berwarna hitam.



Delete

Setelah belajar cara untuk push, maka kita akan belajar cara untuk menghapus nya, cara nya hampir mirip dengan di BST.

Misal nya seperti ini :
1. Misalkan node yang mau di hapus adalah M lalu anak nya adalah C.
2. Kalau M adalah merah, lalu maka tinggal mengganti M dengan C yang berarti warna C seharus nya adalah hitam.
3. Kalau M adalah hitam dan C adalah merah, ganti M dengan C dan ubah warna C menjadi hitam.

Lalu bagaimana kalau M dan C adalah hitam ?

Maka, langkah yang akan kita lakukan adalah :
1. Ganti M dengan C, lalu kita ganti nama C menjadi N (ini disebut double black), dan parent nya menjadi P, sibling nya menjadi S, lalu SL adalah anak kiri dan SR adalah anak kanan.
2. Kalau S berwarna merah tukar warna N dan P, lalu putar di P
3. Kalau S, SL dan SR berwarna hitam maka ganti warna S ke merah
4. Kalau S adalah hitam dan SL atau SR adalah merah, maka lakukan single atau double rotat

Berikut adalah kasus - kasus dalam delete RBT :


1. 

Dalam kasus ini dapat kita lihat bahwa a adalah double black node, sibling nya berwarna merah jadi kita putar di X dan ganti warna X dan Y.

2.

Dalam kasus ini a adalah double black node, sibling nya adalah black dan anak dari sibling tersebut adalah node berwarna hitam, jadi ganti warna sibling menjadi merah.

3.

Dalam kasus ini a adalah double black node, sibling nya berwarna hitam dan anak dari sibling tersebut berwarna merah, jadi lakukan single atau double rotation.


Nama: Ardi Yuriansyah
Nim: 1701290816

www.binus.ac.id













Kamis, 27 Maret 2014

Session 5 (Stack , Queue dan Implementasi)

Stack adalah tumpukan dari suatu data.
Dalam kehidupan stack bisa dinyatakan seperti piring yg memiliki konsep

LIFO (Last in First Out) : data yang terakir masuk akan pertama kali keluar
FILO (First in Last Out) : data 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 – operasi pada Stack (Tumpukan)
Operasi yang sering diterapkan pada struktur data Stack (Tumpukan) adalah Push dan Pop. Operasi – operasi yang dapat diterapkan adalah sebagai berikut :
1. Push : digunakan untuk menembah item pada Stack pada Tumpukan paling atas.
2. Pop : digunakan untuk mengambil item pada Stack pada Tumpukan paling atas.
3. Clear : digunakan untuk mengosongkan Stack.
4. Create Stack : membuat Tumpukan baru S, dengan jumlah elemen kosong.
5. MakeNull : mengosongkan Tumpukan S, jika ada elemen maka semua elemen dihapus.
6. IsEmpty : fungsi yang digunakan untuk mengecek apakah Stack sudah kosong.
7. Isfull : fungsi yang digunakan untuk mengecek apakah Stack sudah penuh.


Macam – macam Stack

1. Stack dengan Array
Sesuai dengan sifat stack, pengambilan atau penghapusan elemen dalam stack harus dimulai dari elemen teratas.

2. Double Stack dengan Array
Metode ini adalah teknik khusus yang dikembangkan untuk menghemat pemakaian memori dalam pembuatan dua stack dengan array. Intinya adalah penggunaan hanya sebuah array untuk menampung dua stack.

QUEUE (ANTRIAN)

A. Definisi Queue (Antrian)

          Queue merupakan suatu struktur data linear. Konsepnya hampir sama dengan Stack, perbedaannya adalah operasi penambahan dan penghapusan pada ujung yang bebeda. Penghapusan dilakukan pada bagian depan (front) dan penambahan berlaku pada bagian belakang (Rear). Elemen-elemen di dalam antrian dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur.

          Tumpukan disebut juga “Waiting Line” yaitu penambahan elemen baru dilakukan pada bagian belakang dan penghapusan elemen dilakukan pada bagian depan. Sistem pada pengaksesan pada Queue menggunakan sistem FIFO (First In First Out), artinya elemen yang pertama masuk itu yang akan pertama dikeluarkan dari Queue. Queue jika diartikan secara harfiah, queue berarti antrian. Queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui dalam kehidupan sehari-hari, misalnya saat anda mengantri diloket untuk membeli tiket.

         Istilah yang cukup sering dipakai apabila seseorang masuk dalam sebuah antrian adalah enqueue. Sedang istilah yang sering dipakai bila seseorang keluar dari antrian adalah dequeue.


B. Operasi-operasi pada Queue

1. Create Queue (Q) : membuat antrian baru Q, dengan jumlah elemen kosong.
2. Make NullQ (Q) : mengosongkan antrian Q, jika ada elemen maka semua elemen dihapus.
3. EnQueue : berfungsi memasukkan data kedalam antrian.
4. DeqQueue : berfungsi mengeluarkan data terdepan dari antrian.
5. Clear : Menghapus seluruh Antrian
6. IsEmpty : memeriksa apakah antrian kosong
7. IsFull : memeriksa apakah antrian penuh.

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.



Nama: Ardi Yuriansyah
Nim: 1701290816
Kelas: 02PFT


www.binus.ac.id

session 4 (Introduction to Tree, Binary Tree and Expression Tree)

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.



- Node paling atas disebut = Root
- Line nya disebut = Edge
- Node yang tidak punya anak disebut = Leaf
- Node yang punya atas nya sama disebut = Sibling

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.


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



2. Complete binary tree : pohon yang memiliki tipe yang sempurna.tetapi kesempurnaan tidak seharusnya memiliki kelengkapan.!



3. Skewed Binary Tree : setiap node/simpul yang memiliki 1 anak/hanya berakar 1



Ada beberapa peraturan di dalam sebuah binary tree yaitu:
- Tingkat 0 : max nodenya hanya 1
- Tingkat 1 : max nodenya hanya 2
- Tingkat 2 : max nodenya hanya 4
- Tingkat 3 : max nodenya hanya 8
- Dalam beberapa literatur, tingkat pohon biner dimulai dengan 1 (root).
- Rumus binary tree yaitu 2k.


* EXPRESSION TREE CONCEPT



- Prefix = *+ab/-cde
- Postfix = ab+cd-e/*
- Infix = (a+b)*((c-d)/e)

 contoh soal
1.)  a+(b/2)*3/2
      - Prefix = +a/*/b232
      - Postfix = ab2/3*2/

2.) 2+a+(b/2)*3
      - Prefix = +2+a*/b23
      - Postfix = 2ab2/3*++

cara mencari nya dengan rumus ( V=cetak , L=kiri , R=kanan )
- LVR = infix
- LRV = postfix
- VLR = prefix

*SOAL cari Prefix,Postfix, dan Infix
c/a*2+3/12+21


Jawaban



- Prefix = +*/ca2+/31221
- Postfix = ca/2*312/21++
- Infix = c/a*2+3/12+21


Nama: Ardi Yuriansyah
Nim: 1701290816
Kelas: 0PFT


www.binus.ac.id

Minggu, 16 Maret 2014

Data Structur/Array

Pada pertemuan kemarin, kelas besar kami kedatangan dosen tamu yang bernama Okky Pribadi. Beliau lulusan dari Bina Nusantara (BINUS). Di pertemuan minggu lalu, beliau menceritakan dan memotivasi kami agar kami lebih menyukai jurusan kami (Teknik Informatika). 

Beliau adalah seorang Freelance Programmer. Beliau lebih menyukai pekerjaan Freelance Programmer ketimbang pekerjaan kantoran, alasannya cukup menyenangkan karena pekerjaan Freelance Programmer penghasilannya lebih banyak dari pada kantoran.


pelajaran yang saya ambil dari pertemuan minggu lalu, apabila kita niat untuk melaksanakan sesuatu, pasti hasilnya akan sempurna dan apabila kita memiliki bakat yang tersembunyi mengapa kita tidak mencoba untuk mengembangkan bakat tersebut yang dapat berguna untuk orang lain.


Nama: Ardi Yuriansyah

Nim : 1701290816

www.binus.ac.id



Kamis, 06 Maret 2014

Single Linked List

Linked list adalah salah satu bentuk struktur data, yang berisi sekumpulan data (node) yang tersusun secara sekuensial saling sambung menyambung  dinamis dan terbatas.
- Linked List sering disebut juga Senarai Berantai
- Linked List saling terhubung dengan bantuan variabel pointer
- Masing-masing data dalam Linked List disebut dengan node (simpul) yang
menempati alokasi memori secara dinamis dan biasanya berupa struct
yang terdiri dari beberapa field. 

Single Linked List adalah sebuah LINKED LIST yang menggunakan sebuah variabel pointer saja untuk menyimpan banyak data dengan metode LINKED LIST, suatu daftar isi yang saling berhubungan.
Ilustrasi single LINKED LIST:



Pada gambar di atas, data terletak pada sebuah lokasi dalam sebuah memory, tempat yang disediakan memory untuk menyimpan data disebut node ? simpul, setiap node memiliki pointer ( penunjuk ) yang menunjuk ke node berikutnya sehingga terbentuk suatu untaian yang disebut single LINKED LIST. Bila dalam single LINKED LIST pointer hanya dapat bergerak ke satu arah saja, maju / mundur, kanan / kiri, sehingga pencarian datanya juga hanya satu arah saja.

Ada 2 Tipe Single Linked List yaitu:
·         Single Linked List Circular
·         Single Linked List Non Circular


1.     Single Linked List Circular
Single Linked List Circular adalah Single Linked List yang pointer nextnya menunjuk pada dirinya sendiri. Jika Single Linked List tersebut terdiri dari beberapa node,
maka pointer next pada node terakhir akan menunjuk ke node terdepannya.
Pengertian:
Single : artinya field pointer-nya hanya satu buah saja dan satu arah.
Circular : artinya pointer next-nya akan menunjuk pada dirinya sendiri sehingga berputar

Ilustrasi Single Linked List Circular
- Setiap node pada linked list mempunyai field yang berisi pointer ke node
  berikutnya, dan juga memiliki field yang berisi data.
- Pada akhir linked list, node terakhir akan menunjuk ke node terdepan
  sehingga linked list tersebut berputar. Node terakhir akan menunjuk lagi
  ke head.

PEMBUATAN SINGLE LINKED LIST CIRCULAR
Deklarasi node
Dibuat dari struct berikut ini:
typedef struct TNode{
int data;
TNode *next;
};


Penjelasan:
- Pembuatan struct bernama TNode yang berisi 2 field, yaitu field data
  bertipe integer dan field next yang bertipe pointer dari TNode
- Setelah pembuatan struct, buat variabel haed yang bertipe pointer dari
  TNode yang berguna sebagai kepala linked list.

Pembentukan node baru
Digunakan keyword new yang berarti mempersiapkan sebuah node baru
berserta alokasi memorinya.

TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = baru;

SINGLE LINKED LIST CIRCULAR MENGGUNAKAN HEAD
- Dibutuhkan satu buah variabel pointer: head
- Head akan selalu menunjuk pada node pertama

Deklarasi Pointer Penunjuk Kepala Single Linked List
Manipulasi linked list tidak bisa dilakukan langsung ke node yang dituju,
melainkan harus melalui node pertama dalam linked list. Deklarasinya sebagai berikut:

TNode *head;

Fungsi Inisialisasi Single LinkedList
void init(){
head = NULL;
}

Function untuk mengetahui kosong tidaknya Single LinkedList
int isEmpty(){
if(head == NULL) return 1;
else return 0;
}

PENAMBAHAN DATA
Penambahan data di depan
Penambahan node baru akan dikaitan di node paling depan, namun pada saat
pertama kali (data masih kosong), maka penambahan data dilakukan pada
head nya.
Pada prinsipnya adalah mengkaitkan data baru dengan head, kemudian head
akan menunjuk pada data baru tersebut sehingga head akan tetap selalu
menjadi data terdepan. Untuk menghubungkan node terakhir dengan node
terdepan dibutuhkan pointer bantu. 

Nama : Ardi Yuriansyah
Nim : 1701290816

www.binus.ac.id

Kamis, 27 Februari 2014

ADT

Array adalah sebuah structur data yang terdiri atas banyak variable dengan tipe data sama, dimana masing – masing elemen variable mempunyai nila indek.
Operasi dalam array:
- Insertion
- Traversal
- Merging
- Searching
- Deletion
- Sorting

Definis struktur (struct) sendiri adalah kumpulan dari variable yang dinyatakan dengan sebuah nama, dengan sifat setiap variable dapat memiliki tipe yang  berlainan.

·         Array data bersifat homogen

·         Struct data bersifat heterogen

Abstract Data Type (ADT)adalah koleksi data dan operasi yang dapat digunakan untuk memanipulasi data tersebut. Dalam C++, ADT dapat dibuat dalam sebuah Class. Class dalam C++ merupakan pengembangan dari struct dalam bahasa pemrograman C. Class memiliki data dan fungsi. Data dan fungsi yang dideklarasi private tidak dapat diakses secara langsung oleh client, sementara data dan fungsi yang dideklarasi public akan bersifat publik dan dapat diakses oleh client secara langsung.

Nama: Ardi Yuriansyah
Nim: 1701290816


www.binus.ac.id

Popular Posts