Jumat, 10 Mei 2013

Struktur Data - Linked List pada Java

Di bawah ini merupakan coding linked list pada Java NetBeans
Semoga bermanfaat :)
import java.util.Scanner;

public class LinkedListExample {

 public static void main(String[] args) {
  Scanner input = new Scanner(System.in);
  proses diproses = new proses();
  int inputan;
  System.out.print("Masukkan Banyak Node = ");
  inputan = input.nextInt();
  for (int i = 0; i < inputan; i++) {
   System.out.print("masukkan data = ");
   int item = input.nextInt();
   diproses.inproses(item);
  }
  System.out.println("===========CETAK===========");
  diproses.bacaproses();
  System.out.println();
  System.out.println("---------------------------");
  int pilihan;
  System.out.println("1. Untuk Menambah dan Menghapus data");
  System.out.println("0. Untuk Keluar");
  System.out.print("Masukkan Pilihan : ");
  pilihan = input.nextInt();
  System.out.println("---------------------------");
  while (pilihan == 1) {
   System.out.print("insert data depan = ");
   int tambahh = input.nextInt();
   diproses.tambahDepan(tambahh);
   System.out.println("===========CETAK===========");
   diproses.bacaproses();
   System.out.println();
   System.out.println("---------------------------");
   System.out.print("insert data belakang = ");
   int tambel = input.nextInt();
   diproses.tambahBelakang(tambel);
   System.out.println("===========CETAK===========");
   diproses.bacaproses();
   System.out.println();
   System.out.println("---------------------------");
   int key;
   System.out.print("key = ");
   key = input.nextInt();
   int baru;
   System.out.print("masukkan data baru = ");
   baru = input.nextInt();
   diproses.tambahDimanapun(baru, key);
   System.out.print("============cetak===========");
   System.out.println();
   diproses.bacaproses();
   System.out.println();
   System.out.println("---------------------------");
   System.out.print("======Hapus Data Depan======");
   System.out.println();
   diproses.deleltefirst();
   diproses.bacaproses();
   System.out.println();
   System.out.println("---------------------------");
   System.out.print("=====Hapus Data Belakang=====");
   System.out.println();
   diproses.deleteLast();
   diproses.bacaproses();
   System.out.println();
   System.out.println("---------------------------");
   System.out.print("=======Hapus Satu Data=======");
   System.out.println();
   int key2;
   System.out.print("Tulis data yang akan dihapus = ");
   key2 = input.nextInt();
   diproses.delete(key2);
   diproses.bacaproses();
   System.out.println();
   System.out.println("---------------------------");
   System.out.println("1. Untuk lanjut memproses data");
   System.out.println("0. Untuk Keluar");
   System.out.print("Masukkan Pilihan : ");
   pilihan = input.nextInt();
   if (pilihan == 0) {
    System.out.println("=======Terima kasih=======");
   }
  }
  System.out.println("=======Terima kasih=======");

 }
}

class Node {
 int data;
 Node berikut; // pointer

 public Node() {
 }

 public Node(int dt) {
  data = dt;
  berikut = null;
 }
}

class proses { // untuk mengolah data (linked list)
 Node depan;
 Node belakang;

 public boolean isKosong() { // memisalkan sebuah wadah kosong (Linked List-nya)
  if ((depan == null) && (belakang == null)) {
   return true;
  } else {
   return false;
  }
 }

 // untuk memproses data yang diinput dari keyboard
 public void inproses(int item) {
  Node p = new Node(item); // Node p adalah nodebaru
  if (isKosong()) {
   depan = belakang = p;
  } else {
   belakang.berikut = p;
   belakang = p;
  }
 }

 public void tambahDepan(int item) {
  Node p = new Node();
  p.data = item;
  if (isKosong()) {
   belakang = depan = p;
   p.berikut = null;
  } else {
   p.berikut = depan;
  }
  depan = p;
 }

 public void tambahBelakang(int item) {
  Node p = new Node();
  p.data = item;
  if (isKosong()) {
   depan = belakang = p;
  } else {
   belakang.berikut = p;
  }
  belakang = p;
  belakang.berikut = null;
 }

 public void tambahDimanapun(int item, int key) {
  Node temp = depan;
  Node p = new Node();
  p.data = item;
  do {
   if (temp.data == key) {
    p.berikut = temp.berikut;
    temp.berikut = p;
    break;
   }
   temp = temp.berikut;
  } while (temp != null);
 }

 public void deleltefirst() {
  Node temp = depan;
  if (!isKosong()) {
   if (depan == belakang) {
    depan = belakang = null;
   } else {
    depan = depan.berikut;
    temp = null;
   }
  } else {
   System.out.println("Data Kosong");
  }
 }

 public void deleteLast() {
  Node temp = depan;
  if (!isKosong()) {
   if (depan == belakang) {
    depan = belakang = null;
   } else {
    while (temp.berikut != belakang) {
     temp = temp.berikut;
    }
    belakang = temp;
    temp.berikut = null;
   }
  } else {
   System.out.println("Data Kosong");
  }
 }

 public void delete(int key2) {
  Node temp = depan;
  if (!isKosong()) { // 1
   while (temp != null) {
    if (temp.berikut.data == key2) { // 2
     temp.berikut = temp.berikut.berikut;
     break;
    }
    if (key2 != temp.data) { // jika key yang dimasukkan salah
     System.out.println("Data yang anda masukkan salah ");
     break;
    } else if ((temp.data == key2) && (temp == depan)) { // 2 //3 //untuk key yang letaknya di depan
     if ((depan != null) && (belakang != null)) {
      if (depan == belakang) { // 4 //jika hanya terdiri 1 data
       depan = belakang = null;
      } else { // 4
       depan = depan.berikut; // jika terdiri dari beberapa data
       temp = null;
      }
     }
     break;
    } else {
     temp = temp.berikut; // 3
    }
   }
  }
  else {
   System.out.println("Data Kosong"); // 1
  }
 }

 public void bacaproses() {// fungsinya untuk mencetak
  Node p;
  p = depan;
  while (p != null) {
   System.out.print(p.data + " ");
   p = p.berikut;
  }
 }
}
Rabu, 01 Mei 2013

Di Atas Rata-Rata (DARR)


DARR..... Temen-temen tau DARR ngga? Bukan boom ya. DARR itu projek terbaru Gita Gutawa sama papanya Om Erwin Gutawa yang sudah diluncurkan pada bulan Maret lalu. DARR ini terdiri dari 13 anak yang memiliki kemampuan vokal di atas rata-rata anak seusia mereka. Perbedaan karakter suara mereka yang khas dan unik membuat grup ini semakin DAAAARRRRR dan WOW. Pertama kali grup ini muncul di layar kaca dengan lagu Jangan Remehkan ciptaan Gita Gutawa dan Erwin Gutawa langsung mendapat respons positif dari para pecinta musik Indonesia. Tidak hanya anak kecil, orang dewasa pun juga banyak yang suka sama anak-anak DARR. Lagu yang pernah populer sebelumnya, telah di aransemen ulang oleh komposer hebat Erwin Gutawa menjadi lagu super wuper duper DAAARRR. Keren banget deh pokoknya. Mereka tidak hanya bernyanyi dalam satu grup DARR, tapi Om Erwin juga menggarapkan lagu solo buat anak-anak DARR yang memang penyanyi solo. Selain itu, di dalam projek DARR ada grup vokal lagi yaitu AOREA yang menyanyikan lagu band Samsons - Kenangan Terindah dan BOY SOPRANOS yang menyanyikan lagu Alm. Crhisye - Damai Bersamamu.

Ini dia profil dan judul lagu yang dinyanyikan personil-personil anak-anak DARR yang masih imut banget :D


 1. SENSEN - Apanya Dong
 Penyanyi berusia 12 tahun yang memiliki kemampuan untuk mengeksplorasi cengkok blues dengan sangat fasih. Sangat soulful dan mempunyai insting groove yang begitu kuat, dilengkapi dengan penampilannya yang unik dan juga energetic. Dia ini personil favoritku loh :3




2. ARI - Ayah
Dengan suaranya yang sangat jernih, Ari (9 tahun) dapat membuat lagu terdengar sangat menyentuh. Dia selalu bernyanyi dengan penuh penghayatan serta memiliki kemampuan untuk bernyanyi cengkok dengan sangat baik.




3. KANYA - Melati Suci
Kanya (14 tahun) memiliki karakter vokal yang begitu lembut serta skill bernyanyi yang cenderung jazzy, membuat nyanyian Kanya selalu terdengar sangat manis. 






4. AOREA (NAOMI, RARA, DEA) - Kenangan Terindah
Sebuah konsep trio yang terdiri dari 3 penyanyi powerful dengan teknik bernyanyi yang tinggi serta mampu melakukan harmonisasi suara yang cukup rumit. Masing-masing memiliki karakter vokal yang begitu kuat, namun menghasilkan suatu paduan yang sangat indah saat disatukan.



5. RAFI - Doo Be Doo
Di umurnya yang masih sangat belia, Rafi (12 tahun) dapat bernyanyi dengan feeling jazz yang kental serta pandai ber-scating (improvisasi jazz). Didukung dengan kemampuannya bernyanyi sambil bermain piano, membuat Rafi begitu istimewa.







6. DIAN - Kupu-Kupu
Dian memiliki register suara mezzo sopran dan di usianya yang masih 9 tahun, dia mampu menyanyikan repertoar–repertoar klasik dengan tingkat kesulitan yang begitu tinggi.





7. NONI - Di Duniaku
Tidak hanya seorang penyanyi yang mempunyai karakter yang unik dan cara bernyanyi yang bebas lepas, Noni (12 tahun) memiliki musikalitas yang luar biasa dengan kemampuannya untuk bermainan piano dan menciptakan komposisi lagu.




8. WORO - Walang Kekek
Latar belakang dan lingkungannya dari kecil membuat Woro (10 tahun) sangat fasih menyanyi sinden, keroncongan (langgaman), dan cengkok tradisional Jawa. Seorang anak yang bermultitalenta, pandai menari jawa bahkan dia juga merupakan seorang dalang cilik yang hebat.



9. BOY SOPRANOS (SABIAN, MOSES, CHRISTO) - Damai Bersamamu 
Sebuah konsep yang menampilkan 3 anak lelaki dengan teknik vokal soprano. Kejernihan dan kepolosan suara mereka membuat mereka berbeda dari yang lain dan dapat menyentuh semua orang yang mendengar.



Nah, kali ini aku mau berbagi lagu-lagu DARR, tapi ngga semua ya. Yang aku upload berikut ini adalah lagu-lagu yang jadi favoritku aja. Hehehe... Temen-temen bisa dowload di sini
1. 13 Anak DARR - Jangan Remehkan
2. AOREA - Kenangan Terindah
3. BOY SOPRANOS - Damai Bersamamu
4. KANYA - Melati Putih
5. RAFI DAENG - Doo Be Doo
6. SENSEN - Apanya Dong
7. WORO - Wayang Kekek

sumber :
1. profil (diatasratarata.com)
2. foto (kidnesia.com, kapanlagi.com, diatasratarata.com)