A. Apa itu Struktur Data?
Struktur data adalah cara mengatur, menyimpan, dan mengelola data agar dapat digunakan dengan efisien oleh program.
Struktur data membantu:
- menyimpan banyak data sekaligus
- mengelompokkan data berdasarkan tipe
- mempermudah proses pencarian
- mempercepat pengolahan data
Contoh struktur data:
- Array
- Linked List
- Stack
- Queue
- Tree
- Graph
Di kelas X, fokus utama adalah array dan pointer.
Analogi Struktur Data
Bayangkan lemari arsip kantor:
- Setiap laci punya kategori
- Setiap folder punya tempat khusus
- Dokumen disusun rapi agar mudah dicari
Jika data tidak diatur, hasilnya akan berantakan dan program bekerja lebih lambat.
B. PERBEDAAN STRUKTUR DATA STATIS DAN DINAMIS
| Jenis | Pengertian | Kelebihan | Kekurangan | Contoh |
|---|---|---|---|---|
| Struktur Data Statis | Ukuran tetap dan ditentukan di awal | Cepat, sederhana, mudah dikelola | Tidak fleksibel, boros memori jika kebesaran | Array |
| Struktur Data Dinamis | Ukuran dapat berubah saat program berjalan | Fleksibel, hemat memori | Sedikit lebih kompleks | Linked list, vector (C++ STL), stack dinamis |
Analogi
Statis → Seperti kotak makan 3 ruang. Ruang tidak bisa diubah—selalu tetap.
Dinamis → Seperti tas ransel yang dapat mengembang sesuai isi (fleksibel).
C. PENGERTIAN ARRAY
Array adalah struktur data statis yang digunakan untuk menyimpan banyak data dengan tipe yang sama, disimpan dalam sebuah deretan tempat.
Setiap data disimpan pada indeks (nomor posisi mulai dari 0).
Analogi Array
Array itu seperti rak sepatu bertingkat:
- Semua slot hanya untuk sepatu
- Setiap slot punya nomor (indeks)
- Kamu bisa mengambil sepatu berdasarkan nomor slotnya
Rak sepatu = array
Slot rak = indeks
Sepatu = data
D. INISIASI ARRAY
int nilai[5];
int nilai[5] = {80, 90, 75, 88, 92};
Bisa juga diisi per elemen:
nilai[0] = 80;nilai[1] = 90;// ...dst
E. DIMENSI ARRAY
1. Array 1 Dimensi
Digunakan untuk menyimpan data dalam satu baris atau daftar tunggal.
int angka[4] = {10, 20, 30, 40};
cout << angka[2]; // Output: 30
2. Array 2 Dimensi
Array 2 dimensi adalah array yang memiliki baris dan kolom, seperti tabel atau matriks.
int matriks[2][3] = {{1, 2, 3},{4, 5, 6}};
- 2 baris
- 3 kolom
cout << matriks[1][2]; // Output: 6
Bayangkan papan catur:
- Baris
- Kolom
G. POINTER (PENTING UNTUK DASAR PPLG)
1. Pengertian Pointer
Pointer adalah variabel khusus yang menyimpan alamat memori dari variabel lain. Jadi pointer bukan menyimpan nilai, tetapi alamat variabel di memori.
2. Analogi Pointer
Pointer itu seperti alamat rumah.
- Variabel = rumah berisi orang
- Pointer = kertas yang berisi alamat rumah itu
- Yang kamu simpan di pointer bukan orangnya, tetapi alamat rumahnya
Jika rumah berpindah atau nilainya berubah, alamat tetap sama.
3. Deklarasi Pointer dalam C++
int angka = 10;int *ptr = &angka;
Penjelasan:
angkaadalah variabel biasaptradalah pointer&angkaadalah alamat memori tempat angka disimpan
4. Mengakses nilai melalui pointer
cout << *ptr; // Output: 10
Tanda * disebut dereference operator yang berarti “ambil nilai dari alamat ini”.
5. Perubahan nilai melalui pointer
*ptr = 20;cout << angka; // Hasil: 20
H. STUDI KASUS AKHIR
Versi Array
#include <iostream>using namespace std;int main() {int nilai[5];cout << "Masukkan nilai 5 siswa:\n";for (int i = 0; i < 5; i++) {cin >> nilai[i];}cout << "\nData nilai siswa:\n";for (int i = 0; i < 5; i++) {cout << "Nilai ke-" << i+1 << ": " << nilai[i] << endl;}}
Studi Kasus: Pointer Mengakses Nilai
#include <iostream>using namespace std;int main() {int umur = 17;int *p = &umur;cout << "Alamat memori umur: " << p << endl;cout << "Nilai umur melalui pointer: " << *p << endl;}