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..
    Sorting dengan Metode Insertion dan Merge Sort

    Sorting dengan Metode Insertion dan Merge Sort

    Insertion Sort   
    Posting sebelumnya dibahas tentang Bubble Sort  dan Selection Sort, kali ini akan membahas Insertion Sort. Mirip dengan cara orang mengurutkan kartu, selembar demi selembar kartu diambil
    dan disisipkan (insert) ke tempat yang seharusnya.  Pengurutan dimulai dari data ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil , maka akan ditempatkan ( diinsert ) diposisi yang seharusnya. Pada penyisipan elemen, maka elemen-elemen lain akan bergeser ke belakang.

    Contoh dari Insertion Sort
     










    Sorting dengan Metode Selection Sort

    Sorting dengan Metode Selection Sort

        Ini adalah post lanjutan dari post Metode Bubble Sort. Kali  ini akan dijelaskan tentang sorting dengan metode selection sort yang merupakan kombinasi antara sorting dan searching Untuk setiap proses, akan dicari elemen-elemen yang belum diurutkan yang memiliki  nilai terkecil atau terbesar akan dipertukarkan ke posisi yang tepat di dalam array. Misalnya untuk putaran pertama, akan dicari data dengan nilai terkecil dan data ini akan ditempatkan di indeks terkecil (data[0]), pada putaran kedua akan dicari data kedua terkecil, dan akan ditempatkan di indeks kedua (data[1]). Selama proses, pembandingan dan pengubahan hanya dilakukan pada indeks pembanding saja, pertukaran data secara fisik terjadi pada akhir proses. Berikut Proses dari selection sort
    Sorting dengan Bubble Sort

    Sorting dengan Bubble Sort

    Sorting adalah pengurutan atau merangkai data dalam suatu metode atau cara tertentu yang sebelumnya data tersebut tidak berurutan. data tersebut bisa terurut secara ascending atau berurutan dari nilai terkecil ke nilai yang terbesar atau secara descending atau berurutan dari nilai terbesar ke nilai terkecil.

    Deklarasi array untuk Sorting
    deklarasi secara global
    int data[100];
    int n; //jumlah data

    Prosedur Tukar 2 Buah Data :
     void tukar(int a,int b){ 
    int tmp;  tmp = data[a];
    data[a] = data[b];
    data[b] = tmp;
    }

    Source Code Inisialisasi USB

    Source Code Inisialisasi USB




    Source Code Inisialisasi USB - Setelah mengetahui bagaimana proses inisialisasi dari USB yang ada pada postingan sebelumnya, sekarang saya akan menunjukkan source code dari inisialisasi USB, berikut cuplikan dari source code tersebut :

    public class TestJavaUSB
    {
       public static void main (String [] args)
       {
          // Attempt to initialize the JavaUSB 
          // library.
    
          if (!JavaUSB.init ())
          {
              System.err.println ("Unable to " +
                                 "initialize JavaUSB");
              return;
          }
    
          // Enumerate all attached host controllers, 
          // outputting their names and the names of 
          // their root hubs. For each root hub, 
          // enumerate the device tree.
    
    Proses Inisialisasi USB

    Proses Inisialisasi USB

    Proses Inisialisasi USB - Sebelum membahas bagaimana proses inisialisasi USB, alangkah baiknya jika kita mengetahui apa itu USB?,Bagi yang sudah tahu dibaca lagi untuk mengingat.
     
    Universal Serial Bus (USB) adalah satu set spesifikasi Interface untuk kecepatan tinggi kabel komunikasi antara peripheral elektronik sistem dan perangkat dengan atau tanpa PC / komputer. USB pada awalnya dikembangkan pada tahun 1995 oleh banyak perusahaan industri terkemuka seperti Intel, Compaq, Microsoft, Digital, IBM, dan Northern Telecom. Tujuan utama dari USB adalah untuk mendefinisikan sebuah bus ekspansi eksternal untuk menambahkan periferal ke PC dengan cara mudah dan sederhana. USB menawarkan pengguna konektivitas sederhana. Ini menghilangkan gabungan konektor yang berbeda untuk berbagai perangkat seperti printer, keyboard, mouse, dan peripheral lainnya. Itu berarti USB-bus memungkinkan banyak peripheral untuk dihubungkan dengan menggunakan soket interface tunggal standar. Keuntungan lain utama adalah bahwa, dalam lingkungan USB, DIP-switch tidak diperlukan untuk menetapkan alamat perifer dan IRQs. Mendukung semua jenis data, dari input mouse lambat untuk audio dan video digital terkompresi. 

    Gambar Topologi Koneksi USB