Kita sudah bisa menyimpan data di variabel. Sekarang pertanyaannya: data yang sudah disimpan itu mau diapain?
Nah, di sinilah Python mulai terasa seperti senjata rahasia. Python bisa menghitung, mengolah, dan merapikan data jauh lebih cepat daripada kita kerjakan manual. Di artikel ini kita akan belajar dua hal besar sekaligus: operasi matematika dan operasi string (teks) — dua keahlian yang akan kamu pakai di hampir setiap program Python yang pernah dibuat.
Dan seperti biasa, kita akan langsung terapkan ke kasus nyata di sekolah.
Bagian 1 — Operasi Matematika
Kalkulator di tanganmu sudah canggih. Tapi Python jauh lebih canggih karena bisa mengulang perhitungan yang sama untuk ratusan data sekaligus tanpa capek.
Operator Dasar
Python punya tujuh operator matematika yang perlu kamu hafal. Tapi jangan khawatir — sebagian besar sudah kamu kenal dari pelajaran matematika!

Mari kita coba satu per satu langsung di Python:
# Angka-angka nilai Andi
nilai_tugas = 80
nilai_uts = 85
nilai_uas = 90
# Operator dasar
print(nilai_tugas + nilai_uts) # Penjumlahan → 165
print(nilai_uas - nilai_uts) # Pengurangan → 5
print(nilai_tugas * 2) # Perkalian → 160
print(nilai_uts / 2) # Pembagian → 42.5
# Dua operator yang mungkin belum kamu kenal:
jumlah_siswa = 33
kelompok = 5
print(jumlah_siswa // kelompok) # Bagi bulat → 6 (dapat 6 kelompok penuh)
print(jumlah_siswa % kelompok) # Sisa bagi → 3 (ada 3 siswa sisa)
print(2 ** 10) # Pangkat → 1024
💡 Tips: Operator
//dan%(modulo) sangat berguna untuk masalah pembagian kelompok. Misalnya dari 33 siswa dibagi 5 per kelompok: kamu dapat 6 kelompok penuh (33 // 5 = 6) dengan sisa 3 siswa (33 % 5 = 3).
Urutan Operasi — Sama Seperti Matematika!
Python mengikuti aturan PEMDAS yang sama seperti di pelajaran matematika: Pangkat → Kurung → Kali/Bagi → Tambah/Kurang
# Contoh yang SALAH — tanpa kurung
nilai_akhir = 80 + 85 + 90 / 3
print(nilai_akhir) # Output: 195.0 ← SALAH! Hanya 90 yang dibagi 3
# Contoh yang BENAR — pakai kurung
nilai_akhir = (80 + 85 + 90) / 3
print(nilai_akhir) # Output: 85.0 ← ini yang benar
Kesalahan menaruh kurung adalah salah satu bug paling umum pada pemula. Selalu periksa urutan operasimu!
Pembagian Menghasilkan Float
Satu hal yang perlu diingat: operator / di Python selalu menghasilkan float, meskipun hasilnya bilangan bulat.
print(10 / 2) # Output: 5.0 (bukan 5!)
print(9 / 3) # Output: 3.0 (bukan 3!)
print(7 / 2) # Output: 3.5
Kalau kamu mau hasil bilangan bulat, pakai //:
print(10 // 2) # Output: 5
print(9 // 3) # Output: 3
print(7 // 2) # Output: 3 (dibulatkan ke bawah)
Studi Kasus: Kalkulator Nilai Raport Bu Sari
Bu Sari adalah guru Matematika di SMA Nusantara. Setiap akhir semester, beliau menghitung nilai akhir dengan rumus berbobot seperti ini:
Nilai Akhir = (Tugas × 30%) + (UTS × 35%) + (UAS × 35%)
Selama ini Bu Sari menghitung satu per satu di kalkulator fisik. Dengan Python, prosesnya menjadi jauh lebih mudah dan bebas kesalahan hitung.

# ========================================
# Kalkulator Nilai Raport - Bu Sari
# SMA Nusantara, Semester Ganjil 2024
# ========================================
# Data nilai siswa
nama = "Andi Saputra"
nilai_tugas = 80
nilai_uts = 85
nilai_uas = 90
# Hitung nilai akhir berbobot
bobot_tugas = nilai_tugas * 0.30 # 30% dari nilai tugas = 24.0
bobot_uts = nilai_uts * 0.35 # 35% dari nilai UTS = 29.75
bobot_uas = nilai_uas * 0.35 # 35% dari nilai UAS = 31.5
nilai_akhir = bobot_tugas + bobot_uts + bobot_uas # = 85.25
# Tampilkan hasil
print("Nama :", nama)
print("Nilai Tugas :", nilai_tugas, "(bobot 30% =", bobot_tugas, ")")
print("Nilai UTS :", nilai_uts, "(bobot 35% =", bobot_uts, ")")
print("Nilai UAS :", nilai_uas, "(bobot 35% =", bobot_uas, ")")
print("-----------------------------------")
print("Nilai Akhir :", nilai_akhir)
Output:
Nama : Andi Saputra
Nilai Tugas : 80 (bobot 30% = 24.0 )
Nilai UTS : 85 (bobot 35% = 29.75 )
Nilai UAS : 90 (bobot 35% = 31.5 )
-----------------------------------
Nilai Akhir : 85.25
Program ini sudah benar secara logika — tapi outputnya terlihat sedikit berantakan. Nanti di bagian bawah kita akan rapikan dengan f-string!
Bagian 2 — Operasi String
String bukan hanya tempat menyimpan teks. Python bisa menggabungkan, memformat, dan mengubah string dengan berbagai cara yang sangat berguna.

Menggabungkan String dengan +
Sama seperti angka bisa dijumlahkan, string bisa digabungkan menggunakan tanda +:
nama_depan = "Andi"
nama_belakang = "Saputra"
nama_lengkap = nama_depan + " " + nama_belakang
print(nama_lengkap) # Output: Andi Saputra
salam = "Halo, " + nama_lengkap + "! Selamat datang."
print(salam) # Output: Halo, Andi Saputra! Selamat datang.
Perhatikan: kamu perlu secara eksplisit menambahkan spasi " " saat menggabungkan kata. Python tidak otomatis menambahkan spasi.
⚠️ Jangan campur string dan angka langsung!
nilai = 85 # Ini akan ERROR: print("Nilai kamu: " + nilai) # Ini benar — konversi dulu ke string: print("Nilai kamu: " + str(nilai)) # Output: Nilai kamu: 85
f-String — Cara Paling Keren dan Modern
Menggabungkan string dengan + itu bisa merepotkan kalau variabelnya banyak. Ada cara yang jauh lebih bersih dan mudah dibaca: f-string (format string).
Caranya: tambahkan huruf f sebelum tanda kutip, lalu variabel disisipkan di dalam kurung kurawal {...}.
nama = "Andi Saputra"
kelas = "X TKJ 1"
nilai_akhir = 85.25
# Cara lama — repot dan berantakan
print("Nama: " + nama + ", Kelas: " + kelas + ", Nilai: " + str(nilai_akhir))
# Cara f-string — bersih dan mudah dibaca
print(f"Nama: {nama}, Kelas: {kelas}, Nilai: {nilai_akhir}")
Kedua perintah di atas menghasilkan output yang sama, tapi f-string jauh lebih mudah ditulis dan dibaca!
Format Angka Desimal dengan f-String
f-String punya fitur spesial: kamu bisa mengatur berapa digit angka di belakang koma langsung di dalam kurung kurawal.
nilai_akhir = 85.25
persentase = 97.333333
# Tanpa format — berantakan
print(f"Nilai akhir: {nilai_akhir}") # Nilai akhir: 85.25
print(f"Kehadiran: {persentase}%") # Kehadiran: 97.333333%
# Dengan :.2f — rapi, 2 angka di belakang koma
print(f"Nilai akhir: {nilai_akhir:.2f}") # Nilai akhir: 85.25
print(f"Kehadiran: {persentase:.1f}%") # Kehadiran: 97.3%
# Dengan :06.2f — dipadankan sampai 6 karakter total
print(f"Nilai: {nilai_akhir:06.2f}") # Nilai: 085.25
Format :.2f artinya: tampilkan sebagai float dengan 2 angka di belakang koma. Ini sangat berguna untuk laporan nilai yang harus terlihat konsisten.
Metode-Metode String yang Berguna
String di Python punya banyak “kemampuan bawaan” yang disebut metode. Cukup tambahkan titik setelah nama variabel:
nama = "andi saputra"
print(nama.upper()) # Output: ANDI SAPUTRA
print(nama.lower()) # Output: andi saputra
print(nama.title()) # Output: Andi Saputra ← huruf awal tiap kata kapital
print(nama.strip()) # Hapus spasi di kiri dan kanan
print(len(nama)) # Output: 12 (panjang string, termasuk spasi)
Dalam konteks sekolah, .title() sangat berguna untuk memastikan nama siswa selalu tampil dengan format yang benar — huruf kapital di awal setiap kata — meskipun saat input pengguna salah ketik:
input_nama = input("Masukkan nama siswa: ")
nama_rapi = input_nama.strip().title()
print(f"Nama tersimpan: {nama_rapi}")
Kalau pengguna mengetik " andi saputra " (dengan spasi berlebih dan huruf kecil), hasil .strip().title() akan menjadi "Andi Saputra" — rapi dan konsisten!
Studi Kasus Final: Raport Rapi dengan f-String
Ingat program Bu Sari tadi yang outputnya agak berantakan? Sekarang kita rapikan dengan f-string:
# ========================================
# Kalkulator Nilai Raport — Versi Rapi
# ========================================
nama = "Andi Saputra"
kelas = "X MIPA 2"
nilai_tugas = 80
nilai_uts = 85
nilai_uas = 90
# Hitung nilai akhir
nilai_akhir = (nilai_tugas * 0.30) + (nilai_uts * 0.35) + (nilai_uas * 0.35)
# Tentukan predikat
# (kita akan belajar if-else di artikel berikutnya,
# untuk sekarang kita hardcode dulu)
predikat = "B+"
# Tampilkan raport rapi dengan f-string
print("=" * 42)
print(f"{'LAPORAN NILAI SEMESTER':^42}")
print(f"{'SMA Nusantara':^42}")
print("=" * 42)
print(f" Nama : {nama.title():<20} Kelas: {kelas}")
print("-" * 42)
print(f" Tugas : {nilai_tugas:>3} (bobot 30%) = {nilai_tugas * 0.30:>5.2f}")
print(f" UTS : {nilai_uts:>3} (bobot 35%) = {nilai_uts * 0.35:>5.2f}")
print(f" UAS : {nilai_uas:>3} (bobot 35%) = {nilai_uas * 0.35:>5.2f}")
print("-" * 42)
print(f" Nilai Akhir : {nilai_akhir:.2f} | Predikat: {predikat}")
print("=" * 42)
Output:
==========================================
LAPORAN NILAI SEMESTER
SMA Nusantara
==========================================
Nama : Andi Saputra Kelas: X MIPA 2
------------------------------------------
Tugas : 80 (bobot 30%) = 24.00
UTS : 85 (bobot 35%) = 29.75
UAS : 90 (bobot 35%) = 31.50
------------------------------------------
Nilai Akhir : 85.25 | Predikat: B+
==========================================
Jauh lebih rapi! Ada beberapa trik formatting baru di sini yang patut dicatat:
"=" * 42— mengulang karakter=sebanyak 42 kali (cara mudah bikin garis pemisah){teks:^42}— teks rata tengah dalam lebar 42 karakter{nilai:>3}— angka rata kanan dalam lebar 3 karakter{nilai:<20}— teks rata kiri dalam lebar 20 karakter
Latihan: Kalkulator SPP Bulanan
Buat file baru bernama kalkulator_spp.py. Program ini akan menghitung total tagihan SPP seorang siswa berdasarkan data yang dimasukkan:
# ============================
# Kalkulator Tagihan SPP
# ============================
nama = input("Nama siswa : ")
kelas = input("Kelas : ")
spp_bulanan = float(input("SPP per bulan (Rp): "))
bulan_nunggak = int(input("Bulan belum bayar : "))
# Hitung tagihan
total_tagihan = spp_bulanan * bulan_nunggak
denda = total_tagihan * 0.05 # denda 5%
total_bayar = total_tagihan + denda
# Tampilkan tagihan
print()
print("=" * 40)
print(f"{'TAGIHAN SPP':^40}")
print("=" * 40)
print(f" Nama : {nama.title()}")
print(f" Kelas : {kelas.upper()}")
print("-" * 40)
print(f" SPP/bulan : Rp {spp_bulanan:,.0f}")
print(f" Tunggakan : {bulan_nunggak} bulan")
print(f" Total pokok : Rp {total_tagihan:,.0f}")
print(f" Denda (5%) : Rp {denda:,.0f}")
print("-" * 40)
print(f" TOTAL BAYAR : Rp {total_bayar:,.0f}")
print("=" * 40)
💡 Format
:,.0fartinya: tampilkan angka dengan pemisah ribuan (koma), tanpa desimal. Jadi1500000tampil sebagai1,500,000. Cocok untuk angka uang!
Coba jalankan dan isi datanya. Kalau outputnya tampil rapi seperti struk pembayaran — kamu sudah menguasai operasi matematika dan string di Python!
Rangkuman
| Topik | Yang Dipelajari |
|---|---|
| Operator matematika | + - * / // % ** |
| Urutan operasi | Kurung dulu, baru kali/bagi, baru tambah/kurang |
| Pembagian | / selalu float, // hasil bulat |
| Gabung string | "teks" + variabel (perlu str() untuk angka) |
| f-String | f"Nama: {nama}, Nilai: {nilai:.2f}" |
| Metode string | .upper() .lower() .title() .strip() len() |
| Format angka | :.2f desimal, :>5 rata kanan, :, pemisah ribuan |
Artikel Selanjutnya
Di artikel berikutnya kita akan belajar If-Else — cara Python “berpikir” dan mengambil keputusan sendiri. Dengan if-else, program kita bisa otomatis menentukan apakah seorang siswa lulus, perlu remedi, atau tidak lulus, tanpa kita hitung manual!
Ada pertanyaan soal operator atau f-string? Tinggalkan di kolom komentar! 💬
Artikel ini merupakan bagian dari seri “Belajar Python untuk Sekolah” — panduan coding Python bergaya santai untuk pelajar SMA/SMK/MA Indonesia.
Tinggalkan Balasan