SlideShare a Scribd company logo
Jurusan Informatika
Fakultas Teknik Industri
Universitas Pembangunan Nasional “Veteran” Yogyakarta
Struktur
Data
Andi Nurkholis, S.Kom., M.Kom.
Pointer &
Linked List
8 September 2025
Pengantar Pointer dan Linked List
Pointer adalah konsep penting dalam pemrograman, khususnya di C dan C++,
yang menyimpan alamat memori suatu data dan memungkinkan pengelolaan
memori secara efisien.
Konsep ini menjadi dasar pembentukan struktur data dinamis seperti linked
list, yang tersusun dari node-node saling terhubung melalui pointer.
Berbeda dengan array yang tersimpan berurutan di memori, linked list dapat
berubah ukurannya sesuai kebutuhan, sehingga lebih fleksibel untuk
penyimpanan dan manipulasi data.
Konsep
Pointer
1. Definisi Pointer
2. Deklarasi Pointer
3. Penggunaan Pointer
4. Manfaat Pointer
5. Pointer dalam Struktur Data
Definisi Pointer
Pointer adalah variabel yang menyimpan alamat memori dari variabel lain.
Dengan menggunakan pointer, kita dapat mengakses dan memanipulasi data
yang ada di memori tanpa perlu menduplikasi data tersebut. Pointer adalah
variabel khusus dalam bahasa pemrograman seperti C dan C++ yang digunakan
untuk menyimpan alamat memori dari variabel lain.
ü Variabel biasa menyimpan nilai data (contoh: int x = 10; → x menyimpan 10).
ü Pointer menyimpan alamat memori tempat data tersebut disimpan (contoh: int
*p = &x; → p menyimpan alamat memori x).
Deklarasi Pointer
Pointer harus dideklarasikan sebelum digunakan. Untuk mendeklarasikan
pointer, kita menggunakan tanda * (asterisk) sebelum nama pointer. Contoh:
int *ptr; // Pointer untuk menyimpan alamat variabel tipe integer
Keterangan penting:
ü tipe_data memastikan bahwa pointer hanya digunakan untuk menunjuk ke
alamat variabel bertipe tersebut.
ü Pointer yang belum diinisialisasi tidak boleh digunakan karena nilainya acak
dan dapat menyebabkan runtime error.
Penggunaan Pointer
ü Mengambil Alamat Variabel: Untuk mendapatkan alamat variabel, kita
menggunakan operator &.
int a = 5;
int *ptr = &a; // Pointer ptr menyimpan alamat dari variabel a
ü Mengakses Nilai Melalui Pointer: Untuk mengakses dan memanipulasi nilai
yang ditunjuk oleh pointer, kita menggunakan operator * (dereferencing
operator).
printf("%d", *ptr); // Menampilkan nilai a melalui pointer
*ptr = 10; // Mengubah nilai a menjadi 10
Manfaat Pointer
ü Pengelolaan Memori yang Dinamis: Dengan pointer, program dapat
mengalokasikan dan membebaskan memori saat runtime menggunakan fungsi
seperti malloc(), calloc(), dan free(). Ini penting untuk data yang ukurannya
tidak diketahui saat kompilasi.
ü Membentuk Struktur Data Kompleks: Struktur data seperti linked list, stack,
queue, tree, dan graph dibangun dengan menggunakan pointer untuk
menghubungkan satu elemen dengan elemen lainnya.
ü Efisiensi Pemrosesan Data: Pointer memungkinkan pengoperan alamat
memori ke fungsi daripada menyalin seluruh data, sehingga menghemat
waktu dan ruang memori (pass by reference).
Manfaat Pointer
ü Manipulasi Data Secara Tidak Langsung: Pointer memungkinkan perubahan
nilai variabel dari luar lingkup fungsi atau blok program.
ü Interaksi dengan Perangkat Keras dan Sistem Operasi: Pointer digunakan
untuk mengakses alamat memori tertentu, yang menjadi dasar dalam
pemrograman sistem, pengelolaan buffer, dan komunikasi perangkat keras.
Pointer Dalam Struktur Data
Dalam Struktur Data, pointer menjadi elemen kunci untuk:
ü Linked List: setiap node menyimpan pointer ke node berikutnya.
ü Tree: setiap node menyimpan pointer ke anak kiri dan anak kanan.
ü Graph: pointer digunakan untuk menghubungkan simpul-simpul dalam bentuk
adjacency list.
ü Dynamic Array: pointer digunakan untuk merujuk pada blok memori yang
dapat diperbesar atau diperkecil.
Konsep
Linked List
1. Definisi Linked List
2. Jenis-jenis Linked List
3. Keuntungan Linked List
dibandingkan Array
Definisi Linked List
Linked list adalah salah satu struktur data dinamis yang terdiri dari
sekumpulan elemen yang disebut node, di mana setiap node menyimpan data
dan pointer (atau link) yang menunjuk ke node berikutnya (atau node lain
tergantung jenisnya). Berbeda dengan array yang menyimpan elemen secara
bersebelahan di memori, linked list menyimpan elemen di lokasi memori yang
tidak harus berurutan, tetapi terhubung melalui pointer.
Struktur Node pada Linked List: Setiap node dalam linked list biasanya terdiri
dari dua bagian:
ü Data: Menyimpan nilai atau informasi.
ü Pointer: Menunjuk ke node berikutnya.
Jenis Linked List
Terdapat tiga jenis Linked List:
ü Singly Linked List: Setiap node hanya memiliki pointer ke node berikutnya.
ü Doubly Linked List: Setiap node memiliki dua pointer: satu ke node
berikutnya dan satu ke node sebelumnya. Ini memungkinkan traversal maju
dan mundur.
ü Circular Linked List: Node terakhir menunjuk kembali ke node pertama,
membuat daftar bersifat melingkar.
Linked List & Array
Keuntungan Linked List dibandingkan Array:
ü Ukuran Dinamis: Dapat bertambah atau berkurang sesuai kebutuhan tanpa
harus menentukan ukuran sejak awal.
ü Penyisipan dan Penghapusan Cepat: Operasi sisip/hapus di awal atau
tengah list cukup dengan memodifikasi pointer tanpa memindahkan elemen
lain.
ü Efisiensi Pemakaian Memori: Memori dialokasikan hanya saat diperlukan,
tidak perlu memesan blok besar sekaligus seperti pada array.
Linked List & Array
ü Mengurangi Fragmentasi Memori: Tidak memerlukan blok memori
bersebelahan; setiap node dapat ditempatkan di lokasi memori yang berbeda.
ü Fleksibilitas Struktur Data: Memudahkan pembentukan struktur data
kompleks seperti stack, queue, deque, graph, dan tree.
ü Kemudahan Reorganisasi Data: Perubahan urutan elemen dapat dilakukan
hanya dengan memodifikasi pointer tanpa menyalin seluruh isi list.
Operasi Dasar
Linked List
1. Inisialisasi Linked List
2. Menambahkan Elemen (Insertion)
3. Menghapus Elemen (Deletion)
4. Traversing Linked List
Kelebihan Linked List
ü Fleksibilitas Ukuran: Linked list dapat dengan mudah diperluas tanpa
batasan ukuran, beradaptasi dengan jumlah elemen yang diperlukan.
ü Inserting dan Deleting yang Efisien: Menambahkan dan menghapus elemen
dapat dilakukan dengan cepat tanpa perlu menggeser elemen lain.
Kekurangan Linked List
ü Akses yang Lebih Lambat: Waktu akses untuk menemukan elemen tertentu
lebih lambat dibandingkan dengan array (O(n)).
ü Penggunaan Memori Tambahan: Karena setiap node memerlukan
penyimpanan untuk pointer, penggunaan memori bisa jadi lebih besar
dibandingkan array.
ü Kompleksitas Implementasi: Linked list lebih kompleks untuk
diimplementasikan dan dipahami jika dibandingkan dengan array.
Jurusan Informatika
Fakultas Teknik Industri
Universitas Pembangunan Nasional “Veteran” Yogyakarta
Andi Nurkholis, S.Kom., M.Kom.
8 September 2025
Sekian
Terima
Kasih

More Related Content

PDF
Data Structure - 4 Pointer & Linked List
PDF
Data Structure - 3 Array: Concept & Implementation
PDF
Data Structure - 1 Learning Contract
PDF
Data Structure - 2 Introduction of Data Structure
PDF
Struktur Data - 3 Array: Konsep & Implementasi
PDF
Struktur Data - 2 Pengantar Struktur Data
PDF
Struktur Data - 1 Kontrak Perkuliahan
PDF
Technopreneurship - 9 Analisis Biaya dan Keuangan
Data Structure - 4 Pointer & Linked List
Data Structure - 3 Array: Concept & Implementation
Data Structure - 1 Learning Contract
Data Structure - 2 Introduction of Data Structure
Struktur Data - 3 Array: Konsep & Implementasi
Struktur Data - 2 Pengantar Struktur Data
Struktur Data - 1 Kontrak Perkuliahan
Technopreneurship - 9 Analisis Biaya dan Keuangan

More from AndiNurkholis1 (20)

PDF
Pengantar Bisnis - 14 Manajemen Keuangan
PDF
Pengantar Bisnis - 13 Manajemen Operasi
PDF
Pengantar Bisnis - 12 Kebijakan Harga
PDF
Pengantar Bisnis - 11 Kebijakan Distribusi
PDF
Technopreneurship - 8 Manajemen Sumber Daya Manusia
PDF
Pengantar Bisnis - 10 Kebijakan Produk
PDF
Technopreneurship - 7 Manajemen Pemasaran dan Operasional Bisnis
PDF
Pengantar Bisnis - 9 Manajemen Pemasaran
PDF
Technopreneurship - 6 Business Plan
PDF
Pengantar Bisnis - 8 Kepemimpinan
PDF
Technopreneurship - 5 Model Bisnis
PDF
Technopreneurship - 4 Studi Kelayakan Usaha
PDF
Pengantar Bisnis - 7 Motivasi Kerja
PDF
Pengantar Bisnis - 6 Manajemen Sumber Daya Manusia
PDF
Pengantar Bisnis - 5 Pengelolaan & Pengorganisasian Bisnis
PDF
Technopreneurship - 3 Ide dan Prinsip Bisnis
PDF
Pengantar Bisnis - 4 Bentuk Organisasi Bisnis
PDF
Technopreneurship - 2 Pengantar Technopreneurship
PDF
Pengantar Bisnis - 3 Globalisasi Ekonomi & Bisnis Internasional
PDF
Pengantar Bisnis - 2 Bisnis dan Lingkungan Bisnis
Pengantar Bisnis - 14 Manajemen Keuangan
Pengantar Bisnis - 13 Manajemen Operasi
Pengantar Bisnis - 12 Kebijakan Harga
Pengantar Bisnis - 11 Kebijakan Distribusi
Technopreneurship - 8 Manajemen Sumber Daya Manusia
Pengantar Bisnis - 10 Kebijakan Produk
Technopreneurship - 7 Manajemen Pemasaran dan Operasional Bisnis
Pengantar Bisnis - 9 Manajemen Pemasaran
Technopreneurship - 6 Business Plan
Pengantar Bisnis - 8 Kepemimpinan
Technopreneurship - 5 Model Bisnis
Technopreneurship - 4 Studi Kelayakan Usaha
Pengantar Bisnis - 7 Motivasi Kerja
Pengantar Bisnis - 6 Manajemen Sumber Daya Manusia
Pengantar Bisnis - 5 Pengelolaan & Pengorganisasian Bisnis
Technopreneurship - 3 Ide dan Prinsip Bisnis
Pengantar Bisnis - 4 Bentuk Organisasi Bisnis
Technopreneurship - 2 Pengantar Technopreneurship
Pengantar Bisnis - 3 Globalisasi Ekonomi & Bisnis Internasional
Pengantar Bisnis - 2 Bisnis dan Lingkungan Bisnis
Ad

Recently uploaded (9)

PPTX
Materi_Array_Karakter_String untuk kelas XI sma.pptx
PPTX
Materi asdsa asd asd sad sa dsa dsa d sa
PDF
Modul_Pemula_Merakit_Komputer untuk smppdf
PPTX
Implementasi Microservices pada Manufaktur
DOCX
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
PDF
Rekomendasi Riset Lanjutan : perspektif_futurologis.pdf
PPTX
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
DOCX
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
PPT
pengantar-sistem-informasi manajemen.ppt
Materi_Array_Karakter_String untuk kelas XI sma.pptx
Materi asdsa asd asd sad sa dsa dsa d sa
Modul_Pemula_Merakit_Komputer untuk smppdf
Implementasi Microservices pada Manufaktur
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
Rekomendasi Riset Lanjutan : perspektif_futurologis.pdf
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
pengantar-sistem-informasi manajemen.ppt
Ad

Struktur Data - 4 Pointer & Linked List

  • 1. Jurusan Informatika Fakultas Teknik Industri Universitas Pembangunan Nasional “Veteran” Yogyakarta Struktur Data Andi Nurkholis, S.Kom., M.Kom. Pointer & Linked List 8 September 2025
  • 2. Pengantar Pointer dan Linked List Pointer adalah konsep penting dalam pemrograman, khususnya di C dan C++, yang menyimpan alamat memori suatu data dan memungkinkan pengelolaan memori secara efisien. Konsep ini menjadi dasar pembentukan struktur data dinamis seperti linked list, yang tersusun dari node-node saling terhubung melalui pointer. Berbeda dengan array yang tersimpan berurutan di memori, linked list dapat berubah ukurannya sesuai kebutuhan, sehingga lebih fleksibel untuk penyimpanan dan manipulasi data.
  • 3. Konsep Pointer 1. Definisi Pointer 2. Deklarasi Pointer 3. Penggunaan Pointer 4. Manfaat Pointer 5. Pointer dalam Struktur Data
  • 4. Definisi Pointer Pointer adalah variabel yang menyimpan alamat memori dari variabel lain. Dengan menggunakan pointer, kita dapat mengakses dan memanipulasi data yang ada di memori tanpa perlu menduplikasi data tersebut. Pointer adalah variabel khusus dalam bahasa pemrograman seperti C dan C++ yang digunakan untuk menyimpan alamat memori dari variabel lain. ü Variabel biasa menyimpan nilai data (contoh: int x = 10; → x menyimpan 10). ü Pointer menyimpan alamat memori tempat data tersebut disimpan (contoh: int *p = &x; → p menyimpan alamat memori x).
  • 5. Deklarasi Pointer Pointer harus dideklarasikan sebelum digunakan. Untuk mendeklarasikan pointer, kita menggunakan tanda * (asterisk) sebelum nama pointer. Contoh: int *ptr; // Pointer untuk menyimpan alamat variabel tipe integer Keterangan penting: ü tipe_data memastikan bahwa pointer hanya digunakan untuk menunjuk ke alamat variabel bertipe tersebut. ü Pointer yang belum diinisialisasi tidak boleh digunakan karena nilainya acak dan dapat menyebabkan runtime error.
  • 6. Penggunaan Pointer ü Mengambil Alamat Variabel: Untuk mendapatkan alamat variabel, kita menggunakan operator &. int a = 5; int *ptr = &a; // Pointer ptr menyimpan alamat dari variabel a ü Mengakses Nilai Melalui Pointer: Untuk mengakses dan memanipulasi nilai yang ditunjuk oleh pointer, kita menggunakan operator * (dereferencing operator). printf("%d", *ptr); // Menampilkan nilai a melalui pointer *ptr = 10; // Mengubah nilai a menjadi 10
  • 7. Manfaat Pointer ü Pengelolaan Memori yang Dinamis: Dengan pointer, program dapat mengalokasikan dan membebaskan memori saat runtime menggunakan fungsi seperti malloc(), calloc(), dan free(). Ini penting untuk data yang ukurannya tidak diketahui saat kompilasi. ü Membentuk Struktur Data Kompleks: Struktur data seperti linked list, stack, queue, tree, dan graph dibangun dengan menggunakan pointer untuk menghubungkan satu elemen dengan elemen lainnya. ü Efisiensi Pemrosesan Data: Pointer memungkinkan pengoperan alamat memori ke fungsi daripada menyalin seluruh data, sehingga menghemat waktu dan ruang memori (pass by reference).
  • 8. Manfaat Pointer ü Manipulasi Data Secara Tidak Langsung: Pointer memungkinkan perubahan nilai variabel dari luar lingkup fungsi atau blok program. ü Interaksi dengan Perangkat Keras dan Sistem Operasi: Pointer digunakan untuk mengakses alamat memori tertentu, yang menjadi dasar dalam pemrograman sistem, pengelolaan buffer, dan komunikasi perangkat keras.
  • 9. Pointer Dalam Struktur Data Dalam Struktur Data, pointer menjadi elemen kunci untuk: ü Linked List: setiap node menyimpan pointer ke node berikutnya. ü Tree: setiap node menyimpan pointer ke anak kiri dan anak kanan. ü Graph: pointer digunakan untuk menghubungkan simpul-simpul dalam bentuk adjacency list. ü Dynamic Array: pointer digunakan untuk merujuk pada blok memori yang dapat diperbesar atau diperkecil.
  • 10. Konsep Linked List 1. Definisi Linked List 2. Jenis-jenis Linked List 3. Keuntungan Linked List dibandingkan Array
  • 11. Definisi Linked List Linked list adalah salah satu struktur data dinamis yang terdiri dari sekumpulan elemen yang disebut node, di mana setiap node menyimpan data dan pointer (atau link) yang menunjuk ke node berikutnya (atau node lain tergantung jenisnya). Berbeda dengan array yang menyimpan elemen secara bersebelahan di memori, linked list menyimpan elemen di lokasi memori yang tidak harus berurutan, tetapi terhubung melalui pointer. Struktur Node pada Linked List: Setiap node dalam linked list biasanya terdiri dari dua bagian: ü Data: Menyimpan nilai atau informasi. ü Pointer: Menunjuk ke node berikutnya.
  • 12. Jenis Linked List Terdapat tiga jenis Linked List: ü Singly Linked List: Setiap node hanya memiliki pointer ke node berikutnya. ü Doubly Linked List: Setiap node memiliki dua pointer: satu ke node berikutnya dan satu ke node sebelumnya. Ini memungkinkan traversal maju dan mundur. ü Circular Linked List: Node terakhir menunjuk kembali ke node pertama, membuat daftar bersifat melingkar.
  • 13. Linked List & Array Keuntungan Linked List dibandingkan Array: ü Ukuran Dinamis: Dapat bertambah atau berkurang sesuai kebutuhan tanpa harus menentukan ukuran sejak awal. ü Penyisipan dan Penghapusan Cepat: Operasi sisip/hapus di awal atau tengah list cukup dengan memodifikasi pointer tanpa memindahkan elemen lain. ü Efisiensi Pemakaian Memori: Memori dialokasikan hanya saat diperlukan, tidak perlu memesan blok besar sekaligus seperti pada array.
  • 14. Linked List & Array ü Mengurangi Fragmentasi Memori: Tidak memerlukan blok memori bersebelahan; setiap node dapat ditempatkan di lokasi memori yang berbeda. ü Fleksibilitas Struktur Data: Memudahkan pembentukan struktur data kompleks seperti stack, queue, deque, graph, dan tree. ü Kemudahan Reorganisasi Data: Perubahan urutan elemen dapat dilakukan hanya dengan memodifikasi pointer tanpa menyalin seluruh isi list.
  • 15. Operasi Dasar Linked List 1. Inisialisasi Linked List 2. Menambahkan Elemen (Insertion) 3. Menghapus Elemen (Deletion) 4. Traversing Linked List
  • 16. Kelebihan Linked List ü Fleksibilitas Ukuran: Linked list dapat dengan mudah diperluas tanpa batasan ukuran, beradaptasi dengan jumlah elemen yang diperlukan. ü Inserting dan Deleting yang Efisien: Menambahkan dan menghapus elemen dapat dilakukan dengan cepat tanpa perlu menggeser elemen lain.
  • 17. Kekurangan Linked List ü Akses yang Lebih Lambat: Waktu akses untuk menemukan elemen tertentu lebih lambat dibandingkan dengan array (O(n)). ü Penggunaan Memori Tambahan: Karena setiap node memerlukan penyimpanan untuk pointer, penggunaan memori bisa jadi lebih besar dibandingkan array. ü Kompleksitas Implementasi: Linked list lebih kompleks untuk diimplementasikan dan dipahami jika dibandingkan dengan array.
  • 18. Jurusan Informatika Fakultas Teknik Industri Universitas Pembangunan Nasional “Veteran” Yogyakarta Andi Nurkholis, S.Kom., M.Kom. 8 September 2025 Sekian Terima Kasih