CIRCULAR LINKED LIST
PROGRAM CIRCULAR LINKED LIST
NAMA : ELI NURHAYATI
NPM : 20082010115
SOAL :
Buatlah program sederhana untuk menambah dan menghapus data nama mahasiswa dengan menggunakan circular linked list. Kemudian ada menu tambahan untuk memasukkan sebuah kata (String) tanpa spasi untuk dibagikan setiap karakter penyusunnya ke masing-masing nama mahasiswa yang ada di dalam linked list, dan input nama dari siapa pembagian kata akan dimulai. Ada kemungkinan jumlah karakter kata lebih sedikit, sama, atau lebih banyak daripada jumlah nama mahasiswa. Jika lebih banyak, maka ada nama mahasiswa yang akan mendapatkan karakter lebih banyak daripada yang lainnya.
Contoh:
Nama mahasiswa: Budi - Wati - Iwan
Input Kata: Merdeka
Mulai pembagian dari: Iwan
Hasil :
M --> Iwan
E --> Budi
R --> Wati
D --> Iwan
E --> Budi
K --> Wati
A --> Iwan
Tips: Gunakan script seperti di method pencarian untuk mendapatkan titik awal pembagian; simpan di simpul temporary. Gunakan panjang String kata untuk membatasi perulangan saat pembagian kata. Gunakan method String charAt(indeks) untuk mengakses setiap karakter penyusunnya kata.
Unggah source code program dan contoh tampilannya di blog masing-masing. Kemudian posting URL di sini sebagai pesan balasan.
SOURCE CODE
Class cNode
package CircularLinkedList; public class cNode { private
String nama; cNode
next;
cNode(String nm){
nama=nm; next=null; } //Method
Getter public
String getNama(){ return
nama; } } |
package
CircularLinkedList; import
java.util.Scanner; public class
cCircularLinkedList { cNode kepala, ekor; private int jNode; cNode a=kepala; Scanner s=new Scanner(System.in); cCircularLinkedList(){ kepala=ekor=null; jNode=0; System.out.println("Object
Circular Linked List Dibuat..."); } public void addNode(cNode neww){ if(kepala==null){ kepala=ekor=neww; ekor.next=kepala; }else{ neww.next=kepala; ekor.next=neww; kepala=neww; } System.out.println(">>
Berhasil Menambahkan Simpul... <<"); } public void removeNode(){ if(kepala==null){ System.out.println(">>
Oops Linked List Masih Kosong <<"); }else if(kepala.next==kepala){ //Jika linked list hanya berisi 1
simpul kepala=ekor=null; System.out.println(">>
Berhasil Menghapus Simpul <<"); }else{ //Jika linked list berisi >1 simpul cNode a=kepala.next; kepala.next=null; ekor.next=a; kepala=a; System.out.println(">>
Berhasil Menghapus Simpul <<"); } } public void searchNode(){ if(ekor==null){ System.out.println(">>
Oops Linked List Masih Kosong <<"); }else{ boolean ketemu=false; System.out.print("Input Nama
Mahasiswa Yang Dicari : "); String cari=s.next(); for(cNode a=kepala ; a!=null ;
a=a.next){
if(a.getNama().equalsIgnoreCase(cari)){ ketemu=true; break; } } if(ketemu==false){ System.out.println(">>
Maaf Nama Yang Anda Cari Tidak Ditemukan <<"); }else{ System.out.println(">>
Yeey Nama Yang Anda Cari Berhasil Ditemukan <<"); } } } public void printNode(){
System.out.println("==================================="); System.out.println(" ISI CIRCULAR LINKED LIST ");
System.out.println("==================================="); if(kepala==null){ System.out.println(">>
Oops Linked List Masih Kosong <<"); }else{ cNode a=kepala; do{
System.out.println(a.getNama()+" "); a=a.next; }while(a!=kepala); System.out.println(""); } } public void printcharacter(String cr,
String nm){ String character=cr; String name=nm; boolean found=false; cNode mulai=null; cNode t=kepala; int bb=character.length(); int aa=0; if(kepala==null){ System.out.println(">>
Oops Linked List Masih Kosong <<"); }else{ do{ if(t.getNama().equalsIgnoreCase(nm)){ found=true; mulai=t; break; } t=t.next; }while(t!=kepala); if(found==true){ System.out.println(">>
Data Berhasil Ditemukan <<");
System.out.println("===========================");
System.out.println("
ISI RANGKAIAN ");
System.out.println("==========================="); t=mulai; do{
System.out.println(character.charAt(aa)+" ==>
"+t.getNama()); t=t.next; aa++; } while(bb>aa);
System.out.println(""); }else{
System.out.println(">> Oops... Data Tidak Ditemukan
<<"); } } } } |
package
CircularLinkedList; import java.util.Scanner; public class
ProgramCircularLinkedList { public static void main(String[] args) { cCircularLinkedList cll = new
cCircularLinkedList(); Scanner s = new Scanner(System.in); int pilih=0; String nama, cari; do{
System.out.println("\n============================="); System.out.println(" MENU CIRCULAR LINKED LIST ");
System.out.println("==============================="); System.out.println("1.
Tambah Simpul\n2. Hapus Simpul\n3. Cari Nama Mahasiswa\n4. Cetak Linked
List\n5. Cetak Linked List Dengan Karakter\n6. Exit"); System.out.print("Pilih :
"); pilih = s.nextInt(); switch(pilih){ case 1 :
System.out.print("Input Nama Mahasiswa : "); nama = s.next(); cNode n = new
cNode(nama); cll.addNode(n); break; case 2 : cll.removeNode(); break; case 3 : cll.searchNode(); break; case 4 : cll.printNode(); break; case 5 :
System.out.print("Masukkan Nama Mahasiswa Awal : "); String name = s.next();
System.out.print("Masukkan Karakter Yang Anda Inginkan : "); String kr = s.next(); cll.printcharacter(kr,
name); break; case 6 :
System.out.println(">>> THANK YOU <<<"); break; } }while(pilih!=6); } } |
SCREENSHOT RUNNING PROGRAM
TAMBAH SIMPUL
Komentar
Posting Komentar