# Nakafa Framework: LLM
URL: /id/subject/university/bachelor/ai-ds/ai-programming/container
Source: https://raw.githubusercontent.com/nakafaai/nakafa.com/refs/heads/main/packages/contents/subject/university/bachelor/ai-ds/ai-programming/container/id.mdx
Output docs content for large language models.
---
export const metadata = {
  title: "Container",
  description: "Pelajari tipe data container Python seperti list, tuple, dictionary, dan set. Panduan lengkap indexing, slicing, dan manipulasi data dengan contoh praktis.",
  authors: [{ name: "Nabil Akbarazzima Fatih" }],
  date: "09/18/2025",
  subject: "Pemrograman AI",
};
## Konsep Container dalam Python
Container adalah tipe data yang dapat menyimpan kumpulan item atau elemen. Bayangkan container seperti kotak penyimpanan yang bisa menampung berbagai macam barang. Python menyediakan beberapa jenis container yang berbeda cara pengorganisasian dan manipulasi datanya.
Container dalam Python memiliki karakteristik utama yaitu dapat menyimpan berbagai jenis objek dalam satu wadah. Setiap jenis container memiliki keunggulan tersendiri tergantung kebutuhan program.
Python menyediakan lima jenis container utama dengan karakteristik berbeda:
- **String** - urutan karakter yang tidak dapat diubah
- **List** - urutan item yang dapat diubah dan diindeks  
- **Tuple** - urutan item yang tidak dapat diubah
- **Dictionary** - pasangan kunci-nilai
- **Set** - kumpulan item unik tanpa urutan
## Pengenalan List
List adalah container yang paling fleksibel dalam Python. List memiliki tiga karakteristik penting yaitu ordered (berurutan), heterogeneous (dapat menampung berbagai tipe data), dan mutable (dapat diubah).
List dalam Python mirip dengan array dalam bahasa C atau vector dalam C++, namun dengan kemampuan lebih fleksibel karena dapat menampung objek dengan tipe data berbeda dalam satu list yang sama.
### Karakteristik List
| Karakteristik | Penjelasan | Contoh |
|---------------|------------|---------|
| Ordered | Elemen memiliki urutan tetap | `[1, 2, 3]` berbeda dengan `[3, 2, 1]` |
| Heterogeneous | Dapat menampung berbagai tipe data | `[1, 'text', 3.14, True]` |
| Mutable | Isi dapat diubah setelah dibuat | Dapat menambah, menghapus, atau mengubah elemen |
### Sintaks Pembuatan List
List dibuat menggunakan tanda kurung siku dengan elemen dipisahkan koma. List dapat berisi item dengan tipe data berbeda atau bahkan list lain.
## Indexing pada List
Indexing adalah cara mengakses elemen individual dalam list menggunakan nomor posisi. Python menggunakan zero-based indexing, artinya elemen pertama memiliki indeks 0.
Indexing dalam Python memiliki aturan khusus yang perlu dipahami:
- **Indeks positif** dimulai dari 0 untuk elemen pertama
- **Indeks negatif** dimulai dari -1 untuk elemen terakhir  
- **Indeks di luar range** akan menghasilkan IndexError
## Slicing dengan Stride
Slicing adalah teknik untuk mengambil sebagian elemen dari list. Stride memungkinkan kita mengambil elemen dengan interval tertentu, bukan hanya elemen berurutan.
Sintaks lengkap slicing adalah `list[start:stop:step]` dimana:
- `start` adalah indeks awal (inclusive)
- `stop` adalah indeks akhir (exclusive)  
- `step` adalah interval pengambilan elemen
Slicing seperti memotong roti tawar. Jika kamu punya 6 lembar roti (indeks 0-5), maka `x[1:4]` berarti mengambil lembar ke-2 sampai ke-4 (tidak termasuk lembar ke-5). Sedangkan `x[1:4:2]` berarti mengambil lembar ke-2 dan ke-4 saja (melompati 1 lembar).
## Operasi dan Kesamaan dengan String
List mendukung berbagai operasi untuk menampilkan dan memanipulasi data. List juga memiliki kesamaan dengan string dalam hal pengaksesan elemen.
List dan string memiliki kesamaan dalam hal pengaksesan elemen. Keduanya mendukung indexing dan slicing dengan pola yang sama.
| Operasi | String | List |
|---------|--------|------|
| **Indexing** | Mengambil karakter individual | Mengambil elemen individual |
| **Slicing with stride** | Mengambil substring | Mengambil sub-list |
Perbedaan utama adalah string bersifat immutable (tidak dapat diubah) sedangkan list bersifat mutable (dapat diubah). Karena sifat mutable ini, list memiliki berbagai method untuk manipulasi data.
 B[Adding]
        A --> C[Removing]
        A --> D[Organizing]
        
        B --> E[append
extend
insert]
        C --> F[pop
remove]
        D --> G[sort
reverse
copy]
  `}
/>
| Method | Deskripsi | Contoh Penggunaan |
|--------|-----------|-------------------|
| `append(element)` | Menambah elemen di akhir list | Menambah item baru |
| `extend(list2)` | Menggabung dengan elemen dari list lain | Menggabung dua list |
| `insert(index, element)` | Menyisipkan elemen di posisi tertentu | Menambah di tengah list |
| `index(element)` | Mencari indeks pertama dari elemen | Mencari posisi item |
| `pop()` | Menghapus dan mengembalikan elemen terakhir | Mengambil item terakhir |
| `reverse()` | Membalik urutan list secara langsung | Membalik urutan |
| `remove(element)` | Menghapus kemunculan pertama elemen | Menghapus item tertentu |
| `sort()` | Mengurutkan list secara langsung | Mengurutkan data |
| `copy()` | Membuat salinan list | Menduplikasi list |
| `count(element)` | Menghitung jumlah kemunculan elemen | Menghitung frekuensi |
## Jenis List Khusus
Python mendukung beberapa jenis list khusus yang memiliki karakteristik dan kegunaan berbeda:
1. **List Kosong**
   List kosong berguna sebagai wadah awal yang akan diisi data kemudian. Ada dua cara membuat list kosong dengan hasil yang sama.
2. **List Heterogen**
   List heterogen dapat menampung elemen dengan tipe data berbeda dalam satu container. Ini memberikan fleksibilitas tinggi dalam penyimpanan data.
3. **List Bersarang**
   List bersarang adalah list yang mengandung list lain sebagai elemennya. Konsep ini memungkinkan pembuatan struktur data multidimensi seperti matriks atau tabel.
List bersarang sangat berguna untuk merepresentasikan data terstruktur seperti tabel, matriks, atau data hierarkis lainnya. Pengaksesan elemen dalam list bersarang menggunakan multiple indexing seperti `nested[1][2]` untuk mengakses elemen pada level yang lebih dalam.
## Container Lainnya
Selain list, Python menyediakan tiga jenis container lainnya yang memiliki karakteristik dan kegunaan berbeda.
### Tuple
Tuple adalah struktur data yang mirip dengan list namun bersifat immutable. Tuple mendukung operasi packing dan unpacking yang berguna untuk pertukaran data. Meskipun tuple immutable, tuple dapat berisi referensi ke objek mutable seperti list.
Konsep penting dalam tuple adalah perbedaan antara immutable tuple itu sendiri dengan objek mutable yang dikandungnya. Tuple tidak bisa diubah strukturnya, tapi isi objek mutable di dalamnya masih bisa dimodifikasi.
| Aspek | Tuple | List |
|-------|-------|------|
| **Mutability** | Immutable | Mutable |
| **Sintaks** | `()` atau tanpa kurung | `[]` |
| **Kegunaan** | Data tetap, koordinat | Data yang berubah |
### Dictionary
Dictionary menyimpan data dalam bentuk pasangan kunci-nilai (key-value pairs). Setiap kunci harus unik dan digunakan untuk mengakses nilai yang terkait. Dictionary menggunakan tanda kurung kurawal `{}`.
### Set
Set adalah koleksi elemen yang unik dan tidak berurutan. Set otomatis menghilangkan duplikasi dan mendukung operasi himpunan matematika. Set menggunakan tanda kurung kurawal `{}` tanpa pasangan kunci-nilai.
 Dictionary mempertahankan urutan insertion sejak Python 3.7+