Fungsi filter()
di Python adalah salah satu fungsi bawaan yang digunakan untuk menyaring elemen dari suatu iterable (seperti list, tuple, atau string) berdasarkan kondisi tertentu. Fungsi ini akan menghasilkan elemen-elemen yang memenuhi kriteria yang telah ditentukan oleh fungsi yang diberikan.
Apa itu filter()
?
Fungsi filter()
menerima dua argumen:
- Fungsi: Fungsi yang mengembalikan
True
atauFalse
untuk setiap elemen dalam iterable. - Iterable: Sumber data yang akan disaring, seperti list, tuple, atau string.
Hasil dari fungsi filter()
adalah sebuah iterator yang hanya berisi elemen-elemen dari iterable yang memenuhi syarat pada fungsi yang diberikan. Untuk mengubah iterator menjadi list, Anda bisa menggunakan fungsi list()
.
Sintaks
filter(function, iterable)
- function: fungsi yang mengembalikan
True
untuk elemen yang ingin disertakan dalam hasil. - iterable: daftar, tuple, atau string yang akan disaring.
Contoh Penggunaan filter()
Berikut adalah beberapa contoh penggunaan fungsi filter()
di Python untuk menyaring elemen berdasarkan kondisi.
1. Menyaring Angka Genap
Misalkan kita memiliki daftar angka dan kita ingin menyaring angka-angka genap dari daftar tersebut.
# Daftar angka
angka = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Fungsi untuk mengecek apakah angka genap
def is_genap(x):
return x % 2 == 0
# Menggunakan filter untuk mendapatkan angka genap
angka_genap = filter(is_genap, angka)
# Mengubah hasil filter menjadi list
hasil_genap = list(angka_genap)
print("Angka Genap:", hasil_genap)
Output:
Angka Genap: [2, 4, 6, 8, 10]
2. Menyaring Bilangan Positif
Sekarang kita akan menyaring angka positif dari daftar yang memiliki campuran angka positif dan negatif.
# Daftar angka
angka = [-10, -5, 0, 1, 3, 7, -2, 8]
# Fungsi untuk mengecek apakah angka positif
def is_positif(x):
return x > 0
# Menggunakan filter untuk mendapatkan angka positif
angka_positif = filter(is_positif, angka)
# Mengubah hasil filter menjadi list
hasil_positif = list(angka_positif)
print("Angka Positif:", hasil_positif)
Output:
Angka Positif: [1, 3, 7, 8]
3. Menyaring String Berdasarkan Panjang
Kita juga dapat menggunakan filter()
untuk menyaring string berdasarkan panjangnya. Misalkan kita ingin menyaring hanya string yang memiliki panjang lebih dari 3 karakter.
# Daftar string
kata = ["apel", "pisang", "kiwi", "anggur", "c"]
# Fungsi untuk mengecek panjang string
def panjang_lebih_dari_tiga(s):
return len(s) > 3
# Menggunakan filter untuk mendapatkan string yang panjangnya lebih dari 3
string_panjang = filter(panjang_lebih_dari_tiga, kata)
# Mengubah hasil filter menjadi list
hasil_string = list(string_panjang)
print("String dengan panjang lebih dari 3:", hasil_string)
Output:
String dengan panjang lebih dari 3: ['apel', 'pisang', 'anggur']
4. Menyaring Angka Berdasarkan Kriteria Lebih Besar dari N
Fungsi filter()
juga bisa digunakan untuk membuat penyaringan berdasarkan sebuah nilai tertentu. Dalam contoh ini, kita akan menyaring angka yang lebih besar dari 5.
# Daftar angka
angka = [2, 4, 5, 6, 7, 3, 9, 1]
# Nilai batas
nilai_batas = 5
# Fungsi untuk mengecek apakah angka lebih besar dari nilai batas
def lebih_besar_dari_n(x):
return x > nilai_batas
# Menggunakan filter untuk mendapatkan angka lebih besar dari nilai batas
angka_besar = filter(lebih_besar_dari_n, angka)
# Mengubah hasil filter menjadi list
hasil_besar = list(angka_besar)
print("Angka lebih besar dari", nilai_batas, ":", hasil_besar)
Output:
Angka lebih besar dari 5 : [6, 7, 9]
5. Menggunakan Lambda Function dengan filter()
Python juga mendukung penggunaan lambda function, yaitu fungsi anonim yang dapat digunakan untuk menyederhanakan kode. Berikut adalah contoh penggunaan lambda function untuk menyaring angka genap.
# Daftar angka
angka = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Menggunakan filter dengan lambda function
angka_genap = filter(lambda x: x % 2 == 0, angka)
# Mengubah hasil filter menjadi list
hasil_genap = list(angka_genap)
print("Angka Genap dengan Lambda:", hasil_genap)
Output:
Angka Genap dengan Lambda: [2, 4, 6, 8, 10]
Kesimpulan
Fungsi filter()
sangat berguna untuk menyaring elemen dari iterable berdasarkan kondisi tertentu. Anda dapat menggunakan fungsi buatan sendiri atau lambda function untuk menentukan syarat penyaringan. Contoh-contoh di atas menunjukkan berbagai cara penggunaan filter()
untuk mempermudah manipulasi data dalam Python. Penggunaan teknik ini sangat bermanfaat terutama ketika Anda bekerja dengan data yang besar dan ingin melakukan analisis atau pemrosesan lebih lanjut. Selamat mencoba!