Cara Membuat Python Package dan Contohnya 2024 - RevoU
Penggunaan yang luas: Python package mendukung berbagai tugas analisis data, mulai dari pengolahan data, analisis statistik, sampai machine ...
class
Modul di sini adalah file Python yang berisi kode-kode, seperti definisi fungsi, <anchor>class</anchor>, dan variabel yang dapat digunakan dalam program lain. Package membantu mengorganisasi modul-modul ini dalam cara yang lebih sistematis, memungkinkan kamu mengemas dan mendistribusikan kode dengan lebih efisien.
Python Class dan Object: Fungsi dan Cara Membuatnya 2024 | RevoU
Python Class dan Object: Fungsi dan Cara Membuatnya 2024 \| RevoU

[![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/61af164800e38c11efc60b6d_RevoU.svg)](/) [revoupedia](/revoupedia) [Panduan karir](/revoupedia/panduan-karir) [Panduan teknis](/revoupedia/panduan-teknis) [KOSAKATA](/revoupedia/kosakata)

[RevoUpedia](/revoupedia)/ [Panduan Teknis](/revoupedia/panduan-teknis)/ [Python Class dan Object: Fungsi dan Cara Membuatnya](/panduan-teknis/python-class)

# Python Class dan Object: Fungsi dan Cara Membuatnya

Pahami fungsi dan cara membuat Python Class di artikel berikut.

![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/640b45836bc2114e3463b61a_DAC8D87A-AC44-439B-8460-F8BA54EBEF55.webp)

[Bobby Christian](/author/bobby-christian)

March 27, 2023

6

min read

![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/630081cb914e304bc4fb7110_DA%20ICON.webp)

#### Mau Belajar

#### Data Analytics

#### ?

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!

[DAFTAR FULL PROGRAM](https://revou.co/data-analytics/?lptype=teknisfs&lang=pythonclass) [**COBA COURSE GRATIS**](https://revou.co/mini-course-data-analytics/?lptype=teknismc&lang=pythonclass)

![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62af735c91fe2c15d4953a5f_Line%20Dash.svg)

#### Introduction

[Text Link](/revoupedia-modules/introduction-python)![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62b6cef938ce8f501eeba433_icon%20dropdown.svg)

#### How to Guides

[Text Link](/revoupedia-modules/how-to-guides-python)![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62b6cef938ce8f501eeba433_icon%20dropdown.svg)

![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62af3bf7cd95df46be24dd29_icon_close.svg)

[4 Contoh Pandas Astype untuk Ubah Tipe Data](/panduan-teknis/pandas-astype)

[Belajar Python Dasar untuk Pemula (Tutorial Mudah)](/panduan-teknis/belajar-python)

[Python Conditional IF, IF-ELSE, ELIF dan Contohnya](/panduan-teknis/python-conditional)

[Cara Replace String Python, Kegunaan, dan Contoh](/panduan-teknis/replace-string-python)

[Python Function: Jenis, Contoh, dan Cara Membuat](/panduan-teknis/python-function)

[Python Read File untuk File Handling: Cara Membuat](/panduan-teknis/python-read-file)

[Python Class dan Object: Fungsi dan Cara Membuatnya](/panduan-teknis/python-class)

[Latihan Python String Split dengan 3 Contoh Metodenya](/panduan-teknis/python-string-split)

[Mengenal Python: Dipakai Meta, Netflix, sampai NASA](/panduan-teknis/python-adalah)

[7 Jenis Operator Python, Fungsi, dan Contohnya](/panduan-teknis/operator-python)

[20 Contoh Program Python Sederhana untuk Latihan Pemula](/panduan-teknis/contoh-program-python)

[Append Python untuk Tambah Item ke Data List dan Lainnya](/panduan-teknis/append-python)

[Python IF ELSE: Syntax, Cara Pakai, dan Contoh](/panduan-teknis/python-if-else)

[Python Compiler: Cara Pakai untuk Optimasi Coding](/panduan-teknis/python-compiler)

[Python Array: Kegunaan, Jenis, Cara Membuat, dan Contoh](/panduan-teknis/python-array)

[Python Def: Contoh Penggunaan dan Fungsi Return](/panduan-teknis/python-def)

[Try Except Python: Panduan untuk Pemula](/panduan-teknis/try-except-python)

[Switch Case Python: Panduan untuk Pemula](/panduan-teknis/switch-case-python)

[Praktik Fungsi For Loop di Python untuk Pemula](/panduan-teknis/python-for-loop)

[Python Dasar: Menampilkan Output dan Contohnya](/panduan-teknis/python-output)

[Tutorial PIP Python: Cara Instal dan Penggunaan](/panduan-teknis/pip-python)

[Tutorial Python While Loop atau Perulangan While](/panduan-teknis/python-while-loop)

[Cara Substring Python: Sintaks dan Contoh Lengkapnya](/panduan-teknis/substring-python)

[Memilih Text Editor Python yang Tepat untuk Pemrograman](/panduan-teknis/text-editor-python)

[Belajar Input di Python: Contoh dan Tips Mudah bagi Pemula](/panduan-teknis/input-python)

[Range Python Function: Cara dan Contoh untuk Analisis Data](/panduan-teknis/range-python)

[Tutorial Python: Tipe Data Set dan Cara Pakainya](/panduan-teknis/python-set)

[Cara Install Python di Windows dan MacOS (Lengkap)](/panduan-teknis/cara-install-python)

[Write File Python: Cara Menulis File dan Contoh Code](/panduan-teknis/python-write-file)

[Cara Convert List to String di Python: Panduan Lengkap](/panduan-teknis/convert-list-to-string-python)

[Konversi String ke Datetime di Python: Cara dan Contoh](/panduan-teknis/python-string-to-datetime)

[Cara Convert String ke Integer di Python: Panduan Lengkap](/panduan-teknis/convert-string-to-int-python)

[Cara Membaca File CSV Python dengan Pandas](/panduan-teknis/read-csv-python)

[Konsep dan Penggunaan Python Lambda dalam Analisis Data](/panduan-teknis/python-lambda)

[Mengenal Matplotlib dalam Python untuk Visualisasi Data](/panduan-teknis/matplotlib-python)

[Cara Convert String to Float di Python dan Contoh Lengkap](/panduan-teknis/convert-string-to-float-python)

[Cara Membuat Python Package dan Contohnya](/panduan-teknis/python-package)

[RegEx Python: Panduan Regular Expressions untuk Pemula](/panduan-teknis/regex-python)

[Tutorial Seaborn Python untuk Visualisasi Data](/panduan-teknis/seaborn-python)

[Dictionary Python: Cara Membuat dan Contoh](/panduan-teknis/dictionary-python)

[Tutorial Pandas DataFrame di Python untuk Pemula](/panduan-teknis/dataframe-python)

[9 Library Python Terbaik untuk Data Analytics](/panduan-teknis/library-python)

[Python Module: Cara Mengimpor dan Membuatnya](/panduan-teknis/python-module)

[Mengenal NumPy Python, Library Andalan Data Analyst](/panduan-teknis/numpy-python)

[Variabel Python: Aturan Syntax dan Cara Penulisan](/panduan-teknis/variable-python)

[Pandas Python: Cara Install, Import, dan Export Data](/panduan-teknis/pandas-python)

[Tutorial Web Scraping dengan Python bagi Pemula](/panduan-teknis/web-scraping-python)

[Cara Cepat Read Excel dengan Python dan Contoh Sederhana](/panduan-teknis/python-read-excel)

[Belajar Python Lowercase untuk Buat Huruf Kecil dan Contoh](/panduan-teknis/python-lowercase)

[Tutorial Python Request Module dan Contoh Sederhana](/panduan-teknis/python-request)

[Menggunakan Python Random Module: Fungsi dan Contoh](/panduan-teknis/python-random)

[Belajar Python: Apa itu Tuple, Cara Membuat, dan Contoh](/panduan-teknis/python-tuple)

[Mengenal Enumerate di Python, Cara Cepat Melakukan Loop](/panduan-teknis/enumerate-python)

[Cara Menemukan Outlier dengan Python](/panduan-teknis/python-outlier)

[Panduan Data Cleaning dengan Python Pandas dan Contohnya](/panduan-teknis/python-data-cleaning)

[Cara Menggunakan Python SUM dan Contoh Sederhana](/panduan-teknis/python-sum)

[4 Cara Mencari Nilai Mean dengan Python](/panduan-teknis/python-mean)

[Cara Menggunakan Python Min Function dan Contoh](/panduan-teknis/python-min)

[Tutorial Python Max untuk Mencari Nilai Maksimum](/panduan-teknis/python-max)

[Metode Python Agg dengan Pandas dan Contoh Sederhana](/panduan-teknis/python-agg)

[3 Cara Cepat Slicing Data dengan Python](/panduan-teknis/slicing-data-python)

[Cara Membuat Scatter Plot di Python](/panduan-teknis/scatter-plot-python)

[Tutorial Python Fillna untuk Mengganti NaN (Missing Values)](/panduan-teknis/python-fillna)

[Tutorial Python Dropna untuk Menangani Missing Values](/panduan-teknis/python-dropna)

[Python Boolean: Syntax, Cara, Contoh](/panduan-teknis/python-boolean)

[Cara Mengurutkan Data dengan Sort Values di Pandas](/panduan-teknis/python-sort-values)

[Cara Praktis Menggunakan Values Count di Pandas](/panduan-teknis/python-values-count)

[Python nLargest: Arti, Fungsi, Cara, Contoh](/panduan-teknis/python-nlargest)

[3 Cara Buat Pivot Table dengan Python (Pandas)](/panduan-teknis/pandas-pivot-table)

[Python Nsmallest: Arti, Fungsi, Cara, Contoh](/panduan-teknis/python-nsmallest)

[4 Cara Combine DataFrame dengan Concat di Pandas](/panduan-teknis/pandas-concat)

[3 Contoh Python Rename untuk Ganti Nama File](/panduan-teknis/python-rename)

[3 Cara Merge DataFrame di Pandas](/panduan-teknis/merge-dataframe-pandas)

[3 Cara Konversi Kolom Menjadi String di Pandas](/panduan-teknis/python-to-string)

[Python Pandas: Apply Function untuk Satu Kolom atau Lebih](/panduan-teknis/pandas-apply)

[5 Cara Reset Index DataFrame di Pandas dan Contohnya](/panduan-teknis/reset-index-pandas)

[Panduan Python Datetime Module: datetime hingga timedelta](/panduan-teknis/python-datetime)

[Beda Python isna vs isnull di Pandas DataFrame dan Contoh](/panduan-teknis/python-isna-vs-isnull)

[Tutorial Python Get Dummies di Pandas dan Contoh](/panduan-teknis/python-get-dummies)

[Python Head and Tail: Beda dan Kegunaan](/panduan-teknis/python-head-and-tail)

[Tutorial Uji Hipotesis dengan Python dan Contohnya](/panduan-teknis/uji-hipotesis)

[Cara Membuat Regresi Linier Sederhana di Python](/panduan-teknis/regresi-linier)

## Overview

Python class memungkinkan programmer membuat banyak function yang kemudian membentuk object. Artikel ini akan mengupas tuntas cara menggunakan Python class dan Python object, serta cara inisialisasi variabel di Python.

Pada konten sebelumnya, kita telah membahas bagaimana cara menggunakan [_function_](https://revou.co/panduan-teknis/python-function). Pada konten kali ini, kita akan membahas mengenai salah satu fitur dari Python, yaitu _class_.

## Apa itu Python Class dan Perbedaannya dengan Function?

Salah satu perbedaan mendasar [Python](https://revou.co/panduan-teknis/belajar-python) _class_ dan _function_ adalah bagaimana cara _class_ dan _function_ mengartikan sebuah variabel: apakah variabel tersebut dianggap variabel lokal (hanya bisa diakses di dalam fungsi atau modul tempatnya berada) atau variabel global (dapat digunakan di seluruh program).

Untuk dapat melihat perbedaannya, mari kita perhatikan contoh berikut ini:

```markup

```

Perhatikan contoh di atas. Dalam contoh tersebut, kita membuat sebuah _function_ hewan untuk mengeluarkan berbagai jenis hewan. Perhatikan perbedaan sifat variabel di tiap _function_ di dalam _function_ hewan().

Pada _function_ hewan1(), kita menyatakan jenis = “ **anjing**” dan variabel jenis ini merupakan sebuah _local variable_ yang hanya dapat digunakan pada _function_ tersebut.

Pada _function_ hewan2(), kita menyatakan jenis = “ **kucing**” dan kita juga menyatakan bahwa jenis pada hewan2 merupakan sebuah _nonlocal variable_, di mana variabel tersebut dapat digunakan pada keseluruhan _function_.

Pada _function_ hewan3(), kita menyatakan jenis = “ **bebek**” dan kita juga menyatakan bahwa jenis pada hewan3() merupakan sebuah _global variable_, di mana variabel tersebut dapat digunakan pada keseluruhan Python _script_.

Di dalam _function_ hewan() itu sendiri, kita menyatakan sebuah _local variable_ jenis yaitu “ **ayam**”. Perhatikan ketika kita mengeluarkan _output_ dari masing-masing _function_ tersebut.

Ketika hewan1() kita panggil, lalu kita coba untuk mengeluarkan isi variabel jenis, ternyata hasil keluarannya adalah “ **ayam**” dan bukan “ **anjing**”. Ini artinya, _local variable_ hanya dapat berfungsi di dalam _function_ tersebut dan apabila tidak dinyatakan dalam variabel lain ketika _function_ dipanggil, maka _local variable_ dalam hewan1() akan hilang dan digantikan dengan variabel lain (di mana pada kasus hewan(), _local variable_ yang dipanggil adalah “ **ayam**”).

Ketika hewan2() kita panggil, lalu kita coba keluarkan isi variabelnya, maka variabel jenis berubah menjadi “ **kucing**”. Ini artinya apabila variabel tersebut kita nyatakan sebagai _nonlocal variable_, maka nilai variabel tersebut akan berlaku selama masih ada di dalam _function_ hewan().

Ketika hewan3() kita panggil, lalu kita coba keluarkan isi variabelnya, ternyata hasil keluarannya masih “ **kucing**”. Untuk variabel jenis di dalam hewan3() ini, kita nyatakan sebagai _global variable_. Ketika kita coba memanggil variabel jenis ini di luar dari _function_ hewan() yang kita buat, ternyata variabel jenis ini mengeluarkan “ **bebek**” yang merupakan _global variable_.

Dari sini, kita dapat menyimpulkan bahwa _global variable_ dapat digunakan di keseluruhan Python _script_ yang kita buat.

## Kegunaan Python Class

Dari percobaan mengenai _function_ sebelumnya, maka kita bisa melihat bagaimana tidak efektifnya dalam penggunaan variabel di dalam sebuah _function_. Alasannya, kita harus menyatakan sifat dari tiap variabel tersebut, apakah variabel tersebut digunakan secara _local_, _nonlocal_, atau _global_.

**Untuk itu, Python memiliki sebuah metode lain yang disebut _class_, di mana di dalam _class_ ini kita bisa membuat banyak _function_, yang biasa disebut sebagai _object_. Dan kita bisa menginisialisasi variabel itu sendiri di dalam _class_, apakah akan digunakan untuk _local_ maupun _nonlocal_.**

Dikutip dari Geeks for Geeks, _class_ biasa digunakan untuk membuat sebuah _blueprint_ dari _object_. _Class_ ini dapat berguna apabila kita ingin membuat sebuah program yang memanfaatkan _object_( _object-oriented programming/OOP_).

Mungkin untuk pemula, definisi _class_ ini terdengar asing. Kita akan bahas satu per satu di sini.

## Cara Menggunakan Python Class dan Python Object

_Class_ sendiri pada Python diartikan sebagai instansi bagi sebuah _object_. Sebuah _class_ memiliki ciri penulisan diawali dengan **_class_**, lalu nama _class_ itu sendiri, mirip seperti cara penulisan _function_, berikut contohnya:

```markup

```

Pada contoh di atas, kita membuat sebuah _class_ bernama hewan(). Biasanya, dalam penulisan sebuah _class_, diikuti dengan _object_ untuk menentukan sifat dari _class_ itu sendiri. Selain _object_, kita juga dapat memberikan inputke dalamnya.

Berikut contoh sederhana dari sebuah _class_ yang hanya memiliki _object_ dan tanpa input:

```markup

```

Pada contoh di atas, kita memanggil _class_ hewan dan kita ingin mengeluarkan _output_ berupa suara hewan, di mana pada contoh tersebut kita menggunakan _object_ yaitu **ayam()**. Untuk pemanggilan perintah pada suatu _object_ di dalam _class_, kita menggunakan < **_instansi_** >.< **_object\_name()_** >.

Ketika kita akan mengeluarkan _output_ dari **_hewan.ayam()_**, maka _class_ akan otomatis memanggil fungsi, atau di sini kita sebut dengan _object_ di dalam instansi yang telah kita buat, dan akan mengeluarkan _output_“kukuruyuk” sesuai dengan perintah **_print_** di dalam _object_ **_ayam()_**.

{{COMPONENT\_IDENTIFIER}}

## Cara Inisialisasi dan Penamaan Variabel di Python

Pada contoh sebelumnya, kita telah melihat sebuah _class_ yang sederhana untuk mengeluarkan _output_ [_string_](https://revou.co/panduan-teknis/replace-string-python) sesuai dengan _object_ yang kita panggil. Namun, apabila terdapat input di dalam _class_ itu, maka kita perlu memasangkan tiap _input_ ke dalam tiap _object_ yang memerlukan input tersebut yang berada di dalam _class_.

Bila kita melakukan hal ini, maka tidak akan ada bedanya dengan _local variable_ di dalam sebuah _function_. **Oleh karena itu, terdapat sebuah _method_ yang digunakan untuk inisialisasi variabel, yang dapat digunakan secara global ke dalam seluruh _object_ yang dibentuk di dalam _class_.**

Inisialisasi tersebut dilakukan dengan menambahkan sebuah _function_ **def \_\_init\_\_(self)** atau biasa bisa disebut dengan _method_ dalam _class_ tersebut. _Function_ **\_\_init\_\_** ini tidak bisa mengakses variabel inputyang diberikan kepada _class_, oleh karena itu kita perlu menambahkan “ **_self_**” yang digunakan agar _method_ dapat membaca variabel _input_.

Untuk tiap variabel inputinisialisasi di dalam _class_ akan dinyatakan dalam bentuk **_self.< input >_**. Untuk contoh penulisan sebuah _class_ yang memiliki _method_ dapat dilihat pada contoh di bawah berikut ini:

```markup

```

Apa yang terjadi dalam contoh di atas ini? Pada contoh di atas, kita membuat sebuah _class_ bernama hewan(). _Class_ atau instansiini akan dipanggil sebagai pada variabel “ **binatang**” dengan inputberupa jenis “ **reptil**” dan juga nama “ **komodo**”.

Jadi, apabila kita memberikan dua input ketika memanggil variabel “ **binatang**”, maka inputpertama akan masuk menjadi input bagi “ **_jenis_**” yang kita definisikan sebagai **self.jenis** dan akan menjadi inputuntuk _object_ **jenis()**, lalu inputkedua akan masuk menjadi _input_ bagi “ **_nama_**” yang kita definisikan sebagai **self.nama** dan akan menjadi inputuntuk _object_ **nama()**.

_Function_ **\_\_init\_\_** ini merupakan sebuah _method_ dalam _class_ yang fungsinya adalah untuk menginisialisasi variabel input (dalam contoh di atas yaitu “ **jenis**” dan “ **nama**”) menjadi terkesan sebuah _nonlocal variable_ dalam _class_ tersebut.

Karena variabel **_self.< input >_** ini bertindak seperti _nonlocal variable_, ketika kita membuat _function_ jenis(), maka kita hanya perlu menuliskan **print(self.jenis)**. Begitu juga ketika kita membuat _function_ nama(), maka kita hanya perlu menuliskan **print(self.nama)** untuk mengeluarkan masing-masing variabel tersebut.

Setelah _class_, _method_, dan _object_ telah ditentukan, maka kita bisa membuat variabel “ **binatang**” yang dituliskan sebagai **hewan (< input\_jenis >,< input\_nama >)**. Perhatikan di sini bahwa ketika kita memanggil _class_ di mana terdapat _method_ **\_\_init\_\_** di dalamnya.

Maka _input_ dari _class_ tersebut sama seperti jumlah _input_ yang ada di **\_\_init\_\_** namun mengecualikan “ **_self_**” dikarenakan “ **_self_**” hanya digunakan untuk menginisialisasi variabel saja, sehingga kita memasukan dua buah _input_ di sini, yaitu “ **reptil**” sebagai inputuntuk _object “_ **jenis**”, dan “ **komodo**” sebagai inputuntuk _object_“ **nama**”.

Untuk memanggil _object_ ini, kita hanya perlu menuliskan bentuk **< instansi >.< object >** untuk mengeluarkan isi dari _object_ tersebut, seperti yang dicontohkan untuk memanggil nama hewan tersebut “ **binatang.nama**” dan jenis hewan tersebut “ **binatang.jenis**”.

Perhatikan bahwa pada kedua contoh penulisan _class_ pada konten ini, memiliki cara pemanggilan _object_ yang berbeda.

Pada contoh pertama, kita menggunakan perintah **_print(hewan.ayam())_** untuk mengeluarkan _output_“ **_kukuruyuk_**”. Namun pada contoh kedua, untuk memanggil _output_, kita menuliskan **binatang.nama** tanpa menggunakan tanda kurung “()” di akhir _object_ untuk mengeluarkan _output-_ nya.

Hal ini disebabkan karena kita menggunakan inisialisasi **_self_** pada contoh kedua, sehingga kita tidak menggunakan tanda kurung “()” untuk memanggil isi _object_, karena tanda kurung tersebut biasa digunakan untuk memanggil sebuah _function_ biasa, bukan _object_.

## Cara Mengakses Python Class dan Object di Built-In Function

Pada konten kali ini, kita belajar mengenai cara menggunakan _class_ dan juga _object_, aplikasinya, dan juga perbedaannya dengan _function_. Kebanyakan [_programmer_](https://revou.co/panduan-karir/programmer-adalah) yang membuat _library_ sendiri pada Python, menggunakan gabungan dari _class_ dan _object_ ini untuk membuat _custom library_ masing-masing.

Apabila kita menggunakan **_import < library >_** ketika kita membuat sebuah blok _script_ pada Python, secara tidak langsung sebenarnya kita sedang mengakses _class_ dan _object_ yang telah dibuat orang lain atau yang merupakan _built-in function_ dari Python.

Berikut merupakan salah satu contoh untuk kita dapat melihat sebuah _class_ yang merupakan _built-in function_ dari Python, dengan bantuan fungsi **help()**:

```markup

```

Pada contoh di atas, merupakan salah satu _built-in function_ yang cukup umum dipakai oleh _programmer_, untuk menyatakan sebuah [tipe data](https://revou.co/kosakata/tipe-data) **_datetime_** pada variabel. Apabila kita gunakan **_help(datetime)_**, maka kita bisa melihat bahwa fungsi _datetime_ tersebut juga dibuat dengan menggunakan _class_ dan banyak _object_ seperti **\_\_add\_\_** dan lainnya.

Oleh karena itu, seorang _programmer_, terutama yang ingin membuat _custom library_ sendiri, dapat menggunakan dan memanfaatkan penuh fungsi _class_ dan _object_ ini.

[![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/640b45836bc2114e3463b61a_DAC8D87A-AC44-439B-8460-F8BA54EBEF55.webp)\
\
Bobby Christian\
\
Bobby is a BI Analyst at FnB company. Is an enthusiast in the Data Industry, having some experience in Data Scientist, Data Engineer, and BI Analyst.](/author/bobby-christian)

#### Masih ragu? Coba dulu 3 hari, GRATIS   di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program: **_Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion._** Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan **Fast-Track** (skip semua tes seleksi masuk, langsung ke tahap akhir!)

[Mulai Free Trial](https://revou.co/ftdm?lang=panduan-teknis)

#### Masih ragu? Coba dulu 3 hari, GRATIS   di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program: **_Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion._** Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan **Fast-Track** (skip semua tes seleksi masuk, langsung ke tahap akhir!)

[Mulai Free Trial](/ftse)

#### Masih ragu? Coba dulu 3 hari, GRATIS   di Full-Stack Trial Class!

Rasakan pengalaman belajar di RevoU Full-Stack Program: **_Kelas 100% LIVE, Mini portofolio lewat hands-on assignment, Bimbingan Team Lead & small group discussion._** Kalau cocok, kamu bisa lanjut daftar Full Program dengan kesempatan **Fast-Track** (skip semua tes seleksi masuk, langsung ke tahap akhir!)

[Mulai Free Trial](/ftse)

## Artikel Lainnya

[Next \
\
![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62b22d583188664a8a92b940_icon-arrow-grey.svg)\
\
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/64142cef24cfc25fa1f8a8cf_replace%20string%20python.webp)\
\
Cara Replace String Python, Kegunaan, dan Contoh\
\
Pahami cara replace string Python, kegunaan, sekaligus contohnya.](/panduan-teknis/replace-string-python) [![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62b22d583188664a8a92b940_icon-arrow-grey.svg)\
\
Previous\
\
![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/6414166c2f7f81dceda85933_python%20conditional.webp)\
\
Python Conditional IF, IF-ELSE, ELIF dan Contohnya\
\
Ketahui tentang Python Conditional IF, IF-ELSE, ELIF sekaligus contohnya di artikel ini!](/panduan-teknis/python-conditional)

![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/6421215b30d27c280220c20b_python%20class.webp)

#### Mau belajar

#### Data Analytics

#### ?

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!

[FULL PROGRAM](https://revou.co/data-analytics/?lptype=teknisfs&lang=pythonclass)

![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62b055cd3263c712c0a095c3_icon-menu.svg)
Daftar Isi

![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/6421215b30d27c280220c20b_python%20class.webp)

## **Mulai karirmu dalam**

## Data Analytics

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!

[ikut kursus gratis](https://revou.co/data-analytics/?lptype=teknisfs&lang=pythonclass) [**COBA COURSE GRATIS**](https://revou.co/mini-course-data-analytics/?lptype=teknismc&lang=pythonclass)

![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/630081cb914e304bc4fb7110_DA%20ICON.webp)

#### Mau Belajar

#### Data Analytics

#### ?

Belajar di RevoU! Dapatkan skill digital paling in-demand langsung dari praktisi terbaik di bidangnya. Kelas online 100% LIVE, 1:1 career coaching, dan akses ke Community Hub dengan 6000+ member selamanya untuk support perkembangan karir kamu!

[DAFTAR FULL PROGRAM](https://revou.co/data-analytics/?lptype=teknisfs&lang=pythonclass)

![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/63645dbe8c569010c7b2c33b_mini%3Dmax-button-02.svg)

![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/630081cb914e304bc4fb7110_DA%20ICON.webp)

#### Mau Belajar

#### Data Analytics

#### ?

![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/63645dbeded3ab6a164947ff_mini%3Dmax-button-01.svg)

[![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/61af164800e38c4652c60ba2_Footer%20logo.svg)\
\
Licensed, Registered, and authorized by\
\
![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/653265bdabbc6ae3b767dbde_image%203.webp)![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/653265bdfaa870b3c62f5ebe_image%202.webp)](/)

[![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/64cf62263bc96abfe019a520_ig.svg)](https://www.instagram.com/revou_id/)[![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/64cf6226b8a6b3413b34538f_linkedin-icon.svg)](https://www.linkedin.com/school/revou/)[![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/64cf622552b401ed43740531_twiiter.svg)](https://twitter.com/revoudotco)[![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/64cf6225b6dd1deea5aab9e3_youtube.svg)](https://www.youtube.com/c/revoudotco)[![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/64cf6227bafd7aaafa532f99_tiktok.svg)](https://www.tiktok.com/@revoudotco)[![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/64cf6226ffc94c135db8f864_spotify.svg)](https://open.spotify.com/show/1T7wA2tbMfXgLUMQpO0wdQ?si=7616c8c4ef644ea6)

ABOUT

[About Us\
\
Arrow\_Outward](/culture) [FAQ\
\
Arrow\_Outward](https://apply.revou.co/faq-fs) [Career\
\
Arrow\_Outward](/career) [Blog\
\
Arrow\_Outward](https://journal.revou.co/) [RevoUpedia\
\
Arrow\_Outward](/revoupedia) [Privacy Policy\
\
Arrow\_Outward](/privacy-policy)

BUSINESS

[Corporate Training\
\
Arrow\_Outward](/business) [Marketing Agency\
\
Arrow\_Outward](/marketing-agency) [Be a Contributor\
\
Arrow\_Outward](/contribute) [Kampus Merdeka\
\
Arrow\_Outward](/kampus-merdeka)

BOOTCAMP 101

[Digital Marketing\
\
Arrow\_Outward](/bootcamp-digital-marketing) [Data Analytics\
\
Arrow\_Outward](/bootcamp-data-analytics) [Product Management\
\
Arrow\_Outward](/bootcamp-product-management) [Software Engineering\
\
Arrow\_Outward](/bootcamp-software-engineering)

SERTIFIKASI 101

[Digital Marketing\
\
Arrow\_Outward](/sertifikasi-digital-marketing) [Data Analytics\
\
Arrow\_Outward](/sertifikasi-data-analytics) [Product Management\
\
Arrow\_Outward](/sertifikasi-product-management) [Software Engineering\
\
Arrow\_Outward](/sertifikasi-software-engineering)

More questions? Email us at

[![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/64cf60dc28ed31049a911885_mail.svg)\
**\[email protected\]**](/cdn-cgi/l/email-protection#a5c4c1c8ccd6d6cccacbd6e5d7c0d3cad08bc6ca)

© 2024 PT Revolusi Cita Edukasi.

All Rights Reserved

Licensed, Registered, and authorized by

![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/653265bdabbc6ae3b767dbde_image%203.webp)![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/653265bdfaa870b3c62f5ebe_image%202.webp)

[RevoUpedia](/revoupedia)/ [Panduan Teknis](/revoupedia/panduan-teknis)/ [Python Class dan Object: Fungsi dan Cara Membuatnya](/panduan-teknis/python-class)

# Python Class dan Object: Fungsi dan Cara Membuatnya

Pahami fungsi dan cara membuat Python Class di artikel berikut.

![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/640b45836bc2114e3463b61a_DAC8D87A-AC44-439B-8460-F8BA54EBEF55.webp)

[Bobby Christian](/author/bobby-christian)

March 27, 2023

6

min read

![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62af735c91fe2c15d4953a5f_Line%20Dash.svg)

#### Introduction

[Text Link](/revoupedia-modules/introduction-python)![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62b6cef938ce8f501eeba433_icon%20dropdown.svg)

#### How to Guides

[Text Link](/revoupedia-modules/how-to-guides-python)![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62b6cef938ce8f501eeba433_icon%20dropdown.svg)

![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62af3bf7cd95df46be24dd29_icon_close.svg)

[4 Contoh Pandas Astype untuk Ubah Tipe Data](/panduan-teknis/pandas-astype)

[Belajar Python Dasar untuk Pemula (Tutorial Mudah)](/panduan-teknis/belajar-python)

[Python Conditional IF, IF-ELSE, ELIF dan Contohnya](/panduan-teknis/python-conditional)

[Cara Replace String Python, Kegunaan, dan Contoh](/panduan-teknis/replace-string-python)

[Python Function: Jenis, Contoh, dan Cara Membuat](/panduan-teknis/python-function)

[Python Read File untuk File Handling: Cara Membuat](/panduan-teknis/python-read-file)

[Python Class dan Object: Fungsi dan Cara Membuatnya](/panduan-teknis/python-class)

[Latihan Python String Split dengan 3 Contoh Metodenya](/panduan-teknis/python-string-split)

[Mengenal Python: Dipakai Meta, Netflix, sampai NASA](/panduan-teknis/python-adalah)

[7 Jenis Operator Python, Fungsi, dan Contohnya](/panduan-teknis/operator-python)

[20 Contoh Program Python Sederhana untuk Latihan Pemula](/panduan-teknis/contoh-program-python)

[Append Python untuk Tambah Item ke Data List dan Lainnya](/panduan-teknis/append-python)

[Python IF ELSE: Syntax, Cara Pakai, dan Contoh](/panduan-teknis/python-if-else)

[Python Compiler: Cara Pakai untuk Optimasi Coding](/panduan-teknis/python-compiler)

[Python Array: Kegunaan, Jenis, Cara Membuat, dan Contoh](/panduan-teknis/python-array)

[Python Def: Contoh Penggunaan dan Fungsi Return](/panduan-teknis/python-def)

[Try Except Python: Panduan untuk Pemula](/panduan-teknis/try-except-python)

[Switch Case Python: Panduan untuk Pemula](/panduan-teknis/switch-case-python)

[Praktik Fungsi For Loop di Python untuk Pemula](/panduan-teknis/python-for-loop)

[Python Dasar: Menampilkan Output dan Contohnya](/panduan-teknis/python-output)

[Tutorial PIP Python: Cara Instal dan Penggunaan](/panduan-teknis/pip-python)

[Tutorial Python While Loop atau Perulangan While](/panduan-teknis/python-while-loop)

[Cara Substring Python: Sintaks dan Contoh Lengkapnya](/panduan-teknis/substring-python)

[Memilih Text Editor Python yang Tepat untuk Pemrograman](/panduan-teknis/text-editor-python)

[Belajar Input di Python: Contoh dan Tips Mudah bagi Pemula](/panduan-teknis/input-python)

[Range Python Function: Cara dan Contoh untuk Analisis Data](/panduan-teknis/range-python)

[Tutorial Python: Tipe Data Set dan Cara Pakainya](/panduan-teknis/python-set)

[Cara Install Python di Windows dan MacOS (Lengkap)](/panduan-teknis/cara-install-python)

[Write File Python: Cara Menulis File dan Contoh Code](/panduan-teknis/python-write-file)

[Cara Convert List to String di Python: Panduan Lengkap](/panduan-teknis/convert-list-to-string-python)

[Konversi String ke Datetime di Python: Cara dan Contoh](/panduan-teknis/python-string-to-datetime)

[Cara Convert String ke Integer di Python: Panduan Lengkap](/panduan-teknis/convert-string-to-int-python)

[Cara Membaca File CSV Python dengan Pandas](/panduan-teknis/read-csv-python)

[Konsep dan Penggunaan Python Lambda dalam Analisis Data](/panduan-teknis/python-lambda)

[Mengenal Matplotlib dalam Python untuk Visualisasi Data](/panduan-teknis/matplotlib-python)

[Cara Convert String to Float di Python dan Contoh Lengkap](/panduan-teknis/convert-string-to-float-python)

[Cara Membuat Python Package dan Contohnya](/panduan-teknis/python-package)

[RegEx Python: Panduan Regular Expressions untuk Pemula](/panduan-teknis/regex-python)

[Tutorial Seaborn Python untuk Visualisasi Data](/panduan-teknis/seaborn-python)

[Dictionary Python: Cara Membuat dan Contoh](/panduan-teknis/dictionary-python)

[Tutorial Pandas DataFrame di Python untuk Pemula](/panduan-teknis/dataframe-python)

[9 Library Python Terbaik untuk Data Analytics](/panduan-teknis/library-python)

[Python Module: Cara Mengimpor dan Membuatnya](/panduan-teknis/python-module)

[Mengenal NumPy Python, Library Andalan Data Analyst](/panduan-teknis/numpy-python)

[Variabel Python: Aturan Syntax dan Cara Penulisan](/panduan-teknis/variable-python)

[Pandas Python: Cara Install, Import, dan Export Data](/panduan-teknis/pandas-python)

[Tutorial Web Scraping dengan Python bagi Pemula](/panduan-teknis/web-scraping-python)

[Cara Cepat Read Excel dengan Python dan Contoh Sederhana](/panduan-teknis/python-read-excel)

[Belajar Python Lowercase untuk Buat Huruf Kecil dan Contoh](/panduan-teknis/python-lowercase)

[Tutorial Python Request Module dan Contoh Sederhana](/panduan-teknis/python-request)

[Menggunakan Python Random Module: Fungsi dan Contoh](/panduan-teknis/python-random)

[Belajar Python: Apa itu Tuple, Cara Membuat, dan Contoh](/panduan-teknis/python-tuple)

[Mengenal Enumerate di Python, Cara Cepat Melakukan Loop](/panduan-teknis/enumerate-python)

[Cara Menemukan Outlier dengan Python](/panduan-teknis/python-outlier)

[Panduan Data Cleaning dengan Python Pandas dan Contohnya](/panduan-teknis/python-data-cleaning)

[Cara Menggunakan Python SUM dan Contoh Sederhana](/panduan-teknis/python-sum)

[4 Cara Mencari Nilai Mean dengan Python](/panduan-teknis/python-mean)

[Cara Menggunakan Python Min Function dan Contoh](/panduan-teknis/python-min)

[Tutorial Python Max untuk Mencari Nilai Maksimum](/panduan-teknis/python-max)

[Metode Python Agg dengan Pandas dan Contoh Sederhana](/panduan-teknis/python-agg)

[3 Cara Cepat Slicing Data dengan Python](/panduan-teknis/slicing-data-python)

[Cara Membuat Scatter Plot di Python](/panduan-teknis/scatter-plot-python)

[Tutorial Python Fillna untuk Mengganti NaN (Missing Values)](/panduan-teknis/python-fillna)

[Tutorial Python Dropna untuk Menangani Missing Values](/panduan-teknis/python-dropna)

[Python Boolean: Syntax, Cara, Contoh](/panduan-teknis/python-boolean)

[Cara Mengurutkan Data dengan Sort Values di Pandas](/panduan-teknis/python-sort-values)

[Cara Praktis Menggunakan Values Count di Pandas](/panduan-teknis/python-values-count)

[Python nLargest: Arti, Fungsi, Cara, Contoh](/panduan-teknis/python-nlargest)

[3 Cara Buat Pivot Table dengan Python (Pandas)](/panduan-teknis/pandas-pivot-table)

[Python Nsmallest: Arti, Fungsi, Cara, Contoh](/panduan-teknis/python-nsmallest)

[4 Cara Combine DataFrame dengan Concat di Pandas](/panduan-teknis/pandas-concat)

[3 Contoh Python Rename untuk Ganti Nama File](/panduan-teknis/python-rename)

[3 Cara Merge DataFrame di Pandas](/panduan-teknis/merge-dataframe-pandas)

[3 Cara Konversi Kolom Menjadi String di Pandas](/panduan-teknis/python-to-string)

[Python Pandas: Apply Function untuk Satu Kolom atau Lebih](/panduan-teknis/pandas-apply)

[5 Cara Reset Index DataFrame di Pandas dan Contohnya](/panduan-teknis/reset-index-pandas)

[Panduan Python Datetime Module: datetime hingga timedelta](/panduan-teknis/python-datetime)

[Beda Python isna vs isnull di Pandas DataFrame dan Contoh](/panduan-teknis/python-isna-vs-isnull)

[Tutorial Python Get Dummies di Pandas dan Contoh](/panduan-teknis/python-get-dummies)

[Python Head and Tail: Beda dan Kegunaan](/panduan-teknis/python-head-and-tail)

[Tutorial Uji Hipotesis dengan Python dan Contohnya](/panduan-teknis/uji-hipotesis)

[Cara Membuat Regresi Linier Sederhana di Python](/panduan-teknis/regresi-linier)

## Overview

Python class memungkinkan programmer membuat banyak function yang kemudian membentuk object. Artikel ini akan mengupas tuntas cara menggunakan Python class dan Python object, serta cara inisialisasi variabel di Python.

Pada konten sebelumnya, kita telah membahas bagaimana cara menggunakan [_function_](https://revou.co/panduan-teknis/python-function). Pada konten kali ini, kita akan membahas mengenai salah satu fitur dari Python, yaitu _class_.

## Apa itu Python Class dan Perbedaannya dengan Function?

Salah satu perbedaan mendasar [Python](https://revou.co/panduan-teknis/belajar-python) _class_ dan _function_ adalah bagaimana cara _class_ dan _function_ mengartikan sebuah variabel: apakah variabel tersebut dianggap variabel lokal (hanya bisa diakses di dalam fungsi atau modul tempatnya berada) atau variabel global (dapat digunakan di seluruh program).

Untuk dapat melihat perbedaannya, mari kita perhatikan contoh berikut ini:

```markup

```

Perhatikan contoh di atas. Dalam contoh tersebut, kita membuat sebuah _function_ hewan untuk mengeluarkan berbagai jenis hewan. Perhatikan perbedaan sifat variabel di tiap _function_ di dalam _function_ hewan().

Pada _function_ hewan1(), kita menyatakan jenis = “ **anjing**” dan variabel jenis ini merupakan sebuah _local variable_ yang hanya dapat digunakan pada _function_ tersebut.

Pada _function_ hewan2(), kita menyatakan jenis = “ **kucing**” dan kita juga menyatakan bahwa jenis pada hewan2 merupakan sebuah _nonlocal variable_, di mana variabel tersebut dapat digunakan pada keseluruhan _function_.

Pada _function_ hewan3(), kita menyatakan jenis = “ **bebek**” dan kita juga menyatakan bahwa jenis pada hewan3() merupakan sebuah _global variable_, di mana variabel tersebut dapat digunakan pada keseluruhan Python _script_.

Di dalam _function_ hewan() itu sendiri, kita menyatakan sebuah _local variable_ jenis yaitu “ **ayam**”. Perhatikan ketika kita mengeluarkan _output_ dari masing-masing _function_ tersebut.

Ketika hewan1() kita panggil, lalu kita coba untuk mengeluarkan isi variabel jenis, ternyata hasil keluarannya adalah “ **ayam**” dan bukan “ **anjing**”. Ini artinya, _local variable_ hanya dapat berfungsi di dalam _function_ tersebut dan apabila tidak dinyatakan dalam variabel lain ketika _function_ dipanggil, maka _local variable_ dalam hewan1() akan hilang dan digantikan dengan variabel lain (di mana pada kasus hewan(), _local variable_ yang dipanggil adalah “ **ayam**”).

Ketika hewan2() kita panggil, lalu kita coba keluarkan isi variabelnya, maka variabel jenis berubah menjadi “ **kucing**”. Ini artinya apabila variabel tersebut kita nyatakan sebagai _nonlocal variable_, maka nilai variabel tersebut akan berlaku selama masih ada di dalam _function_ hewan().

Ketika hewan3() kita panggil, lalu kita coba keluarkan isi variabelnya, ternyata hasil keluarannya masih “ **kucing**”. Untuk variabel jenis di dalam hewan3() ini, kita nyatakan sebagai _global variable_. Ketika kita coba memanggil variabel jenis ini di luar dari _function_ hewan() yang kita buat, ternyata variabel jenis ini mengeluarkan “ **bebek**” yang merupakan _global variable_.

Dari sini, kita dapat menyimpulkan bahwa _global variable_ dapat digunakan di keseluruhan Python _script_ yang kita buat.

## Kegunaan Python Class

Dari percobaan mengenai _function_ sebelumnya, maka kita bisa melihat bagaimana tidak efektifnya dalam penggunaan variabel di dalam sebuah _function_. Alasannya, kita harus menyatakan sifat dari tiap variabel tersebut, apakah variabel tersebut digunakan secara _local_, _nonlocal_, atau _global_.

**Untuk itu, Python memiliki sebuah metode lain yang disebut _class_, di mana di dalam _class_ ini kita bisa membuat banyak _function_, yang biasa disebut sebagai _object_. Dan kita bisa menginisialisasi variabel itu sendiri di dalam _class_, apakah akan digunakan untuk _local_ maupun _nonlocal_.**

Dikutip dari Geeks for Geeks, _class_ biasa digunakan untuk membuat sebuah _blueprint_ dari _object_. _Class_ ini dapat berguna apabila kita ingin membuat sebuah program yang memanfaatkan _object_( _object-oriented programming/OOP_).

Mungkin untuk pemula, definisi _class_ ini terdengar asing. Kita akan bahas satu per satu di sini.

## Cara Menggunakan Python Class dan Python Object

_Class_ sendiri pada Python diartikan sebagai instansi bagi sebuah _object_. Sebuah _class_ memiliki ciri penulisan diawali dengan **_class_**, lalu nama _class_ itu sendiri, mirip seperti cara penulisan _function_, berikut contohnya:

```markup

```

Pada contoh di atas, kita membuat sebuah _class_ bernama hewan(). Biasanya, dalam penulisan sebuah _class_, diikuti dengan _object_ untuk menentukan sifat dari _class_ itu sendiri. Selain _object_, kita juga dapat memberikan inputke dalamnya.

Berikut contoh sederhana dari sebuah _class_ yang hanya memiliki _object_ dan tanpa input:

```markup

```

Pada contoh di atas, kita memanggil _class_ hewan dan kita ingin mengeluarkan _output_ berupa suara hewan, di mana pada contoh tersebut kita menggunakan _object_ yaitu **ayam()**. Untuk pemanggilan perintah pada suatu _object_ di dalam _class_, kita menggunakan < **_instansi_** >.< **_object\_name()_** >.

Ketika kita akan mengeluarkan _output_ dari **_hewan.ayam()_**, maka _class_ akan otomatis memanggil fungsi, atau di sini kita sebut dengan _object_ di dalam instansi yang telah kita buat, dan akan mengeluarkan _output_“kukuruyuk” sesuai dengan perintah **_print_** di dalam _object_ **_ayam()_**.

{{COMPONENT\_IDENTIFIER}}

## Cara Inisialisasi dan Penamaan Variabel di Python

Pada contoh sebelumnya, kita telah melihat sebuah _class_ yang sederhana untuk mengeluarkan _output_ [_string_](https://revou.co/panduan-teknis/replace-string-python) sesuai dengan _object_ yang kita panggil. Namun, apabila terdapat input di dalam _class_ itu, maka kita perlu memasangkan tiap _input_ ke dalam tiap _object_ yang memerlukan input tersebut yang berada di dalam _class_.

Bila kita melakukan hal ini, maka tidak akan ada bedanya dengan _local variable_ di dalam sebuah _function_. **Oleh karena itu, terdapat sebuah _method_ yang digunakan untuk inisialisasi variabel, yang dapat digunakan secara global ke dalam seluruh _object_ yang dibentuk di dalam _class_.**

Inisialisasi tersebut dilakukan dengan menambahkan sebuah _function_ **def \_\_init\_\_(self)** atau biasa bisa disebut dengan _method_ dalam _class_ tersebut. _Function_ **\_\_init\_\_** ini tidak bisa mengakses variabel inputyang diberikan kepada _class_, oleh karena itu kita perlu menambahkan “ **_self_**” yang digunakan agar _method_ dapat membaca variabel _input_.

Untuk tiap variabel inputinisialisasi di dalam _class_ akan dinyatakan dalam bentuk **_self.< input >_**. Untuk contoh penulisan sebuah _class_ yang memiliki _method_ dapat dilihat pada contoh di bawah berikut ini:

```markup

```

Apa yang terjadi dalam contoh di atas ini? Pada contoh di atas, kita membuat sebuah _class_ bernama hewan(). _Class_ atau instansiini akan dipanggil sebagai pada variabel “ **binatang**” dengan inputberupa jenis “ **reptil**” dan juga nama “ **komodo**”.

Jadi, apabila kita memberikan dua input ketika memanggil variabel “ **binatang**”, maka inputpertama akan masuk menjadi input bagi “ **_jenis_**” yang kita definisikan sebagai **self.jenis** dan akan menjadi inputuntuk _object_ **jenis()**, lalu inputkedua akan masuk menjadi _input_ bagi “ **_nama_**” yang kita definisikan sebagai **self.nama** dan akan menjadi inputuntuk _object_ **nama()**.

_Function_ **\_\_init\_\_** ini merupakan sebuah _method_ dalam _class_ yang fungsinya adalah untuk menginisialisasi variabel input (dalam contoh di atas yaitu “ **jenis**” dan “ **nama**”) menjadi terkesan sebuah _nonlocal variable_ dalam _class_ tersebut.

Karena variabel **_self.< input >_** ini bertindak seperti _nonlocal variable_, ketika kita membuat _function_ jenis(), maka kita hanya perlu menuliskan **print(self.jenis)**. Begitu juga ketika kita membuat _function_ nama(), maka kita hanya perlu menuliskan **print(self.nama)** untuk mengeluarkan masing-masing variabel tersebut.

Setelah _class_, _method_, dan _object_ telah ditentukan, maka kita bisa membuat variabel “ **binatang**” yang dituliskan sebagai **hewan (< input\_jenis >,< input\_nama >)**. Perhatikan di sini bahwa ketika kita memanggil _class_ di mana terdapat _method_ **\_\_init\_\_** di dalamnya.

Maka _input_ dari _class_ tersebut sama seperti jumlah _input_ yang ada di **\_\_init\_\_** namun mengecualikan “ **_self_**” dikarenakan “ **_self_**” hanya digunakan untuk menginisialisasi variabel saja, sehingga kita memasukan dua buah _input_ di sini, yaitu “ **reptil**” sebagai inputuntuk _object “_ **jenis**”, dan “ **komodo**” sebagai inputuntuk _object_“ **nama**”.

Untuk memanggil _object_ ini, kita hanya perlu menuliskan bentuk **< instansi >.< object >** untuk mengeluarkan isi dari _object_ tersebut, seperti yang dicontohkan untuk memanggil nama hewan tersebut “ **binatang.nama**” dan jenis hewan tersebut “ **binatang.jenis**”.

Perhatikan bahwa pada kedua contoh penulisan _class_ pada konten ini, memiliki cara pemanggilan _object_ yang berbeda.

Pada contoh pertama, kita menggunakan perintah **_print(hewan.ayam())_** untuk mengeluarkan _output_“ **_kukuruyuk_**”. Namun pada contoh kedua, untuk memanggil _output_, kita menuliskan **binatang.nama** tanpa menggunakan tanda kurung “()” di akhir _object_ untuk mengeluarkan _output-_ nya.

Hal ini disebabkan karena kita menggunakan inisialisasi **_self_** pada contoh kedua, sehingga kita tidak menggunakan tanda kurung “()” untuk memanggil isi _object_, karena tanda kurung tersebut biasa digunakan untuk memanggil sebuah _function_ biasa, bukan _object_.

## Cara Mengakses Python Class dan Object di Built-In Function

Pada konten kali ini, kita belajar mengenai cara menggunakan _class_ dan juga _object_, aplikasinya, dan juga perbedaannya dengan _function_. Kebanyakan [_programmer_](https://revou.co/panduan-karir/programmer-adalah) yang membuat _library_ sendiri pada Python, menggunakan gabungan dari _class_ dan _object_ ini untuk membuat _custom library_ masing-masing.

Apabila kita menggunakan **_import < library >_** ketika kita membuat sebuah blok _script_ pada Python, secara tidak langsung sebenarnya kita sedang mengakses _class_ dan _object_ yang telah dibuat orang lain atau yang merupakan _built-in function_ dari Python.

Berikut merupakan salah satu contoh untuk kita dapat melihat sebuah _class_ yang merupakan _built-in function_ dari Python, dengan bantuan fungsi **help()**:

```markup

```

Pada contoh di atas, merupakan salah satu _built-in function_ yang cukup umum dipakai oleh _programmer_, untuk menyatakan sebuah [tipe data](https://revou.co/kosakata/tipe-data) **_datetime_** pada variabel. Apabila kita gunakan **_help(datetime)_**, maka kita bisa melihat bahwa fungsi _datetime_ tersebut juga dibuat dengan menggunakan _class_ dan banyak _object_ seperti **\_\_add\_\_** dan lainnya.

Oleh karena itu, seorang _programmer_, terutama yang ingin membuat _custom library_ sendiri, dapat menggunakan dan memanfaatkan penuh fungsi _class_ dan _object_ ini.

[![](https://cdn.prod.website-files.com/61af164800e38cf1b6c60b55/640b45836bc2114e3463b61a_DAC8D87A-AC44-439B-8460-F8BA54EBEF55.webp)\
\
Bobby Christian\
\
Bobby is a BI Analyst at FnB company. Is an enthusiast in the Data Industry, having some experience in Data Scientist, Data Engineer, and BI Analyst.](/author/bobby-christian)

![](https://cdn.prod.website-files.com/61af164800e38c4f53c60b4e/62b055cd3263c712c0a095c3_icon-menu.svg)
Menu