contoh program single linked list sederhana untuk merecord nama siswa
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;
}
}
}
PembahasanSingle 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 lanjutPenerapan algoritma stack dengan java
https://brainly.co.id/tugas/27482376Contoh pemrograman pascal
https://brainly.co.id/tugas/35223598Contoh pemrograman C++
https://brainly.co.id/tugas/23831050============================
Detail JawabanKelas : 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:
PushPush 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
PopPop, 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/37178842Detail 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 lanjutPelajari 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