Anda di halaman 1dari 7

Tipe Data di Python

Selain tipe data dasar seperti angka (int, double), teks (str), dan boolean (bool), sejumlah tipe
data lainnya yang tidak kalah penting antara lain:

List
Dalam bahasa Indonesia kita menyebutnya sebagai daftar, karena ya tipe data ini bisa berisi
sekumpulan tipe data lain, bahkan berisi tipe data List itu sendiri.
List menggunakan notasi kurung kotak [] atau dalam bahasa Inggris square brackets atau
brackets aja.
Di beberapa bahasa pemrograman lain disebut juga dengan istilah array.

# daftar yang isinya berjenis sama


daftar_buah = ['apel', 'belimbing', 'cempedak', 'durian']
daftar_nomor_anggota = [11, 22, 37]
daftar_kehadiran = [True, False, True]

print('buah-buahan: {}' \
.format(', '.join(daftar_buah)))
# buah-buahan: apel, belimbing, cempedak, durian

# daftar yang lebih kompleks


daftar_tipe = \
['str', 'teks', 'int', 1, 'double', 0.1, \
'boolean', False, 'List', ['L', 'i', 's', 't']]

Dictionary
Kita menyebutnya juga sebagai kamus, karena berisi daftar unik yang disebut sebagai kunci
(key), yang juga punya nilai (value) yang terkait.

Dictionary menggunakan notasi kurung kurawal {} atau dalam bahasa Inggris curly brackets
atau braces aja.
Di beberapa bahasa pemrogaman lain disebut juga dengan istilah map atau hash-map.

# daftar kata pada suatu halaman dengan jumlah kemunculan


kamus_kata = {'antara': 5, 'berarti': 3, 'cerita': 2, 'di': 7}

# daftar ID dan nama pengguna


kamus_pengguna = {1: 'andi', 2: 'budi', 3: 'cica', 4: 'dedi'}

print('pengguna dengan ID 1 adalah {}' \


.format(kamus_pengguna[1]))
# pengguna dengan ID 1 adalah andi

# gabungan List dengan Dictionary


daftar_pengguna = \
[{'id': 1, 'nama': 'andi'}, {'id': 2, 'nama': 'budi'}]
Pemrosesan Kondisi
Satu Kondisi (if)
Untuk menyeleksi jika ada kondisi tertentu gunakan sintaksis if.

# contoh variabel bertipe boolean nilai True atau False


pencarian_ditemukan = True

# misal di sini ada proses (pemanggilan fungsi) lain

# kondisi saat melakukan pencarian


if pencarian_ditemukan:
info = 'Data yang dicari berhasil ditemukan'

Dua Kondisi (if-else)


Banyak hal juga berupa kondisi ganda, misalnya ditemukan atau tidak ditemukan, genap atau
ganjil, dls, untuk itu gunakan sintaksis if .. else ..

# masih terkait contoh sebelumnya tentang pencarian

# misalnya pemrosesan mengembalikan pencarian gagal


pencarian_ditemukan = False

if pencarian_ditemukan:
info = 'Data yang dicari berhasil ditemukan'
else:
info = 'Data yang dicari tidak ada'

Lebih dari Dua Kondisi (if-elif-else)


Tentunya juga tidak sedikit yang membutuhkan evaluasi banyak kondisi, misalnya hari, bulan,
dls, untuk itu gunakan sintaksis if .. elif .. else ..

# memroses analisis sentimen berdasarkan rating

if rating in [1, 2]:


sentimen = 'Negatif'
elif rating == 5:
sentimen = 'Positif'
else: # [3, 4]
sentimen = 'Netral'

Pengulangan
Dalam perosesan data, kita akan menggunakan pengulangan untuk memroses data yang
berurutan (sequence) atau data yang perlu diiterasi.

Pengulangan dengan sintaksis for

Sejumlah tipe yang berjenis urutan (sequence), bisa diproses iterasi dengan mudah menggunakan
pengulangan for. Contoh tipe yang merupakan urutan: str, list, tuple, dict.
# mengambil konstanta punctuation (tanda baca)
from string import punctuation
print(punctuation) # !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~

for p in punctuation:
print(p)

Contoh lain untuk melakukan iterasi pada tipe dict.

# daftar ID dan nama pengguna


kamus_pengguna = {1: 'andi', 2: 'budi', 3: 'cica', 4: 'dedi'}

for k, v in kamus_pengguna.items():
print('ID {} bernama {}'.format(k, v))

Pengulangan dengan kondisi

Kadang kita perlu untuk melakukan iterasi sampai suatu kondisi terpenuhi, misalnya melakukan
pencarian, maka proses iterasi akan berlangsung terus sampai pencariannya ketemu atau ya
sampai semua sudah diiterasi tapi tidak ketemu.

belum_ketemu = True # inisialisasi sebagai belum ketemu

# pengulangan dengan kondisi asal belum ketemu


while belum_ketemu:
# cari (proses) terus ketika masih belum ketemu
hasil = sebuah_fungsi_pencarian()

if hasil == 'sesuai harapan':


belum_ketemu = False # tidak lanjut iterasi lagi

Menggunakan dan Membuat Fungsi/Prosedur


Di atas kita sudah sempat menggunakan fungsi print() untuk mencetak ke layar. Tidak semua
fungsi bisa langsung dipanggil seperti halnya print(), ada fungsi yang butuh kita ambil dulu dari
modulnya.

Sebagai contoh kita perlu menggunakan fungsi matematika logaritma, tentu akan merepotkan
sekali kalo kita harus membuat sendiri fungsinya. Maka kita menggunakan modul math yang
sudah disediakan oleh Python, untuk menggunakan sejumlah fungsi matematika seperti log(),
sqrt(), juga konstanta seperti bilangan natural e dan konstanta pi.

# menggunakan fungsi dan konstanta dari modul math


from math import log, sqrt, e

print('log(1) adalah {}'.format(log(1, 10))) # base 10


# log(1) adalah 0.0
print('ln(e) adalah {}'.format(log(e))) # base e
# ln(e) adalah 1.0
print('akar kuadrat dari 9 adalah {}'.format(sqrt(9)))
# akar kuadrat dari 9 adalah 3.0

Pada kondisi tertentu, misalnya menghindari circular-import (kondisi dimana dua berkas saling
mengimpor), kita bisa menggunakan command import saja seperti berikut.

# menggunakan konstanta pi dari modul math


import math
jarijari = 10

# penggunaannya tidak bisa langsung pi tapi math.pi


print('lingkaran dengan jari-jari 10, luasnya {}'\
.format(math.pi*jarijari*jarijari))
# lingkaran dengan jari-jari 10, luasnya 314.1592653589793

Bayangkan kalo kita ingin menghitung 3 buah lingkaran dengan nilai jari-jari yang berbeda-
beda, kemudian kita perlu mengulang-ulang lagi memasukkan instruksi di atas, tentu akan
melelahkan. Tapi dengan membungkusnya menjadi sebuah fungsi, kita cukup menuliskannya
satu kali, lalu tinggal memanggilnya berulang-ulang kali.

Pembuatan fungsi/prosedur itu menggunakan sintaksis def seperti dicontohkan berikut. (catatan:
prosedur itu sebuah fungsi yang tidak mengembalikan nilai)
from math import pi
# prosedur hitung luas lingkaran lalu cetak ke layar
def cetak_layar_luas_lingkaran(jarijari):
print('lingkaran dengan jari-jari {}, luasnya {}'\
.format(jarijari, pi*jarijari*jarijari))

Lalu pemanggilannya seperti ini (yang diberikan nilainya ke fungsi disebut masukan atau input
argumen, di bawah ini menggunakan argumen posisi).
cetak_layar_luas_lingkaran(10)
# lingkaran dengan jari-jari 10, luasnya 314.1592653589793
cetak_layar_luas_lingkaran(100)
# lingkaran dengan jari-jari 100, luasnya 31415.926535897932

Gimana agar prosedur yang sudah kita buat di atas, bisa menjadi fungsi, jadi mengembalikan
nilai? Agar bisa digunakan dalam sebuah perhitungan. Caranya adalah menggunakan sintaksis
return.

# fungsi hitung luas persegi panjang dan kembalikan nilainya


def luas_persegi_panjang(panjang, lebar):
luas = panjang * lebar
return luas

# pemanggilannya dengan menggunakan position argument


luas10x20 = luas_persegi_panjang(10, 20)
# pemanggilannya dengan menggunakan keyword argument
luas30x40 = luas_persegi_panjang(panjang=30, lebar=40)

print('luas tanah 10 x 20 adalah {}'.format(luas10x20))


Menggunakan Pustaka Dukungan
Pembahasan sebelum ini hanya terkait fungsi dan modul yang sudah bawaan dalam Python, tapi
seringnya kita membutuhkan fungsi yang lebih luas lagi, termasuk juga untuk Machine Learning
dan Deep Learning. Di situlah kita membutuhkan package manager yang memudahkan kita
melakukan instalasi, memperbarui paket, hingga menghapus paket tersebut dari komputer.

Salah satu package manager yang memiliki koleksi hingga ratusan ribu ragam paket adalah pip,
semuanya bisa kita gunakan dengan syarat perlu terhubung ke internet saat mengoperasikannya.
Saat melakukan instalasi Python, aktifkan juga package manager pip, sehingga berikutnya
punya perintah pip di command prompt/console.

# perintah pip dioperasikan di command prompt windows


C:\> pip freeze

# perintah pip dioperasikan di console (shell) linux/macos


$ pip list

Untuk berikutnya, hanya akan dituliskan perintah pip dan argumennya saja, tanpa prompt di
windows/linux/macos. Beberapa perintah penggunaan pip:

# paket scikit-learn: salah satu pustaka Machine Learning


# proses instalasi scikit-learn, termasuk instalasi
# paket numpy dan scipy sebagai dependensinya
# perintah instalasi scikit-learn
pip install scikit-learn

# misal sudah terinstall paket pandas tapi perlu update


# perintah upgrade paket pandas ke versi paling baru
pip install --upgrade pandas

# misal sudah terinstall paket six tapi tidak dipakai


# perintah untuk hapus paket six
pip uninstall six

Numpy

Numpy adalah pustaka untuk pemrosesan numeric dengan efisien. Jika diperhatikan kembali
pembahasan keahlian matematika yang dibutuhkan, maka paket Numpy inilah yang dibutuhkan
untuk melengkapi kebutuhan terkait sejumlah fungsi Aljabar Linear. Numpy adalah pustaka yang
diakui sebagai standar tipe (lingua franca) untuk interaksi data antar pustaka di Python terkait
pemrosesan numerik.

Sebagai contoh, jika dibandingkan dengan mengimplementasi sendiri sebuah vektor dengan
seribu atau sejuta elemen menggunakan tipe data list, maka implementasi ndarray Numpy
akan jauh lebih efisien sehingga pemrosesannya jauh lebih cepat. ndarray singkatan dari n-
dimension array, sebuah tipe data pada Numpy yang efisien untuk penyimpanan dan pemrosesan
vektor, matriks dan tensor.

Berikut contoh salah satu fungsi perkalian dot dari 2 matriks:


import numpy as np

# membuat matriks dengan bentuk 2 baris 3 kolom


m = np.array([[1, 2, 3],
[6, 7, 8]])
print(m)
# [[1 2 3]
# [6 7 8]]

# membuat matriks identitas 3 (3 baris 3 kolom) tipe int


i = np.identity(3, dtype=int)
print(i)
# [[1 0 0]
# [0 1 0]
# [0 0 1]]

# perkalian m dot i, matriks bentuk (2, 3) dot (3, 3)


# kolom dari matriks m = baris dari matriks i
# menghasilkan matriks bentuk (2, 3)
n = np.dot(m, i)
print(n)
# array([[1, 2, 3],
# [6, 7, 8]])

# sesuai dengan sifat matriks identitas,


# suatu matrix dikalikan dengan matriks identitas
# akan menghasilkan matriks itu sendiri

Pandas

Pandas adalah pustaka untuk melakukan analisis dan manipulasi data yang efisien. Aplikasi
Machine Learning membutuhkan banyak data untuk menemukan pola dan melatih
pengetahuannya untuk menghasilkan model terbaik. Sehingga sebelum kita mulai memrogram
Machine Learning kita perlu melakukan eksplorasi data yang dimiliki terlebih dahulu, karena
itulah kita membutuhkan pustaka seperti Pandas.

Bayangkan sebuah data yang akan digunakan bukan hanya orde ribuan atau ratusan ribu, bahkan
tidak sedikit yang datanya mencapai jutaan. Dalam jumlah data besar seperti itu, kita sulit
mengandalkan aplikasi semacam Google Sheet atau Microsoft Excel untuk melakukan analisis.

Di sini tidak akan dibahas lebih detail, sementara gunakan artikel dan video yang bisa ditemukan
di mesin pencari, sudah banyak sekali, serta dalam bahasa Indonesia.

Scikit-Learn, PyTorch & TensorFlow


Scikit-Learn, PyTorch & TensorFlow adalah pustaka Machine Learning, dengan berbagai
dukungan mulai dari dataset yang bisa langsung digunakan, kemampuan pemrosesan dari
komputer pribadi sampai super komputer, hingga ekosistem pendukung yang mengembangkan
berbagai layanan terkait.

Scikit-Learn banyak digunakan sebagai pustaka Machine Learning yang berbasis statistik, karena
sebelum tahun 2010an, mayoritas pengolahan data Machine Learning berbasis statistik.

Sebaliknya, PyTorch dan TensorFlow adalah pustaka Machine Learning yang berbasis Artifical
Neural Network, atau kini lebih sering disebut sebagai Deep Learning. Sejak sekitar 2010an,
dimana kemampuan komputasi paralel sudah semakin maju, Deep Learning menjadi pilihan
periset maupun praktisi untuk menyelesaikan masalah-masalah yang bisa dipecahkan dengan
Machine Learning, berikut daftar kecanggihan (State-of-the-Art) dari Machine Learning.

Tentunya di luar cakupan artikel ini untuk membahas Scikit-Learn, PyTorch & TensorFlow lebih
detail, pustaka inilah yang menjadi alat utama yang digunakan sehari-hari oleh peneliti maupun
praktisi Machine Learning, sehingga perlu dipelajari secara mendalam bagi yang tertarik
memecahkan masalah dengan Machine Learning.

Anda mungkin juga menyukai