Showing posts with label pemrograman. Show all posts
Showing posts with label pemrograman. Show all posts
Pengertian dan Konsep Graph dalam Struktur Data

Pengertian dan Konsep Graph dalam Struktur Data

Suatu graph didefinisikan oleh himpunan verteks dan himpunan sisi (edge). keterhubungan antara verteks. Biasanya untuk suatu graph G digunakan notasi matematis. Verteks menyatakan entitas-entitas data dan sisi menyatakan G = (V, E) Dimana :
G = Graph
V = Simpul atau Vertex, atau Node, atau Titik
E = Busur atau Edge, atau arc

V adalah himpunan verteks dan E himpunan sisi yang terdefinisi antara pasangan-pasangan verteks. Sebuah sisi antara verteks x dan y ditulis {x,y}. Suatu graph H = (V1, E1) disebut subgraph dari graph G jika V1 adalah himpunan bagian dari V dan E1 himpunan bagian dari E. Cara pendefinisian lain untuk graph adalah dengan menggunakan himpunan keterhubungan langsung Vx. Pada setiap verteks x terdefinisi Vx sebagai himpunan dari verteks-verteks yang adjacent dari x. Secara formal: Vx = {y | (x,y) -> E}
Sorting dengan Metode Quick Sort

Sorting dengan Metode Quick Sort

Quick Sort sebenarnya sama seperti Merge sort yaitu menggunakan metode Divide & Conquer. Prinsip dalam algoritma quicksort sebagai berikut:
  1. Bila elemen dalam array kurang dari jumlah tertentu (biasanya 2), proses selesai.
  2. Ambil sebuah elemen yang berfungsi sebagai poros. 
  3. Pisahkan array dalam 2 bagian, sebelah kiri lebih kecil dari poros, sebelah kanan lebih besar dari poros.
  4. Ulangi proses secara rekursif pada tiap-tiap bagian.
Pengertian dan Konsep Binary Tree

Pengertian dan Konsep Binary Tree

Pengertian Tree dalam Struktur Data
 Merupakan salat Satu bentuk Struktur Data tidak linier Yang menggambarkan hubungan Yang bersifat hirarkis (hubungan one to many) antara elemen-elemen. Tree Bisa didefinisikan sebagai kumpulan Simpul / node dengan Satu elemen KHUSUS Yang disebut root Dan Node lainnya terbagi menjadi Himpunan-Himpunan Yang tak saling berhubungan Satu sama lainnya (disebut subtree). Untuk jelasnya, di Bawah Akan diuraikan istilah-istilah umum dalam tree.
  • Parent : predecssor satu level di atas suatu node.
  • Child : successor satu level di bawah suatu node.
  • Sibling : node-node yang memiliki parent yang sama dengan suatu node.
  • Subtree : bagian dari tree yang berupa suatu node beserta descendantnya dan memiliki semua karakteristik dari tree tersebut.
  • Size : banyaknya node dalam suatu tree.
  • Height : banyaknya tingkatan/level dalam suatu tree.
  • Root : satu-satunya node khusus dalam tree yang tak punya predecssor.
  • Leaf : node-node dalam tree yang tak memiliki seccessor.
  • Degree : banyaknya child yang dimiliki suatu node.
Pengertian Binaary Tree dalam Struktur Data
Pohon biner adalah pohon dengan syarat bahwa tiap node hanya memiliki boleh maksimal dua subtree dan kedua subtree tersebut harus terpisah. Sesuai dengan definisi tersebut, maka tiap node dalam binary tree hanya boleh memiliki paling banyak dua anak/child.

Node pada Binary Tree 
Jumlah maksimum node pada setiap tingkat adalah 2n, Node pada binary tree maksimumnya berjumlah 2n-1.

Berikut programnya ada Disini
    Array 2 Dimensi dan Implementasinya

    Array 2 Dimensi dan Implementasinya

    Array multidimensi dengan dua dimensi sering digunakan untuk merepresentasikan tabel nilai-nilai yang terdiri dari informasi yang diatur dalam baris dan kolom. Untuk mengidentifikasi elemen tabel tertentu, kita harus menentukan dua indeks. Dengan konvensi, yang pertama mengidentifikasi baris elemen dan kolom kedua. Array yang membutuhkan dua indeks untuk mengidentifikasi elemen tertentu disebut array dua dimensi. (Array multidimensi dapat memiliki lebih dari dua dimensi.) Java tidak mendukung array multidimensi secara langsung, tapi itu tidak memungkinkan programmer untuk menentukan array satu dimensi yang elemen-elemennya juga array satu dimensi, sehingga mencapai efek yang sama.
     
    Pengertian dan Konsep Linked List

    Pengertian dan Konsep Linked List

    Pengertian Single LinkList dalam Struktur Data

    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 : artinya field pointer-nya hanya satu buah saja dan satu arah serta pada akhir node, pointernya menunjuk NULL.
    Linked List : artinya node-node tersebut saling terhubung satu sama lain. Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data. Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada saat pembacaan isi linked list.
    Jenis Single LinkList
    • Single linked list dengan HEAD
    • Single linked list dengan HEAD dan TAIL

    Deklarasi Single LinkList
    Model struktur dari linked list tersebut dalam Java adalah sebagai berikut:

    public class Node { 
    private int data; /* integer data diisikan dalam node */ 
    Node nextNode; /* node selanjutnya dalam list */ 
    Node(){ 
    this.data = 0; this.nextNode = null; 
    }

    Pembuatan Single Linked List
     Keyword new gunanya untuk mempersiapkan sebuah node baru berserta alokasi memorinya, kemudian node tersebut diisi data dan pointer nextnya ditunjuk ke NULL.

     public void buatNode (int dt) {
            Node nodebaru = new Node();
            nodebaru.data = dt;
            nodebaru.next = pointer;
            pointer = nodebaru;
        }


    Penambahan data dari depan
    Pada prinsipnya adalah mengkaitkan node baru dengan head, kemudian head akan menunju pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan.

    public boolean sisip (int dt1, int dt2) {
            Node n = pointer;
            while ((n!=null) && (n.data!= dt2))
                n = n.next;
            if (n==null) return  false;
            Node nn = new Node ();
            nn.data=dt1;
            nn.next=n.next;
            n.next=nn;
            return true;
        }


    Menghapus data dari depan
    Function di atas akan menghapus data terdepan (pertama) yang ditunjuk oleh head pada linked list, Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer. Sebelum data terdepan dihapus, head harus ditunjukkan ke node sesudahnya terlebih dahulu agar list tidak putus, sehingga node setelah head lama akan menjadi head baru (data terdepan yang baru). Jika head masih NULL maka berarti data masih kosong!

    public int hapusDiDepan () {
            Node hapus = pointer;
            pointer = pointer.next;
            return hapus.data;
        }



    Screenshoot Program



    untuk mendapatkan source code programnya bisa PM ane atau komen disini, jika banyak permintaan ane kasih..