Back

Python Tips Yang Bakal Mempermudah Kerjaan Kamu

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.

list_comprehension
list_comprehension

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)

hasil slicing
hasil slicing

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)

reverse list
reverse 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)

lambda_ex
lambda_ex

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)

map_func
map_func

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

filters
filters

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

bacafile
bacafile

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  

generators
generators

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__())

generators2
generators2

sampai disini dulu materi kali ini semoga bermanfaat

Referensi

  • Mudah Belajar Python 2015 by Budi Raharjo
  • medium
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy