Pengenalan package di Python

pengenalan-package-di-python


Pengenalan package di Python - Yosh sobs-sobs berjumpa lagi semoga keadaan kalian sehat walafiat dan diberikan kesempatan untuk menikmati embun pagi dengan segelas kopi hangat.

Sebelum memulai alangkah baiknya sobs-sobs menyiapkan segelas kopi dan menyiapkan seutas rokok jika bagi yang merokok dan kuaci bagi yang tidak merokok.

Pada pembahasan kali ini kita akan mengulik tentang package dipython dan ini merupakan termasuk materi python fundamental atau dasar, gua sarankan sobs-sobs mengikuti pembahasan sebelumnya yaitu Pengenalan module di Python agar pembelajaran materi lebih mudah untuk kita pahami sobs.

Yosh sebelum lebih jauh tentang package alangkah baiknya kita tahu terlebih dahulu tentang apa itu package ?. 

package adalah kumpulan beberapa module yang dijadikan satu dalam satu identitas atau kata lain bundle dari beberapa module. kenapa sih perlu package ? ya tentunya karena kebutuhan sobs-sobs karena semakin besar kebutuhan kita maka kalo hanya membuat module-module saja tanpa adanya pengorganisasian akan sangat sulit kedepannya sobs.

gambar.1 Ilustrasi Package



Kedepannya package ini banyak kita gunakan sobs-sobs karena dipython banyak sekali package yang membantu kita.

Oke sebelum kelamaan mulai, langsung saja kita mulai. pertama gua akan membuat struktur folder beserta filenya seperti dibawah ini sobs.

gambar.2 Struktur Folder dan File



Baik sobs-sobs sedikit penjelasan dari struktur folder dan file diatas, pertama folder Project adalah folder terluar dan juga, selanjutnya didalamnya ada sebuah file dan folder, file bernama main.py file ini tempat kita menjalankan program kita dan folder sruputkode nah folder ini bisa dibilang sebuah package lalu nama package tersebut sesuai dengan nama foldernya yaitu sruputkode didalam folder ini terdapat 3 file yaitu __init__.py, bangun_datar.py, dan bangun_ruang.py, yang perlu diperhatikan ya sobs-sobs adalah file __init__.py jika didalam sebuah folder terdapat file __init__.py maka folder tersebut dikatakan adalah sebuah package. file __init__.py berfungsi sebagai inisialisasi package difile ini kita bisa mengimport isi dari module-module untuk dijadikan bagian dari package.

Oke mungkin dari penjelasan gua diatas sobs-sobs mungkin ada yang belum paham tentunya ini sama seperti gua sobs pada saat belajar package dipython dahulu kala sebelum negara api menyerang.

Oke untuk sekarang yang belum harap abaikan terlebih dahulu penjelasan diatas, sekarang sobs-sobs bisa buka file bangun_datar.py dan samakan seperti dibawah ini :


# lingkaran
def luas_lingkaran(jari):
	return 3.14 * (jari ** 2)

def keliling_lingkaran(jari):
	return 2 * 3.14 * jari


# persegi panjang
def luas_persegi_panjang(panjang, lebar):
	return panjang * lebar

def keliling_persegi_panjang(panjang, lebar):
	return 2 * (panjang + lebar)


# persegi
def luas_persegi(panjang_sisi):
	return panjang_sisi * panjang_sisi

def keliling_persegi(sisi):
	return sisi + sisi + sisi


Selanjutnya sobs kita beralih ke file bangun_ruang.py dan samakan seperti dibawah ini juga :

# kubus
def hitung_volume_kubus(sisi):
	return sisi**3

def hitung_luas_kubus(sisi):
	return 6 * (sisi**2)

# tabung
def hitung_volume_tabung(jari, tinggi):
	return 3.14 * ((jari**2) * tinggi)

def hitung_luas_permukaan_tabung(jari, tinggi):
	return 2 * 3.14 * jari * (jari + tinggi)


Oke sobs-sobs jika sudah menyesuaikan kedua file diatas, maka selanjutnya penjelasan dari masing-masing file tersebut
pertama bangun_datar.py : file atau module ini berisikan perhitungan luas dan keliling untuk bangunan datar seperti lingkaran persegi panjang dan persegi.
kedua bangun_ruang.py : file atau module ini berisikan perhitungan seperti volume, dan luas terkait bangun ruangan kubus dan tabung.
gua buat contoh sesederhana mungkin sobs, ini bertujuan agar kita semakin mudah untuk memahami inti dari materi kali ini.

dan selanjutnya adalah file terpenting dari materi kali ini yaitu __init__.py karena difile ini kita memasukan isi-isi module untuk dibundle menjadi sebuah package. ingat ya sobs jika didalam sebuah folder terdapat file __init__.py maka folder tersebut dikatakan sebuah package.

lalu apa yang kita harus lakukan difile __init__.py ?
baik sobs silahkan buka file __init__.py dan gua tulis kode seperti dibawah ini :


from .bangun_datar import luas_lingkaran, keliling_lingkaran


Baik sobs disini gua akan jelaskan maksud kode diatas,
contoh diatas kita mengimport fungsi luas_lingkaran dan keliling lingkaran dari module bangun_datar yang perlu diperhatikan sobs-sobs adalah tanda .(titik), jika dimateri sebelumnya Pengenalan module di Python kita mengimport sebuah module tanpa titik tetapi di file __init__.py kita wajib menggunakan titik ini sudah menjadi ketentuan jika kita ingin mengbundle isi module untuk dijadikan package, selanjutnya kita juga bisa memilih bagian apa saja yang bisa kita masukan kedalam package.

Oke biar lebih jelas silahkan sobs-sobs ke file main.py, dan tambahkan kode seperti dibawah ini :


import sruputkode

jari_lingkaran = 20

luas_lingkaran = sruputkode.luas_lingkaran(jari_lingkaran)

print(luas_lingkaran)		# 1256.0

keliling_lingkaran = sruputkode.keliling_lingkaran(jari_lingkaran)

print(keliling_lingkaran)	# 125.60000000000001


Penjelasan dari kode diatas

baris 1 : kita import packagenya sobs-sobs, disini nama package kita adalah sruputkode, nama package menyesuaikan dengan nama folder packagenya.
baris 3 : yaitu buat sebuah variabel jari-jari lingkaran disini gua buat jari-jari lingkaran yaitu 20.
baris 5 : lalu gua buat variabel luas_lingkaran dimana variabel ini akan menampung hasil operasi isi dari package sruputkode yaitu fungsi luas_lingkaran. yang perlu diperhatikan sobs-sobs pada saat kita ingin menggunakan isi package maka penulisannya yaitu namapackage.isipackage dimana fungsi luas lingkaran sudah kita import di file __init__.py
baris 7 : print variabel luas_lingkaran
baris 9 : kita gunakan kembali isi dari package yaitu fungsi keliling_lingkaran dan kita tampung kedalam variabel keliling lingkaran.
baris 11 : print keliling_lingkaran.

Oke gimana sobs-sobs, next silahkan sobs-sobs hapus semua kode di file main.py dan tulis seperti kode dibawah ini : 

import sruputkode

# persegi panjang
panjang = 10
lebar = 5

# hitung luas persegi panjang
luas_pp = sruputkode.luas_persegi_panjang(panjang, lebar)

print(luas_pp)

Silahkan sobs-sobs jalankan file main.py.

Kok Error Bang ? 
AttributeError: module 'sruputkode' has no attribute 'luas_persegi_panjang'
Bukannya difile bangun_datar.py ada fungsi luas_persegi_panjang ??

ya tidak ada yang salah sobs-sobs dengan error tersebut, alasannya karena kita belum mengimport fungsi tersebut dipackage kita silahkan perhatikan file __init__.py dimana disitu kita hanya mengimport fungsi luas_lingkaran dan keliling_lingkaran
lalu bagaimana bang kalo mau import semua isi file untuk bisa dibundle package ??
Oke Caranya cukup mudah sobs-sobs silahkan buka kembali file __init__.py dan ubah sesuai dengan kode dibawah ini :

# import sebagian isi module
# from .bangun_datar import luas_lingkaran, keliling_lingkaran

# import semua isi module
from .bangun_datar import *

Untuk mengimport semua isi dimodule akan terbundle package kita hanya perlu simbol * , artinya tinggal kita sesuaikan from .nama_module import *.
Silahkan jalankan kembali file main.py dan error akan hilang.
Yeayyyyyy

Aliasing Package

Sebenarnya kita juga bisa merubah nama package pada saat kita ingin menggunakannya, jika sobs-sobs mengikuti materi sebelumnya maka akan paham tantang hal ini, dan bagi yang belum paham silahkan menuju file main.py dan ikuti kode dibawah ini sobs :

import sruputkode as sk

# persegi panjang
panjang = 10
lebar = 5

# hitung luas persegi panjang
luas_pp = sk.luas_persegi_panjang(panjang, lebar)

print(luas_pp)

Ya benar sobs-sobs contoh diatas package sruputkode akan berubah namanya menjadi sk. keyword as inilah yang merubah nama package sobs-sobs.

Oke selanjutnya kita juga bisa menambahkan banyak module untuk dipackage yang kita buat sebagai contoh diatas gua hanya memasukan module bangun_datar.py .

- silahkan sobs-sobs tambahkan module bangun_datar.py di file __init__.py.
- sobs-sobs buat module baru lalu masukan juga di file __init__py. isi module juga tidak semerta-merta hanya fungsi sobs-sobs bebas membuat variabel, class.
- dan juga sbs-sobs bisa bereksperimen dengan merubah nama folder sruputkode sesuai dengan keinginan sobs-sobs, yang penting jika nama folder tersebut diubah maka nama folder tersebut adalah nama package kita.

Oke sobs-sobs berhubung abangnya mau ngopi dahulu, maka gua akhiri sobs-sobs materi pembahasan kali ini, sangat disarankan untuk sobs-sobs mencari refrensi dari tempat lain agar pemahaman sobs-sobs bertambah.



See you next time.

Posting Komentar untuk "Pengenalan package di Python"