“Kak, apa sih perbedaan antara modul, package dan library pada python?" Itu adalah pertanyaan yang sering saya terima dari beberapa teman kuliah saya. Mereka masih bingung untuk membedakan antara modul, variabel dan fungsi.

Untuk kali ini anbi ingin membahas secara menyeluruh tentang perbedaan yang signifikan antara ketiga hal ini.


TL;DR


Modul adalah sebuah file yang berisikan sekumpulan kode fungsi dan global variabel yang disimpan dalam ekstensi .py.

Sedangkan Package adalah sekumpulan modul yang memiliki constructur _init_ dalam satu folder.

Lalu Library adalah gabungan dari Package dan Modul yang memiliki fungsionalitas yang saling berkaitan dengan tujuan mempermudah kita dalam membuat suatu program.

Jika diibaratkan bagian tubuh :

  • Modul itu Jari
  • Package itu Tangan
  • Library itu Kedua Lengan Tangan


Modul


Apa itu modul? Modul adalah sebuah file yang berisikan sekumpulan kode fungsi, class dan variabel yang disimpan dalam satu file berekstensi .py dan dapat dieksekusi oleh interpreter python.

“Modul Knight!"
Modul Knight!

Coba kita buat modul sederhana bernama kesatria.py. Lalu, Kita isi modul dengan fungsi serangMonster() :

def serangMonster():
  print("kesatria Menyerang Monster")

Sebuah modul biasanya digunakan sebagai referensi untuk modul lain menggunakan keyword import. Sehingga modul bersifat reuseable atau istilah lainnya dapat digunakan modul lain dimana saja berulang kali.

Modul kesatria.py yang kita buat tadi memiliki fungsi serangMonster(). Sekarang, kita coba import modul kesatria.py kedalam modul baru bernama raja.py agar modul raja dapat menggunakan fungsi serangMonster().

Didalam modul raja.py kita panggil modul kesatria menggunakan keyword import :

import kesatria

kesatria.serangMonster()

Dapat dilihat pada blok kode diatas, fungsi serangMonster() dapat digunakan oleh raja walaupun tidak didefinisikan didalam modul raja.py.


Package


Apa itu Package? Package adalah sekumpulan modul python yang berada dalam sebuah folder serta memiliki satu modul constructor (__init__.py).

Buat apa modul constructor (__init__.py) pada sebuah package? File constructor berfungsi untuk memberi tahu python interpreter bahwa folder tersebut adalah sebuah package.

Jadi, setiap direktori atau folder yang berisi modul constructor __init__.py akan diperilakukan sebagai pakcage.

“Perkenalkan Kita Package Army!"
Perkenalkan Kita Package Army!

Didalam file __init__.py isinya seperti apa? biasanya cuma file kosong tanpa kode.

Nah,contoh sebuah package kayak gimana? nih bisa liat gambar dibawah.

“Package !"
Perkenalkan Kita Package Army!

Gambar diatas adalah package royalguard, nama package sesuai dengan nama folder atau direktori. Jadi, didalam package royalguard memiliki 4 file.

File constructor (__init__.py) untuk untuk memberitahu python interpreter bahwa folder ini adalah package dan 3 modul sisanya adalah isi dari package tersebut.


Library


Apa itu Library? Library adalah gabungan dari sekumpulan package dan modul dengan fungsionalitas yang sama dengan tujuan untuk memudahkan kalian dalam membuat suatu aplikasi, tanpa harus menulis banyak kode.

“Kita Semua Adalah Library!"
Kita Semua Adalah Library!

Library juga bersifat reuseable yang berarti bisa digunakan berkali - kali, dimana saja dan kapan saja. Contohnya library pada python seperti apa? Nih misal, 10 top library pada python :

  • TensorFlow
  • Scikit-Learn
  • Numpy
  • Keras
  • PyTorch
  • LightGBM
  • Eli5
  • SciPy
  • Theano
  • Pandas

Bagaimana cara menggunakan library python? Misal kita ingin pakai pandas, library untuk mengolah data. Kita perlu menginstall library ini dengan PIP terlebih dahulu.

pip install pandas

Setelah installasi di PIP selesai baru kita import library tersebut ke kode aplikasi kita.

import pandas as pd

dataku = pd.read_csv("namafile.csv")

Kesimpulan


Oke, langsung keintinya, berdasarakan fungsi - fungsi seperti yang salah jelaskan diatas, maka ibarat aplikasi itu adalah sebuah tubuh.

Maka modul diibaratkan sebagai jari tangan, sedangkan package adalah pergelangan tangan dan library adalah kedua lengan tangan dan kedua pasang kaki.

Important : library itu sudah pasti modul dan package, tapi package dan modul belum tentu library.

. . .

Nah gitu aja pembahasan dari ketiga istilah diatas. Gimana menarik? jika menarik nanti anbi buatin lagi versi - versi diskusi yang lebih berat haha :)