Python : Variabel, Tipe Data dan Operator
[tutorial ini dibuat menggunakan python versi 3.11
]
Variabel
Variabel adalah objek dengan nama tertentu yang berfungsi untuk menyimpan suatu nilai. Nilai pada objek tersebut dapat diakses kembali dengan cara menulis atau memanggil nama variabel tersebut.
Dalam pembuatan nama variabel, terdapat beberapa aturan penamaan yang menjadi standar pada bahasa python, yaitu:
- Variabel dapat terdiri dari kombinasi huruf (
a-z
,A-Z
), angka (0-9
), dan karakter garis bawah (_
). Namun, nama variabel tidak boleh dimulai dengan angka. - Tidak boleh menggunakan kata kunci Python (reserved keywords). Python memiliki kata kunci yang sudah ditentukan dengan makna khusus, seperti
"if"
, “for"
,"while"
, dan lain-lain. - Tidak boleh mengandung spasi. Jika membutuhkan nama variabel dengan dua kata atau lebih, dapat menggunakan garis bawah untuk menggantikan spasi, misalnya
"nama_pengguna"
atau"umur_siswa"
. - Huruf bersifat case-sensitive, artinya huruf kapital dan huruf kecil dianggap berbeda. Misalnya,
"nama"
,"NAMA"
dan"Nama"
semua akan dianggap sebagai variabel yang berbeda. - Sebaiknya pilih nama yang memudahkan pemahaman kode. Gunakan kata-kata yang jelas dan bermakna terkait dengan nilai atau data yang disimpan dalam variabel.
- Aturan penamaan variabel yang baik dapat mengacu pada PEP 8 (Python Enhancement Proposal 8) sebagai panduan resmi untuk penulisan kode dalam bahasa Python.
Contoh-contoh penulisan nama variabel yang benar serta contoh penulisan yang salah dalam bahasa python dapat dilihat pada kode berikut:
Kode
# contoh penamaan yang VALID umur = 25 nama_pengguna = "Ash Ketchum" total_nilai = 90.5 _info = "Pokemon" # contoh penamaan yang TIDAK VALID 4umur = 25 # dimulai dengan angka nama pengguna = "Ash Ketchum" # Mengandung spasi while = "Pikachu" # Menggunakan kata kunci Python
Tipe Data Dasar
Setiap variabel pada python memiliki tipe datanya masing-masing. Variabel pada python menerapkan tipe dinamis (dinamic typing), artinya tidak perlu mendeklarasikan tipe data variabel secara eksplisit. Python secara otomatis menentukan tipe data variabel berdasarkan nilai yang diberikan.
Berikut 6 tipe data dasar yang tersedia pada python :
str
: tipe data berupa teks. Teks didefinisikan menggunakan tanda petik ganda ("..."
) maupun petik tunggal ('...'
)int
: tipe data untuk menyimpan bilangan bulat tanpa nilai desimalfloat
: tipe data untuk menyimpan bilanganfloating point
(dengan angka desimal)complex
: tipe data untuk menyimpan bilangan komplek (formata + bj
), dimanaa
merupakan bagian real danb
bagian imaginerbool
: tipe data biner (True
atauFalse
)NoneType
: (None
) umumnya digunakan sebagai inisiasi nilai variabel yang belum memiliki nilai lainnya.
Kode
# Variabel dan Tipe Data name = "Ash Ketchum" # tipe data str (double quote) sex = 'Male' # tipe data str dengan (single quote) age = 10 # tipe data int weight = 40.5 # tipe data float comp_number = 1 + 2j # tipe data complex student = False # tipe data bool certificate = None # tipe data NoneType
Menampilkan Output pada Layar
Variabel yang sudah dibuat pada bagian sebelumnya dapat ditampilkan pada layar menggunakan fungsi print
. Kita juga dapat mengambil tipe data dari setiap variabel menggunakan fungsi type
dan ditampilkan kembali menggunakan fungsi print
. Fungsi print juga dapat menampilkan beberapa teks dan variabel sekaligus dengan cara memasukkan setiap text atau variabel yang ingin ditampilkan yang dipisahkan menggunakan tanda koma.
Kode
# mencetak nilai variabel print(name) print(sex) print(age) print(weight) print(comp_number) print(student) print(certificate) print("----------------") # mencetak tipe variabel print(type(name)) print(type(sex)) print(type(age)) print(type(weight)) print(type(comp_number)) print(type(student)) print(type(certificate)) print("----------------") # mencetak banyak teks dan variabel # dipisahkan dengan tanda koma print("Nama", name, "umur", age, "berat", weight) # separator antar teks dapat diatur print("Nama", name, "umur", age, "berat", weight, sep="~")
# OUTPUT Ash Ketchum Male 10 40.5 (1+2j) False None ---------------- <class 'str'> <class 'str'> <class 'int'> <class 'float'> <class 'complex'> <class 'bool'> <class 'NoneType'> ---------------- Nama Ash Ketchum umur 10 berat 40.5 Nama~Ash Ketchum~umur~10~berat~40.5
Konversi Tipe Data
Python menyediakan fungsi untuk konversi dari satu tipe data ke tipe yang lain. Konversi ini sering kali diperlukan untuk melakukan operasi dari dua atau lebih variabel dengan tipe data berbeda.
Berikut ini beberapa aturan pada konversi tipe data :
- konversi
str
keint
harus berupa string angka integer misal"100"
. Bentuk lainnya seperti"bukan_angka"
atau bahkan teks dalam formatfloat
:"100.5"
akan menghasilkan error. - konversi
float
keint
, akan selalu menghilangkan angka desimal (pembulatan ke bawah) str
kosong :""
,int
:0
,float
:0.0
, danNone
dikonversi menjadi tipebool
bernilaiFalse
, selainnya akan bernilaiTrue
.- Tipe
bool
:True
akan dikonversi menjadistr
:"True"
,int
:1
, ataufloat
:1.0
, sebaliknya tipebool
:False
akan menjadistr
:"False"
,int
:1
, ataufloat
:1.0
Kode
# konversi tipe data int_str = str(100) # int ke str : 100 -> "100" float_str = str(100.5) # float ke str : 100.5 -> "100.5" bool_str = str(True) # bool ke str : True -> "True" str_int = int("100") # str ke int : "100" -> 100 float_int = int(100.5) # float to int : 100.5 -> 100 bool_int = int(False) # bool ke int : False -> 0 str_float = float("10.5") # str ke float : "10.5" -> 10.5 int_float = float(100) # int to float : 100 -> 100.0 bool_float = float(True) # bool ke float : True -> 1.0 str_bool = bool("pokemon") # str ke bool : "boke" -> True int_bol = bool(0) # int ke bool : 0 -> False float_bol = bool(0.5) # float ke bool : 0.5 -> True
Format Data String
String atau str
adalah tipe data yang menyimpan nilai dalam bentuk teks. Dalam praktiknya, sering kali harus mengombinasikannya dengan variabel dari tipe data lainnya. Terdapat setidaknya 3 cara yang dapat digunakan untuk memformat string hasil kombinasi berbagai tipe data, yaitu dengan %
, format(...)
dan f-string
.
Di antara 3 cara tersebut, saat ini penggunaan f-string
lebih disarankan, karena sintaksnya yang lebih ringkas serta lebih mudah dipahami dibandingkan sintaks %
maupun format
.
Beberapa proses yang dapat dilakukan dalam proses memformat data meliputi penggabungan teks dan variabel, memformat bilangan desimal serta melakukan padding pada teks dan variabel.
Menggabungkan teks dan variabel
Kode
# MENGGGABUNG STRING DAN TIPE DATA LAINNYA # first_name = "Ash" last_name = "Ketchum" age = 10 # format menggunakan % -> %s : string, %d : decimal text_info_1 = "Nama: %s %s, Umur: %d tahun" % (first_name, last_name, age) print(text_info_1) # format menggunakan .format() text_info_2 = "Nama: {} {}, Umur: {} tahun".format(first_name, last_name, age) print(text_info_2) # format menggunakan F-String text_info_3 = f"Nama: {first_name} {last_name}, Umur: {age} tahun" print(text_info_3)
# OUTPUT Nama: Ash Ketchum, Umur: 10 tahun Nama: Ash Ketchum, Umur: 10 tahun Nama: Ash Ketchum, Umur: 10 tahun
Memformat Bilangan Desimal
Saat ditampilkan dalam bentuk teks, kita dapat memformat nilai desimal untuk memiliki presisi tertentu atau dalam notasi tertentu
Kode
# FORMAT DECIMAL # pi = 3.141592653 formatted_pi = f"Pi in 4 digits is {pi:.4f}" print(formatted_pi) # FORMAT SCIENTIFIC # speed_of_light = 299792458 # Format dengan notasi ilmiah biasa (huruf 'e') formatted_1 = f"Kecepatan cahaya = {speed_of_light:.2e} km/s" print(formatted_1) # Format dengan notasi ilmiah besar (huruf 'E') formatted_2 = f"Kecepatan cahaya = {speed_of_light:.4E}" print(formatted_2)
# OUTPUT Pi in 4 digits is 3.1416 Kecepatan cahaya = 3.00e+08 Kecepatan cahaya = 2.9979E+08
Padding
Padding yaitu merubah format teks atau angka sehingga memenuhi jumlah panjang karakter tertentu. Jika teks atau angka yang diberikan memiliki panjang kurang dari yang ditentukan maka akan ditambahkan karakter lain sebagai placeholder sehingga panjang menjadi sama. Secara default padding akan menambahkan spasi kosong, namun kita dapat menggunakan karakter apapun seperti #
, *
, _
dan sebagainya. Penambahan placeholder juga bersiat fleksibel karena dapat dilakukan pada bagian awal, bagian akhir atau keduanya sekaligus.
Kode
# PADDING # a = 5000 b = 225000 c = 15000000 # rata kiri 6 karakter print(f"{a:<8} rata kiri") print(f"{b:<8} rata kiri") print(f"{c:<8} rata kiri") print("----------------------") # rata-kanan sebanyak 6 karakter print(f"{a:>8} rata kanan") print(f"{b:>8} rata kanan") print(f"{c:>8} rata kanan") print("----------------------") # rata tengah 6 karakter print(f"{a:^8} rata tengah") print(f"{b:^8} rata tengah") print(f"{c:^8} rata tengah") print("----------------------") val = "ABCD" print(f"{val:*>10} : padding kiri dengan *") print(f"{val:*<10} : padding kanan dengan *") print(f"{val:*^10} : padding kiri-kanan dengan *") print(f"{val:_^10} : padding kiri-kanan dengan _")
# OUTPUT 5000 rata kiri 225000 rata kiri 15000000 rata kiri ---------------------- 5000 rata kanan 225000 rata kanan 15000000 rata kanan ---------------------- 5000 rata tengah 225000 rata tengah 15000000 rata tengah ---------------------- ******ABCD : padding kiri dengan * ABCD****** : padding kanan dengan * ***ABCD*** : padding kiri-kanan dengan * ___ABCD___ : padding kiri-kanan dengan _
Membaca Input Pengguna
Fungsi input
digunakan untuk membaca nilai input dari pengguna. Saat fungsi input
dipanggil, pengguna harus memasukkan nilai tertentu diikuti menekan enter agar dapat melanjutkan jalannya program.
Hasil dari fungsi input
disimpan dalam tipe str
, meskipun nilai yang dimasukkan berupa angka. Untuk merubahnya menjadi tipe data lain maka perlu dilakukan konversi terlebih dahulu.
Kode
# Input Pengguna first_name = input("Nama depan :") last_name = input("Nama belakang :") full_name = first_name + " " + last_name print(full_name) uang = input("Jumlah uang saat ini :") belanja = input("Nominal belanja :") # Harus melakukan konversi ke int atau float uang_int = int(uang) belanja_int = int(belanja) # menghitung sisa uang sisa = uang_int - belanja_int # penggabungan str dan int dengan f-string info = f"{full_name} memiliki sisa uang {sisa}" print(info)
# OUTPUT # Nama depan : Ash # Nama belakang : Ketchum # Jumlah uang saat ini : 1000 # Nominal belanja : 300 Ash Ketchum Ash Ketchum memiliki sisa uang 700
Operator Aritmetika
Python menyediakan berbagai operator aritmetika yang digunakan yaitu operator penambahan (+
), pengurangan (-
), perkalian (*
), pembagian (/
) hingga perpangkatan (**
). Terdapat juga operator floor division (//
) untuk menghitung nilai bilangan bulat hasil pembagian dan operator modulo (%
) untuk menghitung bilangan sisa hasil pembagian. Operasi juga dapat menggunakan tanda kurung biasa ()
, untuk menentukan urutan pengerjaan operasi sesuai standar dalam matematika.
Kode
# operator aritmetika # operator asignment (=) # memberikan nilai ke variabel a = 10 b = 6 c = 0.5 d = 3 # operator + - / * % // (...) print("a + b =", a + b) # penjumlahan print("a - b =", a - b) # pengurangan print("a x b =", a * b) # perkalian print("a / b =", a / b) # pembagian print("a // b =", a // b) # bilangan bulat pembagian (10/6 = 1 sisa 4) print("a % b =", a % b) # sisa pembagian (10/6 = 1 sisa 4) print("a**b =", a**b) # pemangkatan # contoh operasi yang lebih rumit ekspresi = (a + b) * 100 / (d**c + (a - b) * (c - d)) print("hasil =", ekspresi) # shorthand operator a+=2 # bentuk ringkas dari a = a + 2 a*=5 # bentuk ringkas dari a = a * 5 a**=3 # bentuk ringkas dari a = a**3 # dst
# OUTPUT a + b = 16 a - b = 4 a x b = 60 a / b = 1.6666666666666667 a // b = 1 a % b = 4 a**b = 1000000 hasil = -193.51836383618766
Operator Perbandingan
Operator perbandingan digunakan untuk membandingkan satu nilai dengan nilai lainnya. Perbandingan ini meliputi kesamaan dua nilai atau ketidaksamaan, termasuk membandingkan mana yang lebih besar atau lebih kecil. Operasi perbandingan akan menghasilkan nilai bool
(True
atau False
). Adapun operator yang digunakan untuk perbandingan adalah:
==
: sama dengan!=
: tidak sama dengan>
: lebih besar dari>=
: lebih besar atau sama dengan<
: lebih kecil dari<=
: lebih kecil atau sama dengan
Catatan :
- Nilai
int
:10
sama denganfloat
:10.0
, namun nilai ini tidak sama denganstr
:"10"
. - Perbandingan antar
str
pun bersifat case sensitive sehingga"Abc"
tidak sama dengan"abc"
.
Kode
# Operator perbandingan a = 10 b = 5 c = "10" d = 10.0 # op "==" mengecek kesamaan 2 nilai print("a == b :", a == b) # 10 == 5 : False print("a == c :", a == c) # 10 == "10" : False print("a == d :", a == d) # 10 == 10 : True print("b % 2 = 0 :", b % 2 == 0) # 5 mod 2 == 0 : False print("'Abc' == 'abc' :", "Abc" == "abc") # 'Abc' != 'abc' : False print("-----------------------") # op "!=" mengecek ketidaksamaan 2 nilai print("a != b :", a != b) # 10 != 5 : True print("a != c :", a != c) # 10 != "10" : True print("a != d :", a != d) # 10 != 10 : False print("'Abc' != 'abc' :", "Abc" != "abc") # 'Abc' != 'abc' : True print("-----------------------") # op ">", ">=", "<", "<=" # mengecek berbandingan 2 nilai print("a > 5 :", a > 5) # 10 > 5 : True print("b <= 5 :", b <= 5) # 5 <= 5 : true print("d <= b :", d <= b) # 10 < 5 : False print("a * b > 10 :", a * b > 10) # 10*5 > 10 : True
# OUTPUT a == b : False a == c : False a == d : True b % 2 = 0 : False 'Abc' == 'abc' : False ----------------------- a != b : True a != c : True a != d : False 'Abc' != 'abc' : True ----------------------- a > 5 : True b <= 5 : True d <= b : False a * b > 10 : True
Operator Logika
Tedapat 3 operator logika/boolean untuk mengevaluasi gabungan beberapa kondisi ataupun negasi dari suatu kondisi. Ketiga operator tersebut adalah:
and
: mengembalikan nilaiTrue
jika dan hanya jika seluruh kondisi yang diberikan bernilaiTrue
, selain itu bernilaiFalse
or
: mengembalikan nilaiTrue
jika setidaknya ada satu kondisi yang bernilaiTrue
dari seluruh kondisi, jika semuanya bernlaiFalse
maka akan mengembalikan nilaiFalse
not
: mengembalikan negasi dari suatu kondisi (jika kondisicond
=True
makanot cond
akan mengembalikan nilaiFalse
dan sebaliknya.
Kode
# operator logika/boolean # ( 'and', 'or', dan 'not') a = 5 b = 10 # operator "and" True jika semua kondisi True print((a > 0) and (b > 0)) # True and True = True print((a >= 10) and (b >= 10)) # False and True = False print("-------------------") # operator "or" True jika setidaknya salah satu bernilai True print((a > 0) or (b > 0)) # True or True = True print((a >= 10) or (b >= 10)) # False or True = True print((a > 10) or (b < 10)) # False or False = False print("-------------------") # operator "not" : # not True = False, not False = True print(not (a > b)) # a > b = False, not False = True print("-------------------") print(1 <= a <= 10) # setara dengan (a >= 1) and (a <= 10)
# OUTPUT True False ------------------- True True False ------------------- True ------------------- True
Ringkasan
Pada bagian pertama dari seri tutorial ini, kita telah membahas dasar-dasar Python, dimulai dari variabel, tipe data, format string, konversi tipe data hingga membahas berbagai jenis operator. Variabel memungkinkan kita untuk menyimpan data dalam memori komputer dan mengaksesnya kembali, sementara tipe data menentukan struktur dan sifat pada variabel. Antara satu tipe data dengan tipe lainnya dapat dilakukan konversi sesuai kebutuhan. Selajutnya operator memungkinkan kita untuk melakukan operasi matematika, perbandingan, dan logika pada data sehingga menghasilkan keluaran baru sesuai yang diharapkan.
Dasar-Dasar Pemrograman dengan Python
Selanjutnya : Percabangan (Conditional Statement) dan Perulangan (Loop)