Salah satu perintah percabangan dalam bahasa Java adalah perintah IF-ELSE. Struktur perintah ini adalah sbb:
if (kondisi logika_1)
statemen_1
else if (kondisi logika_2)
statemen_2
else
statemen_3
Jika pengecekan kondisi logika 1 bernilai TRUE maka statemen_1 yang akan dikerjakan, namun jika FALSE akan dilanjutkan ke pengecekan kondisi logika 2 (jika ada), dan seterusnya sampai ditemukan perintah else tanpa kondisi logika, sebagai pintu masuk dijalankannya statemen 3. Bentuk di atas bisa jadi disederhanakan menjadi bentuk if saja tanpa else atau bentuk if dan else tanpa else if (hanya ada 2 kemungkinan).
Contoh programnya adalah sbb:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int data;
Scanner sc = new Scanner(System.in);
System.out.print("Masukkan data : ");
data = sc.nextInt();
if (data > 60)
System.out.println("Cukup");
else if (data > 40)
System.out.println("Kurang");
else
System.out.println("Sangat Kurang");
}
}
Monday, 18 October 2010
Thursday, 7 October 2010
Seri Pemrograman: Sequential Programming
Pemrograman sekuensial merupakan dasar/ inti dari pemrograman. Konsep pemrograman ini adalah top down, berawal dari atas sampai akhirnya paling bawah. Dalam paradigma pemrograman prosedural, modular maupun object oriented, konsep sekuensial tetap digunakan.
Compiler bahasa pemrograman mengubah (menerjemahkan) teks source code menjadi program .exe yang siap dijalankan. Proses kompilasi dilakukan dari baris source code yang paling atas hingga paling bawah. Itulah kenapa sebabnya penyertaan file library/ header (dan biasanya juga deklarasi variabel) selalu ditaruh di bagian awal source code. Misal (dalam bahasa Java) perintah import java.util.* mempunyai makna bahwa source di bagian setelahnya akan ada penggunaan perintah/ atribut/ class yang dimiliki oleh package java.util. Sehingga ketika kompilasi mencapai baris tersebut, compiler sudah siap untuk menerjemahkan karena sudah diberitahu sebelumnya oleh baris statemen import di bagian awal.
Pola pemrograman sekuensial sangatlah sederhana. Biasanya berupa alur input data dilanjutkan segmen pemrosesan data dan diakhiri dengan output informasi yang dihasilkan. Contohnya program menghitung luas lingkaran. Diawali dengan permintaan input nilai jari-jari dari user, kemudian akan dihitung luasnya oleh program yang dibuat menggunakan rumus phi kali jari-jari kuadrat. Dan akhirnya hasil perhitungan luas diinformasikan kembali ke user melalui perintah output.
Semoga bermanfaat :)
Compiler bahasa pemrograman mengubah (menerjemahkan) teks source code menjadi program .exe yang siap dijalankan. Proses kompilasi dilakukan dari baris source code yang paling atas hingga paling bawah. Itulah kenapa sebabnya penyertaan file library/ header (dan biasanya juga deklarasi variabel) selalu ditaruh di bagian awal source code. Misal (dalam bahasa Java) perintah import java.util.* mempunyai makna bahwa source di bagian setelahnya akan ada penggunaan perintah/ atribut/ class yang dimiliki oleh package java.util. Sehingga ketika kompilasi mencapai baris tersebut, compiler sudah siap untuk menerjemahkan karena sudah diberitahu sebelumnya oleh baris statemen import di bagian awal.
Pola pemrograman sekuensial sangatlah sederhana. Biasanya berupa alur input data dilanjutkan segmen pemrosesan data dan diakhiri dengan output informasi yang dihasilkan. Contohnya program menghitung luas lingkaran. Diawali dengan permintaan input nilai jari-jari dari user, kemudian akan dihitung luasnya oleh program yang dibuat menggunakan rumus phi kali jari-jari kuadrat. Dan akhirnya hasil perhitungan luas diinformasikan kembali ke user melalui perintah output.
Semoga bermanfaat :)
Friday, 1 October 2010
Seri Pemrograman: Tipe Data dan Variabel
Pada umumnya di dalam sebuah program akan terjadi pengolahan data (input) menjadi informasi (output). Program menerima masukan dari pengguna kemudian diolah untuk selanjutnya ditampilkan kembali kepada pengguna. Misalnya program menghitung luas persegi. Pengguna diminta memasukkan data panjang dan lebar. Dan setelah di-OK atau di-Enter muncullah luas yang merupakan hasil perkalian antara panjang dengan lebar.
Sebagai bagian dari sebuah sistem komputer, program memanfaatkan memori komputer untuk digunakan sebagai tempat penyimpanan baik data maupun informasi. Data yang dimasukkan oleh pengguna melalui keyboard akan dibaca oleh program dan kemudian disimpan di memori (RAM). Pun halnya informasi hasil pengolahan juga bisa disimpan terlebih dulu di memori untuk selanjutnya baru ditampilkan ke layar monitor komputer.
Untuk mengatur penggunaan memori (sebagai penyimpanan data) oleh program digunakanlah konsep tipe data dan variabel. Memori komputer ibarat sebuah rak lemari yang sedemikian tinggi dengan sejumlah slot kecil penyusunnya yang tertata rapi, berurutan dari bawah ke atas. Ada slot yang lebarnya besar, ada pula yang kecil. Konsekuensinya, besar kecil ukuran menentukan besar kecil isi yang bisa dimasukkan ke dalam slot tersebut. Masing-masing slot diberi label yang berbeda antara satu dengan yang lainnya. Tujuannya untuk memudahkan pengaksesan dan tidak terjadi pengisian oleh data lain.
Paragraf di atas merupakan gambaran tentang manajemen memori sederhana. Jika rak adalah memori maka slot adalah segmen memori. Besar kecilnya ukuran slot menandakan jenis tipe data. Misal ada tipe data integer dengan ukuran 2 byte, tipe data float 4 byte dan tipe data char memiliki besar 1 byte. Sedangkan label pada slot adalah analogi nama variabel dalam pemrograman. Sehingga biasanya dalam sebuah program diawali dengan penulisan nama-nama variabel yang akan dipakai beserta jenis tipe datanya. Ini biasanya dikenal dengan istilah deklarasi variabel, yang akan diterjemahkan oleh compiler sebagai langkah untuk menyiapkan/ booking memori sebelum digunakan/ diproses lebih lanjut oleh program.
Semoga bermanfaat :)
Sebagai bagian dari sebuah sistem komputer, program memanfaatkan memori komputer untuk digunakan sebagai tempat penyimpanan baik data maupun informasi. Data yang dimasukkan oleh pengguna melalui keyboard akan dibaca oleh program dan kemudian disimpan di memori (RAM). Pun halnya informasi hasil pengolahan juga bisa disimpan terlebih dulu di memori untuk selanjutnya baru ditampilkan ke layar monitor komputer.
Untuk mengatur penggunaan memori (sebagai penyimpanan data) oleh program digunakanlah konsep tipe data dan variabel. Memori komputer ibarat sebuah rak lemari yang sedemikian tinggi dengan sejumlah slot kecil penyusunnya yang tertata rapi, berurutan dari bawah ke atas. Ada slot yang lebarnya besar, ada pula yang kecil. Konsekuensinya, besar kecil ukuran menentukan besar kecil isi yang bisa dimasukkan ke dalam slot tersebut. Masing-masing slot diberi label yang berbeda antara satu dengan yang lainnya. Tujuannya untuk memudahkan pengaksesan dan tidak terjadi pengisian oleh data lain.
Paragraf di atas merupakan gambaran tentang manajemen memori sederhana. Jika rak adalah memori maka slot adalah segmen memori. Besar kecilnya ukuran slot menandakan jenis tipe data. Misal ada tipe data integer dengan ukuran 2 byte, tipe data float 4 byte dan tipe data char memiliki besar 1 byte. Sedangkan label pada slot adalah analogi nama variabel dalam pemrograman. Sehingga biasanya dalam sebuah program diawali dengan penulisan nama-nama variabel yang akan dipakai beserta jenis tipe datanya. Ini biasanya dikenal dengan istilah deklarasi variabel, yang akan diterjemahkan oleh compiler sebagai langkah untuk menyiapkan/ booking memori sebelum digunakan/ diproses lebih lanjut oleh program.
Semoga bermanfaat :)
Wednesday, 22 September 2010
Apa Itu Pemrograman (Komputer)
Sebagai seorang programmer, manusia harus mengetahui bahasa yang dipakai oleh komputer. Bahasa yang dikenali oleh komputer adalah bahasa mesin. Bahasa mesin pada dasarnya sangat susah dipahami dan diingat oleh manusia karena berupa urutan data binary. Misal : 1011001010111 untuk sebuah perintah mencetak karakter di layar. Padahal ada ratusan bahkan ribuan perintah yang dimiliki oleh komputer. Untuk menjembatani bahasa mesin dengan bahasa manusia digunakanlah bahasa pemrograman. Bahasa pemrograman berkembang dari low level sampai high level, dari bahasa yang dekat ke bahasa mesin hingga bahasa yang hampir mirip dengan bahasa sehari-hari manusia.
Terus, apakah pemrograman itu sendiri?
Menurut Daniel K. Schneider:
Programming is instructing a computer to do something for you with the help of a programming language. Deal with two kind of things data and procedures.
Sedangkan menurut Wikipedia.org:
Computer programming (often shortened to programming or coding) is the process of designing, writing, testing, debugging / troubleshooting, and maintaining the source code of computer programs.
Menurut Alan Gauld:
Computer Programming is the art of making a computer do what you want it to do.
Menurut McCracken:
Programming is basically a process of translating from the language convenient to human beings to the language convenient to the computer.
Dan menurut Land of Code.com:
Computer programming is defined as telling a computer what to do through a special set of instructions which are then interpreted by the computer to perform some task(s). These instructions can be specified in one or more programming languages including Java, C, and C++. A computer goes through a set of steps whose purpose is to achieve something. These steps are instructed to the computer by computer programs. Essentialy, computer programming is the process by which these programs are designed and implemented.
Demikianlah rangkuman tentang definisi pemrograman. Semoga bermanfaat bagi pembaca yang budiman :)
Terus, apakah pemrograman itu sendiri?
Menurut Daniel K. Schneider:
Programming is instructing a computer to do something for you with the help of a programming language. Deal with two kind of things data and procedures.
Sedangkan menurut Wikipedia.org:
Computer programming (often shortened to programming or coding) is the process of designing, writing, testing, debugging / troubleshooting, and maintaining the source code of computer programs.
Menurut Alan Gauld:
Computer Programming is the art of making a computer do what you want it to do.
Menurut McCracken:
Programming is basically a process of translating from the language convenient to human beings to the language convenient to the computer.
Dan menurut Land of Code.com:
Computer programming is defined as telling a computer what to do through a special set of instructions which are then interpreted by the computer to perform some task(s). These instructions can be specified in one or more programming languages including Java, C, and C++. A computer goes through a set of steps whose purpose is to achieve something. These steps are instructed to the computer by computer programs. Essentialy, computer programming is the process by which these programs are designed and implemented.
Demikianlah rangkuman tentang definisi pemrograman. Semoga bermanfaat bagi pembaca yang budiman :)
Monday, 6 September 2010
Mengenal NetBeans IDE 6.9.1
Kebetulan semester ini mencoba Netbeans terbaru untuk demontrasi perkuliahan bahasa pemrograman di kelas. Release terbaru saat ini dari Netbeans.org. Di halaman Download web ini sudah berhasil saya unduh installer-nya yang paling minim, hanya sekitar 50 Mb. Sebagaimana prediksi di awal, laptop saya sepertinya bakalan gelagepan buat menjalankan Netbeans, apalagi yang terbaru. Dan ternyata memang benar. Setidaknya dilihat dari ukuran RAM-nya sudah kelihatan :(
Sebagaimana release di halaman resminya, NetBeans IDE 6.9.1 membutuhkan spesifikasi perangkat keras yang cukup handal. Ada spesifikasi minimal, dan spesifikasi yang direkomendasikan. Detailnya adalah sebagai berikut:
Spesifikasi minimal:
*Microsoft Windows XP Professional SP3/Vista SP1/Windows 7 Professional:
o Processor: 800MHz Intel Pentium III or equivalent
o Memory: 512 MB
o Disk space: 750 MB of free disk space
* Ubuntu 9.10:
o Processor: 800MHz Intel Pentium III or equivalent
o Memory: 512 MB
o Disk space: 650 MB of free disk space
* Solaris OS version 10 (SPARC):
o Processor: UltraSPARC II 450 MHz
o Memory: 512 MB
o Disk space: 650 MB of free disk space
* Solaris OS version 10 (x86/x64 Platform Edition):
o Processor: AMD Opteron 1200 Series 1.8 GHz
o Memory: 512 MB
o Disk space: 650 MB of free disk space
* Macintosh OS X 10.5 Intel:
o Processor: Dual-Core Intel (32 or 64-bit)
o Memory: 512 MB
o Disk space: 650 MB of free disk space
Spesifikasi rekomendasi:
* Microsoft Windows XP Professional SP3/Vista SP1/Windows 7 Professional:
o Processor: 2.6 GHz Intel Pentium IV or equivalent
o Memory: 2 GB
o Disk space: 1 GB of free disk space
* Ubuntu 9.10:
o Processor: 2.6 GHz Intel Pentium IV or equivalent
o Memory: 2 GB
o Disk space: 850 MB of free disk space
* Solaris OS version 10 (SPARC):
o Processor: UltraSPARC IIIi 1 GHz
o Memory: 2 GB
o Disk space: 850 MB of free disk space
* Solaris OS version 10 (x86/x64 platform edition):
o Processor: AMD Opteron 1200 Series 2.8 GHz
o Memory: 2 GB
o Disk space: 850 MB of free disk space
* OpenSolaris 2010.03 (x86/x64 platform edition):
o Processor: AMD Opteron 1200 Series 2.8 GHz
o Memory: 2 GB
o Disk space: 650 MB of free disk space
* Macintosh OS X 10.6 Intel:
o Processor: Dual-Core Intel (32 or 64-bit)
o Memory: 2 GB
o Disk space: 850 MB of free disk space
Sebagaimana release di halaman resminya, NetBeans IDE 6.9.1 membutuhkan spesifikasi perangkat keras yang cukup handal. Ada spesifikasi minimal, dan spesifikasi yang direkomendasikan. Detailnya adalah sebagai berikut:
Spesifikasi minimal:
*Microsoft Windows XP Professional SP3/Vista SP1/Windows 7 Professional:
o Processor: 800MHz Intel Pentium III or equivalent
o Memory: 512 MB
o Disk space: 750 MB of free disk space
* Ubuntu 9.10:
o Processor: 800MHz Intel Pentium III or equivalent
o Memory: 512 MB
o Disk space: 650 MB of free disk space
* Solaris OS version 10 (SPARC):
o Processor: UltraSPARC II 450 MHz
o Memory: 512 MB
o Disk space: 650 MB of free disk space
* Solaris OS version 10 (x86/x64 Platform Edition):
o Processor: AMD Opteron 1200 Series 1.8 GHz
o Memory: 512 MB
o Disk space: 650 MB of free disk space
* Macintosh OS X 10.5 Intel:
o Processor: Dual-Core Intel (32 or 64-bit)
o Memory: 512 MB
o Disk space: 650 MB of free disk space
Spesifikasi rekomendasi:
* Microsoft Windows XP Professional SP3/Vista SP1/Windows 7 Professional:
o Processor: 2.6 GHz Intel Pentium IV or equivalent
o Memory: 2 GB
o Disk space: 1 GB of free disk space
* Ubuntu 9.10:
o Processor: 2.6 GHz Intel Pentium IV or equivalent
o Memory: 2 GB
o Disk space: 850 MB of free disk space
* Solaris OS version 10 (SPARC):
o Processor: UltraSPARC IIIi 1 GHz
o Memory: 2 GB
o Disk space: 850 MB of free disk space
* Solaris OS version 10 (x86/x64 platform edition):
o Processor: AMD Opteron 1200 Series 2.8 GHz
o Memory: 2 GB
o Disk space: 850 MB of free disk space
* OpenSolaris 2010.03 (x86/x64 platform edition):
o Processor: AMD Opteron 1200 Series 2.8 GHz
o Memory: 2 GB
o Disk space: 650 MB of free disk space
* Macintosh OS X 10.6 Intel:
o Processor: Dual-Core Intel (32 or 64-bit)
o Memory: 2 GB
o Disk space: 850 MB of free disk space
Tuesday, 15 June 2010
Siswa SD Pernah Akses Por(n)ografi
Memprihatinkan. Anak yang masih bau kencur sudah "ngeluyur" kemana-mana. Waspada, waspada! Tantangan untuk para developer aplikasi pengaman akses internet. Tantangan pula bagi para orang tua serta masyarakat. Dan tak lupa, tantangan bagi lembaga terkait: sekolah, penyedia media dan pemerintah tentunya. Tantangan ini harus dijawab dengan terpadu.
[ Senin, 14 Juni 2010 ]
Siswa SD Pernah Akses Pornografi
Berita Video Artis Picu Rasa Ingin Tahu
JAKARTA - Para orang tua sepatutnya berhati-hati dan mengawasi anak-anak mereka. Perkembangan teknologi informasi (TI) membawa dampak buruk untuk anak-anak di Indonesia, khususnya para siswa sekolah dasar (SD). Berdasar data Yayasan Kita dan Buah Hati, mayoritas atau 67 persen dari 2.818 siswa SD kelas IV-VI yang menjadi sampel penelitian menyatakan pernah mengakses informasi pornografi.
"Medianya beragam. Tapi, hasilnya sama. Yakni, penurunan moral generasi penerus," ujar Elli Risman, direktur Yayasan Kita dan Buah Hati, ketika memberikan keterangan pers di Kantor Komnas Perlindungan Anak, Jakarta, Sabtu lalu (12/6).
Elli mengatakan, sebagian besar anak di bawah umur mengakses materi berunsur pornografi melalui beragam media. Tetapi, yang paling utama berasal dari komik. Data yang cukup mengejutkan itu terungkap dari survei lembaga swadaya masyarakat (LSM) atas sejumlah SD di Indonesia yang dilakukan sejak Januari 2008 hingga Februari 2010.
"Sekarang pemerintah harus memerangi kejahatan yang merusak anak. Harus ada program terapi nasional yang selama ini belum ada di Indonesia untuk anak-anak," paparnya.
Hasil survei itu menunjukkan, anak-anak di bawah umur yang mengakses pornografi melalui komik mencapai 24 persen, situs internet 22 persen, game 17 persen, film/TV 12 persen, telepon genggam 6 persen, majalah 6 persen, dan koran 5 persen. Para pelajar SD tersebut, umumnya, melihat pornografi karena iseng (21 persen), penasaran (18 persen), ikut teman (9 persen), dan takut dianggap kurang pergaulan (3 persen).
Elli menjelaskan, dalam pemahaman anak-anak berdasar hasil survei, pornografi diterjemahkan sebagai gambar orang telanjang (31 persen), jorok (29 persen), serta menampilkan aurat dan bagian yang tidak boleh dilihat (12 persen). "Jadi, banyak versi dalam benak anak yang harus dipahami orang tua bila ingin mencegah," ungkap dia.
Ketua Komnas Perlindungan Anak Arist Merdeka Sirait mengatakan, ada tren jumlah anak pengakses informasi pornografi bertambah. Apalagi, papar dia, sarana untuk akses media yang menyajikan informasi pornografi kian sulit dibendung. Bahkan, tren pemberitaan yang beredar tentang rekaman video porno artis ibu kota baru-baru ini ikut meningkatkan rasa ingin tahu anak.
"Kami memang belum menyelesaikan survei soal itu. Namun, diyakini jumlahnya bertambah. Ketika berita tersebut muncul dan semua anak menjelajahi internet, jumlahnya akan bertambah dan mereka sekarang menganggap itu sebagai hal biasa," ujarnya prihatin. (zul/c11/dwi)
sumber: Jawa Pos
[ Senin, 14 Juni 2010 ]
Siswa SD Pernah Akses Pornografi
Berita Video Artis Picu Rasa Ingin Tahu
JAKARTA - Para orang tua sepatutnya berhati-hati dan mengawasi anak-anak mereka. Perkembangan teknologi informasi (TI) membawa dampak buruk untuk anak-anak di Indonesia, khususnya para siswa sekolah dasar (SD). Berdasar data Yayasan Kita dan Buah Hati, mayoritas atau 67 persen dari 2.818 siswa SD kelas IV-VI yang menjadi sampel penelitian menyatakan pernah mengakses informasi pornografi.
"Medianya beragam. Tapi, hasilnya sama. Yakni, penurunan moral generasi penerus," ujar Elli Risman, direktur Yayasan Kita dan Buah Hati, ketika memberikan keterangan pers di Kantor Komnas Perlindungan Anak, Jakarta, Sabtu lalu (12/6).
Elli mengatakan, sebagian besar anak di bawah umur mengakses materi berunsur pornografi melalui beragam media. Tetapi, yang paling utama berasal dari komik. Data yang cukup mengejutkan itu terungkap dari survei lembaga swadaya masyarakat (LSM) atas sejumlah SD di Indonesia yang dilakukan sejak Januari 2008 hingga Februari 2010.
"Sekarang pemerintah harus memerangi kejahatan yang merusak anak. Harus ada program terapi nasional yang selama ini belum ada di Indonesia untuk anak-anak," paparnya.
Hasil survei itu menunjukkan, anak-anak di bawah umur yang mengakses pornografi melalui komik mencapai 24 persen, situs internet 22 persen, game 17 persen, film/TV 12 persen, telepon genggam 6 persen, majalah 6 persen, dan koran 5 persen. Para pelajar SD tersebut, umumnya, melihat pornografi karena iseng (21 persen), penasaran (18 persen), ikut teman (9 persen), dan takut dianggap kurang pergaulan (3 persen).
Elli menjelaskan, dalam pemahaman anak-anak berdasar hasil survei, pornografi diterjemahkan sebagai gambar orang telanjang (31 persen), jorok (29 persen), serta menampilkan aurat dan bagian yang tidak boleh dilihat (12 persen). "Jadi, banyak versi dalam benak anak yang harus dipahami orang tua bila ingin mencegah," ungkap dia.
Ketua Komnas Perlindungan Anak Arist Merdeka Sirait mengatakan, ada tren jumlah anak pengakses informasi pornografi bertambah. Apalagi, papar dia, sarana untuk akses media yang menyajikan informasi pornografi kian sulit dibendung. Bahkan, tren pemberitaan yang beredar tentang rekaman video porno artis ibu kota baru-baru ini ikut meningkatkan rasa ingin tahu anak.
"Kami memang belum menyelesaikan survei soal itu. Namun, diyakini jumlahnya bertambah. Ketika berita tersebut muncul dan semua anak menjelajahi internet, jumlahnya akan bertambah dan mereka sekarang menganggap itu sebagai hal biasa," ujarnya prihatin. (zul/c11/dwi)
sumber: Jawa Pos
Monday, 7 June 2010
Contoh Program Double Linked List dalam Bahasa Java
Berikut ini contoh program sederhana dalam bahasa Java (console) untuk implementasi konsep struktur data Double Linked List. Double Linked List adalah modifikasi Single Linked List sehingga mempunyai dua buah variabel/ atribut untuk mereferensi lokasi data sebelum dan sesudahnya. Biasanya dinamai Next dan Previous. Untuk contoh ini menggunakan konsep InsertBack, dimana penambahan node (simpul) baru selalu berada di belakang. Sedangkan penghapusannya memakai metode DeleteFirst, dimana simpul yang dihapus selalu yang berada di posisi terdepan. Selamat mencoba :)
class Node //atau node/simpul
{
public int data; // data item
public Node next; // next node link in list
public Node prev; // previous node link in list
public Node(int id) // constructor
{
data = id; // initialize data
} // set to null)
public void displayLink() // display ourself
{
System.out.print("{" + data + "} ");
}
} // end class Link
class LinkList
{
private Node head; // ref to first link on list
private Node tail; // ref to last link on list
public LinkList() // constructor
{
head = tail = null; // no items on list yet
}
public boolean isEmpty() // true if list is empty
{
return (head==null);
}
public void insertBack(int id) //node baru selalu di belakang
{ // make new link
Node newNode = new Node(id);
if (tail == null) // the first node created
{
head = tail = newNode; // first --> newLink
}
else // the second node and the next node
{
tail.next = newNode; //next dr tail (awal) diarahkan ke node baru
newNode.prev = tail; //prev dr node baru diarahkan ke tail (awal)
tail = newNode; //tail (baru) diarahkan ke node baru
}
}
public Node deleteFirst() // delete first item
{ // (assumes list not empty)
Node temp = head; // save reference to link
head.prev = null;
head = head.next; // delete it: first-->old next
return temp; // return deleted link
}
public void displayForward()
{
Node current = head; // start at beginning of list
while(current != null) // until end of list,
{
current.displayLink(); // print data
current = current.next; // move to next link
}
System.out.println("");
}
public void displayBackward()
{
Node current = tail; // start at beginning of list
while(current != null) // until end of list,
{
current.displayLink(); // print data
current = current.prev; // move to next link
}
System.out.println("");
}
} // end class LinkList
class LinkListApp
{
public static void main(String[] args)
{
LinkList theList = new LinkList(); // make new list
System.out.println("Initializing Double Linked List...");
theList.insertBack(22); // insert four items
theList.insertBack(44);
theList.insertBack(66);
theList.insertBack(88);
System.out.println("Display Forward :");
theList.displayForward(); // display list
System.out.println("Display Backward :");
theList.displayBackward();
System.out.println("Delete List from Head...");
while( !theList.isEmpty() ) // until it's empty,
{
Node aLink = theList.deleteFirst(); // delete link
System.out.print("Deleted "); // display it
aLink.displayLink();
System.out.println("");
}
theList.displayForward(); // display list
} // end main()
} // end class LinkListApp
class Node //atau node/simpul
{
public int data; // data item
public Node next; // next node link in list
public Node prev; // previous node link in list
public Node(int id) // constructor
{
data = id; // initialize data
} // set to null)
public void displayLink() // display ourself
{
System.out.print("{" + data + "} ");
}
} // end class Link
class LinkList
{
private Node head; // ref to first link on list
private Node tail; // ref to last link on list
public LinkList() // constructor
{
head = tail = null; // no items on list yet
}
public boolean isEmpty() // true if list is empty
{
return (head==null);
}
public void insertBack(int id) //node baru selalu di belakang
{ // make new link
Node newNode = new Node(id);
if (tail == null) // the first node created
{
head = tail = newNode; // first --> newLink
}
else // the second node and the next node
{
tail.next = newNode; //next dr tail (awal) diarahkan ke node baru
newNode.prev = tail; //prev dr node baru diarahkan ke tail (awal)
tail = newNode; //tail (baru) diarahkan ke node baru
}
}
public Node deleteFirst() // delete first item
{ // (assumes list not empty)
Node temp = head; // save reference to link
head.prev = null;
head = head.next; // delete it: first-->old next
return temp; // return deleted link
}
public void displayForward()
{
Node current = head; // start at beginning of list
while(current != null) // until end of list,
{
current.displayLink(); // print data
current = current.next; // move to next link
}
System.out.println("");
}
public void displayBackward()
{
Node current = tail; // start at beginning of list
while(current != null) // until end of list,
{
current.displayLink(); // print data
current = current.prev; // move to next link
}
System.out.println("");
}
} // end class LinkList
class LinkListApp
{
public static void main(String[] args)
{
LinkList theList = new LinkList(); // make new list
System.out.println("Initializing Double Linked List...");
theList.insertBack(22); // insert four items
theList.insertBack(44);
theList.insertBack(66);
theList.insertBack(88);
System.out.println("Display Forward :");
theList.displayForward(); // display list
System.out.println("Display Backward :");
theList.displayBackward();
System.out.println("Delete List from Head...");
while( !theList.isEmpty() ) // until it's empty,
{
Node aLink = theList.deleteFirst(); // delete link
System.out.print("Deleted "); // display it
aLink.displayLink();
System.out.println("");
}
theList.displayForward(); // display list
} // end main()
} // end class LinkListApp
Subscribe to:
Posts (Atom)