Informatika Kelas X โ Bab 6: Analisis Data
Bagian D: Struktur Data Array (List)
Pengampu : Zuli Irawanto, ST
๐ฏ Tujuan Pembelajaran
Setelah mempelajari materi ini, siswa diharapkan mampu:
- Menjelaskan pengertian array/list dan alasan data perlu disimpan dalam satu wadah.
- Membuat list, mengakses, mengubah, menambah, dan menghapus isinya.
- Mengambil sebagian isi list dengan slicing.
- Menghitung ringkasan data (jumlah, rata-rata, tertinggi, terendah) memakai fungsi bawaan Python.
- Membuat list di dalam list untuk menyimpan data berbentuk tabel.
Mengapa Perlu List?
Di Bagian C, nilai disimpan dalam variabel terpisah: nilai1, nilai2, nilai3. Bayangkan satu kelas ada 36 siswa. Apakah kita akan membuat 36 variabel? Tentu melelahkan! Untuk itu ada list.
Array adalah struktur data untuk menyimpan banyak nilai berurutan dalam satu nama. Di Python, array dibuat dengan list, yang ditulis dengan kurung siku [ ] dan nilai dipisah koma.
List itu seperti deretan loker bernomor di sekolah. Satu deretan punya satu nama (misalnya nilai), dan tiap loker punya nomor urut untuk menyimpan satu barang. Perhatikan: nomor loker di Python dimulai dari 0, bukan 1!
Cara Belajar Bagian Ini
Bagian ini melanjutkan Tugas Praktik dari Bagian C, jadi nomornya mulai dari Praktik 10 sampai Praktik 18. Polanya masih sama: ๐ค Tebak dulu โ โจ๏ธ Ketik & jalankan โ โ Cocokkan โ ๐ก Pahami โ ๐ Tantangan mini.
๐งช Tugas Praktik 10: Membuat List Pertamaku
โจ๏ธ Ketik di sel kode, lalu jalankan:
nilai = [87, 65, 90, 72, 95] print(nilai) print(type(nilai))
โ Hasilnya:
[87, 65, 90, 72, 95] <class 'list'>
๐ก Penjelasan: Tanda kurung siku [ ] membuat sebuah list, dan tiap isinya (disebut elemen) dipisah koma. Satu variabel nilai kini menyimpan lima angka sekaligus. Tipe datanya adalah list. Ingat data 87, 65, 90, 72, 95 di Bagian A? Itulah data mentah kita!
hobi berisi tiga hobimu (teks memakai tanda kutip), lalu tampilkan.๐งช Tugas Praktik 11: Mengakses Isi List dengan Indeks
nilai[0] menampilkan nilai pertama atau nilai kedua? Lalu apa arti nilai[-1]?โจ๏ธ Ketik di sel kode, lalu jalankan:
nilai = [87, 65, 90, 72, 95] print(nilai[0]) print(nilai[2]) print(nilai[-1])
โ Hasilnya:
87 90 95
๐ก Penjelasan: Setiap elemen punya nomor urut yang disebut indeks, dan indeks dimulai dari 0. Jadi nilai[0] adalah elemen pertama, nilai[2] elemen ketiga, dan nilai[-1] adalah elemen terakhir (indeks negatif menghitung dari belakang).
nilai: angka kecil di atas adalah indeks (nomor urut), isinya di dalam kotak| Indeks | Indeks negatif | Isi |
|---|---|---|
| 0 | -5 | 87 |
| 1 | -4 | 65 |
| 2 | -3 | 90 |
| 3 | -2 | 72 |
| 4 | -1 | 95 |
print(nilai[5]). Muncul IndexError: list index out of range. Menurutmu, mengapa error?๐งช Tugas Praktik 12: Mengubah dan Menambah Isi List
โจ๏ธ Ketik di sel kode, lalu jalankan:
nilai = [87, 65, 90, 72, 95] nilai[1] = 70 print(nilai) nilai.append(80) print(nilai)
โ Hasilnya:
[87, 70, 90, 72, 95] [87, 70, 90, 72, 95, 80]
๐ก Penjelasan: Isi list boleh diubah: tulis indeksnya lalu beri nilai baru dengan =. Untuk menambah elemen di akhir list, pakai .append().
nilai.insert(0, 100) lalu print(nilai). Di mana angka 100 muncul?๐งช Tugas Praktik 13: Menghapus Isi dan Menghitung Jumlah Elemen
โจ๏ธ Ketik di sel kode, lalu jalankan:
nilai = [87, 65, 90, 72, 95] print(len(nilai)) nilai.remove(65) print(nilai) terakhir = nilai.pop() print(terakhir) print(nilai)
โ Hasilnya:
5 [87, 90, 72, 95] 95 [87, 90, 72]
๐ก Penjelasan: Fungsi len() menghitung banyak elemen dalam list. .remove(65) menghapus elemen yang nilainya 65, sedangkan .pop() mengambil sekaligus menghapus elemen terakhir. Berikut ringkasan perintah list:
| Perintah | Fungsi |
|---|---|
append(x) |
Menambah x di akhir list |
insert(i, x) |
Menyisipkan x di posisi indeks i |
remove(x) |
Menghapus elemen yang nilainya x |
pop() |
Mengambil dan menghapus elemen terakhir |
len(list) |
Menghitung banyak elemen |
len(nilai)? Tebak dulu, lalu cek.๐งช Tugas Praktik 14: Mengambil Sebagian List (Slicing)
โจ๏ธ Ketik di sel kode, lalu jalankan:
nilai = [87, 65, 90, 72, 95] print(nilai[1:4]) print(nilai[:2]) print(nilai[2:])
โ Hasilnya:
[65, 90, 72] [87, 65] [90, 72, 95]
๐ก Penjelasan: Format [a:b] mengambil elemen dari indeks a sampai sebelum indeks b. Jadi [1:4] mengambil indeks 1, 2, dan 3 (indeks 4 tidak ikut). Jika a dikosongkan, mulai dari awal. Jika b dikosongkan, sampai akhir.
nilai[-3:]. Apa hasilnya?๐งช Tugas Praktik 15: Ringkasan Data: Jumlah, Rata-rata, Tertinggi, Terendah
โจ๏ธ Ketik di sel kode, lalu jalankan:
nilai = [87, 65, 90, 72, 95]
print("Jumlah:", sum(nilai))
print("Banyak data:", len(nilai))
print("Rata-rata:", sum(nilai) / len(nilai))
print("Tertinggi:", max(nilai))
print("Terendah:", min(nilai))
print("Diurutkan:", sorted(nilai))
โ Hasilnya:
Jumlah: 409 Banyak data: 5 Rata-rata: 81.8 Tertinggi: 95 Terendah: 65 Diurutkan: [65, 72, 87, 90, 95]
๐ก Penjelasan: Python punya fungsi bawaan yang sangat praktis untuk list angka. Rata-ratanya 81,8, sama persis dengan contoh di Bagian A. Dulu kita menghitungnya satu per satu, sekarang cukup beberapa baris! Ini contoh nyata pengolahan data. Perhatikan bahwa sorted() hanya menampilkan versi urut, sedangkan list aslinya tidak berubah.
| Perintah | Fungsi |
|---|---|
sum(list) |
Menjumlahkan semua elemen |
max(list) |
Nilai terbesar |
min(list) |
Nilai terkecil |
sorted(list) |
List versi terurut (kecil ke besar) |
๐งช Tugas Praktik 16: List Berisi Teks dan Memeriksa Isi
โจ๏ธ Ketik di sel kode, lalu jalankan:
siswa = ["Budi", "Sari", "Andi"]
print("Sari" in siswa)
print("Dedi" in siswa)
siswa.append("Dedi")
print(siswa)
print(len(siswa))
โ Hasilnya:
True False ['Budi', 'Sari', 'Andi', 'Dedi'] 4
๐ก Penjelasan: List boleh berisi teks, angka, atau campuran keduanya. Kata in dipakai untuk memeriksa apakah suatu nilai ada di dalam list, dan hasilnya True (ada) atau False (tidak ada). Ini tipe data boolean yang kita pelajari di Bagian C.
siswa. Jika belum, tambahkan dengan append().๐งช Tugas Praktik 17: List di Dalam List (Data Berbentuk Tabel)
โจ๏ธ Ketik di sel kode, lalu jalankan:
data = [["Budi", 87], ["Sari", 90], ["Andi", 75]] print(data[1]) print(data[1][0]) print(data[1][1])
โ Hasilnya:
['Sari', 90] Sari 90
๐ก Penjelasan: Sebuah list boleh berisi list lain. Tiap list kecil mewakili satu baris tabel. data[1] mengambil baris ke-2, sedangkan data[1][0] mengambil kolom ke-1 dari baris itu. Beginilah cara komputer menyimpan data tabel, mirip lembar Excel. Struktur ini kelak berguna saat kita memakai pustaka analisis data.
| Indeks baris | Nama (kolom 0) | Nilai (kolom 1) |
|---|---|---|
| 0 | Budi | 87 |
| 1 | Sari | 90 |
| 2 | Andi | 75 |
print(). Indeks berapa yang kamu pakai?๐งช Tugas Praktik 18: Mini Proyek: Analisis Nilai Satu Kelompok
โจ๏ธ Ketik di sel kode, lalu jalankan:
nilai = [78, 85, 92, 67, 88, 74, 95, 81]
print("Jumlah siswa:", len(nilai))
print("Tertinggi:", max(nilai))
print("Terendah:", min(nilai))
print("Rata-rata:", sum(nilai) / len(nilai))
print("Diurutkan:", sorted(nilai))
print("3 nilai tertinggi:", sorted(nilai)[-3:])
โ Hasilnya:
Jumlah siswa: 8 Tertinggi: 95 Terendah: 67 Rata-rata: 82.5 Diurutkan: [67, 74, 78, 81, 85, 88, 92, 95] 3 nilai tertinggi: [88, 92, 95]
๐ก Penjelasan: Selamat! ๐ Kamu baru saja membuat analisis data pertamamu: data mentah (list nilai) diolah menjadi informasi (rata-rata, tertinggi, terendah, dan peringkat). Perhatikan sorted(nilai)[-3:]: list diurutkan dulu, lalu di-slice untuk mengambil tiga terakhir.
append(), lalu jalankan ulang. Apa yang berubah pada rata-ratanya?Rangkuman
- Array/list menyimpan banyak nilai berurutan dalam satu variabel, ditulis dengan
[ ]. - Setiap elemen punya indeks yang dimulai dari 0. Indeks
-1adalah elemen terakhir. - Isi list bisa diubah:
list[i] = x,append(),insert(),remove(), danpop(). len()menghitung banyak elemen, dan slicing[a:b]mengambil sebagian list (indeksbtidak ikut).sum(),max(),min(), dansorted()membantu meringkas data dengan cepat.- Kata
inmemeriksa apakah suatu nilai ada di dalam list. - List di dalam list dipakai untuk menyimpan data berbentuk tabel (baris dan kolom).
๐ฑ Pengayaan (Opsional)
Bagaimana kalau list berisi 1.000 nilai dan kita ingin menampilkan atau memeriksa satu per satu? Tentu tidak mungkin menulis 1.000 baris print(). Di Bagian E nanti kita belajar perulangan, yang membuat komputer mengerjakan tugas berulang dengan cepat dan rapi. Dengan list, data kita sudah siap!
Coba tantang dirimu: apa hasil dari print([1, 2, 3] + [4, 5]) dan print([0] * 3)? Tebak dulu sebelum menjalankannya!
๐ Nilai Panca Cinta: Cinta Lingkungan
List mengajarkan kita menata dengan rapi dan efisien. Daripada membuat puluhan variabel yang berserakan, semua data ditata dalam satu wadah bernomor sehingga mudah dicari dan dirawat. Sikap tertib dan tidak berlebihan ini sejalan dengan cinta lingkungan: menjaga kerapian dan kebersihan sekitar kita, menempatkan barang pada tempatnya, dan tidak boros. Lingkungan yang tertata membuat kita nyaman belajar, dan kode yang tertata membuat program mudah dipahami.
Refleksi: Bagaimana kamu menata buku dan perlengkapan belajarmu di rumah? Apakah mudah menemukan barang yang kamu cari?
๐ Tugas Siswa
Tugas Mandiri: Analisis Nilai Rapor Kecilku
Setelah menyelesaikan Praktik 10โ18, buat satu notebook baru bernama Tugas_List_NamaKamu, lalu kerjakan:
- Buat list
nilaiberisi 6 nilai (boleh nilai ulanganmu atau nilai rekaan). Tampilkan nilai pertama dan nilai terakhir. - Tambahkan satu nilai baru dengan
append(), lalu hapus satu nilai denganremove(). Tampilkan list setelah setiap perubahan. - Tampilkan jumlah, rata-rata, nilai tertinggi, dan nilai terendah.
- Tampilkan tiga nilai terendah (petunjuk:
sorted()dan slicing). - Buat list di dalam list berisi nama dan nilai tiga temanmu, lalu tampilkan nilai teman yang kedua.
| Pertanyaan | Jawaban |
|---|---|
| Tautan (link) notebook | โฆ |
Isi list nilai, nilai pertama & terakhir |
โฆ |
| Jumlah, rata-rata, tertinggi, terendah | โฆ |
| Tiga nilai terendah | โฆ |
| Kendala yang dialami & cara mengatasinya | โฆ |
Sebutkan satu contoh di sekitarmu (di rumah, kelas, atau madrasah) yang sudah tertata rapi seperti sebuah list, dan satu contoh yang masih berantakan. Apa yang bisa kamu lakukan untuk merapikannya?Jawaban: โฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆโฆ
Kerjakan di Colab, lalu kumpulkan tautan notebook melalui link/aplikasi yang diinformasikan guru (sesuai kondisi dan kesepakatan dengan guru pengampu). Jika tidak memungkinkan memakai laptop, boleh dicatat dan difoto di buku tugas.