Tipe Data Primitif & Operator Lengkap
Eksplorasi mendalam integer, float, string, boolean, operator aritmatika, perbandingan, logika boolean, dan operator keanggotaan (in, not in).
- Memahami karakteristik tipe data:
int,float,str,bool, danNoneType. - Melakukan konversi tipe data (Type Casting) dan memahami batasan pembulatan.
- Mengetahui tabel hierarki prioritas operator (Operator Precedence).
- Menguasai teknik String Indexing & Slicing.
1. Tipe Data Primitif (Skalar)
Python memiliki beberapa tipe data bawaan dasar yang siap digunakan langsung:
| Tipe Data | Keyword | Sifat & Deskripsi | Contoh Nilai |
|---|---|---|---|
| Integer | int |
Bilangan bulat tanpa batas ukuran memori (arbitrary precision) | 42, -10, 0, 1000000 |
| Floating Point | float |
Bilangan desimal standar 64-bit IEEE 754 | 3.14159, -0.05, 2.0 |
| String | str |
Urutan karakter Unicode yang bersifat immutable (tidak bisa diubah langsung) | 'Halo', "Python 3" |
| Boolean | bool |
Nilai kebenaran logika biner (Sub-class dari Integer: True == 1, False == 0) |
True, False |
| NoneType | None |
Konstanta singleton yang menyatakan ketiadaan nilai (null) | None |
2. String Indexing & Slicing
Karakter di dalam string dapat diakses menggunakan indeks posisinya (dimulai dari 0 untuk karakter pertama, atau -1 untuk karakter terakhir).
"PYTHON":
Indeks (+) : 0 1 2 3 4 5
Indeks (-) : -6 -5 -4 -3 -2 -1
teks = "PEMROGRAMAN"
# Format Slicing: teks[start : stop : step] (stop bersifat eksklusif)
print(teks[0:3]) # "PEM" (mengambil indeks 0, 1, 2)
print(teks[3:]) # "ROGRAMAN" (dari indeks 3 hingga akhir)
print(teks[:3]) # "PEM" (dari awal hingga sebelum indeks 3)
print(teks[::2]) # "PMRGAA" (melompat setiap 2 karakter)
print(teks[::-1]) # "NAMARGORMEP" (trik membalikkan seluruh string)
3. Operator & Hierarki Prioritas (Precedence)
Ketika beberapa operator digunakan dalam satu baris ekspresi (misal 2 + 3 * 4), Python mengikuti aturan prioritas matematika yang baku (PEMDAS: Parentheses, Exponent, Multiplication/Division, Addition/Subtraction).
| Tingkat Prioritas | Operator | Keterangan |
|---|---|---|
| 1 (Tertinggi) | () |
Tanda kurung (dihitung paling awal) |
| 2 | ** |
Pangkat (Eksponensial) |
| 3 | *, /, //, % |
Perkalian, Pembagian, Floor Division, Modulo |
| 4 | +, - |
Penjumlahan & Pengurangan |
| 5 | ==, !=, >, <, in, is |
Perbandingan & Keanggotaan |
| 6 (Terendah) | not, and, or |
Evaluasi Logika Boolean |
# Contoh Perbedaan Hasil karena Tanda Kurung
hasil1 = 10 + 5 * 2 # 10 + 10 = 20 (Perkalian didahulukan)
hasil2 = (10 + 5) * 2 # 15 * 2 = 30 (Kurung didahulukan)
# Floor Division (//) selalu membulatkan KE BAWAH ke bilangan bulat terdekat
print(7 // 2) # 3
print(-7 // 2) # -4 (Bukan -3! Karena -4 lebih kecil dari -3.5)
4. Kuis Pemahaman & Latihan
x = 2 ** 3 ** 2
print(x)
Klik untuk melihat jawaban & pembahasan
512
Penjelasan: Khusus operator eksponen (
**), Python mengevaluasi dari kanan ke kiri (Right-to-Left Associativity). Jadi yang dihitung duluan adalah 3 ** 2 = 9, kemudian 2 ** 9 = 512 (Bukan (2**3)**2 = 64).
Tantangan 3: Pemotong Domain Email (Email Slicer)
Buat program email_slicer.py yang meminta masukan alamat email pengguna (misal: budi.santoso@gmail.com), lalu pisahkan dan cetak:
• Username: budi.santoso
• Domain: gmail.com
email.split("@") atau temukan posisi simbol @ dengan email.index("@") lalu gunakan string slicing!
| Sintaks / Perintah | Keterangan Fungsi |
|---|---|
type(x) |
Memeriksa tipe data dari suatu variabel (int, float, str, bool) |
int(x), float(x), str(x) |
Melakukan konversi tipe data (type casting) secara eksplisit |
a // b |
Floor division (pembagian bulat membulatkan ke bawah) |
a % b |
Modulus (menghitung sisa hasil bagi) |
a ** b |
Eksponensiasi (perpangkatan: a pangkat b) |
and, or, not |
Operator logika untuk evaluasi kondisi boolean |
Jobsheet 01: Fondasi, Operator & CLI I/O
Tuntaskan seluruh tantangan perhitungan rumus fisika dan konversi suhu di Jobsheet 01.
Python adalah bahasa bertipe kuat (strongly typed), sehingga tidak mengonversi tipe data angka menjadi teks secara otomatis.
# TypeError: can only concatenate str (not "int") to str
umur = 20
pesan = "Umur saya: " + umur
print(pesan)
# Solusi 1: Menggunakan f-string (Direkomendasikan)
umur = 20
print(f"Umur saya: {umur}")
# Solusi 2: Konversi manual dengan str()
pesan = "Umur saya: " + str(umur)
+ pada Python menolak menggabungkan tipe str dengan int. Gunakan f-string atau casting str().
Gunakan evaluasi boolean alami dan hindari perbandingan redundan dengan nilai literal True/False.
# Kurang Pythonic (Perbandingan eksplisit == True)
is_login = True
total_item = 0
if is_login == True:
print("Selamat datang!")
if total_item == 0:
print("Keranjang kosong")
# Pythonic (Memanfaatkan Truth Value Testing)
is_login = True
total_item = 0
if is_login:
print("Selamat datang!")
if not total_item: # 0 otomatis bernilai False (falsy)
print("Keranjang kosong")
== True atau == False. Evaluasi kondisi secara langsung karena lebih natural dan ringkas.
Cek Pemahaman Mandiri
Uji pemahaman Anda terhadap konsep bab ini dengan feedback evaluasi instan.
Berapakah hasil dari operasi aritmatika 17 // 3 dan 17 % 3 di Python?
💡 Pembahasan: Operator // (Floor Division) menghasilkan pembagian bulat ke bawah (17 // 3 = 5), sedangkan % (Modulus) menghasilkan sisa pembagian (17 - (5*3) = 2).
Manakah sintaks f-string yang benar untuk memformat nilai float pi = 3.14159 menjadi 2 angka desimal?
💡 Pembahasan: Format specifier :.2f di dalam kurung kurawal f-string berfungsi membulatkan bilangan pecahan (float) menjadi 2 digit di belakang koma.