seperti yang kita tau bahwa python adalah bahasan yang ber-orientasi object atau object oriented programming yang asik banget buat dipelajari, apalagi terdapat fitur-fitur advanced yang menarik buat dipelajari.
nah pada materi kali ini kita akan membahas beberapa fitur advanced atau lanjutan yang menarik buat mempermudah ngoding kamu.
List Comprehension
fitur yang dapat mempersingkat iterasi dalam tipe data majemuk seperti list fitur ini digunakan dalam konteks iterasi yang dimana kita perlu melakukan operasi pada setiap elemen yang ada di dalam list, formatnya seperti ini
[operasi yang akan dilakukan (elemen) for elemen in nama_list] return list_element
contoh programnya seperti ini
# program untuk memilah bilangan postitig dan dinamis dalam suatu list
def segreate(arrays):
return [i for i in arrays if i % 2 == 0] + [i for i in arrays if i % 2 !=0]
if __name__=='__main__':
arrays = [1, 8, 5, 3, 4, 6, 9, 7, 10]
arrays = segreate(arrays)
print(arrays)
dalam program ini kita menggabungkan dua list yang berbeda dan mengembalikan nilai dari dari list, list pertama kita mengurutkan setiap elemen bedasarkan bilangan genap saja, sedangkan list yang kedua kita mengurutkan setiap bagian dari list ke dua berdasarkan bilangan ganjil.
Slicing Index
slicing biasa digunakan untuk extract list/sub-list dari elemen di suatu list tertentu, seperti yang kita tau bahwa slicing (yang biasa) mempunyai format seperti ini
some_list = [start : end : step-size]
penjelasan setiap parameter
- mengembalikan setiap elemen dari list
- default start_index = 0
- default end_index = -1
- default step-size = 1
untuk lebih jelasnya lihat contoh program dimana kita akan menggabungkan dua hasil operasi slicing, pertama kita slice list dari index ’d' (awal) lalu digabung dengan hasil slice list dari index ’d' (akhir)
# program untuk rotasi list berdasarkan parameter d
def rotate_list(arrays, d):
return arrays[d:] +arrays[:d]
if __name__ == '__main__':
some_list = [1,2,3,4,5,6,7,8,9]
some_list = rotate_list(some_list, 4)
print(some_list)
ada beberapa contoh lagi sekarang kita akan membuat bagaimana menukar nilai list contoh nih kita punya list.
data_list = [1, 2, 3, 4, 5]
nah kita akan buat seperti ini
data_list = [5, 4, 3, 2, 1]
kita akan buat function based seperti ini
# program untuk menular nilai dalam list
def reverse(arrays):
return arrays[::-1]
if __name__ == '__main__':
data_list = [1, 2, 3, 4, 5]
data_list = reverse(data_list)
print(data_list)
Anonymous Function atau Lambda Expression
lambda atau si Anonymous Function adalah fungsi tanpa nama yang bisa dapat dan digunakan menggunakan satu ekspresi saja, formatnya seperti ini
lambda argumen : expression
contoh programnya seperti ini
# program system lambda expression
# contoh kasus mengambalikan nilai kuadrat menggunakan math.sqrt
# import module
import math
akar_kuatdrat = lambda x:math.sqrt(x)
akar = akar_kuatdrat(100)
print(f'akar kuatdrat dari 100 adalah {akar}')
program diatas untuk mengembalikan nilai akar kuadrat dari jumlah ‘x’ (nilai yang akan dimasukan/di input)
Map Function
Fungsi Map atau map function sering digunakan dalam kasus dimana kita perlu menerapkan function atau bisa juga lambda expression dalam suatu element list, fungsi ini juga sering digunakan bersamaan dengan List Comprehension formatnya seperti ini
map (function, sequence) return iterable
contoh programnya seperti ini
# import module
import math
if __name__=='__main__':
arrays = [1,2,3,4,5]
arrays = list(map(lambda x : x**2, arrays))
print(arrays)
pada program diatas fungsi map digunakan untuk menkuadratkan setiap elemen dari list, karena Map selalu mengembalikan elemen, kita harus nembungkusnya dengan tipe data (lihat contoh diatas)
Filter
hampir sama seperti map fungsi filter ini digunakan untuk menerapkan fungsi atau lambda expression pada element list dan mengembalikan nilai True formatnya seperti ini
filter (function, sequence) return iterable
contoh penggunaan filter seperti ini
# program untuk mencetak semua angka genap dalam list
def main():
data_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
data_list = list(filter(lambda i : i % 2 == 0, data_list))
print(data_list)
if __name__=='__main__':
main()
program diatas bermaksud untuk mengelompokan/mencetak bilangan bernilai genap yang ada dalam list
Tentang Iterasi dan Iterable
salah satu konsep paling penting dalam bahasa pemrograman python, yaitu kita harus memahami tentang iterasi dan iterator.
iterable adalah sesuatu yang dapat diulangi menggunakan protokol iterators, cara termudah untuk memahami tentang dua hal ini kita bisa menggunakan fungsi build-in (fungsi bawaan) dalam kasus ini kita membuat dua file file pertama bernama script.py
# script.py file
import os
# get os Name
print(f'your operating system is {os.name}')
# get working directory
print(f'your current working directory {os.getcwd()}')
dalam hal ini python memiliki banyak cara untuk membaca dan memanipulasi sebuah file salah satu caranya menggunakan readline() contohnya seperti berikut ini
# file object
file_obj = open('script.py')
# fungsi ini akan membaca satu baris dari script.py
print(file_obj.readline())
print(file_obj.readline()) # ganti baris
hasilnya seperti ini
sebenernya masih banyak metode untuk mengelola file cara diatas merupakan salah satu cara saja
Generator
dalam bahasa pemrograman python terkenal dengan istilah semua adalah object tak terkecuali fungsi, generator sediri adalah object yang bertipe fungsi yang didalamnya menggunakan fungsi yield untuk mengembalikan nilai yang dihasilkan. contoh simple nya seperti ini
# simple generators functions
def generator(n):
MAX = 2147483647
yield n
n += 1
generate = generator(0)
# calling generators
print(generate.__next__()) # cetak angka 0
comtoh lain penggunaannya bisa seperti ini
# Generator for next power of two.
def NextPowTwo(max_ele):
n = 0
while n < max_ele:
yield 2 * n
n += 1
raise StopIteration
obj = NextPowTwo(20)
print (obj.__next__())
print (obj.__next__())
print (obj.__next__())
print (obj.__next__())
sampai disini dulu materi kali ini semoga bermanfaat
Referensi
- Mudah Belajar Python 2015 by Budi Raharjo
- medium