Lewati ke konten
Puguh Sulistyo Pambudi Freelance Web Developer | Guru SMK
  • Beranda
  • Profil Saya
  • Belajar
    • Vibecoding
    • Kecerdasan Buatan
    • Koding
    • Python
    • WordPress
    • Internet of Things
Cari

Tekan Enter untuk melihat semua hasil · Esc untuk menutup

Beranda / Python / Operasi Matematika dan String — Python Bisa Jadi Kalkulator Sekolah!
Python

Operasi Matematika dan String — Python Bisa Jadi Kalkulator Sekolah!

Puguh Sulistyo Pambudi
Puguh Sulistyo Pambudi Mei 19, 2026 · 8 menit baca · 1
Operasi Matematika dan String — Python Bisa Jadi Kalkulator Sekolah!
Daftar Isi
  1. 1 Bagian 1 — Operasi Matematika
  2. Operator Dasar
  3. Urutan Operasi — Sama Seperti Matematika!
  4. Pembagian Menghasilkan Float
  5. 2 Studi Kasus: Kalkulator Nilai Raport Bu Sari
  6. 3 Bagian 2 — Operasi String
  7. Menggabungkan String dengan +
  8. f-String — Cara Paling Keren dan Modern
  9. Format Angka Desimal dengan f-String
  10. Metode-Metode String yang Berguna
  11. 4 Studi Kasus Final: Raport Rapi dengan f-String
  12. 5 Latihan: Kalkulator SPP Bulanan
  13. 6 Rangkuman
  14. 7 Artikel Selanjutnya

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!

Operator Matematika Python

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.

Operasi String Python
# ========================================
# 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.

Operasi string python

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 :,.0f artinya: tampilkan angka dengan pemisah ribuan (koma), tanpa desimal. Jadi 1500000 tampil sebagai 1,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

TopikYang Dipelajari
Operator matematika+ - * / // % **
Urutan operasiKurung dulu, baru kali/bagi, baru tambah/kurang
Pembagian/ selalu float, // hasil bulat
Gabung string"teks" + variabel (perlu str() untuk angka)
f-Stringf"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.

#Belajar Python #Materi Koding SMA #Materi Koding SMK
Puguh Sulistyo Pambudi

Ditulis oleh

Puguh Sulistyo Pambudi
Bagikan
← Sebelumnya Variabel dan Tipe Data — Kotak Penyimpan Info Sekolahmu
Selanjutnya → If-Else — Biar Python Bisa Ambil Keputusan Sendiri

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Artikel Populer

  1. Anatomi Prompt yang Efektif — 5 Komponen Kunci yang Wajib Kamu Tahu Mei 18, 2026
  2. Mengenal IoT Secara Fundamental: Inovasi Smart Farming September 24, 2026
  3. Zero-Shot, One-Shot, Few-Shot — Teknik Dasar Prompting yang Wajib Dikuasai Mei 18, 2026
  4. Role Prompting — Cara Kasih AI ‘Karakter’ yang Tepat untuk Hasil Maksimal Mei 18, 2026
  5. Chain of Thought Prompting — Cara Bikin AI Berpikir Lebih Dalam dan Akurat Mei 18, 2026

Kategori

  • Kecerdasan Buatan 16
  • Python 9
  • Koding 8
  • Vibecoding 2
  • Aplikasi Pendidikan 2
  • Wordpress 1
  • Internet of Things 1
  • Uncategorized 0

© 2026 Puguh Sulistyo Pambudi — Dibuat dengan ❤

Powered by
Necessary cookies enable essential site features like secure log-ins and consent preference adjustments. They do not store personal data.
None
Functional cookies support features like content sharing on social media, collecting feedback, and enabling third-party tools.
None
Analytical cookies track visitor interactions, providing insights on metrics like visitor count, bounce rate, and traffic sources.
None
Advertisement cookies deliver personalized ads based on your previous visits and analyze the effectiveness of ad campaigns.
None
Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies.
None
Powered by