Soal 1Apa yang ditampilkan kode ini?
print(type(10 / 2))
Bilangan dan float
Pelajari tipe numerik Python dari dasar. Cakup int vs float, operator aritmetika, pembagian, dan presisi float.
Python punya dua tipe angka
Python punya dua tipe angka utama untuk bekerja dengan bilangan: int untuk bilangan bulat dan float untuk bilangan desimal.
Keduanya angka, jadi kamu bisa melakukan semua operasi dasar — penjumlahan, pengurangan, perkalian, pembagian dan sisa bagi — dengan salah satunya.
Tetapi penulisan dan ketepatannya berbeda, jadi kamu pilih yang sesuai untuk tiap situasi.
Tulis tanpa . dan kamu dapat int.
Tulis dengan . dan kamu dapat float.
Apapun pilihannya, type() memberitahumu mana yang sedang kamu pegang.
Walau nilainya tampak seperti bilangan bulat, menambahkan .0 seperti 3.0 mengubahnya menjadi float. Sebaliknya, cukup menulis 175 tetap int.
Angka negatif bekerja sama — -5 adalah int, -5.5 adalah float.
# int (bilangan bulat)
age = 25
print(type(age)) # <class 'int'>
# float (bilangan desimal)
weight = 175.5
print(type(weight)) # <class 'float'>
# "3" yang sama tapi tipe berbeda tergantung cara penulisan
print(type(3)) # <class 'int'>
print(type(3.0)) # <class 'float'>
# Angka negatif juga begitu
print(type(-10)) # <class 'int'>
print(type(-10.5)) # <class 'float'>
Tur cepat operator
Ada 7 operator yang kamu gunakan untuk operasi numerik. Empat operator dasar + - * / bekerja seperti bahasa lain, tetapi // (pembagian bulat), % (sisa bagi) dan ** (pangkat) sering muncul di Python, jadi layak dipelajari dengan baik.
| Operator | Arti | Contoh | Hasil |
|---|---|---|---|
| + | Penjumlahan | 10 + 3 | 13 |
| - | Pengurangan | 10 - 3 | 7 |
| * | Perkalian | 10 * 3 | 30 |
| / | Pembagian (selalu float) | 10 / 3 | 3.3333... |
| // | Pembagian bulat (memotong desimal) | 10 // 3 | 3 |
| % | Sisa bagi | 10 % 3 | 1 |
| ** | Pangkat | 2 ** 10 | 1024 |
/ mengembalikan float bahkan antara int
10 / 2 menghasilkan 5.0 (float), bukan 5.
/ di Python dirancang untuk selalu mengembalikan float, jadi hasilnya float walau kedua operan adalah int.
Jika kamu ingin hasil berupa bilangan bulat, gunakan //.
# Operasi dasar
print(10 + 3) # 13
print(10 - 3) # 7
print(10 * 3) # 30
# Pembagian selalu mengembalikan float
print(10 / 3) # 3.3333333333333335
print(10 / 2) # 5.0 (tetap float walau pembagiannya habis)
# Pembagian bulat (memotong) dan sisa bagi
print(10 // 3) # 3
print(10 % 3) # 1
# Pangkat: a ** b berarti "a pangkat b"
print(2 ** 10) # 1024
print(3 ** 2) # 9
print(2 ** 0.5) # 1.4142135623730951 (dipakai seperti akar kuadrat)
Operator penugasan gabungan (+= / -= dll.)
Pola seperti "x = x + 1" — di mana kamu melakukan sesuatu pada sebuah variabel lalu menyimpan hasilnya kembali ke variabel itu sendiri — sering muncul.
Kamu bisa menyingkatnya menjadi "x += 1", dan bentuk singkat ini disebut operator penugasan gabungan.
Setiap operator `+ - / // % * punya bentuk gabungannya.
Bentuk singkat adalah cara menulis satu baris untuk ide "lakukan sesuatu pada dirimu sendiri lalu simpan kembali".
Di dalamnya, ia bekerja persis seperti bentuk panjang di sebelah kanan.
Contohnya, inilah yang dilakukan tiap operator saat x = 10.
score = 10
score += 5 # 10 + 5 -> 15
print(score) # 15
score *= 2 # 15 * 2 -> 30
print(score) # 30
score -= 7 # 30 - 7 -> 23
print(score) # 23
# Juga bekerja dengan float
weight = 60.0
weight += 1.5
print(weight) # 61.5
Mencampur int dan float dalam operasi
Ketika kamu mencampur int dan float, hasilnya selalu float. Itu karena Python otomatis menaikkan ke tipe dengan ketepatan lebih tinggi.
Seperti disebut di atas, / (pembagian) mengembalikan float bahkan antara int, sedangkan // (pembagian bulat) mengembalikan int ketika kedua operan adalah int.
int + int = int.
Tetapi / selalu mengembalikan float.
Jika salah satu sisi adalah float, hasilnya float.
# int dengan int tetap int
print(10 + 3) # 13 -> int
print(type(10 + 3)) # <class 'int'>
# Jika salah satu sisi adalah float, hasilnya float
print(10 + 3.0) # 13.0
print(type(10 + 3.0)) # <class 'float'>
# / mengembalikan float bahkan antara int
print(10 / 2) # 5.0
print(type(10 / 2)) # <class 'float'>
# // tetap int ketika keduanya int
print(10 // 3) # 3
print(type(10 // 3)) # <class 'int'>
# // menjadi float jika salah satu sisi float
print(10 // 3.0) # 3.0
print(type(10 // 3.0)) # <class 'float'>
float punya ketepatan terbatas
Komputer menyimpan float sebagai pendekatan biner. Akibatnya, bahkan perhitungan yang tampak sederhana pun bisa menghasilkan kesalahan kecil.
Contoh di bawah ini adalah "jebakan float" klasik — semua pemula tersandung di sini pada suatu titik.
Gunakan Decimal saat butuh aritmetika eksak
Dalam situasi di mana bahkan kesalahan kecil pun tidak dapat diterima — seperti menghitung uang — kamu bisa melakukan aritmetika desimal eksak menggunakan tipe Decimal dari pustaka standar. Kita tidak akan membahasnya di artikel ini, tetapi ingatlah: "float adalah pendekatan" dan "ada alat lain untuk aritmetika eksak".
Konversi tipe dengan int() dan float()
Untuk berpindah antar tipe numerik, gunakan fungsi bawaan int() dan float().
Satu hal yang perlu diperhatikan: int() memotong bagian desimal — bukan membulatkan. Jadi memberikan 3.9 ke int() menghasilkan 3, bukan 4. Untuk nilai negatif, ia membulatkan ke arah 0, jadi -3.9 menjadi -3, bukan -4.
# float -> int adalah "memotong" (BUKAN membulatkan!)
print(int(3.9)) # 3
print(int(3.1)) # 3
print(int(-3.9)) # -3 (membulatkan ke arah 0)
# int -> float hanya menambah .0
print(float(5)) # 5.0
print(float(-2)) # -2.0
# Menggunakan konversi melalui variabel
a = 3.9
a = int(a)
print(a, type(a)) # 3 <class 'int'>
b = 5
b = float(b)
print(b, type(b)) # 5.0 <class 'float'>
Di artikel ini, kamu telah belajar:
- Perbedaan antara int dan float
- Pangkat dengan "**" dan penugasan gabungan (+= dan teman-temannya)
- Perbedaan tipe hasil antara "/" (pembagian) dan "//" (pembagian bulat)
- Masalah ketepatan float
- Konversi tipe dengan int() / float()
Cek Pemahaman
Jawab setiap pertanyaan satu per satu.
Soal 2Apa yang ditampilkan kode ini?
x = 10
x **= 3
print(x)`
Soal 3Apa yang ditampilkan kode ini?print(int(-3.9))