SlideShare a Scribd company logo
Senarai 
Algoritma dan 
Struktur Data 
Georgius Rinaldo 
dodo@kuliahkita.com
Definisi 
Senarai (List) adalah sebuah penyimpanan yang mirip 
dengan larik dengan ukuran yang dapat berubah-ubah 
atau fleksibel sesuai dengan jumlah data. 
Senarai = larik yang ukurannya dapat berubah (array list)
Struktur Senarai 
Pada sebuah penampung atau simpul (node) dari sebuah 
senarai, terdapat informasi: 
● nilai 
● informasi simpul berikutnya 
next pada gambar merupakan pointer atau penunjuk yang 
menghubungkan antar simpul. Apabila simpul merupakan 
elemen terakhir, maka nilai next adalah null
Cara Menambah ke Senarai 
Konsep penambahan elemen pada senarai adalah: 
1. alokasikan tempat untuk simpul baru 
2. salin item yang akan disimpan 
3. buat head dari senarai yang menunjuk ke arah simpul 
yang baru 
Walaupun tak terbatas seperti larik, tetapi item yang 
ditambahkan terbatas pada memory yang tersedia.
TDA Senarai 
{InfoType dan address adalah tipe yang telah didefinisikan} 
type ElmtList : < Info : InfoType, 
Next : address > 
type List : <First: address> {First adalah element pertama di list} 
{Deklarasi nama untuk variabel kerja} 
P: address {address untuk traversal}
Penjelasan TDA Senarai 
Dapat dilihat bahwa pada TDA senarai merupakan 
kumpulan dari alamat simpul yang saling berhubungan. 
Struktur data senarai dimulai dengan first yang menunjuk 
ke alamat dari sebuah simpul. Simpul akan menunjuk 
simpul lainnya yang akhirnya akan membentuk senarai 
atau list.
Penjelasan TDA Senarai - 2 
Simpul sendiri terdiri dari info dan next. 
Info adalah nilai yang disimpan pada sebuah simpul. 
Sedangkan next merupakan tempat menyimpan alamat 
dari simpul berikutnya. Karena simpul selalu memiliki next, 
maka simpul akan terus bersambung dan membentuk list. 
Jika sebuah simpul merupakan simpul terakhir, maka next 
akan berisi null.
Contoh Pendefinisian List C++ 
#include <iostream> 
using namespace std; 
#define info(P) (P)->info 
#define next(P) (P)->next 
#define First(L) ((L).First) 
typedef int Infotype; // definisikan bahwa Infotype adalah alias dari 
tipe integer 
typedef struct tElmtList *address; 
typedef struct tElmtList { 
Infotype info; // informasi bertipe infotype yang telah didefinisi 
address next; // alamat yang menunjuk ke simpul berikutnya 
} ElmtList; // ini adalah struktur sebuah simpul 
typedef struct { 
address First; 
} List; // tipe List berisi alamat pada simpul pertama
Contoh Pendefinisian List C++ 
... 
/* Pembuatan simpul */ 
ElmtList buatSimpul(Infotype x) { 
ElmtList elem; // definisikan ElmtList sebagai simpul 
elem.info = x; // isi informasi pada simpul 
elem.next = NULL; // alamat next simpul baru adalah NULL 
return elem; 
} 
...
Contoh Pendefinisian List C++ 
... 
/* Mengalokasikan sebuah simpul pada senarai */ 
void alokasi(List *L, ElmtList node) { 
// apabila senarai kosong, maka langsung alokasikan 
if (L->First == NULL) { 
L->First = &node; 
} else { 
// apabila senarai sudah ada isinya 
address el = L->First; 
// cari mana alamat simpul senarai yang kosong untuk dialokasikan 
while(el->next != NULL) { 
el = el->next; 
} 
// isi senarai dengan simpul yang dibuat 
el->next = &node; 
} 
} 
...
Contoh Pendefinisian List C++ 
... 
/* Pencarian pada senarai */ 
bool pencarian (List *L, Infotype x) { 
// inisialisasi simpul awal 
address el = L->First; 
// iterasi pencarian sampai pada simpul yang tidak memiliki informasi 
while(el->info != NULL) { 
// apabila cocok, kembalikan true 
if (el->info == x){ 
return true; 
} 
// jika tidak cocok, ke simpul berikutnya 
el = el->next; 
} 
return false; // kembalkan false ketika semua telah ditelusuri dan tidak ada 
} 
...
Contoh Pendefinisian List C++ 
... 
int main() { 
List L; // definisikan senarai 
ElmtList elem1,elem2,elem3; // definisikan simpul yang akan diisi 
elem1 = buatSimpul(10); // buat simpul 
elem2 = buatSimpul(20); 
elem3 = buatSimpul(30); 
alokasi(&L, elem1); // alokasikan simpul-simpul 
alokasi(&L, elem2); 
alokasi(&L, elem3); 
cout << L.First->info << endl; // coba cetak elemen pertama 
cout << L.First->next->info << endl; // coba cetak elemen kedua 
bool dapatkah = pencarian(&L,30); // cari apakah elemen ada pada senarai? 
cout << dapatkah; 
return 0; 
}
Contoh: Pemakaian List 
// Contoh List pada library C++ 
using namespace std; 
list<int> deretbilangan; // definisi list dari integer

More Related Content

PDF
Bab ix urgensi dan tantangan ketahanan nasional dan bela negara
DOCX
Aplikasi Persamaan Differensial Dalam Bidang Ekonomi
PPT
Distribusi sampling
PDF
3 . analisis regresi linier berganda dua peubah
PDF
Bab ii esensi dan urgensi identitas nasional sebagai salah satu determinan pe...
PDF
Contoh soal uts struktur data
DOCX
Laporan Makalah Pembuatan Website E-Commerce-Basis Data
PDF
Linked List dalam Struktur Data
Bab ix urgensi dan tantangan ketahanan nasional dan bela negara
Aplikasi Persamaan Differensial Dalam Bidang Ekonomi
Distribusi sampling
3 . analisis regresi linier berganda dua peubah
Bab ii esensi dan urgensi identitas nasional sebagai salah satu determinan pe...
Contoh soal uts struktur data
Laporan Makalah Pembuatan Website E-Commerce-Basis Data
Linked List dalam Struktur Data

What's hot (20)

PDF
Interaksi Manusia Dan Komputer Soal + Jawaban
PPTX
Tugas 1 perbedaan sistem linier dan non linier
DOCX
Distribusi binomial, poisson dan normal
PDF
3 model data
PDF
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
PDF
7 Metode Pencarian Data Array
PPT
Presentasi Jurnal
PDF
Tabel t, z dan f dan chi kuadrat
PPT
STANDARD SCORE, SKEWNESS & KURTOSIS
PPT
Pertemuan 2 - Organisasi dan Arsitektur Komputer.ppt
PDF
Rpl 011 - arsitektur sistem terdistribusi
PDF
Perdagangan bebas dan proteksi
PPTX
Peluang dan Distribusi Peluang
PDF
4 bunga nominal dan bunga efektif
PPTX
Materi 8 (perilaku produsen)
PPTX
Tipe manajemen memori pada sistem operasi
PPTX
Pertemuan 9 pengalamatan
PPTX
Ppt lomba esai nasional wasment-esys
PPTX
Kuliah 5 diferensial fungsi majemuk
PPTX
Erd perpustakaan
Interaksi Manusia Dan Komputer Soal + Jawaban
Tugas 1 perbedaan sistem linier dan non linier
Distribusi binomial, poisson dan normal
3 model data
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
7 Metode Pencarian Data Array
Presentasi Jurnal
Tabel t, z dan f dan chi kuadrat
STANDARD SCORE, SKEWNESS & KURTOSIS
Pertemuan 2 - Organisasi dan Arsitektur Komputer.ppt
Rpl 011 - arsitektur sistem terdistribusi
Perdagangan bebas dan proteksi
Peluang dan Distribusi Peluang
4 bunga nominal dan bunga efektif
Materi 8 (perilaku produsen)
Tipe manajemen memori pada sistem operasi
Pertemuan 9 pengalamatan
Ppt lomba esai nasional wasment-esys
Kuliah 5 diferensial fungsi majemuk
Erd perpustakaan
Ad

Similar to Algoritma dan Struktur Data - List (20)

DOCX
MAKALAH LINKED LIST DALAM BAHASA C.docx
PDF
Linkedlist
PPT
Tugas kelompok mi d3_sore
PDF
teori Struktur data full
PDF
Algoritma dan Struktur Data - pohon biner
DOC
Modul 3 strukdat
PPTX
Linked list
PDF
Algoritma dan Struktur Data - Pohon Biner
DOC
Linked list
PPTX
Sd bab 8a (senarai)
PDF
3 stack2
PPSX
Pertemuan 11 (ASD_SD 2022)- Linked List.ppsx
PPTX
IMPLEMENTASI STACK MENGGUNAKAN LINKED LIST (1) (1).pptx
PDF
Algoritma dan Struktur Data (Python) - Struktur Data
PPTX
Slide minggu 2 pertemuan 2 (struktur data1)
PDF
5 6 single-linked_list
DOCX
Stack with linked list(algodat)
DOCX
Algorithms and Data Structures
PDF
Resume praktikum 5__linked_list
MAKALAH LINKED LIST DALAM BAHASA C.docx
Linkedlist
Tugas kelompok mi d3_sore
teori Struktur data full
Algoritma dan Struktur Data - pohon biner
Modul 3 strukdat
Linked list
Algoritma dan Struktur Data - Pohon Biner
Linked list
Sd bab 8a (senarai)
3 stack2
Pertemuan 11 (ASD_SD 2022)- Linked List.ppsx
IMPLEMENTASI STACK MENGGUNAKAN LINKED LIST (1) (1).pptx
Algoritma dan Struktur Data (Python) - Struktur Data
Slide minggu 2 pertemuan 2 (struktur data1)
5 6 single-linked_list
Stack with linked list(algodat)
Algorithms and Data Structures
Resume praktikum 5__linked_list
Ad

More from KuliahKita (20)

PPTX
CSS Eksperimen - 05-2 Popup Menu
PPTX
CSS Eksperimen - 05-1 Popup Konfirmasi
PPTX
CSS Eksperimen - 04-4 Elemen Sliding Door
PPTX
CSS Eksperimen - 04-3 Elemen Card Flip
PPTX
CSS Eksperimen - 04-2 accordion
PPTX
CSS Eksperimen - 04-1 informasi tab
PPTX
CSS Eksperimen - 03-3 Slide Side Menu
PPTX
CSS Eksperimen - 03-2 Breadcrumb
PPTX
CSS Eksperimen - 03-1 navigasi dasar
PPTX
CSS Eksperimen - 02-2 Flexbox Grid
PPTX
Eksperimen CSS - 02-1 grid layout
PPTX
Eksperimen CSS - 01 Pendahuluan
PDF
07 equity research (bagian 2)
PDF
Pasar Saham - 32 Discounted Cash Flow (DCF)
PDF
Pasar Saham - Equity Research (bagian 1)
PDF
Pasar Saham - 30 Investment Due Dilligence
PDF
Pasar Saham - 29 Financial Ratio 03
PDF
Pasar Saham - 28 Financial Ratio 02
PDF
Pasar Saham -27 financial ratio 01
PDF
Pasar Saham - 26 Cash Flow Statement
CSS Eksperimen - 05-2 Popup Menu
CSS Eksperimen - 05-1 Popup Konfirmasi
CSS Eksperimen - 04-4 Elemen Sliding Door
CSS Eksperimen - 04-3 Elemen Card Flip
CSS Eksperimen - 04-2 accordion
CSS Eksperimen - 04-1 informasi tab
CSS Eksperimen - 03-3 Slide Side Menu
CSS Eksperimen - 03-2 Breadcrumb
CSS Eksperimen - 03-1 navigasi dasar
CSS Eksperimen - 02-2 Flexbox Grid
Eksperimen CSS - 02-1 grid layout
Eksperimen CSS - 01 Pendahuluan
07 equity research (bagian 2)
Pasar Saham - 32 Discounted Cash Flow (DCF)
Pasar Saham - Equity Research (bagian 1)
Pasar Saham - 30 Investment Due Dilligence
Pasar Saham - 29 Financial Ratio 03
Pasar Saham - 28 Financial Ratio 02
Pasar Saham -27 financial ratio 01
Pasar Saham - 26 Cash Flow Statement

Recently uploaded (20)

PPTX
7-presentasi-pk-metrologi-141030010022-conversion-gate01.pptx
PDF
12. Mekanisme Pelaporan Kegiatan Sanimas_rev08082024.pptx.pdf
PPTX
PPT Mitigasi Banjir dnajsndj;asjdkaskldhjkash
PPTX
Pengenalan SPALDT_SPALDS_Karanganyar.pptx
PPT
PCM pekerjaan pembangunan Jembatan payahe
PPTX
PPT - Materi Paparan Laporan Akhir RP3KP Paser.pptx
PDF
MAINKAN GAME KESUKAN KALIAN DI TANGKI 4D DI JAMIN WD DAN CLIAM BONUSNYA
PDF
07. Mekanisme Penyusunan RKM_Sanimas 2024 (Tahap 2).pptx.pdf
PPTX
presentasi pekerjaan pembangunan jaringan irigasi
PPTX
2013materistudiumgeneralkabsndiunsri-130318044328-phpapp01.pptx
PPT
08_Sistem-Penilaian-Kesesuaian_BW_1708071.ppt
PPT
Penanganan motor starter pada dunia otomotif
PPTX
PEMBUATAN PANEL TRAINER DAN PROTOTYPE UNTUK PENINGKATAN KOMPETENSI TENTANG S...
PPT
electronic fuel injection for automotive sectors
PPTX
PPT - Materi Paparan Lapdal RP3KP Paser.pptx
PDF
chapter 1 Smith and Van ness thermodynamics
PDF
03. Konsep Dasar.. Sanimas Rev.1.pptx.pdf
PPT
hand-tools-service-special-tools-alat-ukur.ppt
PPTX
SAFETY INDUCTION untuk perusahaan konstruksi
PPTX
4. PENERAPAN PENGELOLAAN SUMBER DAYA MANUSIA.pptx
7-presentasi-pk-metrologi-141030010022-conversion-gate01.pptx
12. Mekanisme Pelaporan Kegiatan Sanimas_rev08082024.pptx.pdf
PPT Mitigasi Banjir dnajsndj;asjdkaskldhjkash
Pengenalan SPALDT_SPALDS_Karanganyar.pptx
PCM pekerjaan pembangunan Jembatan payahe
PPT - Materi Paparan Laporan Akhir RP3KP Paser.pptx
MAINKAN GAME KESUKAN KALIAN DI TANGKI 4D DI JAMIN WD DAN CLIAM BONUSNYA
07. Mekanisme Penyusunan RKM_Sanimas 2024 (Tahap 2).pptx.pdf
presentasi pekerjaan pembangunan jaringan irigasi
2013materistudiumgeneralkabsndiunsri-130318044328-phpapp01.pptx
08_Sistem-Penilaian-Kesesuaian_BW_1708071.ppt
Penanganan motor starter pada dunia otomotif
PEMBUATAN PANEL TRAINER DAN PROTOTYPE UNTUK PENINGKATAN KOMPETENSI TENTANG S...
electronic fuel injection for automotive sectors
PPT - Materi Paparan Lapdal RP3KP Paser.pptx
chapter 1 Smith and Van ness thermodynamics
03. Konsep Dasar.. Sanimas Rev.1.pptx.pdf
hand-tools-service-special-tools-alat-ukur.ppt
SAFETY INDUCTION untuk perusahaan konstruksi
4. PENERAPAN PENGELOLAAN SUMBER DAYA MANUSIA.pptx

Algoritma dan Struktur Data - List

  • 1. Senarai Algoritma dan Struktur Data Georgius Rinaldo dodo@kuliahkita.com
  • 2. Definisi Senarai (List) adalah sebuah penyimpanan yang mirip dengan larik dengan ukuran yang dapat berubah-ubah atau fleksibel sesuai dengan jumlah data. Senarai = larik yang ukurannya dapat berubah (array list)
  • 3. Struktur Senarai Pada sebuah penampung atau simpul (node) dari sebuah senarai, terdapat informasi: ● nilai ● informasi simpul berikutnya next pada gambar merupakan pointer atau penunjuk yang menghubungkan antar simpul. Apabila simpul merupakan elemen terakhir, maka nilai next adalah null
  • 4. Cara Menambah ke Senarai Konsep penambahan elemen pada senarai adalah: 1. alokasikan tempat untuk simpul baru 2. salin item yang akan disimpan 3. buat head dari senarai yang menunjuk ke arah simpul yang baru Walaupun tak terbatas seperti larik, tetapi item yang ditambahkan terbatas pada memory yang tersedia.
  • 5. TDA Senarai {InfoType dan address adalah tipe yang telah didefinisikan} type ElmtList : < Info : InfoType, Next : address > type List : <First: address> {First adalah element pertama di list} {Deklarasi nama untuk variabel kerja} P: address {address untuk traversal}
  • 6. Penjelasan TDA Senarai Dapat dilihat bahwa pada TDA senarai merupakan kumpulan dari alamat simpul yang saling berhubungan. Struktur data senarai dimulai dengan first yang menunjuk ke alamat dari sebuah simpul. Simpul akan menunjuk simpul lainnya yang akhirnya akan membentuk senarai atau list.
  • 7. Penjelasan TDA Senarai - 2 Simpul sendiri terdiri dari info dan next. Info adalah nilai yang disimpan pada sebuah simpul. Sedangkan next merupakan tempat menyimpan alamat dari simpul berikutnya. Karena simpul selalu memiliki next, maka simpul akan terus bersambung dan membentuk list. Jika sebuah simpul merupakan simpul terakhir, maka next akan berisi null.
  • 8. Contoh Pendefinisian List C++ #include <iostream> using namespace std; #define info(P) (P)->info #define next(P) (P)->next #define First(L) ((L).First) typedef int Infotype; // definisikan bahwa Infotype adalah alias dari tipe integer typedef struct tElmtList *address; typedef struct tElmtList { Infotype info; // informasi bertipe infotype yang telah didefinisi address next; // alamat yang menunjuk ke simpul berikutnya } ElmtList; // ini adalah struktur sebuah simpul typedef struct { address First; } List; // tipe List berisi alamat pada simpul pertama
  • 9. Contoh Pendefinisian List C++ ... /* Pembuatan simpul */ ElmtList buatSimpul(Infotype x) { ElmtList elem; // definisikan ElmtList sebagai simpul elem.info = x; // isi informasi pada simpul elem.next = NULL; // alamat next simpul baru adalah NULL return elem; } ...
  • 10. Contoh Pendefinisian List C++ ... /* Mengalokasikan sebuah simpul pada senarai */ void alokasi(List *L, ElmtList node) { // apabila senarai kosong, maka langsung alokasikan if (L->First == NULL) { L->First = &node; } else { // apabila senarai sudah ada isinya address el = L->First; // cari mana alamat simpul senarai yang kosong untuk dialokasikan while(el->next != NULL) { el = el->next; } // isi senarai dengan simpul yang dibuat el->next = &node; } } ...
  • 11. Contoh Pendefinisian List C++ ... /* Pencarian pada senarai */ bool pencarian (List *L, Infotype x) { // inisialisasi simpul awal address el = L->First; // iterasi pencarian sampai pada simpul yang tidak memiliki informasi while(el->info != NULL) { // apabila cocok, kembalikan true if (el->info == x){ return true; } // jika tidak cocok, ke simpul berikutnya el = el->next; } return false; // kembalkan false ketika semua telah ditelusuri dan tidak ada } ...
  • 12. Contoh Pendefinisian List C++ ... int main() { List L; // definisikan senarai ElmtList elem1,elem2,elem3; // definisikan simpul yang akan diisi elem1 = buatSimpul(10); // buat simpul elem2 = buatSimpul(20); elem3 = buatSimpul(30); alokasi(&L, elem1); // alokasikan simpul-simpul alokasi(&L, elem2); alokasi(&L, elem3); cout << L.First->info << endl; // coba cetak elemen pertama cout << L.First->next->info << endl; // coba cetak elemen kedua bool dapatkah = pencarian(&L,30); // cari apakah elemen ada pada senarai? cout << dapatkah; return 0; }
  • 13. Contoh: Pemakaian List // Contoh List pada library C++ using namespace std; list<int> deretbilangan; // definisi list dari integer