Pemrograman Python: Dari Nol sampai Proyek Mini

Belum masuk. Progresmu tidak tersimpan.

Masuk
  • Bab 3 dari 11
  • 30 menit
  • 1 latihan kode
  • 4 soal kuis

Variabel, Tipe Data, dan Operator

Di bab ini (7 bagian)
  1. Tujuan
  2. Variabel: label untuk sebuah nilai
  3. Tipe data dasar
  4. Konversi tipe
  5. Operator
  6. Kesalahan umum
  7. Rangkuman

Tujuan bab ini

  • Membuat variabel dengan nama yang sah dan mudah dibaca.
  • Membedakan tipe int, float, str, bool, dan None, lalu mengeceknya dengan type().
  • Mengubah tipe data dengan int(), float(), str(), dan bool().
  • Memakai operator aritmatika, perbandingan, logika, dan penugasan.

Variabel: label untuk sebuah nilai

Variabel adalah nama yang menunjuk ke sebuah nilai. Bayangkan stiker nama yang kamu tempel di toples: toplesnya berisi gula, stikernya bertuliskan gula. Saat kamu menyebut gula, Python tahu toples mana yang dimaksud.

umur = 17
tinggi = 165.5
nama = "Ani"
lulus = True
print(nama, umur, tinggi, lulus)

Output:

Ani 17 165.5 True

Tanda = di Python bukan "sama dengan" seperti di matematika. Artinya "simpan nilai di kanan ke nama di kiri". Karena itu umur = umur + 1 sah: hitung dulu umur + 1, lalu simpan hasilnya kembali ke umur.

Python tidak butuh deklarasi tipe. Kamu tidak menulis int umur = 17 seperti di Java atau C. Tipe ditentukan dari nilainya.

Aturan nama variabel

AturanSahTidak sah
Diawali huruf atau underscorenilai, _total1nilai
Hanya huruf, angka, underscorenilai_akhir2nilai-akhir, nilai akhir
Bukan kata kunci Pythonkelasclass, if, for
Case sensitiveNama dan nama itu berbeda-

Konvensinya (PEP 8): pakai snake_case, huruf kecil dengan underscore, misalnya total_harga. Pilih nama yang menjelaskan isinya. total_harga jauh lebih jelas daripada th.

Tipe data dasar

Tabel tipe data Python beserta contohnya

TipeKeteranganContoh
intBilangan bulatumur = 17
floatBilangan desimal (pakai titik, bukan koma)tinggi = 165.5
strTeksnama = "Ani"
boolBenar atau salahlulus = True
NoneTypeTidak ada nilaidata = None

Ada juga list (kumpulan berurutan, [80, 90]) dan dict (pasangan kunci dan nilai, {"nama": "Ani"}). Keduanya dibahas di bagian struktur data.

Perhatikan: True, False, dan None diawali huruf kapital. true huruf kecil akan dianggap nama variabel yang belum ada.

None artinya "belum ada isinya", berbeda dengan 0 atau "". Misalnya nilai ujian yang belum keluar lebih tepat disimpan sebagai None daripada 0, karena 0 berarti nilainya memang nol.

Mengecek tipe dengan type()

print(type(17))
print(type(165.5))
print(type("17"))
print(type(None))

Output:

<class 'int'>
<class 'float'>
<class 'str'>
<class 'NoneType'>

17 dan "17" terlihat mirip, tapi yang kedua adalah teks karena diapit kutip. Ini sumber bug paling sering bagi pemula.

Konversi tipe

Kadang kamu perlu mengubah tipe, misalnya teks "25" menjadi angka agar bisa dijumlah.

angka = int("25")
teks = str(3.14)
print(angka + 5)
print(teks + " adalah pi")
print(int(9.99))
print(float("2.5") * 2)
print(bool(0), bool("halo"))

Output:

30
3.14 adalah pi
9
5.0
False True

Catatan penting: int(9.99) memotong bagian desimal, bukan membulatkan, jadi hasilnya 9. Lalu int("abc") atau int("2.5") akan error ValueError karena teksnya bukan bilangan bulat yang sah. Untuk bool(), nilai "kosong" seperti 0, "", dan None menjadi False, sisanya True.

Operator

Aritmatika

OperatorArtiContohHasil
+ - *Tambah, kurang, kali4 * 312
/Bagi (selalu float)17 / 53.4
//Bagi bulat (dibulatkan ke bawah)17 // 53
%Sisa bagi (modulo)17 % 52
**Pangkat2 ** 38

Analogi // dan %: kamu punya 17 permen untuk 5 teman. Tiap teman dapat 17 // 5 = 3 permen, sisanya 17 % 5 = 2 permen. Trik populer: n % 2 == 0 berarti n genap.

Ingat juga bahwa / selalu menghasilkan float, bahkan 10 / 2 hasilnya 5.0, bukan 5. Urutan hitungnya sama seperti matematika: ** dulu, lalu * / // %, baru + -. Pakai tanda kurung kalau ragu.

Operator pada teks

Beberapa operator juga bekerja pada str, tapi artinya berbeda. + menyambung teks, dan * mengulang teks.

sapaan = "Halo" + " " + "Ani"
tawa = "wk" * 3
print(sapaan)
print(tawa)
print(len(sapaan))

Output:

Halo Ani
wkwkwk
8

Jadi operator yang sama bisa berperilaku lain tergantung tipe datanya. 5 + 5 hasilnya 10, sedangkan "5" + "5" hasilnya "55". Inilah alasan kamu perlu selalu tahu tipe setiap variabel. Fungsi len() di atas menghitung jumlah karakter, termasuk spasi.

Perbandingan dan logika

Operator perbandingan (==, !=, >, <, >=, <=) selalu menghasilkan True atau False. Operator logika menggabungkannya:

  • and: True hanya jika keduanya benar.
  • or: True jika salah satu benar.
  • not: membalik nilai.
a, b = 17, 5
print(a / b, a // b, a % b)
print(2 ** 3)
print(a > b and b > 0)
print(a == 17 or a < 0)
print(not a > b)

Output:

3.4 3 2
8
True
True
False

Baris a, b = 17, 5 mengisi dua variabel sekaligus.

Penugasan

Operator penugasan gabungan adalah singkatan:

skor = 10
skor += 5   # sama dengan skor = skor + 5
skor *= 2   # skor = skor * 2
skor -= 1
print(skor)

Output:

29

Kesalahan umum

  • Memakai = untuk membandingkan. if umur = 17 error; yang benar ==.
  • Menjumlah teks dengan angka. "5" + 3 menghasilkan TypeError. Ubah dulu: int("5") + 3.
  • Menulis desimal dengan koma. 1,5 di Python adalah dua nilai (tuple), bukan satu setengah. Tulis 1.5.
  • Mengira int() membulatkan. int(2.9) hasilnya 2. Pakai round() kalau ingin membulatkan.
  • Menulis true atau none dengan huruf kecil.

Rangkuman

  • Variabel adalah nama untuk nilai; = berarti menyimpan, bukan membandingkan.
  • Nama variabel diawali huruf atau underscore, tanpa spasi, case sensitive, dan sebaiknya snake_case.
  • Tipe dasar: int, float, str, bool, None; cek dengan type(), ubah dengan int(), float(), str(), bool().
  • / selalu float, // bagi bulat, % sisa bagi, ** pangkat.
  • Perbandingan menghasilkan bool, and or not menggabungkan kondisi, += dan kawannya menyingkat penugasan.

Selesaikan bab ini

  1. 1. Baca materi
  2. 2. Latihan kode (1)
  3. 3. Kuis (4 soal)

Latihan kode: Bagi permen dan cek tiket

Lengkapi tiga fungsi:

  • bagi_permen(permen, teman) mengembalikan dua nilai: jatah tiap teman dan sisa permen. Contoh: bagi_permen(17, 5) menghasilkan (3, 2). Petunjuk: return a, b.
  • adalah_genap(n) mengembalikan True bila n genap, selain itu False. Pakai %.
  • boleh_masuk(umur, punya_tiket) mengembalikan True hanya jika umur minimal 17 dan punya tiket.

Cek pemahaman

  1. 1Nama variabel mana yang sah di Python?

  2. 2Apa yang ditampilkan kode berikut?

    a, b = 17, 5
    print(a // b, a % b)
  3. 3Apa hasil dari int(9.99)?

  4. 4Ekspresi "5" + 3 menghasilkan 8.