Contoh Program Linked List C++ Sederhana


Contoh Program Linked List C++ Sederhana

contoh program single linked list sederhana untuk merecord nama siswa

Daftar Isi

1. contoh program single linked list sederhana untuk merecord nama siswa


FIle singleLinkedList.java

// AUTHOR : LordRimuruTempest

class node{

String namaSiswa;

node pointer;

public node(String namaSiswa){

this.namaSiswa = namaSiswa;

}

}

public class singleLinkedList {

node head, tail; int size = 0;

boolean isEmpty(){

return(size == 0);

}

void tambahData(node newData){

if(isEmpty()) head = tail = newData;

else{

tail.pointer = newData;

tail = newData;

}size++;

}

void hapusData(String nama){

node temp = head;

if(!isEmpty()){

if(head == tail && temp.namaSiswa.equals(nama)) head = tail = null;

else{

if(nama.equals(head.namaSiswa)){

head = temp.pointer;

temp = null;

}else{

while(!temp.pointer.namaSiswa.equals(nama)){

temp = temp.pointer;

}

if(temp.pointer.pointer != null) temp.pointer = temp.pointer.pointer;

else temp.pointer = null;

}

}size--;

}else System.out.println("List Kosong !!");

}

void display(){

node temp = head; int nomor = 1;

System.out.println("DATA SISWA : ");

if(size != 0){

do{

System.out.println(nomor++ + ". " + temp.namaSiswa);

temp = temp.pointer;

}while(temp != null);

}else System.out.println("List Kosong !!");

}

}

File menu.java

/ AUTHOR : LordRimuruTempest

import java.util.Scanner;

public class menu {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

singleLinkedList list = new singleLinkedList();

boolean run = true; String inputan; int langkah = 1;

while(run){

System.out.println("LANGKAH KE-" + langkah++);

System.out.println("MENU : ");

System.out.println("1. Masukkan data siswa");

System.out.println("2. Hapus data siswa");

System.out.println("3. Tampilkan data");

System.out.println("4. keluar");

System.out.print("Pilihan(1/2/3/4) : "); inputan = input.nextLine();

if(inputan.equals("1")){

System.out.print("Masukkan nama siswa : "); inputan = input.nextLine();

list.tambahData(new node(inputan));

System.out.println(inputan + " telah ditambahkan ke sistem");

}else if(inputan.equals("2")){

System.out.print("Masukkan nama siswa : "); inputan = input.nextLine();

list.hapusData(inputan);

System.out.println(inputan + " telah dihapus dari sistem");

}else if(inputan.equals("3")) list.display();

else if(inputan.equals("4")) run = false;

}

}  

}

Pembahasan

Single linked list adalah salah satu jenis dari struktur data berupa deretan objek yang disebut objek node (mirip seperti kereta api yang terdiri atas beberapa gerbong, node dianggap sebagai satu gerbong dan linked list adalah keretanya). Program akan dibuat dengan bahasa java. Pada dasarnya, single linked list terdiri atas 5 unsur dasar sebagai berikut :

1. Objek node, untuk menyimpan data.

2. Node kepala(node head), yaitu node pada urutan pertama di dalam list.

3. Node ekor(node tail), yaitu node pada urutan terakhir dalam list.

4. Node link/pointer, untuk menandai objek node selanjutnya dari posisi node sekarang.

5. Method untuk menambah node, menghapus node, melihat ukuran list, dan sebagainya.

Setelah memahami strukturnya, maka gunakan struktur data ini untuk membuat program record data nilai siswa.

Cara kerja program :

1. Class node akan membentuk objek node dengan data berupa nama siswa.

2. Class linked list akan membentuk objek list yang terdiri atas beberapa node dan memiliki atribut head, tail, dan size serta memiliki beberapa method sebagai berikut :

Method isEmpty akan mengecek ukuran list. Jika size = 0 maka akan menghasilkan nilai true dan jika tidak maka bernilai false.Method tambahData berfungsi untuk menambah node pada bagian belakang list. Jika list masih kosong, maka node akan menjadi kepala(head) sekaligus ekor(tail) dan nilai size ditambah 1. Jika tidak, maka pointer tail akan menunjuk node tersebut, lalu node tersebut akan menjadi tail/ekor.Method hapusData akan menghapus node dengan nama siswa tertentu. Jika list kosong, maka akan dicetak "list kosong". Jika tidak, maka program akan mengecek apakah head = tail (hanya 1 data) dan apakah nilai temp.namaSiswa = nama. Jika benar maka list akan dikosongkan sehingga head = tail = null(kosong). Jika salah, maka program akan mengecek apakah nama = head.namaSiswa, jika benar maka posisi head akan digantikan oleh node berikutnya. Dan jika salah maka program akan melakukan looping sampai temp.pointer.namaSiswa = nama. Setelah berhenti maka temp.pointer yang memiliki data nama siswa yang dimaksud akan dihapus, dan pointer-nya akan diganti dengan node berikutnya. Jika node selanjutnya dari temp.pointer tidak ada, maka akan dikosongkan(null).

3. Class menu akan membentuk menu untuk mengoperasikan program record nama siswa. Program akan melakukan looping secara terus menerus untuk melakukan record data sampai user memilih keluar.

Kode program, pengoperasian dan output-nya dapat dilihat pada lampiran gambar.

Pelajari lebih lanjut

Penerapan algoritma stack dengan java

https://brainly.co.id/tugas/27482376

Contoh pemrograman pascal

https://brainly.co.id/tugas/35223598

Contoh pemrograman C++

https://brainly.co.id/tugas/23831050

============================

Detail Jawaban

Kelas : X SMA

Mapel : TI

Materi : Mengenal pemrograman komputer

Kode Kategorisasi : 10.11.6

Kata Kunci : Struktur data single linked list, bahasa pemrograman java


2. apa perbedaan single linked list dengan double linked list serta contoh masing masing


jawaban

Perbedaan Singly Linked List, Double Linked List, Dan Circular Linked List

1. Singly Linked List merupakan suatu linked list yang hanya memiliki satu variabel pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya, biasanya field pada tail menunjuk ke NULL.

2. Doubly Linked List merupakan suatu linked list yang memiliki dua variabel pointer yaitu pointer yang menunjuk ke node selanjutnya dan pointer yang menunjuk ke node sebelumnya. Setiap head dan tailnya juga menunjuk ke NULL.

3. Circular Linked List merupakan suatu linked list dimana tail (node terakhir) menunjuk ke head (node pertama). Jadi tidak ada pointer yang menunjuk

penjelasan

maaf ya kalu salah hanya itu saja yang aku tahu


3. 2 Buat kode program single linked list yang nilai data di input user sebanyak 10 inputan tampilkan nilai.single linked list yang sudah di input oleh user


Linked List merupakan koleksi linear dari data, yang disebut sebagai nodes, dimana setiap node akan menunjuk pada node lain melalui sebuah pointer. Linked List dapat didefinisikan pula sebagai kumpulan nodes yang merepresentasikan sebuah sequence.

Representasi sebuah linked list dapat digambarkan melalui gambardiatas.

Sebuah linked list yang hanya memiliki 1 penghubung ke node lain disebut sebagai single linked list.

Di dalam sebuah linked list, ada 1 pointer yang menjadi gambaran besar, yakni pointer HEAD yang menunjuk pada node pertama di dalam linked list itu sendiri.

Sebuah linked list dikatakan kosong apabila isi pointer head adalah NULL.

Beberapa operasi yang biasanya ada di dalam sebuah linked list adalah:

Push

Push merupakan sebuah operasi insert dimana di dalam linked list terdapat 2 kemungkinan insert, yaitu insert melalui depan (pushDepan) ataupun belakang (pushBelakang). Operasi pushDepan berarti data yang paling baru dimasukkan akan berada di depan data lainnya, dan sebaliknya pushBelakang berarti data yang paling baru akan berada di belakang data lainnya.

Representasinya adalah sebagai berikut:

pushDepan: 5, 3, 7, 9 maka hasilnya adalah: 9 ->7 ->3 -> 5 -> NULL

pushBelakang: 5, 3, 7, 9 maka hasilnya adalah: 5 ->3 ->7 ->9 -> NULL

Pop

Pop, kebalikan dari push, merupakan operasi delete, dimana di dalam linked list memiliki 2 kemungkinan delete, yaitu melalui depan (popDepan) dan melalui belakang (popBelakang). PopDepan berarti data yang akan dihapus adalah data paling depan, dan popBelakang berarti data yang akan dihapus adalah data paling belakang (akhir).

Dalam penerapan code single linked list, umumnya hanya digunakan pointer head sebagai pointer yang menunjuk pada linked list. Namun dalam pembahasan artikel ini akan digunakan 1 pointer tambahan, yakni TAIL untuk menunjuk data terakhir di dalam linked list dalam mempermudah proses pembahasan.

Dalam artikel ini, pembahasan code menggunakan Bahasa Pemrograman C dengan library malloc.h.

Apabila didefinisikan sebuah linked list ada di gambarkeduasampaikeenam.


4. jelaskan perbedaan linked list dengan array​


Perbedaan array dan linked list adalah sebagai berikut:

Arraymerupakan struktur data berbasis indeks, setiap elemen dalam arrayterkait dengan indeks tersebut. Sementara itu, linked list bergantung pada referensi. Node-node dalam linked list terdiri dari data dan referensi ke elemen data yang lain. Array adalah kumpulan objek data yang mirip satu sama lain dan disimpan di lokasi memori secara berurutan. Sementara itu, linked listmerupakan sekumpulan data yang berisi urutan elemen dalam strukturnya. Setiap elemen saling terkait dengan elemen berikutnya. Pembahasan:

Array merupakan istilah yang akrab dengan ilmu komputer. Array dapat kita temukan dalam berbagai bahasa pemrograman mulai dari Java, C, hingga PHP. Terdapat array satu dimensi dan arraydua dimensi yang memiliki fungsi berbeda.

Array adalah tipe data yang terstruktur, gunanya untuk menyimpan data-data dengan tipe serupa. Array memiliki banyak variabel dalam strukturnya, namun dengan tipe data yang sama. Masing-masing variabel dalam array memiliki nilai indeks.

Kita dapat mengakses data dalam array melalui nomor indeks tertentu. Nomor indeks ini dimulai dari 0, untuk mengaksesnya harus menggunakan proses looping.

Linked list adalah struktur data yang terdiri dari urutan record data. Setiap record dalam linked list memiliki field masing-masing untuk menyimpan alamat atau referensi dari record selanjutnya. Dalamlinked list, elemen data ini disebut node.

Dalam linked list ada juga istilah head dan tail. Head adalah elemen yang berada di posisi pertamalinked list. Tail adalah elemen terakhir dalam sebuah linked list.

Pelajari lebih lanjut:Samba server https://brainly.co.id/tugas/26958364Protokol jaringan https://brainly.co.id/tugas/19983255Sistem informasi berbasis komputer https://brainly.co.id/tugas/37178842

Detail Jawaban:

Kelas: 10

Mapel: TIK

Bab: Bab 6 - Mengenal Pemrograman Komputer

Kode: 10.11.6

#AyoBelajar #SPJ2


5. definisi linked list


Jawaban:

cara untuk meyimpan data sehingga bisa otomatis membuat tempat baru untuk meyimpan data yang diperlukan

Penjelasan:


6. Buatlah sebuah program python single Linked list yang dapat melakukan operasi Insert Depan, Insert Belakang, Hapus Depan, Hapus Belakang, Hapus semua, Tampilkan Data.​


Program python linked list: class LinkedList:

   def __init__(self):

       self.head = None

   def addStart(self, data):

       # create a temporary node

       tempNode = Node(data)

       tempNode.setLink(self.head)

       self.head = tempNode

       del tempNode

   def addEnd(self, data):

       start = self.head

       tempNode = Node(data)

       while start.getNextNode():

           start = start.getNextNode()

       start.setLink(tempNode)

       del tempNode

       return True

   def display(self):

       start = self.head

       if start is None:

           print("Empty List!!!")

           return False

       while start:

           print(str(start.getData()), end=" ")

           start = start.link

           if start:

               print("-->", end=" ")

       print()

   def length(self):

       start = self.head

       size = 0

       while start:

           size += 1

           start = start.getNextNode()

       # print(size)

       return size

  def indexing(self, data):

       start = self.head

       position = 1

       while start:

           if start.getData() == data:

               return position

           else:

               position += 1

               start = start.getNextNode()

   def removing(self, item):

       start = self.head

       previous = None

       found = False

       while not found:

           if start.getData() == item:

               found = True

           else:

               previous = start

               start = start.getNextNode()

       if previous is None:

           self.head = start.getNextNode()

       else:

           previous.setLink(start.getNextNode())

       return found

  def Maxim(self):

       start = self.head

       largest = start.getData()

       while start:

           if largest < start.getData():

               largest = start.getData()

           start = start.getNextNode()

       return largest

   def Minus(self):

       start = self.head

       smallest = start.getData()

       while start:

           if smallest > start.getData():

               smallest = start.getData()

           start = start.getNextNode()

       return smallest

   def pushing(self, data):

       self.addToEnd(data)

       return True

   def popping(self):

       start = self.head

       previous = None

       while start.getNextNode():

           previous = start

           start = start.getNextNode()

       if previous is None:

           self.head = None

       else:

           previous.setLink(None)

           data = start.getData()

           del start

           return data

   def atIndex(self, position):

       start = self.head

       position = int(position)

       pos = 1

       while pos != position:

           start = start.getNextNode()

           pos += 1

       data = start.getData()

       return data

   def copy(self):

       temp = LinkedList()

       start = self.head

       temp.addToStart(start.getData())

       start = start.getNextNode()

       while start:

           temp.addToEnd(start.getData())

           start = start.getNextNode()

       return temp

   def clear(self):

       self.head = None

       return True

   def removePosition(self, position):

       data = self.atIndex(position)

       self.remove(data)

       return data

   def toString(self, seperator=""):

       start = self.head

       finalString =""

       while start:

           tempString = start.getData()

           finalString += str(tempString)

           start = start.getNextNode()

           # if next node exists only the append seperator

           if start:

               finalString += seperator

       return finalString

   def count(self, element):

       start = self.head

       count1 = 0

       while start:

           if start.getData() == element:

               count1 += 1

           start = start.getNextNode()

       return count1

   def toList(self):

       start = self.head

       tempList = []

       while start:

           tempElement = start.getData()

           tempList.append(tempElement)

           start = start.getNextNode()

       return tempList

   def toSet(self):

       start = self.head

       tempSet = set()

       while start:

           tempElement = start.getData()

           if tempElement not in tempSet:

               tempSet.add(tempElement)

           start = start.getNextNode()

       return tempSet

   def reverse(self):

       start = self.head

       tempNode = None

       previousNode = None

       while start:

           tempNode = start.getNextNode()

           start.setLink(previousNode)

           previousNode = start

           start = tempNode

       self.head = previousNode

       return True

   def sort(self):

       start = self.head

       beginNode = start

       while beginNode:

           tempNode = beginNode

           tempNode2 = beginNode

           smallest = beginNode.getData()

           while tempNode:

               if smallest > tempNode.getData():

                   smallest = tempNode.getData()

                   tempNode2 = tempNode

               tempNode = tempNode.getNextNode()

           temp = beginNode.getData()

           beginNode.updateData(tempNode2.getData())

           tempNode2.updateData(temp)

           beginNode = beginNode.getNextNode()

   def sorted(self):

       start = self.head

       tempList = self.copy()

       tempList.sort()

       return tempList

Penjelasan:

Daftar tertaut atau linked list ialah suatu  struktur data linier. Tidak seperti array, yang juga merupakan komponen data linier serta campuran, daftar tertaut terbentuk dengan cara dinamis. Saat dimulai program, item daftar tertaut tidak punya suatu data. Elemen dari daftar tertaut (disebut node) dibuat dari waktu ke waktu, layaknya yang ditunjukkan.

Pelajari lebih lanjut

Pelajari lebih lanjut materi tentang penjelassan tentang linked list: https://brainly.co.id/tugas/29298273

#BelajarBersamaBrainly


7. Linked list single double bedanya apa?


single linked list hanya bisa maju ke data selanjutnya namun tidak bisa kembali ke data sebelumnya karena tidak ada node yang digunakan untuk mundur ke data tersebut

single linked list hanya memiliki head yang merupakan kepala / awal dari suatu rangkaian data dan digunakan untuk awalan lintasan maju

contoh:

HEAD -> data1 -> data2 -> data3 -> NULL

double linked list bisa melintas maju dan mundur ke data sebelum dan sesudahnya karena ada node yang menghubungkannya

double linked list memiliki head dan tail, fungsi head sama dengan yang ada di single linked list, sedangkan tail adalah ekor / akhir dari suatu rangkaian data

contoh:

HEAD ⇄ data1 ⇄ data2 ⇄ data3 ⇄ TAIL

*note:

head->prev = NULL; TAIL->next = NULL;

maaf kalau membingungkan


8. kasus masalah seperti apa yang cocok untuk menerapkan konsep dari Linked List? Berikan contohnya? mohon bantuannya untuk UAS


Data yang bersifat uniform (seragam/sama) tetapi dengan jumlah data yang tidak diketahui sebelumnya, dan dapat ditambah/dikurangi pada saat program dijalankan

9. apa kegunaan pointer head pada sebuah linked list? Apa kegunaan pointer tail pada sebuah linked list?


Jawaban: Pointer HEAD menunjuk pada node pertama di dalam linked list itu sendiri dan pointer TAIL yang menunjuk pada node paling akhir di dalam linked list.

Penjelasan:


10. kelebihan dan kekurangan Circular Linked list


Jawaban:

Kelebihan

1. Jenis data yang berbeda dapat di Link

2. Operasi REMOVE atau INSERT hanya dilakukan dengan mengubah pointer-nya saja

Kerugian

1. Diperlukan ruang tambahan untuk menyatakan/tempat field pointer

2. Diperlukan waktu yang lebih banyak untuk mencari suatu node dalam linked list.

Penjelasan:


11. Pengetahuan tentang linked list?


Jawaban:

cara untuk meyimpan data sehingga bisa otomatis membuat tempat baru untuk meyimpan data yang diperlukan

Penjelasan:

Jawaban:

Linked List adalah suatu struktur data linier. Berbeda dengan array yang juga merupakan struktur data linier dan tipe data komposit, linked list dibentuk secara dinamik. Pada saat awal program dijalankan elemen linked list belum data. Elemen linked list (disebut node) dibentuk sambil jalan sesuai instruksi.

Penjelasan:

#semoga membantu


12. bentuk deklarasi manipulasi linked list harus menggunakan suatu pointer menunjuk ke node


Jawaban:

Linked List adalah salah satu bentuk struktur data, berisi kumpulan data

(node) yang tersusun secara sekuensial, saling sambungmenyambung,

dinamis dan terbatas.

Penjelasan:

maaf klo salah


13. apa yang dimaksud linked list tanpa sumpul head?​


Linked List adalah suatu struktur data linier. Berbeda dengan array yang juga merupakan struktur data linier dan tipe data komposit, linked list dibentuk secara dinamik. Pada saat awal program dijalankan elemen linked list belum data. Elemen linked list (disebut node) dibentuk sambil jalan sesuai instruksi.


14. Sebuah linked list mempunyai sepuluh simpul. Apakah boleh langsung akses ke simpul kelima?


Jawaban:

Tidak bisa karena address simpul dalam linked list tidak saling bersebelahan.

Penjelasan:

Struktur data linked list terdiri dari node yang berisi data dan pointer address node berikutnya dan/atau sebelumnya. Untuk mengakses linked list diperlukannya traversal atau dicari satu-satu dimulai dari node terdepan atau terbelakang. Misalkan ada linked list yang terdiri dari 10 node yang dimana data berupa huruf dan alamatnya di dalam kurung:

[A(10)]->[B(12)]->[C(24)]->[D(23)]->[E(14)]->[F(15)]->[G(18)]->[H(13)]->[I(28)]->[J(29)]

head

Untuk mengakses node kelima, kita harus mentraverse dari A sampai E karena alamat node E tidak selalu +5 dari node A. Berbeda dengan array yang dapat diakses secara langsung karena alamatnya saling bersebelahan. Misalkan ada array berikut:

[A,B,C,D,E,F,G,H,I,J]

Jika yang ingin diakses adalah array kelima maka kita cukup akses array kelimat dengan cara array[4] atau *(array+4) karena alamat array kelima adalah alamat array pertama + 4.


15. 1) jelaskan persamaan linked list dan stack


Jawaban:

Linked list memiliki keunggulan dibanding array yaitu dalam penggunaan alokasi memory , stack adalah teknik khusus yang digunakan untuk menghemat pemakaian memory dalam pembuatan dua stack dengan array

Intinya linked list dan stack adalah suatu sistem pengalokasi memory dengan hemat dan cepat

#SALAMJQHACKING

#STAYATHOME


16. untuk menyisipkan node dalam linked list digunakan prosedur​


Jawaban:

pembersih

Penjelasan:

kaya gitu lah

Jawaban:

a) info

b) next (linked field/next pointer field)

Penjelasan:

semoga membantu ya jawabnya


17. bagaimana cara menghubungkan beberapa simpul dalam single linked list​


Jawaban:

gataugatau gataugataiavsnobs


18. elemen (node) dari suatu linked list terdiri dari 2 bagian yaitu ....


a) info
b) next (linked field/next pointer field)

19. Apa hubungan antara linked list dan tree dalam struktur data?


Jawaban:

Linked List dan Tree adalah struktur data yang merupakan bagian dari graph theory.

Penjelasan:

Graph theory adalah studi struktur data dimana setiap entitas direpresentasikan dalam bentuk node/vertice dan memiliki relasi yang direpresentasikan dalam bentuk edges antar node. Linked list adalah kumpulan node yang saling terhubung dengan aturan tertentu. Jumlah hubungan satu node ke node yang lain tidak dibatasi pada Linked list namun linked list memerlukan penanda node yang menjadi awal dan akhir iterasi. Tree adalah graph yang tidak memiliki loop antar nodenya sehingga path ke sebuah node ke node lainnya hanya 1 cara saja.


20. Apa yang di maksud dengan tranversal pada operasi linked list


Jawaban:

Traversal atau kunjungan simpul list sesuai urutan untuk memproses setiap simpul tepat satu kali. akan menggerakkan penuding ke simpul berikutnya

Penjelasan:

maaf kalo salah


Video Terkait


Post a Comment

Previous Post Next Post

Formulir Kontak