Enumerate
Fungsi enumerate() digunakan ketika kita melakukan perulangan terhadap sebuah iterable dan membutuhkan dua informasi sekaligus, yaitu indeks dan nilai elemen.
Tanpa enumerate(), kita sering kali perlu membuat dan mengelola variabel indeks secara manual. Dengan enumerate(), Python menyediakan indeks tersebut secara otomatis.
1. Penggunaan Dasar enumerate()
Sintaks dasar:
enumerate(iterable)
Contoh menggunakan string:
for i, char in enumerate('hello'):
print(i, char)
Output:
0 h
1 e
2 l
3 l
4 o
Pada setiap iterasi:
iberisi indeks.charberisi karakter pada indeks tersebut.
2. enumerate() pada List
enumerate() juga dapat digunakan pada list.
numbers = [10, 20, 30]
for i, item in enumerate(numbers):
print(f"Indeks: {i}, Nilai: {item}")
Output:
Indeks: 0, Nilai: 10
Indeks: 1, Nilai: 20
Indeks: 2, Nilai: 30
Dengan demikian, kita dapat mengetahui posisi setiap elemen tanpa harus mengakses indeks secara manual.
3. Mengapa Menggunakan enumerate()?
Misalnya kita ingin mengetahui indeks dari setiap elemen dalam sebuah list.
Tanpa enumerate(), kita mungkin menggunakan pendekatan seperti:
numbers = [10, 20, 30]
for i in range(len(numbers)):
print(i, numbers[i])
Pendekatan tersebut tetap valid, tetapi ketika kita hanya membutuhkan indeks dan nilai secara bersamaan, enumerate() biasanya lebih sederhana dan mudah dibaca.
Dengan enumerate():
numbers = [10, 20, 30]
for i, item in enumerate(numbers):
print(i, item)
Kode menjadi lebih langsung karena Python memberikan indeks dan elemennya sekaligus.
4. Mekanisme Tuple Unpacking
enumerate() menghasilkan pasangan berupa tuple yang berisi:
(indeks, nilai)
Contohnya:
for item in enumerate(['a', 'b', 'c']):
print(item)
Output:
(0, 'a')
(1, 'b')
(2, 'c')
Karena hasilnya berupa pasangan nilai, kita dapat menggunakan tuple unpacking:
for index, item in enumerate(['a', 'b', 'c']):
print(index, item)
Python secara otomatis memisahkan:
(0, 'a') → index = 0, item = 'a'
(1, 'b') → index = 1, item = 'b'
(2, 'c') → index = 2, item = 'c'
5. Latihan: Mencari Indeks Angka 50
Kita dapat menggunakan enumerate() untuk mencari posisi sebuah nilai di dalam list.
Pertama, buat list angka dari 0 sampai 99:
my_list = list(range(100))
Kemudian gunakan enumerate() untuk mendapatkan indeks dan nilainya:
for i, num in enumerate(my_list):
if num == 50:
print(f"Indeks dari 50 adalah {i}")
Output:
Indeks dari 50 adalah 50
Pada contoh tersebut:
iadalah indeks elemen.numadalah nilai elemen.- Kondisi
num == 50digunakan untuk mencari angka50.
6. enumerate() sebagai Iterable
Seperti range(), fungsi enumerate() tidak langsung menghasilkan list.
Contoh:
result = enumerate(['a', 'b', 'c'])
print(result)
Hasilnya berupa objek enumerate.
Objek tersebut dapat digunakan dalam perulangan:
result = enumerate(['a', 'b', 'c'])
for index, value in result:
print(index, value)
Pendekatan ini memungkinkan Python memproses pasangan indeks dan nilai ketika dibutuhkan selama proses iterasi.
7. Ringkasan
enumerate() sangat berguna ketika kita membutuhkan indeks sekaligus nilai saat melakukan looping.
Pola yang paling sering digunakan:
for index, value in enumerate(iterable):
...
Contoh:
names = ['Andi', 'Budi', 'Citra']
for index, name in enumerate(names):
print(index, name)
Output:
0 Andi
1 Budi
2 Citra
Poin Penting
enumerate()digunakan untuk mendapatkan indeks dan nilai dalam satu proses iterasi.enumerate()dapat digunakan pada berbagai iterable seperti string, list, tuple, dan lainnya.- Hasil iterasi berbentuk pasangan
(index, value). - Pasangan tersebut dapat langsung digunakan dengan tuple unpacking.
enumerate()menghasilkan enumerate object, bukan list.enumerate()sering membuat kode looping lebih sederhana dan mudah dibaca.