Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

TUGAS MANDIRI UTS ALGORITMA DAN STRUTUR DATA

NAMA: LALE INAYA FIRASYA

NIM:F1D010946

KELAS: B

PROGRAM MENGURUTKAN BARISAN UJI NYALI DENGAN DOUBLE LINKED LIST

JUDUL

DOUBLE LINKED LIST

Double Linked List adalah elemen- elemen yang dihubungkan dengan dua pointer dalam satu elemen dan list dapat melintas baik di depan atau belakang.

PENGERTIAN

PERMASALAHAN

  • Tujuh orang mahasiswa Teknik Infromatika pergi ke lantai 2 gedung D untuk menguji nyali. Mereka adalah 6, 13, 19, 46, 35, dan 83. Mereka masuk dalam suatu barisan. 3 orang di barisan pertama pergi untuk mengecek ruangan yang ada, sehingga hanya terisa 4 orang dalam barisan. Setelah beberapa jam kemudian, tiga orang tersebut tidak ada kabar. Sehingga empat orang yang berada di depan gedung memutuskan untuk mencari mereka. Saat berjalan di tangga, tiba-tiba terdengar teriakan yang sangat keras sehingga nomor 46 lari terbirit-birit memisahkan diri dari barisan. Sisa tiga orang lainnya yang kembali melanjutkan perjalanan mereka dengan saling berpegangan tangan.
  • Selang beberapa waktu sesosok orang yang kita sebut saja nomor 100 memegang tangan orang terakhir yang ada dalam barisan. Barisan tersebut tiba di ruang pertama dan bertemu dengan nomor 13 yang sedang ketakutan. Lalu ia masuk ke dalam barisan diantara nomor 35 dan 83. Di ruang tersebut terdengar suara orang nomor 2 dan 6 lari terbirit-birit memasuki ruangan. Nomor 2 segera masuk ke barisan di depan nomor 19 sedangkan nomor 6 masuk di belakang nomor 13. Mereka pun sampai di ujung lorong dan bertemu dengan nomor 46. Si nomor 46 melihat seorang yang tak dikenal ada di dalam barisan, yaitu nomor 100. Dikarenakan ada orang yang tidak dikenal tersebut, mereka pun berpencar dan membuat barisan baru dengan urutan dari besar ke kecil dan nomor genap berada di depan.

Algoritma

Algoritma

Add front

Membuat node baru.

Menghubungkan node baru dengan head dari linked list.

Menjadikan node baru sebagai head dengan memindahkan posisi head ke node baru.

Add back

  • Membuat node baru.

  • Menghubungkan node baru dengan node di ujung dari linked list.

  • Menjadikan node baru sebagai tail dengan membuatnya sama dengan null.

Delete front

  • Memindahkan posisi head ke node selanjutnya.

  • Memutuskan hubungan head dengan node sebelumnya, dengan menjadikan node sebelumnya sama dengan null .

  • Memindahkan data akhir ke data sebelumnya.

  • Menghapus data akhir.

Delete back

  • Membuat variabel bantu

  • Menghapus setiap data yang ditempati oleh variabel bantu tersebut.

Delete all

  • Membuat variabel bantu.

  • Menentukan posisi node mana yang akan dihapus yang berada setelah node tertentu.

  • Memutuskan hubungan node tertentu dengan node yang akan dihapus yang berada setelah node tertentu tersebut.

  • Menghubungkan node tertentu tersebut dengan node setelahnya.

Delete after

Insert after

  • Membuat node baru.

  • Menentukan posisi dimana node baru akan disisipkan setelah node tertentu.

  • Menyisipkan node baru di tempat yang sudah ditentukan dengan menghubungkan node baru dengan node tertentu.

Tampil

  • Mengecek apakah linked list kosong atau tidak.

  • Jika linked list kosong, memberi keterangan bahwa linked list kosong.

  • Menampilkan data dari linked list, jika linked list tidak kosong.

  • Melakukan perulangan untuk menampilkan semua data pada linked list hingga data terakhir.

Urut

  • Membandingkan nilai node awal dengan node selanjutnya.

  • Jika node selanjutnya lebih besar dari node awal maka node selanjutnya akan bergeser ke kanan hingga node terakhir.

  • Melakukan perulangan untuk membandingkan semua nilai node pada linked list.

  • Mengurutkan nilai node dari yang terbesar hingga yang terkecil.

CODE PROGRAM

CODE

kelas node

Step 1

class node{

int data;

node prev = null;

node next = null;

node(int data){

this.data = data;

}

}

kelas uts

class uts{

node head=null;

node tail=null;

void addfront(int b){

node baru = new node(b);

if(head==null){

head=baru;

tail=baru;

}else{

baru.next=head;

head.prev=head;

head=baru;

}

}

Step 2

void addback(int b){

node baru = new node(b);

if(head==null){

head=baru;

tail=baru;

}else{

baru.prev=tail;

tail.next=baru;

tail=baru;

}

}

Step 2 (cont.)

Step 2 (cont.)

void dellback(){

if(head==null){

System.out.println("List Kosong");

}else{

tail=tail.prev;;

tail.next=null;

}

}

void tampil(){

node tmp=head;

if(head==null){

System.out.println("List Kosong");

}else{

while(tmp !=null){

System.out.print(tmp.data +" ");

tmp=tmp.next;

}

}System.out.println();

}

void del(int b){

node tmp=head;

node after=tmp.next;

if(tmp.next != null){

while(tmp.next.data != b){

tmp=tmp.next;

after=after.next;

}

tmp.next=after.next;

after=null;

}

}

Step 2 (cont.)

void urut(){

node tmp;

int t;

for(int i=0;i<7;i++){

tmp=head;

while(tmp.next!=null){

if(tmp.data>tmp.next.data){

t=tmp.data;

tmp.data=tmp.next.data;

tmp.next.data=t;}

tmp=tmp.next;}}

}

void addafter(int b,int a){

node tmp=head;

node baru = new node(b);

while(tmp.data != a){

tmp=tmp.next;

}

node bantu = tmp.next;

tmp.next=baru;

baru.next=bantu;

baru.prev=tmp;

bantu.prev=baru;

}

void dellall(){

head=null;

System.out.println("kosong");

}

Step 2 (cont.)

public static void main (String [] args){

uts x= new uts();

System.out.println("Orang-orang uji nyali");

x.addback(2);

x.addback(6);

x.addback(13);

x.addback(19);

x.addback(46);

x.addback(35);

x.addback(83);

x.tampil();

System.out.println("sisa Orang-orang uji nyali");

x.dellfront();

x.dellfront();

x.dellfront();

x.tampil();

System.out.println("sisa Orang-orang uji nyali");

x.del(46);

x.tampil();

System.out.println("sisa Orang-orang uji nyali");

x.addback(100);

x.tampil();

System.out.println("sisa Orang-orang uji nyali");

x.addafter(13,35);

x.tampil();

System.out.println("sisa Orang-orang uji nyali");

x.addfront(2);

x.tampil();

System.out.println("sisa Orang-orang uji nyali");

x.addafter(6,13);

x.tampil();

x.dellback();

x.addback(46);

System.out.println("sisa Orang-orang uji nyali");

x.tampil();

x.dellall();

x.addback(46);x.addback(6);x.addback(2);

x.addback(83);x.addback(35);x.addback(19);x.addback(13);

System.out.println("sisa Orang-orang uji nyali");

x.tampil();

System.out.println("sisa Orang-orang uji nyali");

x.urut();

x.tampil();

}

}

DEMO PROGRAM

Learn more about creating dynamic, engaging presentations with Prezi