Python adalah salah satu bahasa pemrograman yang sangat populer, terutama di kalangan pengembang perangkat lunak dan ilmuwan data. Salah satu fitur yang sangat berguna dalam Python adalah fungsi filter()
. Fungsi ini memungkinkan kita untuk menyaring elemen dari suatu iterable (seperti list, tuple, atau string) berdasarkan kondisi tertentu. Artikel ini akan membahas bagaimana cara menggunakan fungsi filter()
, serta contoh penggunaannya dalam situasi nyata.
Apa itu Fungsi filter()?
Fungsi filter()
adalah built-in function di Python yang digunakan untuk menyaring elemen-elemen dari suatu iterable. Fungsi ini menerima dua argumen:
- Fungsi (Function): Sebuah fungsi yang mengembalikan nilai boolean (True atau False). Fungsi ini akan diterapkan pada setiap elemen dalam iterable.
- Iterable: Ini bisa berupa list, tuple, atau tipe data iterable lainnya yang ingin kita filter.
Sintaks dari fungsi filter()
adalah sebagai berikut:
filter(function, iterable)
Contoh Penggunaan Dasar
Mari kita lihat contoh sederhana untuk memahami bagaimana fungsi filter()
bekerja.
# Fungsi untuk menentukan apakah suatu angka genap
def is_even(num):
return num % 2 == 0
# Daftar angka
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Menggunakan filter untuk menyaring angka genap
even_numbers = filter(is_even, numbers)
# Mengkonversi hasil filter menjadi list
even_numbers_list = list(even_numbers)
print(even_numbers_list)
Output dari kode di atas adalah:
[2, 4, 6, 8, 10]
Dalam contoh di atas, kita mendefinisikan fungsi is_even
yang mengembalikan True
jika angka tersebut genap. Kemudian, kita menggunakan fungsi filter()
untuk menyaring angka-angka genap dari daftar numbers
.
Menggunakan Lambda Function dengan filter()
Selain mendefinisikan fungsi secara eksplisit, kita juga bisa menggunakan lambda function saat menggunakan filter()
. Ini berguna untuk menyimpan kode lebih ringkas dan mudah dibaca.
# Daftar angka
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Menggunakan filter dengan lambda function untuk menyaring angka genap
even_numbers = filter(lambda x: x % 2 == 0, numbers)
# Mengkonversi hasil filter menjadi list
even_numbers_list = list(even_numbers)
print(even_numbers_list)
Outputnya tetap sama:
[2, 4, 6, 8, 10]
Di sini, kita menggunakan lambda x: x % 2 == 0
sebagai fungsi yang menentukan apakah angka tersebut genap, langsung di dalam pemanggilan filter()
.
Menyaring Elemen Berdasarkan Beberapa Kondisi
Fungsi filter()
dapat digunakan untuk menyaring elemen berdasarkan beberapa kondisi. Misalnya, kita dapat membuat fungsi yang menyaring angka genap dan lebih besar dari 5.
# Fungsi untuk menentukan apakah suatu angka genap dan lebih besar dari 5
def is_even_and_greater_than_five(num):
return num % 2 == 0 and num > 5
# Daftar angka
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Menggunakan filter untuk menyaring angka genap yang lebih besar dari 5
filtered_numbers = filter(is_even_and_greater_than_five, numbers)
# Mengkonversi hasil filter menjadi list
filtered_numbers_list = list(filtered_numbers)
print(filtered_numbers_list)
Outputnya adalah:
[6, 8, 10]
Menyaring Elemen dalam Tipe Data Lain
Fungsi filter()
tidak terbatas pada list saja, tetapi juga dapat diterapkan pada tipe data iterable lainnya seperti string dan tuple.
Contoh dengan String
Misalnya, kita ingin menyaring karakter vokal dalam sebuah string.
# Fungsi untuk menentukan apakah karakter adalah vokal
def is_vowel(char):
return char.lower() in 'aeiou'
# String contoh
example_string = "Hello World"
# Menggunakan filter untuk menyaring karakter vokal
vowels = filter(is_vowel, example_string)
# Mengkonversi hasil filter menjadi string
vowels_string = ''.join(vowels)
print(vowels_string)
Output dari kode di atas adalah:
eoO
Contoh dengan Tuple
Berikut adalah contoh penggunaan filter()
dengan tuple untuk menyaring angka negatif.
# Fungsi untuk menentukan apakah suatu angka positif
def is_positive(num):
return num > 0
# Tuple angka
numbers_tuple = (-10, -5, 0, 5, 10)
# Menggunakan filter untuk menyaring angka positif
positive_numbers = filter(is_positive, numbers_tuple)
# Mengkonversi hasil filter menjadi tuple
positive_numbers_tuple = tuple(positive_numbers)
print(positive_numbers_tuple)
Outputnya adalah:
(5, 10)
Kesimpulan
Fungsi filter()
di Python adalah alat yang sangat berguna untuk menyaring elemen-elemen dari iterable berdasarkan kondisi tertentu. Dengan menggunakan fungsi ini, kita dapat dengan mudah mendapatkan subset dari data yang kita inginkan tanpa harus menulis banyak kode.
Penggunaan lambda function dan fungsi yang ditentukan sendiri memberikan fleksibilitas tambahan untuk menyaring data sesuai kebutuhan. Dengan berbagai contoh yang telah dibahas, diharapkan Anda dapat lebih memahami bagaimana cara menggunakan filter()
dalam proyek Python Anda. Selamat mencoba!