Pelajari dasar-dasar pemrograman menggunakan bahasa Python, mulai dari algoritma, flowchart, pseudocode, variabel, tipe data, operator, input, output, seleksi, dan perulangan.
Materi ini juga membahas fungsi, rekursi, list, tuple, dictionary, set, file handling, serta pengolahan data untuk membangun program Python yang terstruktur dan mudah dikembangkan.
Pertemuan
Konsep Python
Evaluasi Utama
Pemrograman adalah proses menyusun instruksi agar komputer dapat menyelesaikan suatu masalah secara sistematis.
Python adalah bahasa pemrograman tingkat tinggi yang dirancang agar mudah dibaca, dipahami, dan digunakan. Python memiliki sintaks yang sederhana sehingga cocok untuk pemula yang baru mempelajari pemrograman.
Dalam pembelajaran ini, Python digunakan untuk memahami konsep dasar pemrograman, seperti algoritma, variabel, tipe data, operator, input, output, seleksi, perulangan, fungsi, struktur data, dan pengolahan file.
Sebelum menulis kode, seorang programmer perlu memahami masalah yang akan diselesaikan. Masalah tersebut kemudian diubah menjadi algoritma, ditulis dalam bentuk pseudocode atau flowchart, lalu diterjemahkan ke dalam kode Python.
Memahami masalah, kebutuhan input, proses, dan output.
Menyusun langkah penyelesaian menggunakan pseudocode atau flowchart.
Menerjemahkan algoritma ke dalam program menggunakan bahasa Python.
Menjalankan program, menemukan kesalahan, dan memperbaiki kode.
Program berikut meminta nama pengguna kemudian menampilkan pesan sapaan. Contoh ini menunjukkan penggunaan input dan output dalam Python.
Fungsi input() digunakan untuk menerima
data dari pengguna, sedangkan fungsi print()
digunakan untuk menampilkan informasi ke layar.
nama = input("Masukkan nama Anda: ")
print(f"Halo, {nama}!")
print("Selamat belajar Python.")
Setelah menyelesaikan pembelajaran ini, mahasiswa diharapkan mampu memahami konsep dasar pemrograman dan menerapkannya menggunakan bahasa Python.
Pembelajaran Dasar-Dasar Pemrograman bertujuan untuk membangun kemampuan berpikir logis, sistematis, dan komputasional dalam menyelesaikan masalah menggunakan program Python.
Mahasiswa tidak hanya mempelajari sintaks Python, tetapi juga memahami proses analisis masalah, perancangan solusi, implementasi kode, pengujian, dan perbaikan program.
Mahasiswa mampu memahami konsep-konsep dasar pemrograman dan struktur bahasa Python.
Mahasiswa mampu menerapkan konsep pemrograman dalam bentuk program Python yang dapat dijalankan.
Mahasiswa mampu menerapkan sikap bertanggung jawab dan disiplin dalam proses pengembangan program.
| Tahap | Materi | Kompetensi yang Diharapkan |
|---|---|---|
| Pertemuan 1 | Algoritma dan Flowchart | Mampu merancang langkah penyelesaian masalah secara sistematis. |
| Pertemuan 2 | Struktur dan Tipe Data Python | Mampu menggunakan variabel, tipe data, dan operator. |
| Pertemuan 3-4 | Input, Output, dan Seleksi | Mampu membuat program dengan alur keputusan. |
| Pertemuan 5-6 | Perulangan | Mampu mengotomatisasi proses berulang menggunakan loop. |
| Pertemuan 7 | Prosedur dan Fungsi | Mampu membuat program yang modular dan mudah digunakan kembali. |
| Pertemuan 9-14 | Struktur Data dan File | Mampu mengelola data menggunakan list, dictionary, dan file. |
| Pertemuan 15-16 | Evaluasi dan Project | Mampu mengembangkan aplikasi Python sederhana secara utuh. |
Fokus utama pembelajaran ini bukan hanya menghafalkan sintaks Python, tetapi memahami cara berpikir dalam menyelesaikan masalah. Tuliskan algoritmanya, buat programnya, uji hasilnya, lalu perbaiki berdasarkan kesalahan yang ditemukan.
Algoritma adalah urutan langkah-langkah logis, sistematis, dan terbatas yang digunakan untuk menyelesaikan suatu masalah.
Dalam pemrograman, algoritma digunakan sebagai dasar untuk menyusun solusi sebelum solusi tersebut diterjemahkan ke dalam bahasa pemrograman seperti Python.
Algoritma tidak bergantung pada bahasa pemrograman tertentu. Satu algoritma dapat diimplementasikan menggunakan Python, Java, C++, JavaScript, atau bahasa pemrograman lainnya.
Dengan merancang algoritma terlebih dahulu, proses penulisan program menjadi lebih terarah, mudah dipahami, dan lebih mudah diperbaiki apabila terjadi kesalahan.
Data yang digunakan sebagai masukan ke dalam program.
Langkah pengolahan data untuk menghasilkan solusi.
Hasil yang diperoleh setelah data diproses.
Algoritma harus berhenti setelah menyelesaikan langkahnya.
Diketahui panjang dan lebar sebuah persegi panjang. Buatlah algoritma untuk menghitung luas persegi panjang.
Luas dihitung menggunakan rumus:
Nilai luas persegi panjang.
Setelah algoritma dirancang, langkah-langkah tersebut dapat diterjemahkan menjadi program Python.
# Program menghitung luas persegi panjang
panjang = float(input("Masukkan panjang: "))
lebar = float(input("Masukkan lebar: "))
luas = panjang * lebar
print(f"Luas persegi panjang adalah: {luas}")
| Kode | Penjelasan |
|---|---|
input()
|
Digunakan untuk menerima masukan dari pengguna dalam bentuk teks. |
float()
|
Mengubah data masukan menjadi bilangan desimal agar dapat digunakan dalam operasi matematika. |
panjang * lebar
|
Menghitung luas berdasarkan rumus persegi panjang. |
f-string
|
Menampilkan nilai variabel ke dalam teks menggunakan format yang mudah dibaca. |
print()
|
Menampilkan hasil program ke layar. |
Algoritma harus mampu menghasilkan solusi yang sesuai dengan permasalahan.
Algoritma sebaiknya menggunakan waktu dan sumber daya secara optimal.
Langkah-langkah algoritma harus mudah dibaca, dipahami, dan dikomunikasikan.
Buatlah algoritma dan program Python untuk menghitung total harga belanja.
total = harga * jumlah
Algoritma merupakan dasar dari setiap program. Sebelum menulis kode Python, pahami masalah, tentukan input dan output, susun langkah penyelesaian, kemudian implementasikan dan uji program tersebut.
Flowchart adalah diagram yang digunakan untuk menggambarkan alur logika atau langkah-langkah penyelesaian suatu masalah secara visual.
Flowchart membantu programmer memahami alur kerja program sebelum menuliskannya ke dalam bahasa pemrograman Python. Setiap proses, input, output, dan keputusan digambarkan menggunakan simbol tertentu.
Dengan menggunakan flowchart, kesalahan logika dapat ditemukan lebih awal. Flowchart juga memudahkan komunikasi antara programmer, dosen, maupun anggota tim pengembang.
Flowchart berbeda dari kode program. Flowchart berfokus pada alur penyelesaian masalah, sedangkan Python digunakan untuk mengimplementasikan alur tersebut menjadi program yang dapat dijalankan.
Menunjukkan awal atau akhir algoritma.
Menunjukkan proses atau perhitungan.
Menunjukkan input atau output program.
Menunjukkan pengambilan keputusan.
Menunjukkan arah alur proses.
Menghubungkan alur yang terpisah.
| Simbol | Nama | Kegunaan | Contoh dalam Python |
|---|---|---|---|
| Oval | Terminator | Menunjukkan titik mulai dan selesai. | Awal dan akhir program. |
| Persegi Panjang | Process | Menunjukkan instruksi atau proses perhitungan. |
total = harga * jumlah
|
| Jajar Genjang | Input / Output | Menunjukkan data yang masuk atau keluar. |
input() dan print()
|
| Belah Ketupat | Decision | Menunjukkan kondisi atau percabangan. |
if nilai >= 75:
|
| Panah | Flow Line | Menunjukkan arah perpindahan proses. | Urutan eksekusi kode. |
Buatlah flowchart untuk menentukan apakah seorang mahasiswa dinyatakan lulus atau tidak berdasarkan nilai ujian.
Mulai
|
Input nilai
|
Apakah nilai >= 75?
| Ya | Tidak
v v
Tampilkan "Lulus" Tampilkan "Tidak Lulus"
| |
+---------+----------+
|
Selesai
Flowchart sebelumnya dapat diterjemahkan ke dalam kode
Python menggunakan input dan percabangan if-else.
# Menentukan status kelulusan
nilai = float(input("Masukkan nilai: "))
if nilai >= 75:
print("Lulus")
else:
print("Tidak Lulus")
| Bagian Flowchart | Implementasi Python | Fungsi |
|---|---|---|
| Input | input() |
Menerima data dari pengguna. |
| Process | Assignment atau operasi | Mengolah data. |
| Decision | if, elif, else |
Menentukan jalur program. |
| Output | print() |
Menampilkan hasil. |
| Loop | for atau while |
Mengulangi proses. |
Menampilkan proses yang berjalan berurutan dari awal sampai akhir tanpa percabangan.
Input → Process → Output
Memiliki percabangan berdasarkan kondisi tertentu.
Condition → True / False
Memiliki proses yang diulang selama kondisi tertentu terpenuhi.
Condition → Process → Repeat
Buatlah flowchart dan program Python untuk menentukan kategori usia seseorang.
if, elif, dan else.
Flowchart membantu menggambarkan algoritma secara visual. Dengan flowchart, programmer dapat memahami urutan proses, percabangan, dan perulangan sebelum menerapkannya ke dalam program Python.
Tahapan pemrograman adalah proses sistematis yang dilakukan untuk mengubah suatu permasalahan menjadi program Python yang dapat dijalankan dan menghasilkan solusi.
Membuat program tidak hanya sekadar menulis kode. Programmer harus memahami permasalahan, merancang solusi, menerjemahkan solusi ke dalam Python, kemudian menguji dan memperbaiki program tersebut.
Tahapan ini membantu menghasilkan program yang benar, terstruktur, mudah dibaca, mudah dikembangkan, dan sesuai dengan kebutuhan pengguna.
Memahami masalah yang akan diselesaikan, menentukan kebutuhan pengguna, serta mengidentifikasi input, proses, dan output.
Hasil:Deskripsi masalah dan kebutuhan program.
Menyusun algoritma, flowchart, dan pseudocode sebagai rancangan penyelesaian masalah.
Hasil:Algoritma dan rancangan alur program.
Menerjemahkan algoritma ke dalam kode menggunakan bahasa pemrograman Python.
Hasil:Source code Python.
Menjalankan program dengan berbagai input untuk memastikan hasilnya sesuai kebutuhan.
Hasil:Data pengujian dan hasil pengamatan.
Menemukan dan memperbaiki kesalahan sintaks, kesalahan logika, maupun kesalahan saat program dijalankan.
Hasil:Program yang telah diperbaiki.
Menjelaskan cara kerja program dan melakukan perubahan atau pengembangan jika diperlukan.
Hasil:Dokumentasi dan versi program yang lebih baik.
Buatlah program Python untuk menghitung nilai rata-rata tiga mata pelajaran seorang mahasiswa.
# Program menghitung rata-rata nilai
nilai_1 = float(input("Masukkan nilai pertama: "))
nilai_2 = float(input("Masukkan nilai kedua: "))
nilai_3 = float(input("Masukkan nilai ketiga: "))
rata_rata = (nilai_1 + nilai_2 + nilai_3) / 3
print(f"Nilai rata-rata: {rata_rata:.2f}")
if rata_rata >= 75:
print("Status: Lulus")
else:
print("Status: Tidak Lulus")
| No. | Input Nilai | Rata-Rata | Output yang Diharapkan |
|---|---|---|---|
| 1 | 80, 75, 85 | 80 | Lulus |
| 2 | 60, 70, 65 | 65 | Tidak Lulus |
| 3 | 75, 75, 75 | 75 | Lulus |
| 4 | 90, 85, 95 | 90 | Lulus |
Kesalahan penulisan sintaks Python sehingga program tidak dapat dijalankan.
print("Halo"
Kesalahan yang terjadi ketika program sedang dijalankan.
10 / 0
Program dapat dijalankan, tetapi menghasilkan output yang salah.
luas = panjang + lebar
Buatlah program Python untuk menghitung total pembayaran pada sebuah toko.
Tahapan pemrograman membantu programmer menyelesaikan masalah secara teratur. Proses tersebut dimulai dari analisis masalah, perancangan algoritma, implementasi kode Python, pengujian, debugging, hingga dokumentasi dan pemeliharaan program.
Pseudocode adalah penulisan langkah-langkah algoritma menggunakan bahasa sederhana dan terstruktur sebelum diterjemahkan menjadi kode Python.
Pseudocode atau kode semu merupakan cara untuk mendeskripsikan algoritma menggunakan bahasa manusia yang menyerupai struktur kode program.
Pseudocode tidak memiliki aturan sintaks yang sangat ketat seperti Python. Oleh karena itu, pseudocode dapat digunakan untuk merancang solusi tanpa memikirkan detail penulisan bahasa pemrograman terlebih dahulu.
Setelah logika pseudocode sudah benar, setiap langkah dapat diterjemahkan menjadi kode Python yang dapat dieksekusi oleh komputer.
Programmer dapat memikirkan solusi tanpa terganggu aturan sintaks Python.
Pseudocode dapat dipahami oleh orang yang belum menguasai bahasa Python.
Kesalahan logika dapat diperbaiki sebelum program ditulis dalam bentuk kode.
| Kata Kunci | Fungsi | Contoh |
|---|---|---|
START |
Menandai awal algoritma. | START |
END |
Menandai akhir algoritma. | END |
INPUT |
Menerima data dari pengguna. | INPUT nilai |
OUTPUT |
Menampilkan hasil kepada pengguna. | OUTPUT total |
SET |
Memberikan nilai kepada variabel. | SET total = harga * jumlah |
IF - ELSE |
Membuat percabangan. | IF nilai >= 75 THEN |
FOR |
Mengulang proses dengan jumlah tertentu. | FOR i FROM 1 TO 5 |
WHILE |
Mengulang proses berdasarkan kondisi. | WHILE password != benar |
Buatlah algoritma untuk menghitung luas persegi panjang berdasarkan panjang dan lebar yang dimasukkan oleh pengguna.
START
INPUT panjang
INPUT lebar
SET luas = panjang * lebar
OUTPUT luas
END
Pseudocode sebelumnya dapat diterjemahkan ke dalam kode Python sebagai berikut:
# Menghitung luas persegi panjang
panjang = float(input("Masukkan panjang: "))
lebar = float(input("Masukkan lebar: "))
luas = panjang * lebar
print(f"Luas persegi panjang: {luas}")
START
INPUT nilai
IF nilai >= 75 THEN
OUTPUT "Lulus"
ELSE
OUTPUT "Tidak Lulus"
END IF
END
nilai = float(input("Masukkan nilai: "))
if nilai >= 75:
print("Lulus")
else:
print("Tidak Lulus")
FOR
START
SET total = 0
FOR i FROM 1 TO 5
SET total = total + i
END FOR
OUTPUT total
END
total = 0
for i in range(1, 6):
total = total + i
print(total)
FUNCTION hitung_luas(panjang, lebar)
SET luas = panjang * lebar
RETURN luas
END FUNCTION
START
INPUT panjang
INPUT lebar
SET hasil = hitung_luas(panjang, lebar)
OUTPUT hasil
END
def hitung_luas(panjang, lebar):
luas = panjang * lebar
return luas
panjang = float(input("Panjang: "))
lebar = float(input("Lebar: "))
hasil = hitung_luas(panjang, lebar)
print(f"Luas: {hasil}")
| Pseudocode | Python | Penjelasan |
|---|---|---|
INPUT nilai |
nilai = input() |
Menerima input pengguna. |
OUTPUT hasil |
print(hasil) |
Menampilkan output. |
SET total = 10 |
total = 10 |
Memberikan nilai ke variabel. |
IF kondisi THEN |
if kondisi: |
Membuat percabangan. |
FOR i FROM 1 TO 5 |
for i in range(1, 6): |
Membuat perulangan. |
FUNCTION |
def |
Mendefinisikan fungsi. |
Buatlah pseudocode dan program Python untuk menghitung total pembayaran pada sebuah toko.
Pseudocode membantu programmer merancang logika program dengan bahasa yang sederhana sebelum menulis kode Python. Pseudocode dapat digunakan untuk menggambarkan proses berurutan, percabangan, perulangan, dan fungsi.
Struktur bahasa Python adalah aturan penyusunan kode agar program dapat dibaca, dijalankan, dan dipelihara dengan baik.
Python memiliki struktur sintaks yang sederhana dan mudah dibaca. Berbeda dengan beberapa bahasa pemrograman lain, Python menggunakan indentasi untuk menentukan blok program.
Sebuah program Python dapat terdiri dari komentar, variabel, ekspresi, percabangan, perulangan, fungsi, dan modul. Setiap bagian memiliki fungsi tertentu dalam membangun program.
Struktur program yang baik membuat kode lebih mudah dipahami, diuji, dikembangkan, dan digunakan kembali.
Indentasi digunakan untuk menentukan blok kode dalam fungsi, percabangan, dan perulangan.
Python membedakan huruf besar dan huruf kecil pada nama variabel maupun fungsi.
Statement merupakan instruksi yang akan dijalankan oleh program.
Komentar digunakan untuk memberikan penjelasan pada kode. Komentar tidak akan dieksekusi oleh Python.
# Ini adalah komentar
nama = "Andi"
print(nama)
"""
Komentar ini dapat ditulis
dalam beberapa baris.
"""
print("Belajar Python")
Statement penugasan digunakan untuk memberikan nilai kepada variabel.
nama = "Budi"
umur = 20
tinggi = 1.70
print(nama)
print(umur)
print(tinggi)
Python tidak memerlukan deklarasi tipe data secara khusus. Tipe data ditentukan berdasarkan nilai yang diberikan.
Expression adalah kombinasi nilai, variabel, dan operator yang menghasilkan suatu nilai.
harga = 50000
jumlah = 3
total = harga * jumlah
print(total)
Pada contoh tersebut, ekspresi
harga * jumlah menghasilkan nilai
yang disimpan ke dalam variabel total.
Indentasi adalah jarak atau spasi di awal baris kode. Python menggunakan indentasi untuk menentukan kode yang termasuk dalam suatu blok.
nilai = 80
if nilai >= 75:
print("Lulus")
print("Selamat")
nilai = 80
if nilai >= 75:
print("Lulus")
Blok program adalah kumpulan statement yang berada dalam satu struktur, seperti percabangan, perulangan, atau fungsi.
if nilai >= 75:
print("Lulus")
else:
print("Tidak lulus")
for angka in range(1, 4):
print(angka)
def salam():
print("Halo")
salam()
Python tidak mewajibkan penggunaan fungsi main().
Namun, penggunaan fungsi utama dapat membuat struktur
program lebih rapi dan mudah dikembangkan.
def hitung_luas(panjang, lebar):
return panjang * lebar
def main():
panjang = float(input("Masukkan panjang: "))
lebar = float(input("Masukkan lebar: "))
luas = hitung_luas(panjang, lebar)
print(f"Luas: {luas}")
if __name__ == "__main__":
main()
if __name__ == "__main__": memastikan
fungsi main() dijalankan ketika file dieksekusi
secara langsung, tetapi tidak dijalankan otomatis ketika
file digunakan sebagai modul.
Modul adalah file Python yang berisi kode yang dapat digunakan kembali oleh program lain. Python menyediakan banyak modul bawaan.
import math
radius = 7
luas = math.pi * radius ** 2
print(f"Luas lingkaran: {luas:.2f}")
Selain mengimpor seluruh modul, bagian tertentu dari modul juga dapat diimpor.
from math import sqrt
nilai = 25
akar = sqrt(nilai)
print(akar)
| Aturan | Contoh Benar | Contoh Salah |
|---|---|---|
| Tidak boleh diawali angka |
nilai1
|
1nilai
|
| Tidak menggunakan spasi |
nama_lengkap
|
nama lengkap
|
| Tidak menggunakan keyword Python |
jumlah_data
|
class
|
| Membedakan huruf besar dan kecil |
total_harga
|
Menganggap Total sama dengan
total
|
| Gunakan nama yang bermakna |
jumlah_mahasiswa
|
x untuk data penting
|
Umumnya digunakan untuk nama variabel dan fungsi.
total_harga
Umumnya digunakan untuk nama class.
DataMahasiswa
Umumnya digunakan untuk konstanta.
MAX_LOGIN_ATTEMPT
DISCOUNT_RATE = 0.10
def hitung_total(harga, jumlah):
subtotal = harga * jumlah
if subtotal >= 500000:
diskon = subtotal * DISCOUNT_RATE
else:
diskon = 0
return subtotal - diskon
def main():
harga = float(input("Masukkan harga barang: "))
jumlah = int(input("Masukkan jumlah barang: "))
total = hitung_total(harga, jumlah)
print(f"Total pembayaran: Rp{total:,.2f}")
if __name__ == "__main__":
main()
Buatlah program Python dengan struktur yang baik untuk menghitung total nilai mahasiswa.
main() sebagai titik awal
program.
Struktur bahasa Python terdiri dari statement, ekspresi, variabel, blok program, fungsi, komentar, dan modul. Indentasi merupakan bagian penting dalam Python karena digunakan untuk menentukan struktur blok kode.
Variabel dan konstanta merupakan konsep dasar dalam pemrograman yang digunakan untuk menyimpan nilai dan informasi selama program berjalan.
Variabel adalah nama yang digunakan untuk menyimpan suatu nilai di dalam memori komputer. Nilai variabel dapat diubah selama program dijalankan.
nama = "Andi"
umur = 20
tinggi = 170.5
Pada contoh tersebut, nama, umur,
dan tinggi adalah variabel.
Python tidak memerlukan deklarasi tipe data secara
eksplisit. Variabel dibuat ketika nilai diberikan
menggunakan operator assignment =.
nama = "Budi"
usia = 19
nilai = 85.5
lulus = True
nama_mahasiswa = "Citra"
nilai1 = 90
jumlah_data = 10
1nama = "Andi"
nama mahasiswa = "Budi"
class = "Informatika"
| Tipe Data | Contoh | Keterangan |
|---|---|---|
| String | "Python" |
Menyimpan teks. |
| Integer | 25 |
Menyimpan bilangan bulat. |
| Float | 3.14 |
Menyimpan bilangan desimal. |
| Boolean | True |
Menyimpan nilai benar atau salah. |
| List | [1, 2, 3] |
Menyimpan kumpulan data berurutan. |
| Dictionary | {"nama": "Andi"} |
Menyimpan pasangan key dan value. |
nilai = 70
print(nilai)
nilai = 85
print(nilai)
Nilai variabel nilai berubah dari
70 menjadi 85.
Konstanta adalah nilai yang seharusnya tidak berubah selama program berjalan. Python tidak memiliki sintaks khusus untuk membuat konstanta, sehingga konstanta biasanya ditulis menggunakan huruf kapital.
PI = 3.14159
NAMA_APLIKASI = "Sistem Akademik"
BATAS_NILAI = 70
| Aspek | Variabel | Konstanta |
|---|---|---|
| Nilai | Dapat berubah. | Sebaiknya tidak berubah. |
| Penamaan | Umumnya huruf kecil. | Umumnya huruf kapital. |
| Contoh | nama |
BATAS_NILAI |
| Penggunaan | Data yang berubah selama program. | Nilai tetap yang digunakan berulang. |
nama = input("Masukkan nama: ")
umur = int(input("Masukkan umur: "))
print("Nama:", nama)
print("Umur:", umur)
input() selalu menghasilkan data bertipe
string. Gunakan konversi tipe data jika membutuhkan angka.
panjang = 10
lebar = 5
luas = panjang * lebar
keliling = 2 * (panjang + lebar)
print("Luas:", luas)
print("Keliling:", keliling)
BATAS_LULUS = 70
nilai = float(
input("Masukkan nilai: ")
)
if nilai >= BATAS_LULUS:
print("Lulus")
else:
print("Tidak lulus")
Penggunaan konstanta membuat program lebih mudah diperbaiki.
Jika batas kelulusan berubah, cukup ubah nilai
BATAS_LULUS.
Python mendukung pemberian nilai kepada beberapa variabel dalam satu baris.
nama, umur, kota = "Andi", 20, "Bandung"
print(nama)
print(umur)
print(kota)
a = 10
b = 20
a, b = b, a
print("a:", a)
print("b:", b)
Setelah pertukaran, nilai a menjadi
20 dan nilai b menjadi
10.
Variabel global dibuat di luar fungsi dan dapat diakses oleh bagian program lainnya.
nama_aplikasi = "Data Mahasiswa"
def tampilkan_nama():
print(nama_aplikasi)
tampilkan_nama()
Variabel lokal dibuat di dalam fungsi dan hanya dapat digunakan di dalam fungsi tersebut.
def hitung_luas():
panjang = 10
lebar = 5
return panjang * lebar
print(hitung_luas())
nama = "Andi"
umur = 20
nilai = 85.5
lulus = True
print(type(nama))
print(type(umur))
print(type(nilai))
print(type(lulus))
angka_teks = "100"
angka_integer = int(angka_teks)
angka_float = float(angka_teks)
angka_string = str(angka_integer)
print(angka_integer)
print(angka_float)
print(angka_string)
PI.
BATAS_LULUS.
Variabel digunakan untuk menyimpan data yang nilainya dapat berubah, sedangkan konstanta digunakan untuk menyimpan nilai tetap. Pemahaman tentang variabel, konstanta, tipe data, scope, dan konversi tipe merupakan dasar penting dalam membuat program Python yang terstruktur.
Tipe data adalah jenis nilai yang disimpan dan diolah oleh program. Python menyediakan berbagai tipe data untuk mengelola angka, teks, nilai logika, dan kumpulan data.
Tipe data menentukan jenis nilai yang dapat disimpan dalam sebuah variabel dan operasi apa saja yang dapat dilakukan terhadap nilai tersebut.
Python menggunakan konsep dynamic typing. Artinya, programmer tidak perlu menuliskan tipe data ketika membuat variabel. Python akan menentukan tipe data berdasarkan nilai yang diberikan.
Meskipun Python menentukan tipe data secara otomatis, programmer tetap perlu memahami jenis data agar dapat memilih operasi dan struktur data yang tepat.
Gunakan fungsi type() untuk mengetahui
tipe data suatu nilai atau variabel.
nilai = 25
print(type(nilai))
Bilangan bulat tanpa angka desimal.
umur = 20
jumlah = -5
int
Bilangan yang memiliki angka desimal.
tinggi = 1.75
nilai = 87.5
float
Kumpulan karakter atau teks.
nama = "Andi"
pesan = 'Halo'
str
Nilai logika yang hanya memiliki nilai benar atau salah.
aktif = True
lulus = False
bool
Tipe data integer digunakan untuk menyimpan bilangan bulat positif, negatif, maupun nol.
jumlah_mahasiswa = 35
saldo = -10000
angka_nol = 0
print(type(jumlah_mahasiswa))
Integer dapat digunakan dalam operasi penjumlahan, pengurangan, perkalian, pembagian bulat, dan perpangkatan.
Tipe data float digunakan untuk menyimpan bilangan yang memiliki angka di belakang koma.
harga = 12500.50
rata_rata = 87.75
hasil = harga * 2
print(hasil)
Gunakan format desimal ketika menampilkan hasil agar output lebih mudah dibaca.
String adalah tipe data yang digunakan untuk menyimpan teks. String dapat ditulis menggunakan tanda petik satu, tanda petik dua, atau triple quotes.
nama = 'Budi'
print(nama)
pesan = "Selamat belajar"
print(pesan)
deskripsi = """
Belajar Python
dari dasar
"""
print(deskripsi)
nama_depan = "Budi"
nama_belakang = "Santoso"
nama_lengkap = nama_depan + " " + nama_belakang
print(nama_lengkap)
print(len(nama_lengkap))
print(nama_lengkap.upper())
print(nama_lengkap.lower())
Boolean hanya memiliki dua nilai, yaitu True
dan False. Tipe data ini sering digunakan
dalam percabangan dan perulangan.
nilai = 80
lulus = nilai >= 75
print(lulus)
if lulus:
print("Mahasiswa lulus")
else:
print("Mahasiswa tidak lulus")
True dan
False.
Koleksi berurutan dan dapat diubah.
buah = [
"Apel",
"Jeruk"
]
Koleksi berurutan yang tidak dapat diubah.
warna = (
"Merah",
"Biru"
)
Koleksi pasangan key dan value.
mahasiswa = {
"nama": "Dina",
"umur": 20
}
Koleksi nilai unik tanpa duplikasi.
angka = {
1, 2, 3
}
| Tipe Data | Berurutan | Dapat Diubah | Duplikasi | Contoh |
|---|---|---|---|---|
| List | Ya | Ya | Diperbolehkan | [1, 2, 2] |
| Tuple | Ya | Tidak | Diperbolehkan | (1, 2, 2) |
| Dictionary | Mempertahankan urutan input | Ya | Key harus unik | {"a": 1} |
| Set | Tidak digunakan berdasarkan indeks | Ya | Tidak diperbolehkan | {1, 2, 3} |
Konversi tipe data digunakan untuk mengubah nilai dari satu tipe data ke tipe data lainnya.
ValueError jika
teks tidak memiliki format yang sesuai, misalnya
int("abc").
None digunakan untuk menyatakan bahwa sebuah
variabel belum memiliki nilai atau tidak menghasilkan nilai.
hasil = None
if hasil is None:
print("Belum ada hasil")
Gunakan operator is atau is not
ketika membandingkan nilai dengan None.
Nilai dapat diubah setelah objek dibuat.
angka = [1, 2, 3]
angka.append(4)
print(angka)
Nilai tidak dapat diubah setelah objek dibuat.
nama = "Andi"
# Membuat string baru
nama = nama + " Saputra"
print(nama)
Selain menggunakan type(), Python memiliki
fungsi isinstance() untuk memeriksa apakah
suatu nilai termasuk tipe tertentu.
nilai = 25
print(type(nilai))
if isinstance(nilai, int):
print("Nilai berupa integer")
else:
print("Nilai bukan integer")
nama = "Sinta"
umur = 21
nilai = 87.5
aktif = True
mata_kuliah = [
"Python",
"Database",
"Algoritma"
]
profil = {
"nama": nama,
"umur": umur,
"nilai": nilai,
"aktif": aktif,
"mata_kuliah": mata_kuliah
}
print(f"Nama: {profil['nama']}")
print(f"Umur: {profil['umur']}")
print(f"Nilai: {profil['nilai']}")
print(f"Status aktif: {profil['aktif']}")
print(f"Mata kuliah: {profil['mata_kuliah']}")
input() langsung berupa angka.
Buatlah program Python untuk menyimpan dan menampilkan data seorang mahasiswa.
type() atau
isinstance() untuk menampilkan tipe data
setiap nilai.
Python memiliki tipe data dasar seperti integer, float, string, dan boolean, serta tipe data koleksi seperti list, tuple, dictionary, dan set. Pemilihan tipe data yang tepat membantu program bekerja secara benar dan efisien.
Operator adalah simbol atau kata kunci yang digunakan untuk melakukan operasi terhadap nilai, variabel, atau ekspresi dalam program Python.
Operator digunakan untuk melakukan perhitungan matematika, membandingkan nilai, menggabungkan kondisi, memberikan nilai, serta memeriksa keanggotaan suatu data.
Nilai atau variabel yang digunakan oleh operator disebut
operand. Sebagai contoh, pada ekspresi
a + b, variabel a dan
b merupakan operand, sedangkan
+ merupakan operator.
Pemahaman operator sangat penting karena hampir semua program membutuhkan proses perhitungan dan pengambilan keputusan.
Operator aritmatika digunakan untuk melakukan operasi matematika terhadap bilangan.
| Operator | Nama | Contoh | Hasil |
|---|---|---|---|
+ |
Penjumlahan | 10 + 3 |
13 |
- |
Pengurangan | 10 - 3 |
7 |
* |
Perkalian | 10 * 3 |
30 |
/ |
Pembagian | 10 / 3 |
3.333... |
// |
Pembagian Bulat | 10 // 3 |
3 |
% |
Sisa Pembagian | 10 % 3 |
1 |
** |
Perpangkatan | 2 ** 3 |
8 |
a = 10
b = 3
print("Penjumlahan:", a + b)
print("Pengurangan:", a - b)
print("Perkalian:", a * b)
print("Pembagian:", a / b)
print("Pembagian bulat:", a // b)
print("Sisa pembagian:", a % b)
print("Pangkat:", a ** b)
Operator perbandingan digunakan untuk membandingkan dua
nilai. Hasil dari perbandingan selalu berupa nilai
Boolean, yaitu True atau False.
| Operator | Nama | Contoh | Hasil |
|---|---|---|---|
== |
Sama dengan | 5 == 5 |
True |
!= |
Tidak sama dengan | 5 != 3 |
True |
> |
Lebih besar | 8 > 5 |
True |
< |
Lebih kecil | 3 < 5 |
True |
>= |
Lebih besar atau sama dengan | 5 >= 5 |
True |
<= |
Lebih kecil atau sama dengan | 4 <= 5 |
True |
nilai = 80
print(nilai == 80)
print(nilai != 70)
print(nilai >= 75)
print(nilai < 100)
Operator logika digunakan untuk menggabungkan beberapa kondisi atau membalik nilai Boolean.
| Operator | Fungsi | Contoh |
|---|---|---|
and |
True jika semua kondisi bernilai True. |
nilai >= 75 and kehadiran >= 80
|
or |
True jika salah satu kondisi bernilai True. |
role == "admin" or role == "operator"
|
not |
Membalik nilai Boolean. |
not selesai
|
nilai = 85
kehadiran = 90
lulus = nilai >= 75 and kehadiran >= 80
print("Status lulus:", lulus)
admin = False
print("Bukan admin:", not admin)
Operator penugasan digunakan untuk memberikan nilai atau memperbarui nilai pada sebuah variabel.
| Operator | Bentuk Panjang | Contoh |
|---|---|---|
= |
Penugasan | x = 10 |
+= |
x = x + 5 |
x += 5 |
-= |
x = x - 5 |
x -= 5 |
*= |
x = x * 5 |
x *= 5 |
/= |
x = x / 5 |
x /= 5 |
%= |
x = x % 5 |
x %= 5 |
saldo = 100000
saldo += 50000
print(saldo)
saldo -= 25000
print(saldo)
saldo *= 2
print(saldo)
Operator keanggotaan digunakan untuk memeriksa apakah suatu nilai terdapat dalam koleksi.
buah = ["Apel", "Jeruk", "Mangga"]
print("Apel" in buah)
print("Durian" not in buah)
in: terdapat di dalam koleksi
not in: tidak terdapat di dalam koleksi
Operator identitas digunakan untuk memeriksa apakah dua variabel merujuk pada objek yang sama.
a = None
print(a is None)
print(a is not None)
is: objek yang sama
is not: objek yang berbeda
Ketika sebuah ekspresi memiliki beberapa operator, Python akan menjalankannya berdasarkan urutan prioritas. Gunakan tanda kurung agar urutan operasi lebih jelas.
hasil_1 = 2 + 3 * 4
hasil_2 = (2 + 3) * 4
print(hasil_1)
print(hasil_2)
| Prioritas | Operator | Contoh |
|---|---|---|
| 1 | Tanda kurung | (a + b) |
| 2 | Perpangkatan | a ** b |
| 3 | Perkalian dan pembagian | a * b, a / b |
| 4 | Penjumlahan dan pengurangan | a + b, a - b |
| 5 | Perbandingan dan logika | a > b and aktif |
# Program menghitung total pembayaran
harga = float(input("Masukkan harga barang: "))
jumlah = int(input("Masukkan jumlah barang: "))
subtotal = harga * jumlah
if subtotal >= 500000:
diskon = subtotal * 0.10
else:
diskon = 0
total = subtotal - diskon
print(f"Subtotal: Rp{subtotal:,.2f}")
print(f"Diskon: Rp{diskon:,.2f}")
print(f"Total pembayaran: Rp{total:,.2f}")
= untuk membandingkan nilai.
Gunakan == untuk perbandingan.
and ketika seharusnya
menggunakan or.
ZeroDivisionError.
Buat program Python untuk menghitung nilai akhir mahasiswa.
*, +,
>=, dan if-else.
Operator digunakan untuk melakukan perhitungan, perbandingan, penggabungan kondisi, penugasan nilai, pemeriksaan keanggotaan, dan pemeriksaan identitas. Penggunaan operator yang tepat membantu program menghasilkan logika dan output yang benar.
Input adalah data yang dimasukkan oleh pengguna ke dalam
program. Python menyediakan fungsi input()
untuk menerima data dari keyboard.
Input memungkinkan program berinteraksi dengan pengguna. Program dapat meminta nama, usia, nilai, jumlah barang, atau informasi lain yang dibutuhkan untuk diproses.
Secara default, fungsi input() selalu
menghasilkan data bertipe string. Jika data yang dimasukkan
berupa angka, data tersebut harus dikonversi menggunakan
fungsi seperti int() atau float().
Input yang diterima sebaiknya divalidasi agar program dapat menangani data yang tidak sesuai dengan baik.
nama = input("Masukkan nama: ")
print(nama)
Teks yang berada di dalam fungsi
input() disebut prompt. Prompt
digunakan untuk memberikan instruksi kepada pengguna.
Data teks dapat diterima langsung menggunakan fungsi
input().
nama = input("Masukkan nama Anda: ")
alamat = input("Masukkan alamat Anda: ")
print(f"Nama: {nama}")
print(f"Alamat: {alamat}")
nama dan alamat
bertipe str karena berasal dari input teks.
Karena input() menghasilkan string, gunakan
konversi tipe data ketika ingin melakukan operasi matematika.
umur = int(input("Masukkan umur: "))
print(f"Umur Anda {umur} tahun.")
Gunakan int() untuk bilangan bulat.
tinggi = float(input("Masukkan tinggi: "))
print(f"Tinggi Anda {tinggi} meter.")
Gunakan float() untuk bilangan desimal.
Perhatikan perbedaan antara operasi string dan operasi angka.
angka_pertama = input("Masukkan angka pertama: ")
angka_kedua = input("Masukkan angka kedua: ")
hasil_string = angka_pertama + angka_kedua
print("Jika tidak dikonversi:", hasil_string)
Jika pengguna memasukkan 10 dan
20, hasilnya adalah 1020
karena kedua nilai masih berupa string.
angka_pertama = int(input("Masukkan angka pertama: "))
angka_kedua = int(input("Masukkan angka kedua: "))
hasil = angka_pertama + angka_kedua
print("Hasil penjumlahan:", hasil)
nama = input("Nama: ")
umur = int(input("Umur: "))
kota = input("Kota: ")
print(f"{nama}, {umur} tahun, tinggal di {kota}.")
nama, kota = input(
"Masukkan nama dan kota: "
).split()
print(f"Nama: {nama}")
print(f"Kota: {kota}")
split() memisahkan input berdasarkan
spasi. Cara ini sesuai jika setiap data tidak mengandung
spasi.
Pengguna memasukkan data yang diperlukan.
Program mengolah data dengan operator atau aturan tertentu.
Program menampilkan hasil pengolahan data.
Program berikut menghitung total harga berdasarkan harga barang dan jumlah pembelian.
nama_barang = input("Nama barang: ")
harga = float(input("Harga barang: "))
jumlah = int(input("Jumlah barang: "))
total = harga * jumlah
print()
print("=== RINCIAN PEMBELIAN ===")
print(f"Nama barang: {nama_barang}")
print(f"Harga: Rp{harga:,.2f}")
print(f"Jumlah: {jumlah}")
print(f"Total: Rp{total:,.2f}")
Validasi input digunakan untuk memastikan data yang dimasukkan sesuai dengan aturan program.
usia = int(input("Masukkan usia: "))
if usia < 0:
print("Usia tidak boleh negatif.")
else:
print(f"Usia Anda: {usia} tahun.")
Validasi dapat dilakukan menggunakan percabangan, perulangan, dan penanganan exception.
Jika pengguna memasukkan teks ketika program mengharapkan
angka, Python akan menghasilkan ValueError.
Gunakan try-except untuk menanganinya.
try:
nilai = float(input("Masukkan nilai: "))
if 0 <= nilai <= 100:
print(f"Nilai yang dimasukkan: {nilai}")
else:
print("Nilai harus berada di antara 0 dan 100.")
except ValueError:
print("Input harus berupa angka.")
Perulangan dapat digunakan agar program terus meminta input sampai pengguna memasukkan data yang benar.
while True:
try:
nilai = float(input("Masukkan nilai 0-100: "))
if 0 <= nilai <= 100:
break
print("Nilai harus berada di antara 0 dan 100.")
except ValueError:
print("Masukkan angka yang valid.")
print(f"Nilai diterima: {nilai}")
input() langsung berupa
integer atau float.
Buatlah program Python untuk menghitung nilai akhir mahasiswa.
input(), float(),
validasi rentang nilai, dan try-except.
Fungsi input() digunakan untuk menerima data dari
pengguna. Karena hasilnya berupa string, data numerik perlu
dikonversi menggunakan int() atau
float(). Input sebaiknya selalu divalidasi agar
program berjalan dengan aman dan menghasilkan output yang benar.
Output adalah informasi atau hasil proses yang ditampilkan
oleh program kepada pengguna. Python menggunakan fungsi
print() untuk menampilkan output.
Output merupakan hasil yang dikeluarkan setelah program melakukan proses terhadap data masukan. Output dapat berupa teks, angka, hasil perhitungan, maupun informasi lainnya.
Dalam Python, fungsi print() digunakan untuk
menampilkan satu atau beberapa nilai ke layar.
Output yang baik harus disajikan dengan format yang jelas agar mudah dipahami oleh pengguna.
print("Halo, Python!")
print(25)
print(10 + 5)
Fungsi print() dapat digunakan untuk
menampilkan teks, angka, variabel, dan hasil operasi.
print("Selamat datang")
print(100)
nama = "Andi"
umur = 20
print(nama)
print(umur)
Selamat datang
100
Andi
20
Beberapa nilai dapat ditampilkan dalam satu fungsi
print() dengan memisahkannya menggunakan koma.
nama = "Budi"
umur = 21
kota = "Bandung"
print("Nama:", nama)
print("Umur:", umur)
print("Kota:", kota)
Parameter sep digunakan untuk
menentukan pemisah antar nilai.
nama = "Andi"
umur = 20
kota = "Jakarta"
print(nama, umur, kota, sep=" | ")
Output:
Andi | 20 | Jakarta
Parameter end digunakan untuk
menentukan karakter di akhir output.
print("Belajar", end=" ")
print("Python", end=" ")
print("Dasar")
Output:
Belajar Python Dasar
String dapat digabungkan menggunakan operator
+. Semua nilai yang digabungkan harus
bertipe string.
nama_depan = "Siti"
nama_belakang = "Aminah"
nama_lengkap = nama_depan + " " + nama_belakang
print("Nama lengkap: " + nama_lengkap)
+. Gunakan
fungsi str() jika diperlukan.
F-string merupakan cara yang praktis untuk menyisipkan nilai variabel ke dalam teks.
nama = "Dina"
umur = 20
nilai = 87.5
print(f"Nama: {nama}")
print(f"Umur: {umur} tahun")
print(f"Nilai: {nilai}")
F-string ditandai dengan huruf f sebelum
tanda petik. Variabel ditulis di dalam kurung kurawal.
Python menyediakan format khusus untuk menampilkan angka dengan jumlah desimal, pemisah ribuan, atau simbol tertentu.
harga = 1250000.5
nilai = 87.5678
print(f"Harga: Rp{harga:,.2f}")
print(f"Nilai: {nilai:.2f}")
| Format | Fungsi | Contoh |
|---|---|---|
:.2f |
Menampilkan dua angka desimal | 87.57 |
:, |
Memberikan pemisah ribuan | 1,250,000 |
:,.2f |
Pemisah ribuan dan dua desimal | 1,250,000.50 |
Python menyediakan karakter escape untuk mengatur tampilan teks pada output.
print("Baris pertama\nBaris kedua")
print("Nama:\tAndi")
print("Dia berkata: \"Halo\"")
| Karakter | Fungsi |
|---|---|
\n |
Pindah ke baris baru |
\t |
Membuat tab atau jarak |
\" |
Menampilkan tanda petik ganda |
\\ |
Menampilkan karakter backslash |
print("=" * 40)
print("DATA MAHASISWA")
print("=" * 40)
print(f"{'Nama':<15}: {'Andi'}")
print(f"{'NIM':<15}: {'123456'}")
print(f"{'Program Studi':<15}: {'Informatika'}")
print(f"{'Nilai':<15}: {87.5:.2f}")
print("=" * 40)
Tanda < digunakan untuk mengatur
perataan teks ke kiri dalam format tertentu.
nama_barang = "Buku"
harga = 25000
jumlah = 3
subtotal = harga * jumlah
print("=" * 35)
print(" STRUK BELANJA")
print("=" * 35)
print(f"Barang : {nama_barang}")
print(f"Harga : Rp{harga:,.2f}")
print(f"Jumlah : {jumlah}")
print(f"Subtotal : Rp{subtotal:,.2f}")
print("=" * 35)
Buatlah program Python untuk menampilkan biodata mahasiswa.
Fungsi print() digunakan untuk menampilkan hasil
program kepada pengguna. Output dapat dibuat lebih informatif
menggunakan beberapa nilai, f-string, parameter
sep dan end, karakter khusus, serta
format angka.
Seleksi adalah struktur kontrol yang digunakan untuk memilih
tindakan berdasarkan kondisi tertentu. Python menyediakan
if, if-else, dan
if-elif-else untuk membuat percabangan program.
Dalam program, tidak semua instruksi harus dijalankan. Terkadang program harus memilih tindakan tertentu sesuai dengan kondisi atau data yang diberikan.
Sebagai contoh, program dapat menentukan apakah mahasiswa lulus berdasarkan nilai. Jika nilai minimal terpenuhi, program menampilkan pesan "Lulus". Jika tidak, program menampilkan pesan "Tidak Lulus".
Kondisi dalam seleksi biasanya menghasilkan nilai Boolean,
yaitu True atau False.
Kondisi adalah ekspresi yang menghasilkan nilai
True atau False.
nilai = 80
print(nilai >= 75)
print(nilai < 75)
print(nilai == 80)
| Ekspresi | Hasil | Penjelasan |
|---|---|---|
80 >= 75 |
True |
80 lebih besar atau sama dengan 75. |
80 < 75 |
False |
80 tidak lebih kecil dari 75. |
80 == 80 |
True |
Kedua nilai memiliki nilai yang sama. |
Struktur if digunakan untuk menjalankan blok
kode hanya ketika suatu kondisi bernilai benar.
nilai = 80
if nilai >= 75:
print("Mahasiswa lulus")
if kondisi:
perintah
:. Baris perintah harus menggunakan indentasi.
Struktur if-else digunakan ketika program
memiliki dua kemungkinan tindakan.
nilai = float(input("Masukkan nilai: "))
if nilai >= 75:
print("Lulus")
else:
print("Tidak lulus")
Struktur if-elif-else digunakan ketika
terdapat lebih dari dua kemungkinan kondisi.
nilai = float(input("Masukkan nilai: "))
if nilai >= 85:
predikat = "A"
elif nilai >= 75:
predikat = "B"
elif nilai >= 65:
predikat = "C"
elif nilai >= 50:
predikat = "D"
else:
predikat = "E"
print(f"Predikat nilai: {predikat}")
if kondisi_pertama:
perintah_pertama
elif kondisi_kedua:
perintah_kedua
else:
perintah_jika_semua_salah
Seleksi bersarang atau nested selection adalah
struktur if yang berada di dalam struktur
if lainnya.
nilai = 85
kehadiran = 90
if nilai >= 75:
if kehadiran >= 80:
print("Lulus")
else:
print("Tidak lulus karena kehadiran kurang")
else:
print("Tidak lulus karena nilai kurang")
if secukupnya. Jika kondisi
terlalu kompleks, pertimbangkan penggunaan operator logika
atau fungsi terpisah.
Beberapa kondisi dapat digabungkan menggunakan operator
Percabangan
Struktur
Jika kondisi bernilai
Struktur ini banyak digunakan untuk validasi data,
menentukan status, memberikan diskon, dan mengatur hak akses.
Buat program untuk menentukan apakah seseorang sudah
cukup umur untuk memiliki kartu identitas.
Operator modulus
Operator logika dapat digunakan untuk menggabungkan beberapa
kondisi dalam satu percabangan.
Nested
Buat program Python untuk menentukan apakah seseorang
boleh mengikuti ujian.
Struktur
Pada Python, konsep case-of dapat diterapkan menggunakan
struktur
Struktur
Struktur ini memiliki fungsi yang mirip dengan
Struktur
Buat program untuk menampilkan nama hari berdasarkan
angka yang dimasukkan pengguna.
Simbol underscore
Beberapa nilai dapat digabungkan dalam satu pola
menggunakan simbol garis vertikal
Contoh tersebut mengelompokkan beberapa angka bulan ke
dalam satu kondisi
Struktur
Nilai yang ditulis sebagai variabel pada pola dapat
menangkap bagian tertentu dari data yang cocok.
Dictionary juga dapat diperiksa berdasarkan key tertentu.
Buatlah program menu sederhana menggunakan
Python menggunakan struktur
Python menggunakan
Struktur
Sementara itu, struktur
Pemilihan struktur yang tepat dapat membuat program lebih
singkat, rapi, mudah dibaca, dan mudah dikembangkan.
Contoh berikut menentukan nama hari berdasarkan nomor hari.
Untuk kondisi berupa rentang nilai, penggunaan
Struktur ini lebih sesuai karena kondisi menggunakan
operator
Rentang nilai tetap dapat ditulis menggunakan
Untuk program berbentuk menu dengan pilihan nilai yang
jelas,
Pada kasus beberapa nilai yang memiliki tindakan sama,
Untuk kondisi yang menggunakan banyak operator logika,
Keunggulan utama
Pencocokan struktur seperti ini lebih sulit ditulis secara
ringkas menggunakan
Buat dua program untuk menentukan kategori nilai mahasiswa:
satu menggunakan
Gunakan
Studi kasus seleksi membantu memahami penggunaan
Menentukan input, proses, kondisi, dan output
dari sebuah permasalahan.
Menggunakan struktur percabangan sesuai dengan
kebutuhan program.
Menguji berbagai kondisi untuk memastikan hasil
program sudah benar.
Buat program untuk menentukan apakah seorang mahasiswa
dinyatakan lulus atau tidak lulus.
Buat program untuk menentukan predikat nilai mahasiswa
berdasarkan nilai yang diperoleh.
Sebuah toko memberikan diskon berdasarkan total pembelian.
Buat program login sederhana untuk menentukan hak akses
pengguna berdasarkan username, password, dan status akun.
Buat program untuk menentukan apakah suatu hari termasuk
hari kerja atau hari libur.
Indeks Massa Tubuh atau BMI dapat digunakan untuk menentukan
kategori berat badan seseorang.
Hitung tarif parkir berdasarkan lama kendaraan berada
di area parkir.
Logika seleksi dapat dipisahkan ke dalam fungsi agar program
lebih rapi dan mudah digunakan kembali.
Buatlah program kasir sederhana dengan ketentuan berikut:
Studi kasus seleksi membantu menghubungkan konsep percabangan
dengan permasalahan nyata. Dalam menyelesaikan masalah, tentukan
terlebih dahulu input, proses, kondisi, dan output. Setelah itu,
pilih struktur seleksi yang sesuai dan uji semua kemungkinan
kondisi, termasuk nilai batas dan input yang tidak valid.
Perulangan digunakan untuk menjalankan blok kode secara
berulang berdasarkan jumlah pengulangan atau kondisi tertentu.
Perulangan atau looping adalah struktur kontrol yang
memungkinkan program menjalankan perintah yang sama secara
berulang tanpa harus menulis kode berkali-kali.
Python menyediakan dua jenis perulangan utama, yaitu
perulangan
Perulangan juga dapat dikombinasikan dengan
Perulangan
Variabel
Fungsi
Output dari contoh tersebut adalah angka
Perulangan
Perulangan
Program akan terus meminta input sampai pengguna mengetik
Perulangan berhenti ketika nilai
Angka
Blok
Perulangan bersarang adalah perulangan yang berada di dalam
perulangan lainnya.
Perulangan bagian luar mengatur baris, sedangkan perulangan
bagian dalam mengatur kolom.
Perulangan dapat digunakan untuk menjumlahkan atau
mengakumulasikan nilai.
Variabel
Gunakan
Buat program Python untuk mengolah nilai beberapa mahasiswa.
Perulangan digunakan untuk menjalankan instruksi secara
berulang. Gunakan
Perulangan
Perulangan
Data yang dapat digunakan dalam perulangan
Setiap elemen koleksi akan dibaca satu per satu dan
disimpan sementara dalam variabel perulangan.
Pada setiap iterasi, variabel
Fungsi
Output dimulai dari
Perulangan dimulai dari angka
Perulangan bertambah dua angka pada setiap iterasi.
Perulangan mundur dapat dibuat dengan memberikan nilai
step negatif pada fungsi
Output yang dihasilkan adalah
Variabel
Set tidak menjamin urutan elemen tertentu ketika
ditampilkan.
String merupakan kumpulan karakter. Oleh karena itu,
setiap karakter dapat dibaca menggunakan perulangan
Fungsi
Secara default, indeks dimulai dari angka
Fungsi
Perulangan
Perulangan dihentikan segera setelah nilai target ditemukan.
Ketika nilai angka adalah
Blok
Nested
Perulangan bagian dalam akan selesai terlebih dahulu
sebelum perulangan bagian luar berpindah ke iterasi berikutnya.
Variabel
Program berikut menghitung total, rata-rata, dan jumlah
mahasiswa yang lulus.
Buat program untuk mengolah data nilai mahasiswa
menggunakan perulangan
Perulangan
Studi kasus berikut menunjukkan penerapan perulangan
Membaca setiap elemen dalam list menggunakan
perulangan.
Menggunakan akumulator untuk menghitung total dan
rata-rata.
Mencari elemen tertentu dengan bantuan
Tampilkan seluruh nama mahasiswa yang tersimpan dalam sebuah
list.
Perulangan akan berjalan sebanyak jumlah elemen dalam list.
Hitung total dan rata-rata nilai dari beberapa mahasiswa.
Tentukan status kelulusan setiap mahasiswa berdasarkan nilai
minimal 75.
Fungsi
Pernyataan
Hitung jumlah dan tampilkan semua bilangan genap dari
sebuah list.
Hitung total harga beberapa barang yang dimasukkan oleh
pengguna.
Fungsi
Program berikut menghitung total nilai, rata-rata,
nilai tertinggi, nilai terendah, dan jumlah mahasiswa lulus.
Gunakan
Salin hanya data yang nilainya memenuhi batas tertentu ke
list baru.
Method
Buatlah program sederhana untuk mengolah data penjualan.
Perulangan
Perulangan
Perulangan
Program akan memeriksa kondisi terlebih dahulu. Jika kondisi
bernilai
Perulangan akan berhenti ketika kondisi berubah menjadi
Variabel
Counter adalah variabel yang digunakan untuk mengontrol
jumlah pengulangan.
Perulangan
Perulangan berhenti ketika pengguna memasukkan kata
Gunakan
Gunakan
Angka
Blok
Program menu dapat menggunakan
Perulangan
Angka
Nested
Buat program kasir sederhana menggunakan perulangan
Perulangan
Perulangan repeat digunakan untuk menjalankan suatu blok kode
berulang kali. Python tidak menyediakan keyword
Perulangan repeat digunakan ketika sebuah perintah perlu
dijalankan berkali-kali sampai kondisi tertentu terpenuhi.
Berbeda dengan
Pola ini cocok digunakan pada menu program, validasi input,
permainan, dan program yang harus berjalan minimal satu kali.
Program akan mengulang perintah selama pengguna belum
memasukkan jawaban
Pola repeat sangat sesuai untuk meminta input sampai data
yang dimasukkan pengguna valid.
Menu akan terus ditampilkan sampai pengguna memilih menu
Permainan terus berulang sampai pengguna menemukan angka
yang benar.
Sentinel value adalah nilai khusus yang digunakan sebagai
tanda untuk menghentikan perulangan.
Infinite loop terjadi ketika kondisi perulangan selalu
bernilai benar dan tidak ada perintah penghenti.
Buat program kasir menggunakan pola repeat dengan
Python tidak memiliki keyword
Python menyediakan perulangan
Ketiga pola tersebut digunakan untuk menjalankan perintah
secara berulang, tetapi memiliki cara kerja dan penggunaan
yang berbeda.
Pola repeat cocok untuk program yang harus dijalankan
minimal satu kali, seperti menu, validasi input, dan
permainan.
Gunakan
Gunakan
Pola repeat digunakan ketika blok kode harus dijalankan
terlebih dahulu, kemudian program memeriksa kondisi berhenti.
Pola ini merupakan cara Python meniru konsep
do-while atau repeat-until.
Ketiga contoh berikut menampilkan angka 1 sampai 5.
Ambil elemen, jalankan perintah, lalu lanjut ke
elemen berikutnya sampai koleksi selesai.
Periksa kondisi, jalankan perintah jika benar,
lalu periksa kembali.
Jalankan perintah terlebih dahulu, periksa
kondisi berhenti, lalu ulangi jika diperlukan.
Untuk validasi input, pola
Program menu biasanya menggunakan pola repeat karena menu
harus ditampilkan minimal satu kali.
Buat tiga versi program untuk menghitung total belanja:
menggunakan
Gunakan
Prosedur adalah blok kode yang diberi nama dan dapat dipanggil
untuk menjalankan tugas tertentu. Pada Python, prosedur dibuat
menggunakan keyword
Prosedur digunakan untuk mengelompokkan beberapa perintah
yang memiliki tujuan tertentu ke dalam satu blok kode.
Setelah dibuat, prosedur dapat dipanggil berkali-kali tanpa
harus menulis ulang seluruh perintahnya.
Dalam Python, prosedur pada dasarnya merupakan fungsi yang
tidak mengembalikan nilai menggunakan
Prosedur
Prosedur dapat dipanggil berulang kali di bagian program
yang berbeda.
Parameter digunakan agar prosedur dapat menerima data dari
luar ketika dipanggil.
Nilai
Parameter default memiliki nilai awal yang digunakan jika
argumen tidak diberikan saat prosedur dipanggil.
Variabel yang dibuat di dalam prosedur disebut variabel lokal.
Variabel tersebut hanya dapat digunakan di dalam prosedur.
Kondisi
Buat program data mahasiswa menggunakan beberapa prosedur.
Prosedur pada Python dibuat menggunakan keyword
Fungsi adalah blok kode yang dibuat untuk menjalankan tugas
tertentu dan dapat mengembalikan nilai menggunakan
Fungsi digunakan untuk mengelompokkan perintah yang memiliki
tujuan tertentu ke dalam sebuah blok kode.
Fungsi dapat menerima data melalui parameter dan menghasilkan
nilai yang dapat disimpan atau digunakan kembali.
Penggunaan fungsi membuat program lebih terstruktur,
mengurangi pengulangan kode, dan memudahkan pemeliharaan.
Fungsi menerima nilai sisi, menghitung luas, lalu
mengembalikan hasil perhitungan.
Parameter
Parameter default digunakan ketika fungsi memiliki nilai
bawaan jika argumen tidak diberikan.
Python dapat mengembalikan beberapa nilai dalam bentuk tuple.
Variabel yang dibuat di dalam fungsi disebut variabel lokal.
Variabel tersebut hanya dapat digunakan di dalam fungsi.
Lambda adalah fungsi singkat tanpa nama yang biasanya
digunakan untuk operasi sederhana.
Untuk fungsi yang kompleks, gunakan
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri.
Fungsi ini harus memiliki kondisi dasar agar berhenti.
Buat program pengolahan data mahasiswa menggunakan fungsi.
Fungsi pada Python dibuat menggunakan keyword
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri
untuk menyelesaikan masalah secara bertahap sampai mencapai
kondisi dasar.
Rekursi adalah teknik pemrograman ketika sebuah fungsi
memanggil dirinya sendiri dengan data yang lebih sederhana.
Setiap pemanggilan fungsi akan disimpan sementara di dalam
memori sampai mencapai kondisi yang menghentikan rekursi.
Fungsi rekursif harus memiliki kondisi dasar. Tanpa kondisi
dasar, fungsi akan terus memanggil dirinya sendiri dan dapat
menyebabkan
Fungsi terus memanggil dirinya sendiri dengan nilai yang
lebih kecil sampai
Faktorial dari bilangan $n$ ditulis sebagai $n!$ dan
didefinisikan dengan rumus:
Hasil dari
Setelah mencapai kondisi dasar, hasil dikembalikan secara
bertahap ke pemanggilan sebelumnya.
Pada deret Fibonacci, setiap nilai merupakan hasil penjumlahan
dua nilai sebelumnya.
Setiap pemanggilan mengambil elemen pertama, kemudian
memproses sisa list sampai list menjadi kosong.
Karakter pertama dipindahkan ke bagian akhir setelah sisa
string dibalik secara rekursif.
Palindrom adalah kata yang tetap sama ketika dibaca dari
depan maupun dari belakang.
Algoritma Euclid dapat digunakan untuk mencari faktor
persekutuan terbesar atau FPB secara rekursif.
Pada contoh tersebut, FPB dari 48 dan 18 adalah
Rekursi juga cocok untuk memproses data yang memiliki
struktur bertingkat, seperti folder dan subfolder.
Setiap pemanggilan fungsi disimpan di dalam call stack.
Pemanggilan terakhir harus selesai terlebih dahulu sebelum
fungsi sebelumnya melanjutkan prosesnya.
Buat beberapa fungsi rekursif berikut:
Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri.
Setiap fungsi rekursif wajib memiliki kondisi dasar agar proses
berhenti. Rekursi cocok digunakan untuk masalah yang memiliki
struktur bertingkat, seperti pohon, folder, faktorial, dan
Fibonacci. Untuk pengulangan sederhana, perulangan biasa sering
lebih mudah dan lebih hemat memori.
Prosedur dan fungsi sama-sama dibuat menggunakan
Prosedur digunakan untuk menjalankan suatu tindakan,
seperti menampilkan pesan, mencetak laporan, atau
mengubah data.
Prosedur biasanya tidak menggunakan
Fungsi digunakan untuk melakukan proses tertentu dan
mengembalikan hasil yang dapat digunakan kembali.
Fungsi biasanya menggunakan
Dalam Python, fungsi yang tidak memiliki pernyataan
Prosedur berfokus pada tindakan menampilkan data dan tidak
mengembalikan nilai.
Fungsi mengembalikan teks status sehingga hasilnya dapat
disimpan dan digunakan dalam perintah lain.
Prosedur dan fungsi dapat digunakan bersama dalam satu
program. Fungsi menghitung data, sedangkan prosedur
menampilkan hasilnya.
Buat program data mahasiswa yang memisahkan prosedur dan
fungsi.
Prosedur dan fungsi pada Python sama-sama dibuat menggunakan
Buatlah sebuah aplikasi berbasis Python yang menerapkan materi
variabel, input, seleksi, perulangan, prosedur, fungsi, dan
pengolahan data.
Pemrograman Dasar
Python
Individu
Buat aplikasi berbasis terminal untuk mengelola data
mahasiswa, menghitung nilai, menentukan status kelulusan,
serta menampilkan laporan akademik.
Pengolahan data mahasiswa membutuhkan proses input,
penyimpanan, pencarian, perhitungan, dan penyajian data.
Proses tersebut dapat diselesaikan menggunakan konsep dasar
pemrograman Python.
Melalui tugas ini, mahasiswa diharapkan mampu menggabungkan
beberapa konsep pemrograman menjadi sebuah aplikasi yang
dapat digunakan.
Aplikasi minimal harus memiliki fitur-fitur berikut:
Setiap data mahasiswa minimal memiliki informasi berikut:
Seluruh data mahasiswa dapat disimpan ke dalam list.
Nilai akhir mahasiswa dihitung menggunakan bobot berikut:
Menu harus ditampilkan berulang kali sampai pengguna memilih
menu keluar.
Nilai yang dimasukkan harus berada pada rentang
Pengguna dapat mencari data berdasarkan NIM atau nama
mahasiswa.
Laporan minimal menampilkan:
Kumpulkan berkas berikut:
Mahasiswa dapat memperoleh nilai tambahan dengan menerapkan
fitur berikut:
Buat aplikasi pengolahan data mahasiswa menggunakan Python.
Program harus memiliki menu, fitur pengolahan data, validasi
input, fungsi, prosedur, perulangan, dan laporan. Pastikan kode
dapat dijalankan, mudah dibaca, serta setiap fitur dijelaskan
dalam laporan.
Jawablah pertanyaan berikut untuk menguji pemahaman terhadap
materi Python yang telah dipelajari.
20
30 Menit
Pilihan Ganda
Kuis ini digunakan untuk mengukur pemahaman mahasiswa terhadap
konsep dasar Python. Pastikan mahasiswa tidak hanya menghafal
jawaban, tetapi juga memahami alasan dari setiap jawaban yang
dipilih.
Project UTS ini menggabungkan konsep variabel, input, seleksi,
perulangan, list, dictionary, prosedur, fungsi, dan validasi
input dalam sebuah aplikasi berbasis terminal.
Python
Aplikasi Terminal
Individu
Buatlah aplikasi yang dapat digunakan untuk mengelola data
mahasiswa. Aplikasi harus dapat menyimpan data, menampilkan
data, mencari data, menghitung nilai akhir, dan menentukan
status kelulusan mahasiswa.
Program dijalankan menggunakan menu utama dan harus tetap
berjalan sampai pengguna memilih menu keluar.
Data mahasiswa dapat disimpan menggunakan dictionary.
Seluruh dictionary kemudian disimpan ke dalam list.
Nilai akhir dihitung berdasarkan bobot berikut:
Untuk meningkatkan kualitas project, tambahkan beberapa fitur
berikut:
Project UTS ini melatih mahasiswa untuk menggabungkan berbagai
konsep dasar Python ke dalam aplikasi nyata. Program harus
memiliki struktur yang jelas, validasi input, fungsi dan
prosedur, serta dapat menjalankan seluruh fitur tanpa error.
Array digunakan untuk menyimpan sekumpulan data dalam satu
variabel sehingga data dapat dikelola dengan lebih mudah.
Array adalah struktur data yang digunakan untuk menyimpan
banyak nilai dalam satu tempat. Setiap nilai di dalam array
memiliki posisi atau indeks.
Dalam Python, konsep array dasar biasanya diterapkan
menggunakan struktur data
Array atau list dibuat menggunakan tanda kurung siku
Indeks digunakan untuk mengakses elemen tertentu di dalam
array. Indeks pertama pada Python adalah
Python juga mendukung indeks negatif. Indeks
Elemen array dapat diubah dengan memberikan nilai baru pada
indeks tertentu.
Fungsi
Perulangan
Operator
Array atau list digunakan untuk menyimpan banyak data dalam satu
variabel. Setiap elemen memiliki indeks yang dimulai dari
Array satu dimensi adalah struktur data yang menyimpan beberapa
elemen dalam satu baris atau satu urutan data.
Array satu dimensi adalah kumpulan data yang disusun dalam
satu urutan. Setiap elemen dapat diakses menggunakan satu
indeks.
Dalam Python, array satu dimensi dapat dibuat menggunakan
struktur data
Array satu dimensi memiliki satu indeks untuk menunjuk
posisi setiap elemen.
Array dapat dibuat dengan menuliskan beberapa nilai di
dalam tanda kurung siku. Setiap nilai dipisahkan oleh
tanda koma.
Elemen array dapat diakses dengan menuliskan nama array
diikuti indeks di dalam tanda kurung siku.
Indeks negatif digunakan untuk mengakses elemen array dari
posisi paling belakang.
Elemen array dapat diubah dengan memberikan nilai baru
pada indeks tertentu.
Method
Method
Method
Method
Perulangan
Fungsi
Array dapat diisi secara dinamis menggunakan input dan
perulangan.
Buat program untuk menyimpan nilai beberapa mahasiswa,
kemudian menampilkan jumlah nilai, nilai tertinggi, nilai
terendah, dan rata-rata.
Kesalahan yang sering terjadi adalah mengakses indeks yang
tidak tersedia.
Array satu dimensi menyimpan data dalam satu urutan dan setiap
elemen diakses menggunakan satu indeks. Dalam Python, array
satu dimensi umumnya dibuat menggunakan
Pengolahan data array meliputi proses menambah, mengubah,
menghapus, mencari, mengurutkan, dan menghitung data di dalam
array.
Pengolahan data array adalah serangkaian proses untuk
mengelola isi array agar dapat digunakan sesuai kebutuhan
program.
Proses tersebut dapat dilakukan dengan menggunakan indeks,
perulangan, operator, fungsi bawaan, dan method list Python.
Data array dapat ditampilkan secara langsung menggunakan
fungsi
Perulangan
Data pada indeks tertentu dapat diubah dengan memberikan
nilai baru.
Method
Method
Method
Method
Method
Operator
Method
Python menyediakan beberapa fungsi untuk menghitung data
numerik dalam array.
Method
Untuk membuat salinan array, gunakan method
Data asli tetap:
Data salinan menjadi:
Slicing digunakan untuk mengambil sebagian elemen array.
Bentuk umumnya adalah
Data array dapat disaring menggunakan perulangan dan
kondisi tertentu.
Program berikut digunakan untuk mengolah nilai mahasiswa.
Program akan menampilkan total, rata-rata, nilai tertinggi,
nilai terendah, serta status kelulusan.
Pengolahan data array dapat dilakukan dengan berbagai operasi,
seperti menampilkan, mengubah, menambah, menghapus, mencari,
menghitung, mengurutkan, dan menyaring data. Penguasaan operasi
tersebut penting untuk membuat program yang mampu mengelola
sekumpulan data secara efektif.
Array banyak elemen digunakan untuk menyimpan dan mengolah
sejumlah data dalam satu struktur array secara lebih efektif.
Array banyak elemen adalah array yang memiliki jumlah data
lebih banyak dalam satu struktur. Walaupun jumlah datanya
banyak, setiap elemen tetap dapat diakses menggunakan indeks.
Dalam Python, array banyak elemen dapat dibuat menggunakan
struktur data
Setiap elemen array memiliki indeks. Indeks pertama dimulai
dari
Perulangan
Fungsi
Array dapat diisi menggunakan input pengguna dan perulangan.
Cara ini berguna ketika jumlah data belum diketahui secara
langsung.
Array numerik dapat diolah menggunakan fungsi
Data array dapat diseleksi menggunakan kondisi tertentu.
Contohnya adalah mengambil data yang lebih besar atau sama
dengan nilai tertentu.
Operator modulus
Method
Untuk mengurutkan data dari nilai terbesar ke nilai
terkecil, gunakan
Slicing digunakan untuk mengambil sebagian elemen dari
array tanpa mengubah array aslinya.
Beberapa elemen array dapat diubah menggunakan slicing.
Program berikut menyimpan nilai mahasiswa, kemudian
menghitung jumlah data, total nilai, rata-rata, nilai
tertinggi, nilai terendah, dan jumlah mahasiswa yang lulus.
Program berikut mencari sebuah nama di dalam array.
Array banyak elemen tetap menggunakan satu indeks untuk
mengakses setiap data. Pengolahan array dapat dilakukan dengan
perulangan, kondisi, slicing, fungsi bawaan, dan method list.
Array satu dimensi digunakan untuk menyimpan data dalam satu
urutan, sedangkan data bertingkat akan dibahas pada materi
matriks atau array dua dimensi.
Array dua dimensi digunakan untuk menyimpan data dalam bentuk
baris dan kolom seperti tabel atau matriks.
Array dua dimensi adalah struktur data yang menyimpan
elemen dalam dua arah, yaitu baris dan kolom. Setiap elemen
diakses menggunakan dua indeks.
Dalam Python, array dua dimensi dapat dibuat menggunakan
list yang berisi beberapa list lain. Struktur ini juga
disebut sebagai nested list.
Matriks berikut memiliki tiga baris dan tiga kolom sehingga
disebut matriks berukuran
Elemen array dua dimensi diakses menggunakan format
Elemen matriks dapat diubah dengan memberikan nilai baru
pada posisi baris dan kolom tertentu.
Setiap baris matriks dapat ditampilkan menggunakan satu
perulangan.
Untuk menampilkan setiap elemen matriks, gunakan dua
perulangan. Perulangan pertama membaca baris, sedangkan
perulangan kedua membaca kolom.
Fungsi
Matriks dapat dibuat secara dinamis dengan menerima input
jumlah baris dan kolom dari pengguna.
Jumlah baris dapat dihitung menggunakan
Jumlah seluruh elemen matriks dapat dihitung menggunakan
nested loop.
Matriks persegi adalah matriks yang memiliki jumlah baris
dan kolom yang sama, misalnya matriks
Diagonal utama adalah elemen yang memiliki indeks baris dan
kolom yang sama, yaitu posisi
Matriks berikut menyimpan nilai tiga mahasiswa untuk tiga
mata kuliah. Program menghitung rata-rata setiap mahasiswa.
Array dua dimensi atau matriks menyimpan data dalam bentuk
baris dan kolom. Elemen diakses menggunakan dua indeks, yaitu
indeks baris dan indeks kolom. Pengolahan matriks umumnya
menggunakan nested loop untuk membaca seluruh elemen.
Operasi matriks digunakan untuk mengolah data pada baris dan
kolom, seperti penjumlahan, pengurangan, perkalian, transpose,
dan pencarian nilai tertentu.
Operasi matriks adalah proses pengolahan elemen-elemen
matriks berdasarkan aturan tertentu. Setiap elemen biasanya
diolah berdasarkan posisi baris dan kolomnya.
Dalam Python, operasi matriks dapat dilakukan menggunakan
nested loop dan struktur data list.
Penjumlahan matriks dilakukan dengan menjumlahkan elemen
yang memiliki posisi baris dan kolom yang sama.
Pengurangan matriks dilakukan dengan mengurangkan elemen
matriks pertama dengan elemen matriks kedua pada posisi yang
sama.
Perkalian skalar dilakukan dengan mengalikan setiap elemen
matriks dengan satu bilangan tertentu.
Perkalian dua matriks dilakukan dengan menjumlahkan hasil
perkalian elemen pada baris matriks pertama dengan elemen
pada kolom matriks kedua.
Matriks $A$ berukuran $m \times n$ dapat dikalikan dengan
matriks $B$ berukuran $n \times p$. Hasilnya berukuran
$m \times p$.
Transpose matriks adalah proses menukar posisi baris menjadi
kolom dan kolom menjadi baris.
Contoh matriks berukuran $2 \times 3$ akan berubah menjadi
matriks berukuran $3 \times 2$.
Jumlah setiap baris dapat dihitung menggunakan fungsi
Untuk menghitung jumlah kolom, program membaca elemen pada
kolom yang sama dari setiap baris.
Pada matriks persegi, diagonal utama memiliki indeks baris
dan kolom yang sama.
Matriks identitas adalah matriks persegi yang memiliki nilai
Matriks berikut menyimpan nilai beberapa mahasiswa untuk
beberapa mata kuliah. Program menghitung total nilai dan
rata-rata setiap mahasiswa.
Penjumlahan dan pengurangan matriks membutuhkan ukuran
matriks yang sama.
Operasi matriks dilakukan dengan mengolah elemen berdasarkan
posisi baris dan kolom. Operasi dasar yang dapat dilakukan
meliputi penjumlahan, pengurangan, perkalian skalar, perkalian
matriks, transpose, perhitungan baris dan kolom, serta
pengolahan diagonal.
Record digunakan untuk mengelompokkan beberapa data yang
berbeda dalam satu objek berdasarkan identitas tertentu.
Record adalah struktur data yang digunakan untuk menyimpan
beberapa atribut atau field yang saling berhubungan dalam
satu kesatuan data.
Contohnya, data seorang mahasiswa terdiri dari NIM, nama,
program studi, dan nilai. Semua data tersebut dapat
dikelompokkan dalam satu record mahasiswa.
Satu mahasiswa dapat memiliki NIM, nama, alamat, dan
nilai sebagai satu kesatuan data.
Python tidak memiliki tipe data
Dictionary cocok digunakan untuk memperkenalkan konsep
record karena data disimpan dalam bentuk pasangan
Field adalah bagian data yang terdapat di dalam record.
Setiap field memiliki nama dan nilai.
Data di dalam dictionary dapat diakses menggunakan nama
key yang ditulis di dalam tanda kurung siku.
Method
Nilai field dapat diubah dengan memberikan nilai baru pada
key yang sesuai.
Field baru dapat ditambahkan dengan menggunakan key yang
belum tersedia.
Field dapat dihapus menggunakan keyword
Method
Method
Operator
Satu record dapat menyimpan berbagai tipe data, seperti
teks, bilangan, boolean, list, dan dictionary.
Beberapa record dapat disimpan dalam sebuah list. Struktur
ini cocok digunakan untuk menyimpan data banyak mahasiswa,
barang, atau pelanggan.
Program berikut menyimpan data mahasiswa, kemudian
menampilkan mahasiswa yang memperoleh nilai minimal
Record digunakan untuk mengelompokkan beberapa data yang saling
berhubungan dalam satu kesatuan. Dalam Python, konsep record
dapat diterapkan menggunakan dictionary. Setiap data diakses
melalui key, sehingga struktur ini lebih deskriptif daripada
array yang menggunakan indeks angka.
Struktur data record digunakan untuk mengelompokkan beberapa
field yang memiliki tipe data dan fungsi berbeda ke dalam satu
kesatuan data.
Sebuah record terdiri dari beberapa field. Setiap field
memiliki nama dan nilai yang menjelaskan informasi tertentu.
Sebagai contoh, record mahasiswa dapat memiliki field
Dalam Python, struktur record dapat dibuat menggunakan
dictionary. Setiap field ditulis dalam bentuk pasangan
Setiap field dalam record dapat memiliki tipe data yang
berbeda, seperti string, integer, float, boolean, list, dan
dictionary.
Field record dapat diakses menggunakan nama key di dalam
tanda kurung siku.
Nilai pada field dapat diubah dengan memberikan nilai baru
pada key yang bersangkutan.
Field baru dapat ditambahkan dengan menggunakan key yang
belum terdapat di dalam record.
Field dapat dihapus menggunakan keyword
Beberapa record dapat disimpan dalam sebuah list. Struktur
ini digunakan untuk menyimpan kumpulan data yang memiliki
bentuk sama.
Record dalam list dapat diakses menggunakan indeks list,
kemudian dilanjutkan dengan nama key record.
Perulangan dapat digunakan untuk memproses setiap record
yang terdapat dalam list.
Record dapat diseleksi berdasarkan nilai field tertentu,
misalnya menampilkan mahasiswa yang lulus.
Sebuah record dapat memiliki field yang berisi record lain.
Struktur ini digunakan untuk menyimpan data yang lebih
kompleks.
Program berikut menyimpan beberapa data produk. Program
menampilkan produk yang memiliki stok lebih dari nol.
Struktur data record terdiri dari kumpulan field yang disimpan
dalam satu kesatuan. Dalam Python, record dapat dibuat
menggunakan dictionary. Kumpulan record dapat disimpan dalam
list, sedangkan data yang lebih kompleks dapat dibuat dengan
struktur record bersarang.
Pengolahan data record meliputi proses membuat, membaca,
mengubah, menambah, menghapus, mencari, mengurutkan, dan
menyeleksi data berdasarkan field tertentu.
Pengolahan data record adalah proses mengelola kumpulan
field yang terdapat dalam sebuah record agar dapat
digunakan untuk kebutuhan program.
Dalam Python, pengolahan record dapat dilakukan menggunakan
dictionary, list, perulangan, kondisi, dan method bawaan
dictionary.
Data record dapat dibaca dengan mengakses key atau field
yang dibutuhkan.
Method
Nilai field dapat diubah dengan memberikan nilai baru pada
key yang sesuai.
Field baru dapat ditambahkan dengan memberikan key dan
value baru.
Method
Operator
Beberapa record dapat disimpan dalam list dan diproses
menggunakan perulangan.
Record dapat diseleksi berdasarkan nilai field tertentu.
Contoh berikut menampilkan mahasiswa yang lulus.
Nilai pada field numerik dapat dihitung menggunakan fungsi
seperti
Fungsi
Untuk mengurutkan dari nilai terbesar ke nilai terkecil,
gunakan
Pencarian record dapat dilakukan dengan membandingkan nilai
field tertentu.
Record baru dapat ditambahkan ke dalam list menggunakan
method
Record dapat dihapus berdasarkan indeks menggunakan
Program berikut mengolah data mahasiswa, menentukan status
kelulusan, menghitung rata-rata, dan menampilkan data yang
sudah diproses.
Pengolahan data record dilakukan dengan mengakses, mengubah,
menambah, menghapus, mencari, menyeleksi, dan mengurutkan field
atau kumpulan record. Dalam Python, struktur list yang berisi
dictionary sangat berguna untuk mengelola data banyak objek
secara terstruktur.
Record dalam record adalah struktur data yang menyimpan sebuah
record di dalam field record lainnya untuk membentuk data yang
lebih terstruktur.
Record dalam record merupakan struktur data bersarang
atau nested record. Sebuah field di dalam record
dapat berisi record lain dalam bentuk dictionary.
Struktur ini berguna untuk menyimpan data yang memiliki
beberapa kelompok informasi, seperti data mahasiswa dengan
alamat dan nilai mata kuliah.
Untuk mengakses record bersarang, gunakan nama key secara
berurutan dari record luar menuju record bagian dalam.
Field pada record bagian dalam dapat diubah menggunakan
akses bertingkat.
Field pada record bagian dalam dapat dihapus dengan
Record bersarang dapat digunakan untuk mengelompokkan nilai
berdasarkan mata kuliah.
Nilai yang terdapat dalam record bagian dalam dapat diambil
menggunakan method
Method
Struktur record bersarang dapat digunakan pada banyak data
mahasiswa yang disimpan dalam list.
Data dapat diseleksi berdasarkan field yang terdapat di
dalam record bagian dalam.
Program berikut menghitung rata-rata nilai mata kuliah
setiap mahasiswa dan menentukan status kelulusannya.
Record dalam record digunakan untuk menyimpan data yang
memiliki struktur bertingkat. Dalam Python, data tersebut
dapat dibuat menggunakan dictionary bersarang. Akses data
dilakukan secara berurutan dari record luar ke record bagian
dalam menggunakan beberapa key.
Nested record adalah struktur data yang menyimpan record di
dalam record lain sehingga data dapat dikelompokkan secara
bertingkat.
Nested record atau record bersarang adalah record yang
memiliki field dengan nilai berupa record lain. Struktur
ini digunakan ketika satu data memiliki beberapa kelompok
informasi.
Dalam Python, nested record dapat dibuat menggunakan
dictionary di dalam dictionary.
Data nested record diakses secara bertingkat, dimulai dari
record luar kemudian dilanjutkan ke record bagian dalam.
Data pada record bagian dalam dapat diubah menggunakan
akses bertingkat.
Field pada record bagian dalam dapat dihapus menggunakan
Method
Kumpulan nested record dapat disimpan dalam list. Struktur
ini cocok untuk mengelola data banyak objek.
Nilai yang terdapat pada record bagian dalam dapat dihitung
dengan mengambil seluruh value menggunakan
Seleksi dapat dilakukan berdasarkan field yang berada di
dalam nested record.
Program berikut menyimpan data pesanan pelanggan dalam
nested record. Program menghitung total harga pesanan.
Nested record dapat memiliki lebih dari dua tingkat.
Namun, struktur yang terlalu dalam akan lebih sulit dibaca
dan dikelola.
Nested record digunakan untuk menyimpan data secara bertingkat.
Dalam Python, nested record dibuat menggunakan dictionary di
dalam dictionary. Data diakses dengan menuliskan key dari record
luar kemudian key dari record bagian dalam.
Pengolahan nested record meliputi proses membaca, mengubah,
menambah, menghapus, mencari, menghitung, dan menyeleksi data
pada record yang memiliki struktur bertingkat.
Pengolahan nested record adalah proses mengelola data yang
berada di dalam record bertingkat. Data dapat berupa record
kontak, alamat, nilai, produk, atau informasi lainnya.
Data nested record dibaca menggunakan akses key secara
bertingkat dari record luar menuju record dalam.
Method
Field yang berada di dalam record dapat diubah dengan
menggunakan akses key bertingkat.
Field baru dapat ditambahkan ke dalam record yang sudah
tersedia.
Field pada record bagian dalam dapat dihapus menggunakan
Method
Nilai pada nested record dapat dihitung dengan mengambil
seluruh value menggunakan
Kumpulan nested record dapat disimpan dalam list kemudian
diproses menggunakan perulangan.
Seleksi dapat dilakukan berdasarkan field di dalam nested
record, misalnya kota atau nilai mata kuliah.
Pencarian dapat dilakukan dengan membandingkan nilai field
yang berada di dalam record bersarang.
Fungsi
Program berikut menghitung rata-rata nilai setiap mahasiswa
dan menentukan status kelulusannya.
Pengolahan nested record dilakukan dengan menggunakan akses key
secara bertingkat. Data dapat dibaca, diubah, ditambah,
dihapus, dicari, dihitung, diseleksi, dan diurutkan berdasarkan
field yang berada di dalam record bersarang.
File teks digunakan untuk menyimpan data dalam bentuk karakter
atau tulisan yang dapat dibaca dan diolah oleh program.
File teks adalah file yang menyimpan data dalam bentuk
karakter, kata, kalimat, atau baris teks. Contoh file teks
adalah file dengan ekstensi
File teks dapat digunakan untuk menyimpan data secara
permanen sehingga data tetap tersedia walaupun program
sudah dihentikan.
Pengolahan file teks umumnya terdiri dari beberapa tahap.
Fungsi
Contoh membuka file untuk dibaca:
Method
Beberapa baris teks dapat ditulis menggunakan karakter
newline
Mode
Method
Method
Method
Struktur
Parameter
Data record dapat disimpan ke file teks dengan mengubah
setiap field menjadi baris teks.
File teks dapat dibaca baris demi baris menggunakan
perulangan.
CSV atau Comma-Separated Values adalah format file
teks yang menyimpan data dalam kolom dengan pemisah koma.
File CSV dapat dibuat menggunakan module
Error dapat terjadi jika file yang ingin dibaca belum
tersedia. Gunakan
Program berikut menyimpan kumpulan data mahasiswa ke dalam
file teks dengan format sederhana.
Data dapat dibaca kembali dengan memisahkan setiap baris
menggunakan method
File yang tidak ditutup dapat menyebabkan penggunaan sumber
daya yang tidak efisien. Gunakan
Mode
Pastikan nama dan lokasi file benar, atau tangani error
menggunakan
File teks digunakan untuk menyimpan dan membaca data secara
permanen. Operasi utama file teks meliputi membuka, membaca,
menulis, menambahkan, dan menutup file. Penggunaan
File teks dapat dibuat menggunakan fungsi
Membuat file teks berarti menghasilkan sebuah file baru yang
digunakan untuk menyimpan tulisan, angka, atau data lainnya.
Pada Python, file teks dapat dibuat menggunakan fungsi
Mode
Mode
Cara yang lebih aman dan disarankan adalah menggunakan
struktur
Karakter
Data dalam list dapat ditulis ke file menggunakan
perulangan.
Method
Data dari pengguna dapat langsung disimpan ke dalam file
teks.
Data record dapat disimpan ke dalam file teks menggunakan
format tertentu.
Gunakan mode
Encoding
File dapat dibuat pada folder tertentu dengan menuliskan
path atau lokasi file.
Penanganan error dapat digunakan untuk mengatasi kondisi
seperti file sudah tersedia atau folder tidak ditemukan.
Program berikut membuat file teks yang berisi daftar nilai
mahasiswa dan status kelulusan.
Mode
Pastikan folder tujuan sudah dibuat sebelum file ditulis
pada folder tersebut.
File teks dapat dibuat menggunakan fungsi
Menambah isi file teks dilakukan dengan mode append agar data
baru ditulis di akhir file tanpa menghapus isi sebelumnya.
Menambah isi file berarti menuliskan data baru ke dalam file
yang sudah memiliki isi. Data lama tetap dipertahankan,
sedangkan data baru ditambahkan pada bagian akhir file.
Dalam Python, proses ini dilakukan menggunakan mode
Mode
Penggunaan
Gunakan karakter
Data dalam list dapat ditambahkan ke file menggunakan
perulangan.
Method
Data record dapat ditambahkan dengan format tertentu.
Tanda titik koma digunakan sebagai pemisah antarfield.
Module
Validasi diperlukan agar data kosong atau tidak sesuai
format tidak dimasukkan ke file.
Program dapat membaca isi file terlebih dahulu untuk
memeriksa apakah data yang sama sudah tersedia.
Program berikut menerima data mahasiswa, memvalidasi input,
kemudian menambahkannya ke file teks.
Mode
Data kosong, duplikat, atau tidak sesuai format dapat
membuat isi file sulit diolah.
Menambah isi file teks dilakukan menggunakan mode
Membaca file teks adalah proses mengambil data yang tersimpan
di dalam file agar dapat ditampilkan atau diolah oleh program.
Membaca file teks dilakukan dengan membuka file menggunakan
mode
Mode
Penggunaan
Method
Method
Method
Method
File dapat dibaca baris demi baris menggunakan perulangan
Saat membaca file, setiap baris biasanya memiliki karakter
newline
Method
Data record yang disimpan menggunakan tanda pemisah dapat
dibaca dan diubah kembali menjadi dictionary.
File CSV dapat dibaca menggunakan module
Gunakan
File
Program berikut membaca file, mengubah setiap baris menjadi
record, dan menentukan status kelulusan.
Pastikan nama dan lokasi file sudah benar. Gunakan
Baris yang dibaca dapat memiliki karakter newline. Gunakan
File teks dapat dibaca menggunakan mode
File bertipe adalah file yang menyimpan data berdasarkan jenis
atau format tertentu. Setiap tipe file memiliki cara pengolahan
yang berbeda.
File bertipe adalah file yang memiliki format penyimpanan
data tertentu. Format tersebut menentukan bagaimana data
disimpan, dibaca, dan diolah oleh program.
Contoh file bertipe antara lain file teks, file CSV, file
JSON, dan file biner.
File teks menyimpan data dalam bentuk karakter. Isi file
dapat dibuka dan dibaca langsung menggunakan text editor.
CSV atau Comma-Separated Values digunakan untuk
menyimpan data berbentuk tabel. Setiap baris mewakili
record, sedangkan setiap kolom dipisahkan dengan delimiter.
Membuat file CSV menggunakan module
JSON atau JavaScript Object Notation adalah format
penyimpanan data terstruktur yang sering digunakan untuk
pertukaran data.
Menyimpan dictionary ke file JSON:
File biner menyimpan data dalam bentuk byte. Isi file biner
biasanya tidak dapat dibaca langsung oleh manusia.
Mode file biner ditulis dengan menambahkan karakter
Module
Membaca kembali objek dari file:
JSON sesuai digunakan untuk menyimpan kumpulan nested record
karena dapat mempertahankan struktur dictionary dan list.
File biner harus dibuka menggunakan mode seperti
Gunakan module
JSON sebaiknya dibaca menggunakan
File bertipe menyimpan data berdasarkan format tertentu. File
teks cocok untuk data sederhana, CSV untuk data tabel, JSON
untuk data terstruktur dan nested record, sedangkan file biner
digunakan untuk menyimpan data dalam bentuk byte. Pemilihan
tipe file harus disesuaikan dengan kebutuhan program.
File tidak bertipe adalah file yang tidak memiliki struktur data
tetap. Isi file diproses sebagai sekumpulan byte tanpa
interpretasi tipe data secara otomatis.
File tidak bertipe atau untyped file adalah file
yang tidak menentukan jenis data secara langsung. Program
hanya membaca dan menulis data sebagai kumpulan byte.
File seperti ini tidak memiliki aturan khusus mengenai
apakah data yang disimpan berupa angka, teks, record, atau
objek tertentu.
Data pada file tidak bertipe biasanya diproses sebagai objek
File tidak bertipe dapat dibuat menggunakan mode
File biner dibaca menggunakan mode
Method
Data byte baru dapat ditambahkan menggunakan mode
String dapat diubah menjadi byte menggunakan method
Data byte dapat dikembalikan menjadi string menggunakan
method
Saat file dibaca atau ditulis, Python memiliki pointer yang
menunjukkan posisi data saat ini.
Method
Ukuran file dapat diketahui menggunakan module
File biner dapat disalin dengan membaca data byte kemudian
menulisnya ke file tujuan.
File berukuran besar sebaiknya dibaca secara bertahap atau
menggunakan chunk agar tidak memenuhi memori.
Module
Program berikut menyalin file biner secara bertahap agar
penggunaan memori lebih efisien.
File biner sebaiknya dibuka menggunakan mode
File pickle dapat menjalankan kode saat dimuat. Gunakan
hanya file dari sumber yang dipercaya.
File tidak bertipe menyimpan data tanpa struktur tipe tertentu.
Data biasanya diproses sebagai byte menggunakan mode
Operasi file adalah berbagai proses untuk mengelola file,
seperti membuka, membaca, menulis, menambah, memindahkan,
mengganti nama, dan menghapus file.
Operasi file digunakan agar program dapat berinteraksi
dengan data yang tersimpan di media penyimpanan.
Operasi file umumnya dilakukan dengan bantuan module
File dibuka dengan fungsi
Setelah blok
File dapat dibuat menggunakan mode
File juga dapat dibaca baris demi baris.
Mode
Mode
Module
Fungsi
Fungsi
Fungsi
Module
Fungsi
Fungsi
Untuk membuat folder beserta folder induknya, gunakan
Fungsi
Module
Membaca dan menulis file menggunakan
Program berikut membuat folder arsip, membuat file,
menyalin file, lalu menampilkan daftar file dalam folder.
Selalu periksa keberadaan file menggunakan
Buat folder tujuan terlebih dahulu menggunakan
Gunakan
Operasi file memungkinkan program untuk mengelola file dan
folder, mulai dari membuat, membaca, menulis, menambah,
mengganti nama, menyalin, memindahkan, hingga menghapus file.
Module
Studi kasus ini membahas pengolahan data mahasiswa menggunakan
file teks, mulai dari menambah data, membaca data, mencari data,
mengubah data, dan menghapus data.
Buat sebuah program sederhana untuk mengelola data mahasiswa
menggunakan file teks. Setiap data mahasiswa memiliki
informasi berikut:
Data disimpan dalam file
Setiap baris harus memiliki jumlah field yang sama agar
proses
Sebelum menambahkan data, periksa apakah NIM sudah terdaftar.
Setelah proses tambah, ubah, atau hapus, panggil fungsi
Gunakan
Pengolahan file dapat diterapkan pada program nyata, seperti
sistem pengelolaan data mahasiswa. Data dibaca dari file,
diolah dalam bentuk list dan dictionary, kemudian disimpan
kembali setelah mengalami perubahan. Dengan fungsi yang
terpisah, program menjadi lebih terstruktur dan mudah
dikembangkan.
Penugasan akhir bertujuan menguji kemampuan mahasiswa dalam
menerapkan konsep record, nested record, file teks, file
bertipe, dan operasi file ke dalam sebuah program sederhana.
Buat sebuah aplikasi sederhana berbasis Python yang dapat
digunakan untuk mengelola data. Aplikasi harus mampu
menyimpan data secara permanen menggunakan file.
Setiap mahasiswa dapat memilih salah satu tema berikut:
Setelah menyelesaikan tugas ini, mahasiswa diharapkan mampu:
Contoh nested record untuk data mahasiswa:
Data dapat disimpan menggunakan file JSON agar struktur
nested record tetap terjaga.
Program dapat digunakan untuk mengelola data barang pada
sebuah toko.
Fitur tambahan yang dapat dibuat:
Struktur laporan penugasan: File yang dikumpulkan terdiri dari:
Penugasan akhir merupakan penerapan seluruh materi yang telah
dipelajari, mulai dari struktur data, nested record, fungsi,
validasi, hingga operasi file. Program yang dibuat harus mampu
mengelola data secara terstruktur dan menyimpan perubahan secara
permanen.
Kuis ini menguji pemahaman tentang penugasan akhir, struktur
data, nested record, operasi file, dan validasi program Python.
Project akhir merupakan tugas penerapan seluruh materi
Pemrograman Dasar dalam bentuk aplikasi sederhana berbasis
Python.
Buat sebuah aplikasi pengolahan data yang dapat menyimpan,
membaca, menambah, mencari, mengubah, dan menghapus data.
Project harus menggunakan konsep:
Mengelola data mahasiswa, mata kuliah,
nilai, dan status kelulusan.
Mengelola data barang, stok, kategori,
harga, dan transaksi.
Mengelola data buku, anggota, peminjaman,
dan pengembalian.
Contoh struktur data untuk sistem akademik:
Gunakan file JSON agar struktur dictionary dan nested record
dapat disimpan dengan baik.
Project akhir merupakan kesempatan untuk menggabungkan seluruh
konsep Pemrograman Dasar menjadi sebuah aplikasi yang dapat
digunakan. Program harus memiliki struktur yang jelas, mampu
mengelola data, menggunakan file sebagai media penyimpanan, dan
menangani kesalahan input dengan baik.
Penugasan UAS merupakan tugas akhir yang menguji kemampuan
mahasiswa dalam merancang, membuat, menguji, dan
mendokumentasikan aplikasi pengolahan data menggunakan Python.
Mahasiswa diminta membuat aplikasi pengolahan data berbasis
Python. Aplikasi harus mampu menyimpan data secara
permanen menggunakan file dan menyediakan fitur pengelolaan
data.
Tema aplikasi dapat dipilih dari salah satu pilihan berikut:
Contoh nested record untuk data barang:
Berkas yang dikumpulkan terdiri dari:
Penugasan UAS menjadi sarana untuk menerapkan seluruh konsep
Pemrograman Dasar ke dalam aplikasi yang nyata. Program harus
memiliki fitur pengolahan data, menggunakan file sebagai media
penyimpanan, menerapkan validasi, serta dilengkapi dokumentasi
dan pengujian yang jelas.
Kuis ini menguji pemahaman tentang struktur data, fungsi,
nested record, JSON, operasi file, validasi, dan perancangan
project aplikasi Python.
1.B, 2.B, 3.B, 4.A, 5.A,
6.B, 7.C, 8.B, 9.B, 10.B,
11.C, 12.A, 13.A, 14.A, 15.A
Project UAS merupakan tugas akhir untuk menerapkan seluruh
konsep Pemrograman Dasar ke dalam aplikasi pengolahan data
berbasis Python.
Buat aplikasi pengolahan data sederhana menggunakan Python.
Aplikasi harus menyediakan menu untuk mengelola data dan
menyimpan data secara permanen ke dalam file.
Pilih salah satu tema berikut:
Data mahasiswa, mata kuliah, nilai, dan
status kelulusan.
Data barang, kategori, stok, dan harga.
Data buku, anggota, peminjaman, dan
pengembalian.
Kumpulkan file berikut:
Project UAS merupakan evaluasi akhir yang menggabungkan konsep
dasar pemrograman, struktur data, nested record, fungsi,
pengolahan file, validasi, dan penanganan error. Hasil akhir
harus berupa aplikasi yang dapat berjalan, mudah digunakan, dan
memiliki dokumentasi yang jelas.
and, or, dan
Pertemuan 3
Percabangan if-else
if-else digunakan untuk memilih salah
satu dari dua tindakan berdasarkan kondisi tertentu.
Pengertian if-else
if-else memungkinkan program menjalankan
blok kode yang berbeda berdasarkan hasil pemeriksaan kondisi.
True, program menjalankan
blok if. Jika kondisi bernilai
False, program menjalankan blok
else.
Komponen if-else
Struktur Dasar if-else
if kondisi:
perintah_jika_benar
else:
perintah_jika_salah:. Perintah di dalam blok
if dan else harus menggunakan
indentasi.
Contoh Masalah
Ketentuan:
Implementasi Python
usia = int(input("Masukkan usia: "))
if usia >= 17:
print("Boleh memiliki kartu identitas")
else:
print("Belum cukup umur")
Alur Eksekusi if-else
Operator yang Digunakan
Operator
Arti
Contoh
==Sama dengan
nilai == 75
!=Tidak sama dengan
status != "Nonaktif"
>Lebih besar
umur > 17
<Lebih kecil
nilai < 50
>=Lebih besar atau sama dengan
nilai >= 75
<=Lebih kecil atau sama dengan
usia <= 12
Contoh Menentukan Bilangan
angka = int(input("Masukkan sebuah angka: "))
if angka % 2 == 0:
print("Angka tersebut adalah bilangan genap")
else:
print("Angka tersebut adalah bilangan ganjil")% digunakan untuk mendapatkan
sisa pembagian. Bilangan genap memiliki sisa pembagian
0 ketika dibagi dengan angka 2.
if-else dengan Operator Logika
nilai = 85
kehadiran = 90
if nilai >= 75 and kehadiran >= 80:
print("Mahasiswa lulus")
else:
print("Mahasiswa tidak lulus")
Operator
Fungsi
andSemua kondisi harus benar.
orSalah satu kondisi harus benar.
notMembalik nilai kondisi.
Nested if-else
if adalah percabangan yang berada di
dalam percabangan lainnya.
username = input("Username: ")
password = input("Password: ")
if username == "admin":
if password == "12345":
print("Login berhasil")
else:
print("Password salah")
else:
print("Username tidak ditemukan")if sebaiknya digunakan secara terukur
agar kode tidak terlalu dalam dan sulit dibaca.
Contoh Program Diskon
total_belanja = float(
input("Masukkan total belanja: ")
)
if total_belanja >= 500000:
diskon = total_belanja * 0.10
else:
diskon = 0
total_bayar = total_belanja - diskon
print(f"Diskon: Rp{diskon:,.2f}")
print(f"Total pembayaran: Rp{total_bayar:,.2f}")
Perbedaan if dan if-else
Struktur
Perilaku
Penggunaan
if
Hanya menjalankan perintah jika kondisi benar.
Ketika tidak ada tindakan khusus untuk kondisi
yang salah.
if-else
Memilih salah satu dari dua blok perintah.
Ketika kondisi benar dan salah memiliki
tindakan masing-masing.
Kesalahan Umum
= untuk membandingkan nilai.
else dengan kondisi.
if dan
else.
Praktik Terbaik
Latihan
Ketentuan:
input(), float(),
operator perbandingan, dan struktur
if-else.
Kesimpulan
if-else digunakan untuk memilih salah satu
dari dua jalur program. Kondisi diperiksa terlebih dahulu,
kemudian Python menjalankan blok if jika kondisi
benar atau blok else jika kondisi salah.
Pertemuan 3
Case Of pada Python
match-case. Struktur ini digunakan untuk
mencocokkan sebuah nilai dengan beberapa pola tertentu.
Pengertian match-case
match-case digunakan ketika program
harus memilih tindakan berdasarkan nilai atau pola tertentu.
switch-case pada bahasa pemrograman lain.
Namun, match-case pada Python memiliki
kemampuan pencocokan pola yang lebih fleksibel.
match-case tersedia mulai Python
versi 3.10. Untuk versi Python yang lebih lama, gunakan
if-elif-else sebagai alternatif.
Komponen match-case
match
case
_
Struktur Dasar match-case
match nilai:
case pola_pertama:
perintah_pertama
case pola_kedua:
perintah_kedua
case _:
perintah_default: wajib ditulis setelah
match dan setiap case.
Blok kode harus menggunakan indentasi.
Contoh Masalah
Implementasi match-case
hari = int(input("Masukkan nomor hari: "))
match hari:
case 1:
print("Senin")
case 2:
print("Selasa")
case 3:
print("Rabu")
case 4:
print("Kamis")
case 5:
print("Jumat")
case 6:
print("Sabtu")
case 7:
print("Minggu")
case _:
print("Nomor hari tidak valid")
Default Case dengan Wildcard
_ digunakan sebagai pola
default. Pola ini akan dijalankan jika tidak ada
case lain yang cocok.
pilihan = input("Pilih menu: ")
match pilihan:
case "1":
print("Anda memilih menu utama")
case "2":
print("Anda memilih pengaturan")
case "3":
print("Anda memilih bantuan")
case _:
print("Pilihan tidak tersedia")case _ disarankan agar program
tetap memiliki respons ketika pengguna memasukkan nilai
yang tidak sesuai.
Satu Case dengan Beberapa Nilai
|.
bulan = int(input("Masukkan nomor bulan: "))
match bulan:
case 12 | 1 | 2:
print("Musim hujan")
case 3 | 4 | 5:
print("Musim peralihan")
case 6 | 7 | 8:
print("Musim kemarau")
case 9 | 10 | 11:
print("Musim peralihan")
case _:
print("Nomor bulan tidak valid")case.
match-case dan if-elif-else
Versi if-elif-else
menu = input("Pilih menu: ")
if menu == "1":
print("Menu utama")
elif menu == "2":
print("Pengaturan")
elif menu == "3":
print("Bantuan")
else:
print("Menu tidak tersedia")Versi match-case
menu = input("Pilih menu: ")
match menu:
case "1":
print("Menu utama")
case "2":
print("Pengaturan")
case "3":
print("Bantuan")
case _:
print("Menu tidak tersedia")
Perbandingan Struktur
Aspek
if-elif-else
match-case
Versi Python
Semua versi Python
Python 3.10 atau lebih baru
Jenis pemeriksaan
Kondisi dan ekspresi Boolean
Pencocokan nilai dan pola
Kemudahan untuk banyak pilihan
Dapat menjadi panjang
Lebih terstruktur
Wildcard default
else
case _
Pencocokan pola
Terbatas
Lebih fleksibel
Case dengan Kondisi Tambahan
match-case dapat menggunakan kondisi
tambahan dengan keyword if. Kondisi tambahan
ini disebut guard.
nilai = int(input("Masukkan nilai: "))
match nilai:
case nilai if nilai >= 85:
print("Predikat A")
case nilai if nilai >= 75:
print("Predikat B")
case nilai if nilai >= 65:
print("Predikat C")
case nilai if nilai >= 50:
print("Predikat D")
case _:
print("Predikat E")
Pattern Matching pada Tuple
match-case juga dapat mencocokkan beberapa
nilai yang berada dalam bentuk tuple.
koordinat = (0, 5)
match koordinat:
case (0, 0):
print("Titik berada di pusat")
case (0, y):
print(f"Titik berada pada sumbu Y dengan nilai {y}")
case (x, 0):
print(f"Titik berada pada sumbu X dengan nilai {x}")
case (x, y):
print(f"Titik berada pada koordinat ({x}, {y})")
Pattern Matching pada Dictionary
pengguna = {
"role": "admin",
"aktif": True
}
match pengguna:
case {"role": "admin", "aktif": True}:
print("Admin aktif")
case {"role": "admin"}:
print("Admin tidak aktif")
case {"role": "user"}:
print("Pengguna biasa")
case _:
print("Data pengguna tidak dikenali")
Contoh Program Kalkulator
angka_pertama = float(
input("Masukkan angka pertama: ")
)
operator = input("Masukkan operator (+, -, *, /): ")
angka_kedua = float(
input("Masukkan angka kedua: ")
)
match operator:
case "+":
hasil = angka_pertama + angka_kedua
case "-":
hasil = angka_pertama - angka_kedua
case "*":
hasil = angka_pertama * angka_kedua
case "/":
if angka_kedua != 0:
hasil = angka_pertama / angka_kedua
else:
hasil = "Tidak dapat membagi dengan nol"
case _:
hasil = "Operator tidak valid"
print(f"Hasil: {hasil}")
Kapan Menggunakan match-case?
Gunakan match-case ketika:
Gunakan if-else ketika:
Kesalahan Umum
match pada Python sebelum versi
3.10.
match
atau case.
case _ untuk nilai
yang tidak cocok.
match-case dapat digunakan pada
semua versi Python.
Praktik Terbaik
case _ sebagai kondisi
default.
if-elif-else untuk kondisi
berbentuk rentang.
match-case.
Latihan
match-case.
Ketentuan:
case _ jika pilihan tidak tersedia.
input(), konversi tipe data,
match-case, dan operator aritmatika.
Kesimpulan
match-case untuk
menerapkan konsep case-of atau switch-case. Struktur ini
cocok untuk mencocokkan banyak pilihan nilai atau pola.
Gunakan case _ sebagai kondisi default dan
pastikan program dijalankan menggunakan Python versi 3.10
atau lebih baru.
Pertemuan 3
Perbandingan if-elif-else dan match-case
if-elif-else dan
match-case untuk membuat percabangan.
Keduanya memiliki fungsi yang sama secara umum, tetapi
digunakan pada kondisi yang berbeda.
Mengapa Perlu Dibandingkan?
if-elif-else digunakan untuk memeriksa
kondisi Boolean, rentang nilai, atau kondisi yang kompleks.
match-case digunakan
untuk mencocokkan satu nilai dengan beberapa pola tertentu.
Struktur ini menyerupai switch-case pada
bahasa pemrograman lain.
Pertanyaan Utama
match-case?
Perbedaan Utama
Aspek
if-elif-else
match-case
Fungsi utama
Memeriksa kondisi Boolean.
Mencocokkan nilai atau pola.
Versi Python
Semua versi Python.
Python 3.10 atau lebih baru.
Kondisi rentang
Sangat sesuai.
Dapat digunakan dengan guard,
tetapi kurang sederhana.
Banyak pilihan nilai
Bisa menjadi panjang.
Lebih rapi dan terstruktur.
Wildcard default
else
case _
Pattern matching
Terbatas.
Mendukung pencocokan pola.
Contoh dengan if-elif-else
hari = int(input("Masukkan nomor hari: "))
if hari == 1:
nama_hari = "Senin"
elif hari == 2:
nama_hari = "Selasa"
elif hari == 3:
nama_hari = "Rabu"
elif hari == 4:
nama_hari = "Kamis"
elif hari == 5:
nama_hari = "Jumat"
elif hari == 6:
nama_hari = "Sabtu"
elif hari == 7:
nama_hari = "Minggu"
else:
nama_hari = "Nomor hari tidak valid"
print(nama_hari)
Contoh dengan match-case
hari = int(input("Masukkan nomor hari: "))
match hari:
case 1:
nama_hari = "Senin"
case 2:
nama_hari = "Selasa"
case 3:
nama_hari = "Rabu"
case 4:
nama_hari = "Kamis"
case 5:
nama_hari = "Jumat"
case 6:
nama_hari = "Sabtu"
case 7:
nama_hari = "Minggu"
case _:
nama_hari = "Nomor hari tidak valid"
print(nama_hari)match-case hanya dapat dijalankan pada
Python versi 3.10 atau lebih baru.
Kondisi Berupa Rentang Nilai
if-elif-else biasanya lebih mudah dibaca.
nilai = float(input("Masukkan nilai: "))
if nilai < 0 or nilai > 100:
print("Nilai tidak valid")
elif nilai >= 85:
print("Predikat A")
elif nilai >= 75:
print("Predikat B")
elif nilai >= 65:
print("Predikat C")
else:
print("Predikat D atau E")<, >, dan
>= untuk memeriksa interval nilai.
Rentang Nilai dengan match-case
match-case dengan bantuan guard.
nilai = float(input("Masukkan nilai: "))
match nilai:
case nilai if nilai < 0 or nilai > 100:
print("Nilai tidak valid")
case nilai if nilai >= 85:
print("Predikat A")
case nilai if nilai >= 75:
print("Predikat B")
case nilai if nilai >= 65:
print("Predikat C")
case _:
print("Predikat D atau E")if-elif-else biasanya
lebih sederhana dibandingkan match-case
dengan guard.
Contoh Menu Program
match-case dapat membuat kode lebih rapi.
pilihan = input("Pilih menu 1, 2, atau 3: ")
match pilihan:
case "1":
print("Anda memilih menu utama")
case "2":
print("Anda memilih pengaturan")
case "3":
print("Anda memilih bantuan")
case _:
print("Pilihan tidak tersedia")
Beberapa Nilai dalam Satu Pilihan
Dengan if-elif-else
hari = input("Masukkan nama hari: ").lower()
if hari == "sabtu" or hari == "minggu":
print("Hari libur")
else:
print("Hari kerja")Dengan match-case
hari = input("Masukkan nama hari: ").lower()
match hari:
case "sabtu" | "minggu":
print("Hari libur")
case _:
print("Hari kerja")match-case dapat menggunakan operator
| dalam satu pola.
Kondisi Kompleks
if-elif-else lebih mudah digunakan.
nilai = 85
kehadiran = 90
tugas_lengkap = True
if (
nilai >= 75
and kehadiran >= 80
and tugas_lengkap
):
print("Mahasiswa lulus")
else:
print("Mahasiswa belum lulus")if-elif-else ketika inti keputusan
terletak pada kondisi, bukan pencocokan nilai tertentu.
Panduan Pemilihan Struktur
Pertanyaan
Gunakan
Alasan
Apakah kondisi berupa rentang nilai?
if-elif-else
Lebih mudah membaca kondisi perbandingan.
Apakah pilihan berupa nilai tetap?
match-case
Struktur pencocokan nilai lebih rapi.
Apakah menggunakan Python sebelum 3.10?
if-elif-else
match-case belum tersedia.
Apakah kondisi menggunakan logika kompleks?
if-elif-else
Lebih fleksibel untuk ekspresi Boolean.
Apakah data memiliki pola atau struktur?
match-case
Mendukung pattern matching.
Pattern Matching
match-case adalah kemampuan
mencocokkan struktur data seperti tuple dan dictionary.
data = ("mahasiswa", "aktif")
match data:
case ("mahasiswa", "aktif"):
print("Mahasiswa aktif")
case ("mahasiswa", "nonaktif"):
print("Mahasiswa tidak aktif")
case ("dosen", "aktif"):
print("Dosen aktif")
case _:
print("Data tidak dikenali")if-elif-else biasa.
Kelebihan if-elif-else
Kelebihan match-case
Kesalahan Umum
match-case pada Python versi
sebelum 3.10.
= untuk membandingkan nilai
pada struktur if.
case _ untuk kondisi default.
match-case untuk semua kondisi
tanpa mempertimbangkan jenis masalah.
Latihan
if-elif-else dan satu lagi
menggunakan match-case.
Ketentuan:
if-elif-else untuk rentang nilai.
Gunakan match-case dengan guard sebagai
perbandingan alternatif.
Kesimpulan
if-elif-else untuk kondisi berbentuk
rentang, kondisi kompleks, dan program yang harus kompatibel
dengan berbagai versi Python. Gunakan match-case
untuk mencocokkan banyak nilai tetap, pilihan menu, atau pola
struktur data.
Pertemuan 3
Studi Kasus Seleksi
if, if-else, dan
if-elif-else untuk menyelesaikan permasalahan
nyata menggunakan Python.
Tujuan Pembelajaran
Menganalisis Masalah
Membuat Seleksi
Menguji Program
Studi Kasus 1: Menentukan Kelulusan
Ketentuan:
Analisis Masalah
Input
Nilai akhir mahasiswa
Proses
Memeriksa rentang nilai dan batas kelulusan
Output
Status lulus, tidak lulus, atau tidak valid
Implementasi Python
nilai = float(input("Masukkan nilai akhir: "))
if nilai < 0 or nilai > 100:
print("Nilai tidak valid")
elif nilai >= 75:
print("Mahasiswa lulus")
else:
print("Mahasiswa tidak lulus")
Studi Kasus 2: Menentukan Predikat Nilai
Rentang Nilai
Predikat
85 sampai 100
A
75 sampai 84
B
65 sampai 74
C
50 sampai 64
D
0 sampai 49
E
nilai = float(input("Masukkan nilai: "))
if nilai < 0 or nilai > 100:
predikat = "Tidak valid"
elif nilai >= 85:
predikat = "A"
elif nilai >= 75:
predikat = "B"
elif nilai >= 65:
predikat = "C"
elif nilai >= 50:
predikat = "D"
else:
predikat = "E"
print(f"Predikat nilai: {predikat}")
Studi Kasus 3: Menghitung Diskon Belanja
Total Belanja
Diskon
Minimal Rp1.000.000
20%
Rp500.000 sampai kurang dari Rp1.000.000
10%
Rp250.000 sampai kurang dari Rp500.000
5%
Kurang dari Rp250.000
Tidak ada diskon
total_belanja = float(
input("Masukkan total belanja: ")
)
if total_belanja < 0:
print("Total belanja tidak valid")
else:
if total_belanja >= 1000000:
persentase_diskon = 0.20
elif total_belanja >= 500000:
persentase_diskon = 0.10
elif total_belanja >= 250000:
persentase_diskon = 0.05
else:
persentase_diskon = 0
nilai_diskon = total_belanja * persentase_diskon
total_bayar = total_belanja - nilai_diskon
print(f"Diskon: {persentase_diskon * 100:.0f}%")
print(f"Nilai diskon: Rp{nilai_diskon:,.2f}")
print(f"Total bayar: Rp{total_bayar:,.2f}")
Studi Kasus 4: Menentukan Hak Akses
Ketentuan:
username = input("Username: ")
password = input("Password: ")
status_aktif = input("Apakah akun aktif? (ya/tidak): ")
if username == "admin" and password == "python123":
if status_aktif.lower() == "ya":
print("Login berhasil")
print("Hak akses: Administrator")
else:
print("Akun tidak aktif")
else:
print("Username atau password salah")
Studi Kasus 5: Menentukan Jenis Hari
hari = input("Masukkan nama hari: ").lower()
if hari == "sabtu" or hari == "minggu":
print("Hari libur")
elif hari in [
"senin",
"selasa",
"rabu",
"kamis",
"jumat"
]:
print("Hari kerja")
else:
print("Nama hari tidak valid")or digunakan karena cukup salah satu
kondisi yang terpenuhi untuk menyatakan hari libur.
Studi Kasus 6: Menentukan Kategori BMI
Nilai BMI
Kategori
Kurang dari 18.5
Berat badan kurang
18.5 sampai kurang dari 25
Normal
25 sampai kurang dari 30
Berat badan berlebih
30 atau lebih
Obesitas
berat = float(input("Masukkan berat badan (kg): "))
tinggi = float(input("Masukkan tinggi badan (m): "))
if berat <= 0 or tinggi <= 0:
print("Data harus lebih besar dari nol")
else:
bmi = berat / (tinggi ** 2)
if bmi < 18.5:
kategori = "Berat badan kurang"
elif bmi < 25:
kategori = "Normal"
elif bmi < 30:
kategori = "Berat badan berlebih"
else:
kategori = "Obesitas"
print(f"BMI: {bmi:.2f}")
print(f"Kategori: {kategori}")
Studi Kasus 7: Tarif Parkir
Ketentuan:
lama_parkir = int(
input("Masukkan lama parkir dalam jam: ")
)
if lama_parkir <= 0:
print("Lama parkir tidak valid")
elif lama_parkir == 1:
tarif = 5000
else:
tarif = 5000 + (lama_parkir - 1) * 3000
print(f"Total tarif parkir: Rp{tarif:,.2f}")else, sehingga hanya ditampilkan
ketika input valid.
Memisahkan Seleksi ke dalam Fungsi
def tentukan_status_nilai(nilai):
if nilai < 0 or nilai > 100:
return "Tidak valid"
elif nilai >= 75:
return "Lulus"
else:
return "Tidak lulus"
def main():
nilai = float(input("Masukkan nilai: "))
status = tentukan_status_nilai(nilai)
print(f"Status: {status}")
if __name__ == "__main__":
main()
Contoh Pengujian
Kasus
Input
Hasil yang Diharapkan
Nilai di bawah batas
60
Tidak lulus
Nilai tepat pada batas
75
Lulus
Nilai di atas batas
90
Lulus
Nilai negatif
-10
Nilai tidak valid
Nilai lebih dari 100
120
Nilai tidak valid
Kesalahan yang Sering Terjadi
Tugas Studi Kasus
if-elif-else, dan
format output menggunakan f-string.
Kesimpulan
Pertemuan 4
Perulangan pada Python
Pengertian Perulangan
for dan perulangan
while.
break, continue, dan
else.
Jenis Perulangan
for
while
break
continue
else pada perulangan
Perulangan for
for digunakan untuk mengulang setiap
elemen dari suatu koleksi atau rangkaian data.
for angka in [1, 2, 3, 4, 5]:
print(angka)Struktur Umum
for variabel in koleksi:
perintahangka akan menerima nilai setiap elemen
dari list secara bergantian.
Fungsi range()
range() digunakan untuk menghasilkan
deret angka yang sering digunakan bersama perulangan
for.
for angka in range(5):
print(angka)0 sampai 4. Batas akhir pada
range() tidak termasuk dalam hasil.
Bentuk
Contoh
Hasil
range(stop)range(5)0, 1, 2, 3, 4
range(start, stop)range(2, 6)2, 3, 4, 5
range(start, stop, step)range(2, 10, 2)2, 4, 6, 8
Mengulang List
buah = ["Apel", "Jeruk", "Mangga"]
for item in buah:
print(f"Buah: {item}")
Mengulang String
kata = "Python"
for karakter in kata:
print(karakter)
Perulangan while
while menjalankan blok kode selama
kondisi bernilai True.
angka = 1
while angka <= 5:
print(angka)
angka += 1
Perulangan while dengan Input
while cocok digunakan ketika jumlah
pengulangan belum diketahui secara pasti.
jawaban = ""
while jawaban.lower() != "ya":
jawaban = input("Apakah ingin berhenti? ")
print("Program selesai")ya.
Pernyataan break
break digunakan untuk menghentikan perulangan
sebelum seluruh iterasi selesai.
for angka in range(1, 11):
if angka == 5:
break
print(angka)angka
mencapai 5.
Pernyataan continue
continue digunakan untuk melewati sisa
perintah pada iterasi saat ini dan melanjutkan ke iterasi
berikutnya.
for angka in range(1, 6):
if angka == 3:
continue
print(angka)3 tidak ditampilkan, tetapi perulangan
tetap dilanjutkan.
else pada Perulangan
else pada perulangan dijalankan ketika
perulangan selesai secara normal tanpa dihentikan oleh
break.
for angka in range(1, 4):
print(angka)
else:
print("Perulangan selesai")Dengan break
for angka in range(1, 6):
if angka == 3:
break
print(angka)
else:
print("Perulangan selesai tanpa break")
Perulangan Bersarang
for baris in range(1, 4):
for kolom in range(1, 4):
print(f"({baris}, {kolom})")
Contoh Pola dengan Perulangan
for baris in range(1, 6):
print("*" * baris)*
**
***
****
*****
Akumulasi Nilai
total = 0
for angka in range(1, 6):
total += angka
print(f"Total: {total}")total menyimpan hasil penjumlahan
setiap iterasi.
Studi Kasus: Menghitung Total Belanja
jumlah_barang = int(
input("Masukkan jumlah barang: ")
)
total = 0
for nomor in range(1, jumlah_barang + 1):
harga = float(input(f"Harga barang ke-{nomor}: "))
total += harga
print(f"Total belanja: Rp{total:,.2f}")
Studi Kasus: Mencari Data
data = [12, 25, 8, 40, 15]
target = 40
ditemukan = False
for nilai in data:
if nilai == target:
ditemukan = True
break
if ditemukan:
print("Data ditemukan")
else:
print("Data tidak ditemukan")
Studi Kasus: Validasi Input
while untuk meminta input sampai
pengguna memasukkan data yang valid.
while True:
try:
nilai = float(input("Masukkan nilai 0-100: "))
if 0 <= nilai <= 100:
break
print("Nilai harus berada pada rentang 0-100.")
except ValueError:
print("Input harus berupa angka.")
print(f"Nilai diterima: {nilai}")
Perbandingan for dan while
Aspek
for
while
Jumlah perulangan
Biasanya sudah diketahui.
Biasanya bergantung pada kondisi.
Sumber data
Cocok untuk list, string, tuple, dan range.
Cocok untuk kondisi Boolean.
Risiko infinite loop
Lebih kecil.
Lebih besar jika kondisi tidak berubah.
Contoh penggunaan
Mengulang data mahasiswa.
Validasi input pengguna.
Kesalahan Umum Perulangan
while.
range() yang tidak tepat.
break atau
continue pada blok yang salah.
Praktik Terbaik
for jika jumlah iterasi
sudah diketahui.
while jika perulangan
bergantung pada kondisi.
Latihan
Ketentuan:
for, variabel akumulator,
operator aritmatika, dan seleksi if.
Kesimpulan
for ketika jumlah iterasi atau
sumber data sudah diketahui, dan gunakan while
ketika perulangan bergantung pada suatu kondisi. Pernyataan
break dan continue dapat digunakan
untuk mengatur jalannya perulangan.
Pertemuan 4
Perulangan for pada Python
for digunakan untuk mengulang blok
kode pada setiap elemen dalam suatu koleksi atau rangkaian data.
Pengertian Perulangan for
for digunakan ketika program perlu
menjalankan perintah yang sama untuk beberapa data.
for
antara lain list, tuple, string, dictionary, set, dan objek
range().
Karakteristik for
range().
Struktur Dasar for
for variabel in koleksi:
perintah
Contoh Sederhana
for angka in [1, 2, 3, 4, 5]:
print(angka)Hasil Output
1
2
3
4
5angka berisi
satu nilai dari list.
Perulangan dengan range()
range() menghasilkan deret angka yang
dapat digunakan sebagai batas perulangan.
for angka in range(5):
print(angka)0 sampai sebelum
5, yaitu 0, 1,
2, 3, dan 4.
Bentuk
Contoh
Hasil
range(stop)range(5)0, 1, 2, 3, 4
range(start, stop)range(2, 6)2, 3, 4, 5
range(start, stop, step)range(2, 10, 2)2, 4, 6, 8
Menentukan Nilai Awal
for angka in range(3, 8):
print(angka)3 sampai sebelum 8.
Menentukan Step
for angka in range(0, 11, 2):
print(angka)
Perulangan Mundur
range().
for angka in range(5, 0, -1):
print(angka)5, 4, 3,
2, dan 1.
Mengulang List
buah = ["Apel", "Jeruk", "Mangga"]
for nama_buah in buah:
print(f"Nama buah: {nama_buah}")nama_buah menerima setiap nilai dari
list buah secara berurutan.
Mengulang Tuple
warna = ("Merah", "Hijau", "Biru")
for item in warna:
print(item)
Mengulang Set
angka = {10, 20, 30}
for item in angka:
print(item)
Mengulang String
for.
kata = "Python"
for karakter in kata:
print(karakter)
Mengulang Dictionary
mahasiswa = {
"nama": "Sinta",
"umur": 20,
"prodi": "Informatika"
}
for kunci in mahasiswa:
print(kunci, mahasiswa[kunci])Mengambil Key dan Value
for kunci, nilai in mahasiswa.items():
print(f"{kunci}: {nilai}")
Fungsi enumerate()
enumerate() digunakan untuk mendapatkan
indeks dan nilai elemen secara bersamaan.
buah = ["Apel", "Jeruk", "Mangga"]
for indeks, nama_buah in enumerate(buah):
print(f"{indeks}: {nama_buah}")0.
Fungsi zip()
zip() digunakan untuk menggabungkan
beberapa koleksi dan mengakses elemennya secara bersamaan.
nama = ["Andi", "Budi", "Citra"]
nilai = [80, 75, 90]
for mahasiswa, nilai_akhir in zip(nama, nilai):
print(f"{mahasiswa}: {nilai_akhir}")
for dengan Seleksi
for dapat digabungkan dengan
if untuk memproses elemen tertentu saja.
angka = [1, 2, 3, 4, 5, 6]
for nilai in angka:
if nilai % 2 == 0:
print(f"{nilai} adalah bilangan genap")
Menghentikan for dengan break
data = [10, 20, 30, 40, 50]
target = 30
for nilai in data:
if nilai == target:
print("Data ditemukan")
break
print(f"Memeriksa: {nilai}")
Melewati Iterasi dengan continue
for angka in range(1, 6):
if angka == 3:
continue
print(angka)3, program melewati
iterasi tersebut dan melanjutkan ke angka berikutnya.
else pada for
else dijalankan apabila perulangan selesai
secara normal tanpa dihentikan oleh break.
for angka in range(1, 4):
print(angka)
else:
print("Perulangan selesai")Contoh dengan break
for angka in range(1, 6):
if angka == 3:
break
print(angka)
else:
print("Tidak ada break")
Nested for
for adalah perulangan
for yang berada di dalam perulangan lainnya.
for baris in range(1, 4):
for kolom in range(1, 4):
print(f"Baris {baris}, Kolom {kolom}")
Membuat Pola dengan for
for baris in range(1, 6):
print("*" * baris)Hasil Output
*
**
***
****
*****
Akumulasi dengan for
total = 0
for angka in range(1, 6):
total += angka
print(f"Total: {total}")total digunakan untuk menyimpan hasil
penjumlahan pada setiap iterasi.
Studi Kasus Nilai Mahasiswa
jumlah_mahasiswa = int(
input("Jumlah mahasiswa: ")
)
total_nilai = 0
jumlah_lulus = 0
for nomor in range(1, jumlah_mahasiswa + 1):
nilai = float(input(f"Nilai mahasiswa ke-{nomor}: "))
total_nilai += nilai
if nilai >= 75:
jumlah_lulus += 1
rata_rata = total_nilai / jumlah_mahasiswa
print(f"Total nilai: {total_nilai:.2f}")
print(f"Rata-rata: {rata_rata:.2f}")
print(f"Jumlah mahasiswa lulus: {jumlah_lulus}")
Perbandingan for dan while
Aspek
for
while
Jumlah iterasi
Biasanya sudah diketahui.
Bergantung pada kondisi.
Sumber data
Koleksi atau
range().Kondisi Boolean.
Counter
Dikelola otomatis.
Biasanya harus diperbarui manual.
Risiko infinite loop
Relatif kecil.
Lebih besar.
Kesalahan Umum
for.
range() ikut diproses.
enumerate() lebih sesuai.
Praktik Terbaik
enumerate() untuk indeks
dan nilai.
zip() untuk menggabungkan
beberapa koleksi.
break hanya ketika memang
diperlukan.
Latihan
for.
Ketentuan:
zip() untuk membaca nama dan nilai
secara bersamaan.
for, zip(),
if-else, dan f-string.
Kesimpulan
for digunakan untuk membaca dan
memproses setiap elemen dalam koleksi atau deret angka.
Fungsi range(), enumerate(), dan
zip() dapat membantu membuat perulangan lebih
fleksibel. Gunakan break untuk menghentikan
perulangan dan continue untuk melewati iterasi
tertentu.
Pertemuan 4
Studi Kasus Perulangan for
for untuk mengolah data, menghitung nilai,
mencari data, dan membuat pola menggunakan Python.
Tujuan Pembelajaran
Mengolah Data
Menghitung Nilai
Mencari Data
break.
Studi Kasus 1: Menampilkan Data Mahasiswa
mahasiswa = [
"Andi",
"Budi",
"Citra",
"Dina"
]
for nama in mahasiswa:
print(f"Nama mahasiswa: {nama}")
Studi Kasus 2: Menghitung Total dan Rata-rata
nilai = [80, 75, 90, 85, 70]
total = 0
for angka in nilai:
total += angka
rata_rata = total / len(nilai)
print(f"Total nilai: {total}")
print(f"Rata-rata: {rata_rata:.2f}")total disebut akumulator karena
menyimpan hasil penjumlahan setiap iterasi.
Studi Kasus 3: Menentukan Status Kelulusan
nama = ["Andi", "Budi", "Citra", "Dina"]
nilai = [80, 65, 90, 70]
for mahasiswa, nilai_akhir in zip(nama, nilai):
if nilai_akhir >= 75:
status = "Lulus"
else:
status = "Tidak lulus"
print(
f"{mahasiswa}: {nilai_akhir} - {status}"
)zip() digunakan untuk membaca dua list
secara bersamaan.
Studi Kasus 4: Mencari Nilai Terbesar
nilai = [80, 95, 70, 88, 90]
nilai_terbesar = nilai[0]
for angka in nilai:
if angka > nilai_terbesar:
nilai_terbesar = angka
print(f"Nilai terbesar: {nilai_terbesar}")
Studi Kasus 5: Mencari Data Tertentu
data = [12, 25, 8, 40, 15]
target = 40
ditemukan = False
for nilai in data:
if nilai == target:
ditemukan = True
break
if ditemukan:
print("Data ditemukan")
else:
print("Data tidak ditemukan")break menghentikan pencarian setelah
data yang dicari ditemukan.
Studi Kasus 6: Menghitung Bilangan Genap
angka = [10, 15, 20, 25, 30, 35, 40]
jumlah_genap = 0
for nilai in angka:
if nilai % 2 == 0:
print(f"Bilangan genap: {nilai}")
jumlah_genap += 1
print(f"Jumlah bilangan genap: {jumlah_genap}")
Studi Kasus 7: Menghitung Total Belanja
jumlah_barang = int(
input("Jumlah barang: ")
)
total = 0
for nomor in range(1, jumlah_barang + 1):
harga = float(
input(f"Harga barang ke-{nomor}: ")
)
if harga < 0:
print("Harga tidak valid")
else:
total += harga
print(f"Total belanja: Rp{total:,.2f}")
Studi Kasus 8: Membuat Tabel Perkalian
angka = int(input("Masukkan angka: "))
for faktor in range(1, 11):
hasil = angka * faktor
print(
f"{angka} x {faktor} = {hasil}"
)range(1, 11) menghasilkan angka
1 sampai 10.
Studi Kasus 9: Membuat Pola Segitiga
tinggi = int(input("Masukkan tinggi pola: "))
for baris in range(1, tinggi + 1):
print("*" * baris)Contoh Output
*
**
***
****
*****
Studi Kasus 10: Analisis Nilai Mahasiswa
jumlah_mahasiswa = int(
input("Jumlah mahasiswa: ")
)
total = 0
jumlah_lulus = 0
nilai_tertinggi = None
nilai_terendah = None
for nomor in range(1, jumlah_mahasiswa + 1):
nilai = float(
input(f"Nilai mahasiswa ke-{nomor}: ")
)
total += nilai
if nilai >= 75:
jumlah_lulus += 1
if nilai_tertinggi is None or nilai > nilai_tertinggi:
nilai_tertinggi = nilai
if nilai_terendah is None or nilai < nilai_terendah:
nilai_terendah = nilai
rata_rata = total / jumlah_mahasiswa
print()
print("=== HASIL ANALISIS ===")
print(f"Total nilai : {total:.2f}")
print(f"Rata-rata : {rata_rata:.2f}")
print(f"Nilai tertinggi : {nilai_tertinggi:.2f}")
print(f"Nilai terendah : {nilai_terendah:.2f}")
print(f"Jumlah mahasiswa lulus: {jumlah_lulus}")
Studi Kasus 11: Matriks Sederhana
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for baris in matriks:
for nilai in baris:
print(nilai, end=" ")
print()Output
1 2 3
4 5 6
7 8 9
Studi Kasus 12: Data dengan enumerate()
enumerate() untuk menampilkan nomor
urut dan nama mahasiswa.
mahasiswa = [
"Andi",
"Budi",
"Citra",
"Dina"
]
for nomor, nama in enumerate(mahasiswa, start=1):
print(f"{nomor}. {nama}")
Studi Kasus 13: Menyalin Data yang Memenuhi Syarat
nilai = [60, 80, 75, 50, 90]
nilai_lulus = []
for angka in nilai:
if angka >= 75:
nilai_lulus.append(angka)
print(f"Nilai lulus: {nilai_lulus}")append() digunakan untuk menambahkan
data ke dalam list.
Tabel Pengujian
Kasus
Data
Hasil yang Diharapkan
List berisi data
[1, 2, 3]Semua data ditampilkan.
List kosong
[]Perulangan tidak dijalankan.
Nilai genap
10Nilai diproses sebagai bilangan genap.
Data ditemukan
40Pencarian dapat dihentikan dengan break.
Jumlah iterasi
range(1, 4)Perulangan berjalan tiga kali.
Kesalahan Umum
range() ikut
diproses.
break sehingga data belum
selesai diproses.
Tugas Studi Kasus
Ketentuan:
for, akumulator,
operator perbandingan, if, dan f-string.
Kesimpulan
for sangat berguna untuk memproses
setiap elemen dalam koleksi. Dengan menggabungkan
for dengan seleksi, akumulator,
enumerate(), zip(), dan
break, program dapat menyelesaikan berbagai
permasalahan pengolahan data secara efisien.
Pertemuan 4
Perulangan while pada Python
while digunakan untuk menjalankan blok
kode selama kondisi tertentu bernilai True.
Pengertian Perulangan while
while digunakan ketika jumlah
pengulangan belum diketahui secara pasti dan bergantung
pada suatu kondisi.
True, blok kode dijalankan. Setelah
itu kondisi diperiksa kembali.
False atau ketika dihentikan menggunakan
break.
Karakteristik while
Struktur Dasar while
while kondisi:
perintah:. Perintah di dalam perulangan harus
menggunakan indentasi.
Contoh Sederhana
angka = 1
while angka <= 5:
print(angka)
angka += 1Output
1
2
3
4
5angka bertambah satu pada setiap
iterasi sehingga kondisi akhirnya menjadi
False.
Alur Perulangan while
while dengan Counter
counter = 0
while counter < 3:
print(f"Perulangan ke-{counter + 1}")
counter += 1counter tidak diperbarui, kondisi
dapat selalu bernilai True dan menyebabkan
infinite loop.
while dengan Input Pengguna
while cocok digunakan untuk meminta
input sampai pengguna memasukkan nilai tertentu.
jawaban = ""
while jawaban.lower() != "ya":
jawaban = input("Apakah ingin berhenti? ")
print("Program selesai")ya.
Validasi Input dengan while
while untuk meminta input sampai data
memenuhi aturan yang ditentukan.
nilai = float(input("Masukkan nilai 0-100: "))
while nilai < 0 or nilai > 100:
print("Nilai tidak valid.")
nilai = float(input("Masukkan nilai 0-100: "))
print(f"Nilai diterima: {nilai}")
while dengan try-except
try-except agar program dapat
menangani input yang bukan angka.
while True:
try:
nilai = float(input("Masukkan nilai 0-100: "))
if 0 <= nilai <= 100:
break
print("Nilai harus berada pada rentang 0-100.")
except ValueError:
print("Input harus berupa angka.")
print(f"Nilai diterima: {nilai}")
Menghentikan while dengan break
break menghentikan perulangan secara langsung,
meskipun kondisi perulangan masih bernilai
True.
while True:
perintah = input("Masukkan perintah: ")
if perintah.lower() == "keluar":
break
print(f"Perintah diterima: {perintah}")
print("Program berhenti")
Menggunakan continue
continue melewati sisa perintah pada iterasi
saat ini dan langsung melanjutkan ke iterasi berikutnya.
angka = 0
while angka < 6:
angka += 1
if angka == 3:
continue
print(angka)3 dilewati, tetapi perulangan tetap
berjalan sampai kondisi menjadi False.
else pada while
else dijalankan ketika perulangan selesai
secara normal tanpa dihentikan oleh break.
angka = 1
while angka <= 3:
print(angka)
angka += 1
else:
print("Perulangan selesai")Contoh dengan break
angka = 1
while angka <= 5:
if angka == 3:
break
print(angka)
angka += 1
else:
print("Perulangan selesai tanpa break")
Studi Kasus Menu Berulang
while agar
pengguna dapat memilih beberapa menu sampai memilih keluar.
while True:
print()
print("=== MENU ===")
print("1. Tampilkan data")
print("2. Pengaturan")
print("3. Keluar")
pilihan = input("Pilih menu: ")
if pilihan == "1":
print("Data ditampilkan")
elif pilihan == "2":
print("Pengaturan dibuka")
elif pilihan == "3":
print("Program selesai")
break
else:
print("Pilihan tidak valid")
Akumulasi dengan while
while dapat digunakan untuk
menjumlahkan angka sampai pengguna memasukkan angka
tertentu.
total = 0
angka = int(input("Masukkan angka: "))
while angka != 0:
total += angka
angka = int(input("Masukkan angka lain, 0 untuk berhenti: "))
print(f"Total: {total}")0 berfungsi sebagai tanda berhenti atau
sentinel value.
Studi Kasus Tebak Angka
angka_rahasia = 7
tebakan = None
while tebakan != angka_rahasia:
tebakan = int(input("Tebak angka 1-10: "))
if tebakan < angka_rahasia:
print("Terlalu kecil")
elif tebakan > angka_rahasia:
print("Terlalu besar")
else:
print("Tebakan benar")
Nested while
while adalah perulangan
while yang berada di dalam perulangan lain.
baris = 1
while baris <= 3:
kolom = 1
while kolom <= 3:
print(f"({baris}, {kolom})")
kolom += 1
baris += 1
Perbandingan for dan while
Aspek
for
while
Dasar perulangan
Koleksi atau deret angka.
Kondisi Boolean.
Jumlah iterasi
Biasanya sudah diketahui.
Belum tentu diketahui.
Counter
Dikelola otomatis.
Biasanya diperbarui manual.
Risiko infinite loop
Relatif kecil.
Lebih besar.
Contoh penggunaan
Membaca semua elemen list.
Validasi input dan menu program.
Kesalahan Umum
True.
continue sebelum perubahan
variabel kondisi.
break pada menu keluar.
while terlalu dalam.
Praktik Terbaik
break untuk kondisi berhenti
yang jelas.
try-except untuk input
numerik.
Latihan
while.
Ketentuan:
while, break,
input(), operator aritmatika, dan
if-elif-else.
Kesimpulan
while digunakan untuk menjalankan blok
kode selama kondisi masih bernilai True.
Struktur ini cocok untuk validasi input, menu program, permainan,
dan proses yang jumlah pengulangannya belum diketahui. Selalu
pastikan kondisi dapat berubah agar tidak terjadi infinite loop.
Pertemuan 4
Perulangan Repeat pada Python
repeat secara langsung, tetapi konsepnya dapat
diterapkan menggunakan while True dan
break.
Pengertian Perulangan Repeat
while biasa, pola
while True dapat menjalankan blok program
terlebih dahulu, kemudian memeriksa apakah perulangan harus
dihentikan.
Komponen Repeat
while True
break
Pola Dasar Repeat
while True:
perintah
if kondisi_berhenti:
breakwhile True membuat perulangan berjalan terus.
Pernyataan break digunakan untuk menghentikan
perulangan ketika kondisi tertentu terpenuhi.
Contoh Sederhana
while True:
print("Perintah dijalankan")
jawaban = input("Ulangi? (ya/tidak): ")
if jawaban.lower() == "tidak":
break
print("Perulangan selesai")tidak.
Perbandingan while dan Pola Repeat
Aspek
while biasa
Pola repeat
Pemeriksaan kondisi
Dilakukan sebelum blok dijalankan.
Dilakukan di dalam blok perulangan.
Minimal eksekusi
Dapat tidak dijalankan.
Dijalankan minimal satu kali.
Keyword umum
while kondisiwhile True dan break
Contoh penggunaan
Counter dengan kondisi awal.
Menu dan validasi input.
Repeat untuk Validasi Input
while True:
nilai = float(input("Masukkan nilai 0-100: "))
if 0 <= nilai <= 100:
break
print("Nilai tidak valid. Silakan ulangi.")
print(f"Nilai diterima: {nilai}")
Repeat pada Menu Program
while True:
print()
print("=== MENU PROGRAM ===")
print("1. Tampilkan data")
print("2. Tambah data")
print("3. Keluar")
pilihan = input("Pilih menu: ")
if pilihan == "1":
print("Data ditampilkan")
elif pilihan == "2":
print("Data ditambahkan")
elif pilihan == "3":
print("Program selesai")
break
else:
print("Pilihan tidak tersedia")3.
Repeat pada Program Kalkulator
while True:
angka_pertama = float(
input("Angka pertama: ")
)
operator = input("Operator (+, -, *, /): ")
angka_kedua = float(
input("Angka kedua: ")
)
if operator == "+":
hasil = angka_pertama + angka_kedua
elif operator == "-":
hasil = angka_pertama - angka_kedua
elif operator == "*":
hasil = angka_pertama * angka_kedua
elif operator == "/" and angka_kedua != 0:
hasil = angka_pertama / angka_kedua
else:
hasil = "Operasi tidak valid"
print(f"Hasil: {hasil}")
ulangi = input("Hitung lagi? (ya/tidak): ")
if ulangi.lower() == "tidak":
break
Repeat pada Permainan Tebak Angka
angka_rahasia = 8
while True:
tebakan = int(input("Tebak angka 1-10: "))
if tebakan == angka_rahasia:
print("Tebakan benar")
break
elif tebakan < angka_rahasia:
print("Terlalu kecil")
else:
print("Terlalu besar")
Repeat dengan Sentinel Value
total = 0
while True:
angka = int(
input("Masukkan angka, 0 untuk berhenti: ")
)
if angka == 0:
break
total += angka
print(f"Total: {total}")0 berfungsi sebagai
sentinel value.
Repeat dengan Counter
jumlah_pengulangan = 3
counter = 0
while True:
print(f"Proses ke-{counter + 1}")
counter += 1
if counter == jumlah_pengulangan:
break
Waspada Infinite Loop
# Contoh yang tidak tepat
while True:
print("Perulangan tidak berhenti")Perbaikan
counter = 0
while True:
print("Perulangan berjalan")
counter += 1
if counter == 3:
break
Alur Repeat
Kesalahan Umum
break.
continue sebelum memperbarui
variabel kontrol.
Praktik Terbaik
break secara jelas.
while True untuk menu atau
proses interaktif.
Latihan
while True.
Ketentuan:
tidak.
while True, break,
input(), f-string, dan operator aritmatika.
Kesimpulan
repeat atau
do-while secara langsung. Namun, konsep repeat
dapat dibuat menggunakan while True dan
break. Pola ini memastikan blok program dijalankan
terlebih dahulu dan dapat dihentikan setelah kondisi tertentu
terpenuhi.
Pertemuan 4
Perbandingan for, while, dan repeat
for dan
while. Adapun konsep repeat dapat
diterapkan menggunakan pola while True dengan
break.
Mengapa Perlu Dibandingkan?
for cocok digunakan ketika data atau jumlah
pengulangan sudah diketahui. while digunakan
ketika pengulangan bergantung pada kondisi.
Pertanyaan Pemilihan
break?
Perbandingan Utama
Aspek
for
while
repeat
Ketersediaan di Python
Tersedia langsung.
Tersedia langsung.
Tidak tersedia sebagai keyword.
Dasar pengulangan
Koleksi atau deret angka.
Kondisi Boolean.
Kondisi berhenti.
Jumlah iterasi
Biasanya sudah diketahui.
Belum tentu diketahui.
Belum tentu diketahui.
Pemeriksaan kondisi
Dikelola oleh iterator.
Sebelum blok dijalankan.
Setelah blok dijalankan.
Minimal eksekusi
Dapat tidak berjalan jika koleksi kosong.
Dapat tidak berjalan.
Berjalan minimal satu kali.
Keyword utama
forwhilewhile True dan break
Risiko infinite loop
Relatif kecil.
Ada.
Ada jika tidak menggunakan
break.
Perulangan for
for ketika program perlu membaca setiap
elemen pada koleksi atau mengulang berdasarkan jumlah
tertentu.
for angka in range(1, 6):
print(angka)Cocok digunakan untuk:
Perulangan while
while ketika pengulangan bergantung
pada kondisi yang diperiksa sebelum blok kode dijalankan.
angka = 1
while angka <= 5:
print(angka)
angka += 1Cocok digunakan untuk:
Pola repeat
while True:
print("Perintah dijalankan")
jawaban = input("Ulangi? (ya/tidak): ")
if jawaban.lower() == "tidak":
break
Contoh Tugas yang Sama
Dengan for
for angka in range(1, 6):
print(angka)Dengan while
angka = 1
while angka <= 5:
print(angka)
angka += 1Dengan pola repeat
angka = 1
while True:
print(angka)
angka += 1
if angka > 5:
break
Perbedaan Alur Eksekusi
for
while
repeat
Contoh Validasi Input
while True sering
digunakan karena input selalu diminta minimal satu kali.
while True:
try:
usia = int(input("Masukkan usia: "))
if usia >= 0:
break
print("Usia tidak boleh negatif.")
except ValueError:
print("Input harus berupa angka.")
print(f"Usia diterima: {usia}")
Contoh Menu Program
while True:
print()
print("=== MENU ===")
print("1. Tampilkan data")
print("2. Tambah data")
print("3. Keluar")
pilihan = input("Pilih menu: ")
if pilihan == "1":
print("Data ditampilkan")
elif pilihan == "2":
print("Data ditambahkan")
elif pilihan == "3":
print("Program selesai")
break
else:
print("Pilihan tidak valid")
Panduan Pemilihan Perulangan
Situasi
Struktur yang Disarankan
Alasan
Membaca semua elemen list
forfor dirancang untuk iterasi koleksi.
Mencetak angka 1 sampai 100
forJumlah iterasi sudah diketahui.
Meminta input sampai valid
while atau repeatPerulangan bergantung pada validitas input.
Menampilkan menu berulang
Pola repeat
Menu perlu ditampilkan minimal satu kali.
Menunggu data tersedia
whilePerulangan bergantung pada kondisi.
Mengulang permainan sampai menang
Pola repeat
Permainan dijalankan lalu diperiksa hasilnya.
Mengolah setiap karakter string
forString merupakan koleksi karakter.
Kelebihan for
Kelebihan while
Kelebihan repeat
Kesalahan Umum
while tanpa memperbarui
variabel kondisi.
repeat.
break pada pola
while True.
for untuk kondisi yang belum
memiliki jumlah iterasi pasti.
while ketika cukup menggunakan
for.
Latihan Perbandingan
for, while, dan pola
repeat.
Ketentuan:
for meminta jumlah barang terlebih dahulu.
while berjalan selama counter belum
mencapai jumlah barang.
for, while, dan
while True dengan break.
Kesimpulan
for ketika jumlah iterasi atau sumber data
sudah diketahui. Gunakan while ketika pengulangan
bergantung pada kondisi yang diperiksa sebelum blok dijalankan.
Gunakan pola repeat dengan while True dan
break ketika blok kode harus dijalankan minimal
satu kali, seperti pada menu dan validasi input.
Pertemuan 5
Prosedur pada Python
def.
Pengertian Prosedur
return.
Manfaat Prosedur
Struktur Dasar Prosedur
def nama_prosedur():
perintahdef digunakan untuk mendefinisikan
prosedur. Nama prosedur ditulis setelah def
dan diakhiri tanda kurung serta titik dua.
Prosedur Sederhana
def tampilkan_salam():
print("Selamat datang di program Python")
tampilkan_salam()tampilkan_salam() dipanggil untuk
menampilkan pesan kepada pengguna.
Memanggil Prosedur Berkali-kali
def cetak_garis():
print("-" * 30)
cetak_garis()
print("Laporan Nilai")
cetak_garis()
Prosedur dengan Parameter
def sapa_nama(nama):
print(f"Halo, {nama}")
sapa_nama("Andi")
sapa_nama("Budi")"Andi" dan "Budi" dikirimkan
ke parameter nama.
Beberapa Parameter
def tampilkan_biodata(nama, umur, prodi):
print(f"Nama : {nama}")
print(f"Umur : {umur}")
print(f"Prodi : {prodi}")
tampilkan_biodata(
"Citra",
20,
"Informatika"
)
Parameter Default
def sapa(nama, sapaan="Halo"):
print(f"{sapaan}, {nama}")
sapa("Andi")
sapa("Budi", "Selamat pagi")
Argumen Posisi dan Keyword
Argumen Posisi
def tampilkan_data(nama, umur):
print(nama)
print(umur)
tampilkan_data("Dina", 21)Argumen Keyword
tampilkan_data(
umur=21,
nama="Dina"
)
Prosedur dengan Seleksi
def tampilkan_status(nilai):
if nilai >= 75:
print("Status: Lulus")
else:
print("Status: Tidak lulus")
tampilkan_status(80)
tampilkan_status(60)
Prosedur dengan Perulangan
def tampilkan_daftar(data):
for nomor, item in enumerate(data, start=1):
print(f"{nomor}. {item}")
buah = ["Apel", "Jeruk", "Mangga"]
tampilkan_daftar(buah)
Perbandingan Prosedur dan Fungsi
Aspek
Prosedur
Fungsi
Tujuan
Menjalankan suatu tindakan.
Menghasilkan suatu nilai.
Nilai balik
Biasanya tidak menggunakan
return.Menggunakan
return.
Contoh
Menampilkan pesan.
Menghitung luas.
Penggunaan hasil
Langsung menjalankan perintah.
Hasil dapat disimpan dalam variabel.
Perbedaan dalam Program
Prosedur
def tampilkan_luas(panjang, lebar):
luas = panjang * lebar
print(f"Luas: {luas}")
tampilkan_luas(10, 5)Fungsi
def hitung_luas(panjang, lebar):
return panjang * lebar
hasil = hitung_luas(10, 5)
print(f"Luas: {hasil}")
Variabel Lokal dalam Prosedur
def tampilkan_total():
total = 500000
print(f"Total: Rp{total:,.2f}")
tampilkan_total()
# Variabel total tidak dapat digunakan di sini
# print(total)
Studi Kasus Prosedur Kasir
def tampilkan_header():
print("=" * 35)
print(" PROGRAM KASIR")
print("=" * 35)
def tampilkan_detail(nama, harga, jumlah):
subtotal = harga * jumlah
print(f"Nama barang : {nama}")
print(f"Harga : Rp{harga:,.2f}")
print(f"Jumlah : {jumlah}")
print(f"Subtotal : Rp{subtotal:,.2f}")
print("-" * 35)
tampilkan_header()
tampilkan_detail(
"Buku",
25000,
2
)
tampilkan_detail(
"Pulpen",
5000,
3
)
Prosedur dengan Program Utama
def tampilkan_menu():
print("1. Tampilkan data")
print("2. Tambah data")
print("3. Keluar")
def proses_menu():
while True:
tampilkan_menu()
pilihan = input("Pilih menu: ")
if pilihan == "1":
print("Data ditampilkan")
elif pilihan == "2":
print("Data ditambahkan")
elif pilihan == "3":
print("Program selesai")
break
else:
print("Pilihan tidak valid")
if __name__ == "__main__":
proses_menu()if __name__ == "__main__" memastikan
program utama dijalankan ketika file dieksekusi langsung.
Kesalahan Umum
def.
Praktik Terbaik
Latihan
Ketentuan:
def, parameter, if-else,
print(), dan pemanggilan prosedur.
Kesimpulan
def
dan digunakan untuk menjalankan tugas tertentu. Prosedur dapat
menerima parameter, menggunakan seleksi dan perulangan, serta
dipanggil berkali-kali. Jika sebuah blok kode perlu
mengembalikan nilai, gunakan fungsi dengan return.
Pertemuan 5
Fungsi pada Python
return.
Pengertian Fungsi
Komponen Fungsi
def
return
Struktur Dasar Fungsi
def nama_fungsi(parameter):
perintah
return nilaidef.
Pernyataan return digunakan untuk mengembalikan
hasil dari fungsi.
Fungsi Sederhana
def hitung_luas_persegi(sisi):
return sisi * sisi
hasil = hitung_luas_persegi(5)
print(f"Luas persegi: {hasil}")
Fungsi Tanpa Parameter
def tampilkan_judul():
return "Program Data Mahasiswa"
judul = tampilkan_judul()
print(judul)
Fungsi dengan Parameter
def sapa_nama(nama):
return f"Halo, {nama}"
pesan = sapa_nama("Andi")
print(pesan)nama digunakan untuk menerima data
ketika fungsi dipanggil.
Fungsi dengan Beberapa Parameter
def hitung_total(harga, jumlah):
return harga * jumlah
total = hitung_total(25000, 3)
print(f"Total: Rp{total:,.2f}")
Parameter Default
def sapa(nama, sapaan="Halo"):
return f"{sapaan}, {nama}"
print(sapa("Andi"))
print(sapa("Budi", "Selamat pagi"))
Argumen Posisi dan Keyword
Argumen Posisi
def hitung_luas(panjang, lebar):
return panjang * lebar
hasil = hitung_luas(10, 5)Argumen Keyword
hasil = hitung_luas(
lebar=5,
panjang=10
)
Pernyataan return
return menghentikan eksekusi fungsi dan
mengembalikan nilai kepada kode yang memanggilnya.
def cek_kelulusan(nilai):
if nilai >= 75:
return "Lulus"
return "Tidak lulus"
status = cek_kelulusan(80)
print(status)
Fungsi dengan Beberapa return
def tentukan_predikat(nilai):
if nilai < 0 or nilai > 100:
return "Tidak valid"
elif nilai >= 85:
return "A"
elif nilai >= 75:
return "B"
elif nilai >= 65:
return "C"
else:
return "D"
print(tentukan_predikat(90))
Fungsi dengan Perulangan
def hitung_total(data):
total = 0
for nilai in data:
total += nilai
return total
nilai = [80, 75, 90]
hasil = hitung_total(nilai)
print(f"Total: {hasil}")
Fungsi dengan Seleksi
def hitung_diskon(total):
if total >= 1000000:
return 0.20
elif total >= 500000:
return 0.10
elif total >= 250000:
return 0.05
else:
return 0
diskon = hitung_diskon(750000)
print(f"Diskon: {diskon * 100:.0f}%")
Mengembalikan Beberapa Nilai
def analisis_nilai(data):
total = sum(data)
rata_rata = total / len(data)
nilai_tertinggi = max(data)
nilai_terendah = min(data)
return (
total,
rata_rata,
nilai_tertinggi,
nilai_terendah
)
nilai = [80, 75, 90, 85]
total, rata_rata, tertinggi, terendah = analisis_nilai(nilai)
print(f"Total: {total}")
print(f"Rata-rata: {rata_rata:.2f}")
print(f"Nilai tertinggi: {tertinggi}")
print(f"Nilai terendah: {terendah}")
Variabel Lokal dan Global
nama_program = "Data Mahasiswa"
def tampilkan_data():
nama_mahasiswa = "Andi"
print(nama_program)
print(nama_mahasiswa)
tampilkan_data()
Fungsi Lambda
kuadrat = lambda angka: angka ** 2
hasil = kuadrat(5)
print(hasil)def agar
kode lebih mudah dibaca.
Fungsi Rekursif
def hitung_mundur(angka):
if angka == 0:
print("Selesai")
return
print(angka)
hitung_mundur(angka - 1)
hitung_mundur(5)
Studi Kasus Fungsi Kasir
def hitung_subtotal(harga, jumlah):
return harga * jumlah
def tentukan_diskon(total):
if total >= 1000000:
return 0.20
elif total >= 500000:
return 0.10
elif total >= 250000:
return 0.05
return 0
def hitung_total_bayar(total, diskon):
nilai_diskon = total * diskon
return total - nilai_diskon
subtotal = hitung_subtotal(25000, 10)
diskon = tentukan_diskon(subtotal)
total_bayar = hitung_total_bayar(subtotal, diskon)
print(f"Subtotal: Rp{subtotal:,.2f}")
print(f"Diskon: {diskon * 100:.0f}%")
print(f"Total bayar: Rp{total_bayar:,.2f}")
Perbandingan Fungsi dan Prosedur
Aspek
Fungsi
Prosedur
Tujuan
Menghasilkan nilai.
Menjalankan tindakan.
Keyword
defdef
Nilai balik
Menggunakan
return.Biasanya tidak mengembalikan nilai.
Contoh
Menghitung luas.
Menampilkan laporan.
Kesalahan Umum
return.
Praktik Terbaik
return untuk hasil perhitungan.
Latihan
Ketentuan:
def, parameter, return,
list, perulangan, dan seleksi.
Kesimpulan
def.
Fungsi dapat menerima parameter dan mengembalikan hasil dengan
return. Penggunaan fungsi membuat program lebih
modular, mudah dibaca, mudah diuji, dan dapat digunakan kembali.
Pertemuan 5
Fungsi Rekursif pada Python
Pengertian Fungsi Rekursif
RecursionError.
Komponen Rekursi
Struktur Dasar Fungsi Rekursif
def fungsi_rekursif(data):
if kondisi_dasar:
return hasil
return fungsi_rekursif(data_lebih_sederhana)
Contoh Hitung Mundur
def hitung_mundur(angka):
if angka == 0:
print("Selesai")
return
print(angka)
hitung_mundur(angka - 1)
hitung_mundur(5)Output
5
4
3
2
1
Selesaiangka == 0.
Menghitung Faktorial
$0! = 1$
def faktorial(n):
if n == 0 or n == 1:
return 1
return n * faktorial(n - 1)
hasil = faktorial(5)
print(f"Hasil faktorial: {hasil}")faktorial(5) adalah
120.
Proses faktorial(4)
faktorial(4)
= 4 * faktorial(3)
= 4 * 3 * faktorial(2)
= 4 * 3 * 2 * faktorial(1)
= 4 * 3 * 2 * 1
= 24
Deret Fibonacci
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n - 1) + fibonacci(n - 2)
for indeks in range(8):
print(fibonacci(indeks), end=" ")Output
0 1 1 2 3 5 8 13
Menjumlahkan Elemen List
def jumlah_list(data):
if len(data) == 0:
return 0
return data[0] + jumlah_list(data[1:])
angka = [2, 4, 6, 8]
print(jumlah_list(angka))
Mencari Nilai Terbesar
def nilai_terbesar(data):
if len(data) == 1:
return data[0]
terbesar_sisa = nilai_terbesar(data[1:])
if data[0] > terbesar_sisa:
return data[0]
return terbesar_sisa
angka = [12, 45, 8, 30]
print(nilai_terbesar(angka))
Membalik String
def balik_string(teks):
if len(teks) <= 1:
return teks
return balik_string(teks[1:]) + teks[0]
hasil = balik_string("Python")
print(hasil)
Memeriksa Palindrom
def adalah_palindrom(teks):
teks = teks.lower()
if len(teks) <= 1:
return True
if teks[0] != teks[-1]:
return False
return adalah_palindrom(teks[1:-1])
print(adalah_palindrom("katak"))
print(adalah_palindrom("python"))
Faktor Persekutuan Terbesar
def fpb(a, b):
if b == 0:
return a
return fpb(b, a % b)
hasil = fpb(48, 18)
print(f"FPB: {hasil}")6.
Rekursi pada Struktur Bertingkat
def tampilkan_struktur(data, indentasi=0):
for nama, isi in data.items():
print(" " * indentasi + nama)
if isinstance(isi, dict):
tampilkan_struktur(isi, indentasi + 4)
struktur = {
"Dokumen": {
"Tugas": {},
"Laporan": {}
},
"Gambar": {
"Foto": {}
}
}
tampilkan_struktur(struktur)
Perbandingan Rekursi dan Perulangan
Aspek
Rekursi
Perulangan
Cara kerja
Fungsi memanggil dirinya sendiri.
Blok kode dijalankan berulang.
Kondisi berhenti
Kondisi dasar.
Kondisi perulangan.
Penggunaan memori
Dapat lebih besar karena call stack.
Biasanya lebih hemat.
Keterbacaan
Ringkas untuk masalah bertingkat.
Lebih sederhana untuk pengulangan biasa.
Risiko
RecursionError.Infinite loop.
Contoh penggunaan
Pohon, folder, Fibonacci.
List, counter, tabel.
Call Stack pada Rekursi
def contoh(angka):
if angka == 0:
return
print(f"Masuk: {angka}")
contoh(angka - 1)
print(f"Keluar: {angka}")
contoh(3)Output
Masuk: 3
Masuk: 2
Masuk: 1
Keluar: 1
Keluar: 2
Keluar: 3
Studi Kasus: Total Nilai dengan Rekursi
def total_nilai(nilai, indeks=0):
if indeks == len(nilai):
return 0
return nilai[indeks] + total_nilai(
nilai,
indeks + 1
)
data_nilai = [80, 75, 90, 85]
total = total_nilai(data_nilai)
rata_rata = total / len(data_nilai)
print(f"Total nilai: {total}")
print(f"Rata-rata: {rata_rata:.2f}")
Rekursi Tanpa Kondisi Dasar
# Contoh yang salah
def berjalan_terus():
print("Memanggil kembali")
berjalan_terus()
# berjalan_terus()RecursionError.
Praktik Terbaik
Latihan
Kesimpulan
Pertemuan 5
Perbandingan Prosedur dan Fungsi
def. Perbedaannya terletak pada tujuan dan cara
penggunaan nilai yang dihasilkan.
Prosedur
return untuk mengembalikan hasil kepada
pemanggil.
def tampilkan_salam():
print("Selamat datang")
tampilkan_salam()
Fungsi
return untuk
mengirimkan nilai kepada kode pemanggil.
def hitung_luas(sisi):
return sisi * sisi
hasil = hitung_luas(5)
print(hasil)
Perbandingan Utama
Aspek
Prosedur
Fungsi
Tujuan
Menjalankan suatu tindakan.
Menghasilkan suatu nilai.
Keyword Python
defdef
Nilai balik
Biasanya tidak menggunakan
return.Menggunakan
return.
Hasil pemanggilan
Biasanya menghasilkan efek langsung.
Dapat disimpan dalam variabel.
Contoh penggunaan
Menampilkan menu atau laporan.
Menghitung luas atau total.
Dapat digunakan dalam ekspresi
Biasanya tidak.
Ya.
Apa yang Terjadi jika Tidak Menggunakan return?
return akan mengembalikan nilai
None secara otomatis.
def tampilkan_pesan():
print("Halo")
hasil = tampilkan_pesan()
print(f"Nilai balik: {hasil}")Output
Halo
Nilai balik: None
Contoh Prosedur untuk Menampilkan Data
def tampilkan_mahasiswa(nama, nilai):
print("=" * 30)
print(f"Nama : {nama}")
print(f"Nilai : {nilai}")
if nilai >= 75:
print("Status: Lulus")
else:
print("Status: Tidak lulus")
print("=" * 30)
tampilkan_mahasiswa("Andi", 80)
Contoh Fungsi untuk Menghitung Data
def tentukan_status(nilai):
if nilai >= 75:
return "Lulus"
return "Tidak lulus"
status = tentukan_status(80)
print(f"Status: {status}")
Menyelesaikan Masalah yang Sama
Menggunakan Prosedur
def tampilkan_luas(panjang, lebar):
luas = panjang * lebar
print(f"Luas: {luas}")
tampilkan_luas(10, 5)Menggunakan Fungsi
def hitung_luas(panjang, lebar):
return panjang * lebar
luas = hitung_luas(10, 5)
print(f"Luas: {luas}")
Menggabungkan Prosedur dan Fungsi
def hitung_subtotal(harga, jumlah):
return harga * jumlah
def tampilkan_detail(nama, harga, jumlah):
subtotal = hitung_subtotal(harga, jumlah)
print(f"Nama barang : {nama}")
print(f"Harga : Rp{harga:,.2f}")
print(f"Jumlah : {jumlah}")
print(f"Subtotal : Rp{subtotal:,.2f}")
tampilkan_detail(
"Buku",
25000,
2
)
Kapan Menggunakan Prosedur atau Fungsi?
Kebutuhan
Gunakan
Contoh
Menampilkan pesan
Prosedur
tampilkan_pesan()
Mencetak laporan
Prosedur
cetak_laporan()
Menghitung nilai
Fungsi
hitung_total()
Memeriksa kondisi
Fungsi
cek_kelulusan()
Mengubah format data
Fungsi
format_rupiah()
Menjalankan beberapa tindakan
Prosedur
jalankan_menu()
Studi Kasus Kasir
def hitung_subtotal(harga, jumlah):
return harga * jumlah
def hitung_diskon(total):
if total >= 1000000:
return total * 0.20
elif total >= 500000:
return total * 0.10
elif total >= 250000:
return total * 0.05
return 0
def tampilkan_ringkasan(nama_pelanggan, subtotal, diskon):
total_bayar = subtotal - diskon
print("=" * 35)
print("RINGKASAN TRANSAKSI")
print("=" * 35)
print(f"Pelanggan : {nama_pelanggan}")
print(f"Subtotal : Rp{subtotal:,.2f}")
print(f"Diskon : Rp{diskon:,.2f}")
print(f"Total : Rp{total_bayar:,.2f}")
print("=" * 35)
subtotal = hitung_subtotal(75000, 10)
diskon = hitung_diskon(subtotal)
tampilkan_ringkasan(
"Andi",
subtotal,
diskon
)
Hal Penting
def pada Python.
return secara otomatis
mengembalikan None.
Kesalahan Umum
return pada fungsi.
print() ketika hasil seharusnya
dikembalikan untuk diproses lagi.
Praktik Terbaik
Latihan
Ketentuan:
def, parameter, return,
print(), seleksi, dan pemanggilan fungsi.
Kesimpulan
def. Prosedur digunakan untuk menjalankan tindakan,
sedangkan fungsi digunakan untuk menghasilkan dan
mengembalikan nilai. Dalam program yang baik, fungsi dapat
digunakan untuk proses perhitungan, sedangkan prosedur digunakan
untuk menampilkan hasil atau menjalankan tindakan tertentu.
Penilaian Tengah Semester
Penugasan UTS Python
Mata Kuliah
Bahasa
Sifat Tugas
Judul Penugasan
Aplikasi Pengolahan Data Mahasiswa
Latar Belakang
Tujuan Penugasan
if-elif-else.
for dan
while.
Ketentuan Umum
Fitur Minimal Program
No.
Fitur
Keterangan
1
Tambah data
Menambahkan data mahasiswa baru.
2
Tampilkan data
Menampilkan seluruh data mahasiswa.
3
Cari data
Mencari mahasiswa berdasarkan NIM atau nama.
4
Hitung nilai
Menghitung nilai akhir mahasiswa.
5
Status kelulusan
Menentukan lulus atau tidak lulus.
6
Laporan
Menampilkan ringkasan data akademik.
7
Keluar
Mengakhiri program.
Struktur Data
mahasiswa = {
"nim": "2301001",
"nama": "Andi",
"prodi": "Informatika",
"nilai_tugas": 80,
"nilai_uts": 75,
"nilai_uas": 85
}data_mahasiswa = []
Ketentuan Perhitungan Nilai
Komponen
Bobot
Nilai tugas
30%
Nilai UTS
30%
Nilai UAS
40%
nilai_akhir = (
nilai_tugas * 0.30
+ nilai_uts * 0.30
+ nilai_uas * 0.40
)Ketentuan Kelulusan
Rancangan Menu
=== APLIKASI DATA MAHASISWA ===
1. Tambah data mahasiswa
2. Tampilkan semua data
3. Cari data mahasiswa
4. Hitung nilai mahasiswa
5. Tampilkan laporan
6. Keluar
Fungsi atau Prosedur yang Disarankan
def tampilkan_menu():
pass
def tambah_mahasiswa(data):
pass
def tampilkan_mahasiswa(data):
pass
def cari_mahasiswa(data, kata_kunci):
pass
def hitung_nilai_akhir(tugas, uts, uas):
pass
def tentukan_status(nilai_akhir):
pass
def tampilkan_laporan(data):
pass
def jalankan_program():
pass
Contoh Fungsi Inti
def hitung_nilai_akhir(tugas, uts, uas):
return (
tugas * 0.30
+ uts * 0.30
+ uas * 0.40
)
def tentukan_status(nilai_akhir):
if nilai_akhir >= 75:
return "Lulus"
return "Tidak lulus"
nilai_akhir = hitung_nilai_akhir(80, 75, 85)
status = tentukan_status(nilai_akhir)
print(f"Nilai akhir: {nilai_akhir:.2f}")
print(f"Status: {status}")
Validasi Input
0 sampai 100.
def input_nilai(label):
while True:
try:
nilai = float(input(f"{label}: "))
if 0 <= nilai <= 100:
return nilai
print("Nilai harus berada pada rentang 0-100.")
except ValueError:
print("Input harus berupa angka.")
Ketentuan Fitur Pencarian
def cari_mahasiswa(data, kata_kunci):
ditemukan = False
for mahasiswa in data:
if (
kata_kunci.lower() in mahasiswa["nim"].lower()
or kata_kunci.lower() in mahasiswa["nama"].lower()
):
print(mahasiswa)
ditemukan = True
if not ditemukan:
print("Data tidak ditemukan")
Ketentuan Laporan
def tampilkan_laporan(data):
if len(data) == 0:
print("Belum ada data mahasiswa.")
return
total_nilai = 0
jumlah_lulus = 0
for mahasiswa in data:
nilai = mahasiswa["nilai_akhir"]
total_nilai += nilai
if mahasiswa["status"] == "Lulus":
jumlah_lulus += 1
rata_rata = total_nilai / len(data)
print(f"Jumlah mahasiswa: {len(data)}")
print(f"Jumlah lulus: {jumlah_lulus}")
print(f"Jumlah tidak lulus: {len(data) - jumlah_lulus}")
print(f"Rata-rata kelas: {rata_rata:.2f}")
Ketentuan Teknis
Wajib Digunakan
if-elif-else.
for.
while.
Disarankan Digunakan
try-except.
break dan continue.
Format Laporan
Skenario Pengujian
No.
Skenario
Hasil yang Diharapkan
1
Menambahkan data valid
Data berhasil disimpan.
2
Memasukkan nilai di atas 100
Program meminta input ulang.
3
Mencari data tersedia
Data mahasiswa ditampilkan.
4
Mencari data tidak tersedia
Pesan data tidak ditemukan.
5
Menampilkan data kosong
Pesan belum ada data.
6
Memilih menu keluar
Program berhenti dengan normal.
Rubrik Penilaian
Komponen
Bobot
Kesesuaian fitur
25%
Penerapan konsep Python
25%
Struktur dan kualitas kode
20%
Validasi dan pengujian
15%
Laporan
10%
Presentasi
5%
Berkas Pengumpulan
.py.
Nama_NIM_UTS/
├── program_mahasiswa.py
├── laporan_uts.pdf
└── screenshot/
├── menu.png
├── tambah_data.png
└── laporan.png
Peraturan Pengerjaan
Fitur Tambahan
Checklist Sebelum Mengumpulkan
Ringkasan Penugasan
Evaluasi Pembelajaran
Kuis UTS Pemrograman Dasar
Jumlah Soal
Waktu
Jenis Soal
Petunjuk Pengerjaan
Kunci Jawaban Dosen
Catatan
Project UTS
Aplikasi Pengolahan Data Mahasiswa
Bahasa Pemrograman
Jenis Aplikasi
Sifat Project
Deskripsi Project
Tujuan Project
Fitur yang Wajib Dibuat
No.
Fitur
Keterangan
1
Tambah data
Menambahkan data mahasiswa baru.
2
Tampilkan data
Menampilkan seluruh data mahasiswa.
3
Cari data
Mencari mahasiswa berdasarkan NIM atau nama.
4
Hitung nilai
Menghitung nilai akhir mahasiswa.
5
Status kelulusan
Menampilkan status lulus atau tidak lulus.
6
Laporan
Menampilkan ringkasan nilai mahasiswa.
7
Keluar
Mengakhiri program secara normal.
Struktur Data
data_mahasiswa = [
{
"nim": "2301001",
"nama": "Andi",
"prodi": "Informatika",
"nilai_tugas": 80,
"nilai_uts": 75,
"nilai_uas": 85,
"nilai_akhir": 80.50,
"status": "Lulus"
}
]
Perhitungan Nilai
Komponen
Bobot
Nilai tugas
30%
Nilai UTS
30%
Nilai UAS
40%
nilai_akhir = (
nilai_tugas * 0.30
+ nilai_uts * 0.30
+ nilai_uas * 0.40
)75 dinyatakan
Lulus.
Contoh Program Lengkap
data_mahasiswa = []
def garis():
print("=" * 60)
def tampilkan_judul():
garis()
print("APLIKASI PENGOLAHAN DATA MAHASISWA")
garis()
def input_nilai(label):
while True:
try:
nilai = float(input(f"{label}: "))
if 0 <= nilai <= 100:
return nilai
print("Nilai harus berada pada rentang 0 sampai 100.")
except ValueError:
print("Input harus berupa angka.")
def cari_nim(nim):
for mahasiswa in data_mahasiswa:
if mahasiswa["nim"] == nim:
return mahasiswa
return None
def hitung_nilai_akhir(nilai_tugas, nilai_uts, nilai_uas):
return (
nilai_tugas * 0.30
+ nilai_uts * 0.30
+ nilai_uas * 0.40
)
def tentukan_status(nilai_akhir):
if nilai_akhir >= 75:
return "Lulus"
return "Tidak lulus"
def tambah_data():
print()
print("=== TAMBAH DATA MAHASISWA ===")
nim = input("NIM: ")
if cari_nim(nim) is not None:
print("NIM sudah terdaftar.")
return
nama = input("Nama: ")
prodi = input("Program studi: ")
nilai_tugas = input_nilai("Nilai tugas")
nilai_uts = input_nilai("Nilai UTS")
nilai_uas = input_nilai("Nilai UAS")
nilai_akhir = hitung_nilai_akhir(
nilai_tugas,
nilai_uts,
nilai_uas
)
status = tentukan_status(nilai_akhir)
mahasiswa = {
"nim": nim,
"nama": nama,
"prodi": prodi,
"nilai_tugas": nilai_tugas,
"nilai_uts": nilai_uts,
"nilai_uas": nilai_uas,
"nilai_akhir": nilai_akhir,
"status": status
}
data_mahasiswa.append(mahasiswa)
print("Data berhasil ditambahkan.")
def tampilkan_data():
print()
print("=== DATA MAHASISWA ===")
if len(data_mahasiswa) == 0:
print("Belum ada data mahasiswa.")
return
for nomor, mahasiswa in enumerate(data_mahasiswa, start=1):
print()
print(f"Data ke-{nomor}")
print(f"NIM : {mahasiswa['nim']}")
print(f"Nama : {mahasiswa['nama']}")
print(f"Program studi: {mahasiswa['prodi']}")
print(f"Nilai akhir : {mahasiswa['nilai_akhir']:.2f}")
print(f"Status : {mahasiswa['status']}")
def cari_data():
print()
print("=== CARI DATA MAHASISWA ===")
kata_kunci = input(
"Masukkan NIM atau nama: "
).lower()
ditemukan = False
for mahasiswa in data_mahasiswa:
if (
kata_kunci in mahasiswa["nim"].lower()
or kata_kunci in mahasiswa["nama"].lower()
):
print()
print(f"NIM : {mahasiswa['nim']}")
print(f"Nama : {mahasiswa['nama']}")
print(f"Program studi: {mahasiswa['prodi']}")
print(f"Nilai akhir : {mahasiswa['nilai_akhir']:.2f}")
print(f"Status : {mahasiswa['status']}")
ditemukan = True
if not ditemukan:
print("Data tidak ditemukan.")
def tampilkan_laporan():
print()
print("=== LAPORAN AKADEMIK ===")
if len(data_mahasiswa) == 0:
print("Belum ada data mahasiswa.")
return
total_nilai = 0
jumlah_lulus = 0
nilai_tertinggi = data_mahasiswa[0]["nilai_akhir"]
nilai_terendah = data_mahasiswa[0]["nilai_akhir"]
for mahasiswa in data_mahasiswa:
nilai = mahasiswa["nilai_akhir"]
total_nilai += nilai
if mahasiswa["status"] == "Lulus":
jumlah_lulus += 1
if nilai > nilai_tertinggi:
nilai_tertinggi = nilai
if nilai < nilai_terendah:
nilai_terendah = nilai
jumlah_mahasiswa = len(data_mahasiswa)
jumlah_tidak_lulus = jumlah_mahasiswa - jumlah_lulus
rata_rata = total_nilai / jumlah_mahasiswa
print(f"Jumlah mahasiswa : {jumlah_mahasiswa}")
print(f"Jumlah lulus : {jumlah_lulus}")
print(f"Jumlah tidak lulus: {jumlah_tidak_lulus}")
print(f"Rata-rata kelas : {rata_rata:.2f}")
print(f"Nilai tertinggi : {nilai_tertinggi:.2f}")
print(f"Nilai terendah : {nilai_terendah:.2f}")
def tampilkan_menu():
print()
garis()
print("MENU UTAMA")
garis()
print("1. Tambah data mahasiswa")
print("2. Tampilkan semua data")
print("3. Cari data mahasiswa")
print("4. Tampilkan laporan")
print("5. Keluar")
garis()
def jalankan_program():
tampilkan_judul()
while True:
tampilkan_menu()
pilihan = input("Pilih menu: ")
if pilihan == "1":
tambah_data()
elif pilihan == "2":
tampilkan_data()
elif pilihan == "3":
cari_data()
elif pilihan == "4":
tampilkan_laporan()
elif pilihan == "5":
print("Program selesai.")
break
else:
print("Pilihan menu tidak valid.")
if __name__ == "__main__":
jalankan_program()
Contoh Tampilan Menu
============================================================
APLIKASI PENGOLAHAN DATA MAHASISWA
============================================================
============================================================
MENU UTAMA
============================================================
1. Tambah data mahasiswa
2. Tampilkan semua data
3. Cari data mahasiswa
4. Tampilkan laporan
5. Keluar
============================================================
Pilih menu:
Konsep yang Digunakan
Konsep
Penerapan
Variabel
Menyimpan data mahasiswa dan nilai.
List
Menyimpan banyak data mahasiswa.
Dictionary
Menyimpan detail setiap mahasiswa.
if-elif-else
Memilih menu dan menentukan status.
for
Menampilkan dan mencari data.
while
Menjalankan menu dan validasi input.
Fungsi
Menghitung nilai dan menentukan status.
Prosedur
Menampilkan menu dan data.
try-except
Menangani input yang bukan angka.
Skenario Pengujian
No.
Skenario
Hasil yang Diharapkan
1
Menambahkan data valid
Data berhasil tersimpan.
2
Memasukkan nilai lebih dari 100
Program meminta input ulang.
3
Memasukkan NIM duplikat
Data ditolak.
4
Mencari data yang tersedia
Data mahasiswa ditampilkan.
5
Mencari data yang tidak tersedia
Pesan data tidak ditemukan.
6
Menampilkan laporan tanpa data
Pesan belum ada data.
7
Memilih menu keluar
Program berhenti normal.
Pengembangan Tambahan
Format Pengumpulan
Nama_NIM_Project_UTS/
├── aplikasi_mahasiswa.py
├── laporan_project.pdf
└── screenshot/
├── menu-utama.png
├── tambah-data.png
├── pencarian.png
└── laporan.png
Rubrik Penilaian
Komponen
Bobot
Kelengkapan fitur
25%
Penerapan konsep Python
25%
Struktur dan kualitas kode
20%
Validasi dan pengujian
15%
Laporan project
10%
Presentasi
5%
Checklist Project
Kesimpulan
Pertemuan 9
Konsep Array dalam Python
Pengertian Array
list. List dapat
menyimpan beberapa data dengan tipe yang sama maupun
berbeda.
data = [10, 20, 30, 40, 50]
print(data)
Karakteristik Array
Membuat Array
[]. Setiap elemen dipisahkan menggunakan tanda
koma.
nama = ["Andi", "Budi", "Citra"]
nilai = [80, 75, 90]
campuran = ["Python", 2026, True, 85.5]
print(nama)
print(nilai)
print(campuran)
Indeks Array
0.
Indeks
0
1
2
3
Data
10
20
30
40
angka = [10, 20, 30, 40]
print(angka[0]) # 10
print(angka[1]) # 20
print(angka[2]) # 30
print(angka[3]) # 40
Indeks Negatif
-1 digunakan untuk mengambil elemen terakhir,
sedangkan -2 digunakan untuk mengambil elemen
sebelum elemen terakhir.
buah = ["Apel", "Jeruk", "Mangga", "Pisang"]
print(buah[-1]) # Pisang
print(buah[-2]) # Mangga
Mengubah Elemen Array
nilai = [70, 80, 90]
nilai[1] = 85
print(nilai)[70, 85, 90]
Menghitung Jumlah Elemen
len() digunakan untuk menghitung jumlah
elemen yang terdapat di dalam array.
data = [10, 20, 30, 40, 50]
jumlah_data = len(data)
print(jumlah_data)5
Menampilkan Elemen Array dengan Perulangan
for dapat digunakan untuk membaca
setiap elemen array satu per satu.
nama = ["Andi", "Budi", "Citra"]
for mahasiswa in nama:
print(mahasiswa)Andi
Budi
Citra
Memeriksa Elemen Array
in digunakan untuk memeriksa apakah
suatu nilai terdapat di dalam array.
buah = ["Apel", "Jeruk", "Mangga"]
if "Jeruk" in buah:
print("Jeruk tersedia")
else:
print("Jeruk tidak tersedia")
Operasi Dasar Array
Operasi
Fungsi
Contoh
append()Menambahkan elemen di akhir array.
data.append(60)
insert()Menambahkan elemen pada indeks tertentu.
data.insert(1, 15)
remove()Menghapus elemen berdasarkan nilai.
data.remove(20)
pop()Menghapus elemen berdasarkan indeks.
data.pop(0)
sort()Mengurutkan elemen.
data.sort()
reverse()Membalik urutan elemen.
data.reverse()
Contoh Program Array
nilai = []
jumlah = int(input("Jumlah nilai: "))
for i in range(jumlah):
angka = float(input(f"Nilai ke-{i + 1}: "))
nilai.append(angka)
print()
print("Data nilai:", nilai)
print("Jumlah data:", len(nilai))
print("Nilai tertinggi:", max(nilai))
print("Nilai terendah:", min(nilai))
print("Rata-rata:", sum(nilai) / len(nilai))
Kesimpulan
0. Array dapat diakses, diubah, ditambah, dihapus,
dan diproses menggunakan perulangan.
Pertemuan 9
Array Satu Dimensi
Pengertian Array Satu Dimensi
list dengan tanda kurung siku
[].
angka = [10, 20, 30, 40, 50]
print(angka)
Bentuk Array Satu Dimensi
Indeks
0
1
2
3
4
Elemen
10
20
30
40
50
angka = [10, 20, 30, 40, 50]
print(angka[0]) # 10
print(angka[1]) # 20
print(angka[2]) # 30
print(angka[3]) # 40
print(angka[4]) # 50
Membuat Array Satu Dimensi
nama_mahasiswa = [
"Andi",
"Budi",
"Citra"
]
nilai_mahasiswa = [
80,
75,
90
]
print(nama_mahasiswa)
print(nilai_mahasiswa)
Mengakses Elemen Array
buah = ["Apel", "Jeruk", "Mangga"]
print("Buah pertama :", buah[0])
print("Buah kedua :", buah[1])
print("Buah ketiga :", buah[2])0, bukan dari
1.
Menggunakan Indeks Negatif
Indeks
-4
-3
-2
-1
Data
Apel
Jeruk
Mangga
Pisang
buah = ["Apel", "Jeruk", "Mangga", "Pisang"]
print(buah[-1]) # Pisang
print(buah[-2]) # Mangga
Mengubah Elemen Array
nilai = [70, 80, 90]
nilai[1] = 85
print(nilai)[70, 85, 90]
Menambahkan Elemen
append() digunakan untuk menambahkan
elemen baru di bagian akhir array.
angka = [10, 20, 30]
angka.append(40)
print(angka)[10, 20, 30, 40]
Menyisipkan Elemen
insert() digunakan untuk menyisipkan
elemen pada indeks tertentu.
angka = [10, 20, 30]
angka.insert(1, 15)
print(angka)15 disisipkan pada indeks
1.
[10, 15, 20, 30]
Menghapus Elemen
remove() digunakan untuk menghapus
elemen berdasarkan nilainya.
buah = ["Apel", "Jeruk", "Mangga"]
buah.remove("Jeruk")
print(buah)["Apel", "Mangga"]pop() digunakan untuk menghapus
elemen berdasarkan indeks.
angka = [10, 20, 30]
angka.pop(1)
print(angka)
Menampilkan Array dengan Perulangan
for digunakan untuk menampilkan
setiap elemen array secara berurutan.
nama = ["Andi", "Budi", "Citra"]
for data in nama:
print(data)Andi
Budi
Citra
Perulangan Menggunakan Indeks
range() dan len() dapat
digunakan untuk mengakses elemen berdasarkan indeks.
nilai = [80, 75, 90, 85]
for i in range(len(nilai)):
print(f"Indeks {i}: {nilai[i]}")Indeks 0: 80
Indeks 1: 75
Indeks 2: 90
Indeks 3: 85
Mengisi Array melalui Input
data = []
jumlah = int(input("Jumlah data: "))
for i in range(jumlah):
nilai = int(input(f"Data ke-{i + 1}: "))
data.append(nilai)
print("Isi array:", data)
Studi Kasus Array Satu Dimensi
nilai_mahasiswa = []
jumlah = int(input("Jumlah mahasiswa: "))
for i in range(jumlah):
nilai = float(
input(f"Nilai mahasiswa ke-{i + 1}: ")
)
nilai_mahasiswa.append(nilai)
total = sum(nilai_mahasiswa)
tertinggi = max(nilai_mahasiswa)
terendah = min(nilai_mahasiswa)
rata_rata = total / len(nilai_mahasiswa)
print()
print("Data nilai :", nilai_mahasiswa)
print("Total nilai:", total)
print("Nilai tertinggi:", tertinggi)
print("Nilai terendah :", terendah)
print("Rata-rata :", rata_rata)
Kelebihan dan Kekurangan
Kelebihan
Kekurangan
Mudah dibuat dan digunakan.
Semua data berada dalam satu urutan.
Dapat menyimpan banyak data.
Pencarian data besar dapat membutuhkan waktu.
Mudah diproses menggunakan perulangan.
Kurang cocok untuk data bertingkat.
Memiliki banyak method bawaan.
Kesalahan indeks dapat menyebabkan error.
Kesalahan Umum
angka = [10, 20, 30]
print(angka[3])IndexError karena indeks yang tersedia hanya
0, 1, dan 2.
Kesimpulan
list.
List dapat diakses, diubah, ditambah, dihapus, dan diproses
menggunakan perulangan.
Pertemuan 9
Pengolahan Data Array
Pengertian Pengolahan Data Array
nilai = [80, 75, 90, 85]
print("Data nilai:", nilai)
print("Jumlah data:", len(nilai))
print("Total nilai:", sum(nilai))
Menampilkan Data Array
print().
buah = ["Apel", "Jeruk", "Mangga"]
print(buah)["Apel", "Jeruk", "Mangga"]
Menampilkan Setiap Elemen
for digunakan untuk mengolah setiap
elemen array satu per satu.
nilai = [80, 75, 90, 85]
for data in nilai:
print(data)80
75
90
85
Mengubah Data Array
nilai = [70, 80, 90]
nilai[0] = 75
nilai[2] = 95
print(nilai)[75, 80, 95]
Menambahkan Data
Menggunakan
append()
append() menambahkan satu elemen baru
ke bagian akhir array.
data = [10, 20, 30]
data.append(40)
print(data)[10, 20, 30, 40]
Menggunakan
extend()
extend() digunakan untuk menambahkan
beberapa elemen sekaligus.
data = [10, 20, 30]
data.extend([40, 50, 60])
print(data)
Menyisipkan Data
insert() digunakan untuk menyisipkan
data pada posisi indeks tertentu.
angka = [10, 20, 40]
angka.insert(2, 30)
print(angka)30 disisipkan pada indeks
2.
[10, 20, 30, 40]
Menghapus Data
Menggunakan
remove()
remove() menghapus elemen berdasarkan
nilainya.
buah = ["Apel", "Jeruk", "Mangga"]
buah.remove("Jeruk")
print(buah)["Apel", "Mangga"]
Menggunakan
pop()
pop() menghapus elemen berdasarkan
indeks dan mengembalikan nilai yang dihapus.
data = [10, 20, 30, 40]
data.pop(1)
print(data)[10, 30, 40]
Mencari Data
in digunakan untuk memeriksa
keberadaan suatu data dalam array.
nama = ["Andi", "Budi", "Citra"]
cari = "Budi"
if cari in nama:
print(cari, "ditemukan")
else:
print(cari, "tidak ditemukan")Budi ditemukan di dalam array.
Menentukan Posisi Data
index() digunakan untuk mengetahui
posisi indeks suatu data.
buah = ["Apel", "Jeruk", "Mangga"]
posisi = buah.index("Jeruk")
print("Jeruk berada pada indeks", posisi)Jeruk berada pada indeks 1
Menghitung Data Array
nilai = [80, 75, 90, 85]
print("Jumlah data :", len(nilai))
print("Total nilai :", sum(nilai))
print("Nilai minimum:", min(nilai))
print("Nilai maksimum:", max(nilai))
print("Rata-rata :", sum(nilai) / len(nilai))
Fungsi
Keterangan
len()Menghitung jumlah elemen.
sum()Menghitung jumlah seluruh nilai.
min()Mencari nilai terkecil.
max()Mencari nilai terbesar.
Mengurutkan Data
Urutan Naik
angka = [40, 10, 30, 20]
angka.sort()
print(angka)[10, 20, 30, 40]
Urutan Menurun
angka = [40, 10, 30, 20]
angka.sort(reverse=True)
print(angka)[40, 30, 20, 10]
Membalik Urutan Data
reverse() digunakan untuk membalik
urutan elemen array.
angka = [10, 20, 30, 40]
angka.reverse()
print(angka)[40, 30, 20, 10]
Menyalin Array
copy(). Cara ini mencegah perubahan pada
array asli.
data_asli = [10, 20, 30]
data_salinan = data_asli.copy()
data_salinan.append(40)
print("Data asli :", data_asli)
print("Data salinan:", data_salinan)[10, 20, 30]
[10, 20, 30, 40]
Mengambil Sebagian Data dengan Slicing
array[awal:akhir].
Indeks akhir tidak ikut diambil.
angka = [10, 20, 30, 40, 50]
print(angka[1:4])
print(angka[:3])
print(angka[2:])[20, 30, 40]
[10, 20, 30]
[30, 40, 50]
Menyaring Data Array
nilai = [55, 70, 85, 60, 90, 45]
lulus = []
for data in nilai:
if data >= 70:
lulus.append(data)
print("Nilai lulus:", lulus)Nilai lulus: [70, 85, 90]
Studi Kasus Pengolahan Nilai
nilai_mahasiswa = [78, 65, 90, 55, 82]
total = sum(nilai_mahasiswa)
rata_rata = total / len(nilai_mahasiswa)
nilai_tertinggi = max(nilai_mahasiswa)
nilai_terendah = min(nilai_mahasiswa)
jumlah_lulus = 0
for nilai in nilai_mahasiswa:
if nilai >= 70:
jumlah_lulus += 1
print("Data nilai :", nilai_mahasiswa)
print("Total nilai :", total)
print("Rata-rata :", rata_rata)
print("Nilai tertinggi :", nilai_tertinggi)
print("Nilai terendah :", nilai_terendah)
print("Jumlah mahasiswa :", len(nilai_mahasiswa))
print("Jumlah lulus :", jumlah_lulus)
Ringkasan Operasi Array
Operasi
Fungsi
Contoh
append()Menambah satu data di akhir array.
data.append(10)
extend()Menambah beberapa data.
data.extend([20, 30])
insert()Menyisipkan data pada indeks tertentu.
data.insert(1, 15)
remove()Menghapus data berdasarkan nilai.
data.remove(10)
pop()Menghapus data berdasarkan indeks.
data.pop(0)
index()Mencari indeks suatu data.
data.index(20)
sort()Mengurutkan data.
data.sort()
reverse()Membalik urutan data.
data.reverse()
copy()Menyalin array.
salinan = data.copy()
Kesalahan Umum
1. Mengakses Indeks yang Tidak Tersedia
data = [10, 20, 30]
print(data[3])IndexError karena
indeks terakhir yang tersedia adalah 2.
2. Menghapus Data yang Tidak Ada
data = [10, 20, 30]
data.remove(50)ValueError karena
nilai 50 tidak terdapat dalam array.
Latihan
Kesimpulan
Pertemuan 10
Array Banyak Elemen
Pengertian Array Banyak Elemen
list.
angka = [
10, 20, 30, 40, 50,
60, 70, 80, 90, 100
]
print(angka)
Struktur Indeks Array
0 dan indeks terakhir adalah jumlah elemen
dikurangi satu.
Indeks
0
1
2
3
4
Nilai
10
20
30
40
50
data = [10, 20, 30, 40, 50]
print("Elemen pertama:", data[0])
print("Elemen terakhir:", data[len(data) - 1])
Mengakses Banyak Elemen dengan Perulangan
for dapat digunakan untuk membaca
semua elemen array tanpa mengakses indeks satu per satu.
data = [10, 20, 30, 40, 50]
for nilai in data:
print(nilai)
Mengakses Elemen dan Indeks
enumerate() digunakan untuk mendapatkan
indeks dan nilai secara bersamaan.
buah = [
"Apel",
"Jeruk",
"Mangga",
"Pisang"
]
for indeks, nama_buah in enumerate(buah):
print(indeks, nama_buah)0 Apel
1 Jeruk
2 Mangga
3 Pisang
Mengisi Array dengan Banyak Data
data = []
jumlah = int(input("Jumlah data: "))
for i in range(jumlah):
nilai = int(input(f"Data ke-{i + 1}: "))
data.append(nilai)
print("Isi array:", data)
Pengolahan Data Numerik
sum(), len(), min(),
dan max().
nilai = [75, 80, 90, 65, 85]
total = sum(nilai)
jumlah = len(nilai)
rata_rata = total / jumlah
print("Total nilai :", total)
print("Jumlah data :", jumlah)
print("Nilai terendah :", min(nilai))
print("Nilai tertinggi :", max(nilai))
print("Rata-rata :", rata_rata)
Menyeleksi Banyak Data
nilai = [55, 70, 80, 65, 90, 45]
nilai_lulus = []
for data in nilai:
if data >= 70:
nilai_lulus.append(data)
print("Nilai lulus:", nilai_lulus)Nilai lulus: [70, 80, 90]
Mengambil Bilangan Genap
% dapat digunakan untuk
memeriksa apakah suatu bilangan merupakan bilangan genap.
angka = [10, 15, 20, 25, 30, 35, 40]
bilangan_genap = []
for nilai in angka:
if nilai % 2 == 0:
bilangan_genap.append(nilai)
print("Bilangan genap:", bilangan_genap)
Mengurutkan Banyak Data
sort() digunakan untuk mengurutkan
data dari nilai terkecil ke nilai terbesar.
data = [45, 10, 80, 25, 60]
data.sort()
print("Urutan naik:", data)reverse=True.
data.sort(reverse=True)
print("Urutan turun:", data)
Mengambil Sebagian Data
data = [10, 20, 30, 40, 50, 60]
bagian_awal = data[:3]
bagian_tengah = data[2:5]
bagian_akhir = data[3:]
print("Bagian awal :", bagian_awal)
print("Bagian tengah :", bagian_tengah)
print("Bagian akhir :", bagian_akhir)
Mengubah Beberapa Elemen
data = [10, 20, 30, 40, 50]
data[1:3] = [25, 35]
print(data)[10, 25, 35, 40, 50]
Studi Kasus Pengolahan Nilai Mahasiswa
nilai_mahasiswa = [
78, 65, 90, 55, 82,
70, 88, 60
]
total_nilai = sum(nilai_mahasiswa)
jumlah_data = len(nilai_mahasiswa)
rata_rata = total_nilai / jumlah_data
jumlah_lulus = 0
for nilai in nilai_mahasiswa:
if nilai >= 70:
jumlah_lulus += 1
print("Data nilai :", nilai_mahasiswa)
print("Jumlah mahasiswa :", jumlah_data)
print("Total nilai :", total_nilai)
print("Rata-rata :", rata_rata)
print("Nilai tertinggi :", max(nilai_mahasiswa))
print("Nilai terendah :", min(nilai_mahasiswa))
print("Jumlah lulus :", jumlah_lulus)
Studi Kasus Pencarian Data
nama_mahasiswa = [
"Andi",
"Budi",
"Citra",
"Dewi",
"Eko"
]
nama_dicari = input("Masukkan nama yang dicari: ")
if nama_dicari in nama_mahasiswa:
posisi = nama_mahasiswa.index(nama_dicari)
print("Data ditemukan")
print("Posisi indeks:", posisi)
else:
print("Data tidak ditemukan")
Operasi Array Banyak Elemen
Operasi
Kegunaan
Contoh
len()Menghitung jumlah elemen.
len(data)
sum()Menghitung total nilai.
sum(data)
min()Mencari nilai terendah.
min(data)
max()Mencari nilai tertinggi.
max(data)
append()Menambahkan satu elemen.
data.append(10)
remove()Menghapus elemen berdasarkan nilai.
data.remove(10)
sort()Mengurutkan elemen.
data.sort()
index()Mencari posisi elemen.
data.index(20)
Kesalahan Umum
1. Mengakses Indeks di Luar Batas
data = [10, 20, 30]
print(data[3])2.
Mengakses indeks 3 akan menghasilkan
IndexError.
2. Menggunakan Fungsi Numerik pada Data Teks
nama = ["Andi", "Budi", "Citra"]
print(sum(nama))sum() hanya dapat digunakan pada data
numerik, bukan data teks.
Latihan
Kesimpulan
Pertemuan 10
Array Dua Dimensi / Matriks
Pengertian Array Dua Dimensi
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matriks)
Bentuk Matriks
3 x 3.
Kolom 0
Kolom 1
Kolom 2
Baris 0
1
2
3
Baris 1
4
5
6
Baris 2
7
8
9
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
Mengakses Elemen Matriks
matriks[baris][kolom].
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
print(matriks[0][0]) # 1
print(matriks[1][2]) # 6
print(matriks[2][1]) # 80.
Mengubah Elemen Matriks
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
matriks[1][1] = 50
print(matriks)1 dan kolom 1
berubah dari 5 menjadi 50.
Menampilkan Matriks
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for baris in matriks:
print(baris)[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
Menampilkan Elemen dengan Nested Loop
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
for baris in matriks:
for elemen in baris:
print(elemen, end=" ")
print()1 2 3
4 5 6
7 8 9
Mengakses Matriks dengan Indeks
range() dan len() dapat
digunakan untuk mengakses baris dan kolom berdasarkan
indeks.
matriks = [
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
]
for i in range(len(matriks)):
for j in range(len(matriks[i])):
print(
f"Baris {i}, Kolom {j}: {matriks[i][j]}"
)
Membuat Matriks melalui Input
baris = int(input("Jumlah baris: "))
kolom = int(input("Jumlah kolom: "))
matriks = []
for i in range(baris):
data_baris = []
for j in range(kolom):
nilai = int(
input(f"Data [{i}][{j}]: ")
)
data_baris.append(nilai)
matriks.append(data_baris)
print()
print("Matriks:")
for data_baris in matriks:
print(data_baris)
Menghitung Baris dan Kolom
len(matriks). Jumlah kolom pada baris tertentu
dapat dihitung menggunakan len(matriks[baris]).
matriks = [
[1, 2, 3],
[4, 5, 6]
]
jumlah_baris = len(matriks)
jumlah_kolom = len(matriks[0])
print("Jumlah baris :", jumlah_baris)
print("Jumlah kolom :", jumlah_kolom)2 x 3.
Menghitung Jumlah Seluruh Elemen
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
total = 0
for baris in matriks:
for nilai in baris:
total += nilai
print("Total elemen:", total)Total elemen: 45
Matriks Persegi
3 x 3.
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
jumlah_baris = len(matriks)
jumlah_kolom = len(matriks[0])
if jumlah_baris == jumlah_kolom:
print("Matriks persegi")
else:
print("Bukan matriks persegi")
Diagonal Utama Matriks
[0][0], [1][1], dan seterusnya.
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
diagonal = []
for i in range(len(matriks)):
diagonal.append(matriks[i][i])
print("Diagonal utama:", diagonal)Diagonal utama: [1, 5, 9]
Studi Kasus Nilai Mahasiswa
nilai = [
[80, 75, 90],
[70, 85, 80],
[90, 88, 95]
]
for i in range(len(nilai)):
total = sum(nilai[i])
rata_rata = total / len(nilai[i])
print(
f"Mahasiswa {i + 1}: "
f"Total = {total}, "
f"Rata-rata = {rata_rata}"
)
Ringkasan Operasi Matriks
Operasi
Kegunaan
Contoh
matriks[i][j]Mengakses elemen pada baris dan kolom.
matriks[0][1]
len(matriks)Menghitung jumlah baris.
len(matriks)
len(matriks[i])Menghitung jumlah kolom.
len(matriks[0])
append()Menambahkan baris atau elemen.
matriks.append([1, 2])
sum()Menghitung total nilai dalam satu baris.
sum(matriks[0])
Nested loop
Membaca seluruh elemen matriks.
for baris in matriks
Kesalahan Umum
1. Mengakses Indeks di Luar Batas
matriks = [
[1, 2],
[3, 4]
]
print(matriks[2][0])IndexError karena
indeks baris yang tersedia hanya 0 dan
1.
2. Jumlah Kolom Tidak Sama
matriks = [
[1, 2, 3],
[4, 5]
]
Latihan
3 x 3.
Kesimpulan
Pertemuan 10
Operasi Matriks
Pengertian Operasi Matriks
A = [
[1, 2],
[3, 4]
]
B = [
[5, 6],
[7, 8]
]
Penjumlahan Matriks
Matriks A
+
Matriks B
1
2
+
5
6
3
4
+
7
8
A = [
[1, 2],
[3, 4]
]
B = [
[5, 6],
[7, 8]
]
hasil = []
for i in range(len(A)):
baris = []
for j in range(len(A[i])):
nilai = A[i][j] + B[i][j]
baris.append(nilai)
hasil.append(baris)
print(hasil)[[6, 8], [10, 12]]
Pengurangan Matriks
A = [
[8, 7],
[6, 5]
]
B = [
[2, 3],
[4, 1]
]
hasil = []
for i in range(len(A)):
baris = []
for j in range(len(A[i])):
nilai = A[i][j] - B[i][j]
baris.append(nilai)
hasil.append(baris)
print(hasil)[[6, 4], [2, 4]]
Perkalian Matriks dengan Skalar
matriks = [
[1, 2],
[3, 4]
]
skalar = 3
hasil = []
for baris in matriks:
baris_hasil = []
for nilai in baris:
baris_hasil.append(nilai * skalar)
hasil.append(baris_hasil)
print(hasil)[[3, 6], [9, 12]]
Perkalian Dua Matriks
A = [
[1, 2],
[3, 4]
]
B = [
[5, 6],
[7, 8]
]
hasil = [
[0, 0],
[0, 0]
]
for i in range(len(A)):
for j in range(len(B[0])):
for k in range(len(B)):
hasil[i][j] += A[i][k] * B[k][j]
print(hasil)[[19, 22], [43, 50]]
Transpose Matriks
matriks = [
[1, 2, 3],
[4, 5, 6]
]
transpose = []
jumlah_baris = len(matriks)
jumlah_kolom = len(matriks[0])
for j in range(jumlah_kolom):
baris = []
for i in range(jumlah_baris):
baris.append(matriks[i][j])
transpose.append(baris)
print(transpose)[[1, 4], [2, 5], [3, 6]]
Menghitung Jumlah Setiap Baris
sum().
matriks = [
[10, 20, 30],
[5, 15, 25],
[2, 4, 6]
]
for i in range(len(matriks)):
total = sum(matriks[i])
print(
f"Jumlah baris {i + 1}: {total}"
)Jumlah baris 1: 60
Jumlah baris 2: 45
Jumlah baris 3: 12
Menghitung Jumlah Setiap Kolom
matriks = [
[10, 20, 30],
[5, 15, 25],
[2, 4, 6]
]
jumlah_kolom = len(matriks[0])
for j in range(jumlah_kolom):
total = 0
for i in range(len(matriks)):
total += matriks[i][j]
print(
f"Jumlah kolom {j + 1}: {total}"
)Jumlah kolom 1: 17
Jumlah kolom 2: 39
Jumlah kolom 3: 61
Operasi Diagonal Matriks
matriks = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
jumlah_diagonal = 0
for i in range(len(matriks)):
jumlah_diagonal += matriks[i][i]
print("Jumlah diagonal utama:", jumlah_diagonal)Jumlah diagonal utama: 15
Matriks Identitas
1 pada diagonal utama dan nilai
0 pada elemen lainnya.
ukuran = 3
identitas = []
for i in range(ukuran):
baris = []
for j in range(ukuran):
if i == j:
baris.append(1)
else:
baris.append(0)
identitas.append(baris)
for baris in identitas:
print(baris)[1, 0, 0]
[0, 1, 0]
[0, 0, 1]
Studi Kasus Operasi Nilai Mahasiswa
nilai = [
[80, 75, 90],
[70, 85, 80],
[90, 88, 95]
]
for i in range(len(nilai)):
total = sum(nilai[i])
rata_rata = total / len(nilai[i])
print(
f"Mahasiswa {i + 1}: "
f"Total = {total}, "
f"Rata-rata = {rata_rata:.2f}"
)
Ringkasan Operasi Matriks
Operasi
Kegunaan
Contoh
Penjumlahan
Menjumlahkan elemen dengan posisi yang sama.
A[i][j] + B[i][j]
Pengurangan
Mengurangkan elemen dengan posisi yang sama.
A[i][j] - B[i][j]
Perkalian Skalar
Mengalikan setiap elemen dengan bilangan tertentu.
A[i][j] * k
Perkalian Matriks
Mengalikan baris dengan kolom.
Nested loop tiga tingkat
Transpose
Menukar baris menjadi kolom.
A[i][j] menjadi A[j][i]
Diagonal
Mengolah elemen dengan indeks baris dan kolom sama.
A[i][i]
Kesalahan Umum
1. Ukuran Matriks Tidak Sesuai
A = [
[1, 2],
[3, 4]
]
B = [
[5, 6, 7],
[8, 9, 10]
]
2. Kesalahan Indeks
matriks = [
[1, 2],
[3, 4]
]
print(matriks[2][0])0 dan
1. Kode tersebut menghasilkan
IndexError.
Latihan
2 x 2.
2 x 3.
3 x 3.
Kesimpulan
Pertemuan 11
Konsep Record
Pengertian Record
Record dalam Python
record secara
khusus seperti beberapa bahasa pemrograman lainnya.
Konsep record dapat diterapkan menggunakan
dictionary atau class.
key dan value.
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"program_studi": "Informatika",
"nilai": 85
}
print(mahasiswa)
Field pada Record
Field
Nilai
Keterangan
nim2026001
Nomor identitas mahasiswa.
namaAndi
Nama mahasiswa.
program_studiInformatika
Program studi mahasiswa.
nilai85
Nilai mahasiswa.
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"program_studi": "Informatika",
"nilai": 85
}
Mengakses Data Record
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"program_studi": "Informatika",
"nilai": 85
}
print("NIM :", mahasiswa["nim"])
print("Nama :", mahasiswa["nama"])
print("Nilai:", mahasiswa["nilai"])
Mengakses Data dengan
get()
get() digunakan untuk mengambil nilai
berdasarkan key. Method ini lebih aman jika key belum tentu
tersedia.
mahasiswa = {
"nim": "2026001",
"nama": "Andi"
}
nama = mahasiswa.get("nama")
alamat = mahasiswa.get("alamat", "Belum diisi")
print("Nama :", nama)
print("Alamat :", alamat)
Mengubah Nilai Field
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 75
}
mahasiswa["nilai"] = 85
print(mahasiswa)nilai berubah dari
75 menjadi 85.
Menambahkan Field Baru
mahasiswa = {
"nim": "2026001",
"nama": "Andi"
}
mahasiswa["alamat"] = "Bandung"
mahasiswa["semester"] = 2
print(mahasiswa)
Menghapus Field
del
atau method pop().
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
del mahasiswa["nilai"]
print(mahasiswa)pop() dapat menghapus field sekaligus
mengembalikan nilainya.
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
nilai = mahasiswa.pop("nilai")
print("Nilai yang dihapus:", nilai)
print(mahasiswa)
Menampilkan Isi Record
items() digunakan untuk menampilkan
seluruh key dan value di dalam record.
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"program_studi": "Informatika",
"nilai": 85
}
for field, nilai in mahasiswa.items():
print(field, ":", nilai)items() menghasilkan pasangan key dan
value secara bersamaan.
Mengambil Key dan Value
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
print("Daftar field :", mahasiswa.keys())
print("Daftar nilai :", mahasiswa.values())
print("Isi record :", mahasiswa.items())
Method
Kegunaan
keys()Mengambil seluruh nama field.
values()Mengambil seluruh nilai field.
items()Mengambil field dan nilai secara bersamaan.
Memeriksa Keberadaan Field
in digunakan untuk memeriksa apakah
sebuah key terdapat di dalam record.
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
if "nilai" in mahasiswa:
print("Field nilai tersedia")
else:
print("Field nilai tidak tersedia")
Record dengan Berbagai Tipe Data
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"aktif": True,
"nilai": [80, 85, 90],
"kontak": {
"email": "andi@example.com",
"telepon": "08123456789"
}
}
print(mahasiswa["nama"])
print(mahasiswa["nilai"])
print(mahasiswa["kontak"]["email"])
Kumpulan Record
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 78
},
{
"nim": "2026003",
"nama": "Citra",
"nilai": 92
}
]
for data in mahasiswa:
print(data["nim"], data["nama"], data["nilai"])
Studi Kasus Data Mahasiswa
70.
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 65
},
{
"nim": "2026003",
"nama": "Citra",
"nilai": 90
}
]
for data in mahasiswa:
if data["nilai"] >= 70:
status = "Lulus"
else:
status = "Tidak Lulus"
print(
data["nim"],
data["nama"],
data["nilai"],
status
)
Ringkasan Operasi Record
Operasi
Kegunaan
Contoh
Akses data
Mengambil nilai berdasarkan key.
data["nama"]
get()Mengambil data dengan aman.
data.get("nama")
Menambah field
Menambahkan key baru.
data["alamat"] = "Bandung"
delMenghapus field.
del data["nilai"]
pop()Menghapus field dan mengambil nilainya.
data.pop("nilai")
keys()Mengambil seluruh key.
data.keys()
values()Mengambil seluruh value.
data.values()
items()Mengambil key dan value.
data.items()
Kesalahan Umum
1. Mengakses Key yang Tidak Ada
mahasiswa = {
"nama": "Andi"
}
print(mahasiswa["nilai"])KeyError karena key
nilai tidak tersedia.
2. Salah Menuliskan Nama Key
mahasiswa = {
"program_studi": "Informatika"
}
print(mahasiswa["program studi"])
Latihan
pop().
Kesimpulan
Pertemuan 11
Struktur Data Record
Konsep Struktur Record
nim, nama,
program_studi, dan nilai.
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"program_studi": "Informatika",
"nilai": 85
}
Komponen Record
Komponen
Contoh
Keterangan
Nama record
mahasiswaNama variabel yang menyimpan record.
Field
namaNama atribut atau bagian data.
Value
"Andi"Nilai yang dimiliki oleh field.
Key
"nim"Identitas yang digunakan untuk mengakses value.
Membuat Struktur Record
key: value.
produk = {
"kode": "P001",
"nama": "Keyboard",
"harga": 250000,
"stok": 15
}
print(produk)
Tipe Data pada Field
data = {
"nama": "Andi",
"umur": 20,
"ipk": 3.75,
"aktif": True,
"hobi": ["Membaca", "Coding"]
}
print(data)
Mengakses Field Record
produk = {
"kode": "P001",
"nama": "Keyboard",
"harga": 250000,
"stok": 15
}
print("Kode :", produk["kode"])
print("Nama :", produk["nama"])
print("Harga :", produk["harga"])
print("Stok :", produk["stok"])
Mengubah Field Record
produk = {
"kode": "P001",
"nama": "Keyboard",
"harga": 250000,
"stok": 15
}
produk["harga"] = 275000
produk["stok"] = 20
print(produk)
Menambahkan Field Baru
produk = {
"kode": "P001",
"nama": "Keyboard",
"harga": 250000
}
produk["kategori"] = "Perangkat Komputer"
produk["merek"] = "ABC"
print(produk)
Menghapus Field
del
atau method pop().
produk = {
"kode": "P001",
"nama": "Keyboard",
"harga": 250000,
"stok": 15
}
del produk["stok"]
print(produk)produk = {
"kode": "P001",
"nama": "Keyboard",
"harga": 250000,
"stok": 15
}
harga = produk.pop("harga")
print("Harga yang dihapus:", harga)
print(produk)
List yang Berisi Record
produk = [
{
"kode": "P001",
"nama": "Keyboard",
"harga": 250000
},
{
"kode": "P002",
"nama": "Mouse",
"harga": 150000
},
{
"kode": "P003",
"nama": "Monitor",
"harga": 1500000
}
]
for data in produk:
print(data["kode"], data["nama"], data["harga"])
Mengakses Record dalam List
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 78
}
]
print(mahasiswa[0]["nama"])
print(mahasiswa[1]["nilai"])mahasiswa[0]["nama"] berarti mengambil
field nama dari record pertama.
Perulangan Kumpulan Record
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 65
}
]
for data in mahasiswa:
print("NIM :", data["nim"])
print("Nama :", data["nama"])
print("Nilai :", data["nilai"])
print()
Menyeleksi Record Berdasarkan Kondisi
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 65
},
{
"nim": "2026003",
"nama": "Citra",
"nilai": 90
}
]
for data in mahasiswa:
if data["nilai"] >= 70:
print(data["nama"], "lulus")
Record dengan Struktur Bersarang
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"alamat": {
"jalan": "Jl. Merdeka",
"kota": "Bandung"
},
"nilai": {
"algoritma": 85,
"basis_data": 90
}
}
print(mahasiswa["alamat"]["kota"])
print(mahasiswa["nilai"]["algoritma"])
Studi Kasus Data Produk
produk = [
{
"kode": "P001",
"nama": "Keyboard",
"harga": 250000,
"stok": 10
},
{
"kode": "P002",
"nama": "Mouse",
"harga": 150000,
"stok": 0
},
{
"kode": "P003",
"nama": "Monitor",
"harga": 1500000,
"stok": 5
}
]
for data in produk:
if data["stok"] > 0:
print(
data["kode"],
data["nama"],
data["harga"],
data["stok"]
)
Ringkasan Struktur Record
Struktur
Kegunaan
Contoh Akses
Record sederhana
Menyimpan satu objek data.
data["nama"]
List of record
Menyimpan banyak objek data.
data[0]["nama"]
Record bersarang
Menyimpan record di dalam record.
data["alamat"]["kota"]
Field list
Menyimpan beberapa nilai dalam satu field.
data["nilai"][0]
Kesalahan Umum
1. Salah Menuliskan Nama Key
data = {
"nama_lengkap": "Andi"
}
print(data["nama"])KeyError karena key
nama tidak sama dengan key
nama_lengkap.
2. Salah Urutan Akses
data = [
{
"nama": "Andi"
}
]
print(data["nama"])data berupa list, akses yang benar adalah
data[0]["nama"].
Latihan
harga * stok.
Kesimpulan
Pertemuan 11
Pengolahan Data Record
Pengertian Pengolahan Data Record
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
print(mahasiswa["nama"])
print(mahasiswa["nilai"])
Membaca Data Record
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"program_studi": "Informatika",
"nilai": 85
}
print("NIM :", mahasiswa["nim"])
print("Nama :", mahasiswa["nama"])
print("Program Studi :", mahasiswa["program_studi"])
print("Nilai :", mahasiswa["nilai"])
Membaca Data dengan
get()
get() digunakan untuk membaca nilai
field tanpa menghasilkan error ketika key tidak tersedia.
mahasiswa = {
"nim": "2026001",
"nama": "Andi"
}
nama = mahasiswa.get("nama")
alamat = mahasiswa.get("alamat", "Belum tersedia")
print("Nama :", nama)
print("Alamat :", alamat)
Mengubah Data Record
produk = {
"kode": "P001",
"nama": "Keyboard",
"harga": 250000,
"stok": 10
}
produk["harga"] = 275000
produk["stok"] = 15
print(produk)harga dan stok berhasil
diperbarui.
Menambahkan Field Record
mahasiswa = {
"nim": "2026001",
"nama": "Andi"
}
mahasiswa["alamat"] = "Bandung"
mahasiswa["semester"] = 2
mahasiswa["aktif"] = True
print(mahasiswa)
Menghapus Field Record
Menggunakan
del
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
del mahasiswa["nilai"]
print(mahasiswa)
Menggunakan
pop()
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
nilai = mahasiswa.pop("nilai")
print("Nilai yang dihapus:", nilai)
print(mahasiswa)
Menampilkan Seluruh Field
items() digunakan untuk menampilkan
seluruh key dan value dalam sebuah record.
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"program_studi": "Informatika",
"nilai": 85
}
for field, nilai in mahasiswa.items():
print(field, ":", nilai)
Memeriksa Field Record
in digunakan untuk memeriksa apakah
sebuah key tersedia di dalam record.
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
if "nilai" in mahasiswa:
print("Field nilai tersedia")
else:
print("Field nilai tidak tersedia")
Mengolah Kumpulan Record
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 65
},
{
"nim": "2026003",
"nama": "Citra",
"nilai": 90
}
]
for data in mahasiswa:
print(
data["nim"],
data["nama"],
data["nilai"]
)
Menyeleksi Record
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 65
},
{
"nim": "2026003",
"nama": "Citra",
"nilai": 90
}
]
for data in mahasiswa:
if data["nilai"] >= 70:
print(data["nama"], "lulus")
Menghitung Data Record
sum(), len(),
min(), dan max().
mahasiswa = [
{
"nama": "Andi",
"nilai": 85
},
{
"nama": "Budi",
"nilai": 65
},
{
"nama": "Citra",
"nilai": 90
}
]
daftar_nilai = []
for data in mahasiswa:
daftar_nilai.append(data["nilai"])
total = sum(daftar_nilai)
rata_rata = total / len(daftar_nilai)
print("Total nilai :", total)
print("Rata-rata :", rata_rata)
print("Nilai tertinggi:", max(daftar_nilai))
print("Nilai terendah :", min(daftar_nilai))
Mengurutkan Kumpulan Record
sorted() dapat digunakan untuk
mengurutkan kumpulan record berdasarkan field tertentu.
mahasiswa = [
{
"nama": "Andi",
"nilai": 85
},
{
"nama": "Budi",
"nilai": 65
},
{
"nama": "Citra",
"nilai": 90
}
]
urut = sorted(
mahasiswa,
key=lambda data: data["nilai"]
)
for data in urut:
print(data["nama"], data["nilai"])reverse=True.
urut = sorted(
mahasiswa,
key=lambda data: data["nilai"],
reverse=True
)
for data in urut:
print(data["nama"], data["nilai"])
Mencari Record
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 65
}
]
nim_dicari = input("Masukkan NIM: ")
ditemukan = False
for data in mahasiswa:
if data["nim"] == nim_dicari:
print("Data ditemukan")
print("Nama :", data["nama"])
print("Nilai:", data["nilai"])
ditemukan = True
break
if not ditemukan:
print("Data tidak ditemukan")
Menambahkan Record Baru
append().
mahasiswa = []
data_baru = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
mahasiswa.append(data_baru)
print(mahasiswa)
Menghapus Record dari List
pop().
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi"
},
{
"nim": "2026002",
"nama": "Budi"
}
]
data_dihapus = mahasiswa.pop(0)
print("Data yang dihapus:", data_dihapus)
print("Data tersisa:", mahasiswa)
Studi Kasus Pengolahan Nilai
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 65
},
{
"nim": "2026003",
"nama": "Citra",
"nilai": 90
},
{
"nim": "2026004",
"nama": "Dewi",
"nilai": 72
}
]
total = 0
for data in mahasiswa:
if data["nilai"] >= 70:
data["status"] = "Lulus"
else:
data["status"] = "Tidak Lulus"
total += data["nilai"]
rata_rata = total / len(mahasiswa)
print("Rata-rata kelas:", rata_rata)
print()
for data in mahasiswa:
print(
data["nim"],
data["nama"],
data["nilai"],
data["status"]
)
Ringkasan Pengolahan Record
Operasi
Kegunaan
Contoh
Membaca field
Mengambil nilai berdasarkan key.
data["nama"]
Mengubah field
Memperbarui nilai field.
data["nilai"] = 90
Menambah field
Menambahkan field baru.
data["status"] = "Lulus"
Menghapus field
Menghapus field tertentu.
del data["nilai"]
Menambah record
Menambahkan record ke list.
data.append(record)
Mencari record
Mencari berdasarkan field tertentu.
data["nim"] == nim_dicari
Menyeleksi record
Memfilter berdasarkan kondisi.
data["nilai"] >= 70
Mengurutkan record
Mengurutkan berdasarkan field.
sorted(..., key=...)
Kesalahan Umum
1. Mengakses Key yang Tidak Tersedia
data = {
"nama": "Andi"
}
print(data["nilai"])get() jika key belum tentu tersedia.
2. Lupa Menggunakan Indeks List
data = [
{
"nama": "Andi"
}
]
print(data["nama"])data[0]["nama"] karena record berada di dalam
list.
Latihan
status berdasarkan nilai
mahasiswa.
Kesimpulan
Pertemuan 12
Record dalam Record
Pengertian Record dalam Record
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"alamat": {
"jalan": "Jl. Merdeka",
"kota": "Bandung"
},
"nilai": {
"algoritma": 85,
"basis_data": 90
}
}
Struktur Record Bersarang
Field
Isi
Jenis Data
nim2026001
String
namaAndi
String
alamatjalan dan kota
Record
nilaialgoritma dan basis_data
Record
Mengakses Record dalam Record
mahasiswa = {
"nama": "Andi",
"alamat": {
"jalan": "Jl. Merdeka",
"kota": "Bandung"
}
}
print("Nama :", mahasiswa["nama"])
print("Jalan :", mahasiswa["alamat"]["jalan"])
print("Kota :", mahasiswa["alamat"]["kota"])record["field_luar"]["field_dalam"]
Mengubah Data Record Bagian Dalam
mahasiswa = {
"nama": "Andi",
"alamat": {
"jalan": "Jl. Merdeka",
"kota": "Bandung"
}
}
mahasiswa["alamat"]["kota"] = "Jakarta"
print(mahasiswa["alamat"])kota berhasil diubah menjadi
Jakarta.
Menambahkan Field pada Record Dalam
mahasiswa = {
"nama": "Andi",
"alamat": {
"kota": "Bandung"
}
}
mahasiswa["alamat"]["kode_pos"] = "40123"
print(mahasiswa)
Menghapus Field pada Record Dalam
del atau pop().
mahasiswa = {
"nama": "Andi",
"alamat": {
"jalan": "Jl. Merdeka",
"kota": "Bandung",
"kode_pos": "40123"
}
}
del mahasiswa["alamat"]["kode_pos"]
print(mahasiswa)kota = mahasiswa["alamat"].pop("kota")
print("Kota yang dihapus:", kota)
Record Nilai Mata Kuliah
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": {
"algoritma": 85,
"basis_data": 90,
"pemrograman": 88
}
}
print(
"Nilai Algoritma:",
mahasiswa["nilai"]["algoritma"]
)
print(
"Nilai Pemrograman:",
mahasiswa["nilai"]["pemrograman"]
)
Mengolah Data Record Bagian Dalam
values(), kemudian diolah
dengan fungsi numerik.
mahasiswa = {
"nama": "Andi",
"nilai": {
"algoritma": 85,
"basis_data": 90,
"pemrograman": 88
}
}
daftar_nilai = mahasiswa["nilai"].values()
total = sum(daftar_nilai)
jumlah = len(daftar_nilai)
rata_rata = total / jumlah
print("Total nilai :", total)
print("Rata-rata :", rata_rata)
Menampilkan Record Bagian Dalam
items() dapat digunakan untuk
menampilkan key dan value pada record bagian dalam.
mahasiswa = {
"nama": "Andi",
"nilai": {
"algoritma": 85,
"basis_data": 90,
"pemrograman": 88
}
}
for mata_kuliah, nilai in mahasiswa["nilai"].items():
print(mata_kuliah, ":", nilai)
Kumpulan Record dengan Record Dalam
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"alamat": {
"kota": "Bandung"
},
"nilai": {
"algoritma": 85,
"basis_data": 90
}
},
{
"nim": "2026002",
"nama": "Budi",
"alamat": {
"kota": "Jakarta"
},
"nilai": {
"algoritma": 75,
"basis_data": 80
}
}
]
for data in mahasiswa:
print("Nama:", data["nama"])
print("Kota:", data["alamat"]["kota"])
print("Nilai Algoritma:", data["nilai"]["algoritma"])
print()
Seleksi Berdasarkan Record Dalam
mahasiswa = [
{
"nama": "Andi",
"nilai": {
"algoritma": 85,
"basis_data": 90
}
},
{
"nama": "Budi",
"nilai": {
"algoritma": 65,
"basis_data": 70
}
}
]
for data in mahasiswa:
if data["nilai"]["algoritma"] >= 70:
print(
data["nama"],
"lulus Algoritma"
)
Studi Kasus Data Mahasiswa
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": {
"algoritma": 85,
"basis_data": 90,
"pemrograman": 88
}
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": {
"algoritma": 65,
"basis_data": 70,
"pemrograman": 68
}
}
]
for data in mahasiswa:
nilai = data["nilai"].values()
total = sum(nilai)
rata_rata = total / len(nilai)
if rata_rata >= 70:
status = "Lulus"
else:
status = "Tidak Lulus"
print("NIM :", data["nim"])
print("Nama :", data["nama"])
print("Rata-rata:", rata_rata)
print("Status :", status)
print()
Ringkasan Akses Record Bersarang
Operasi
Contoh
Keterangan
Mengakses field dalam
data["alamat"]["kota"]Mengambil nilai kota.
Mengubah field dalam
data["nilai"]["algoritma"] = 90Mengubah nilai mata kuliah.
Menambah field dalam
data["alamat"]["kode_pos"] = "40123"Menambahkan informasi baru.
Menghapus field dalam
del data["alamat"]["kota"]Menghapus data bagian dalam.
Perulangan
data["nilai"].items()Membaca seluruh field bagian dalam.
Perhitungan
sum(data["nilai"].values())Menghitung jumlah nilai.
Kesalahan Umum
1. Salah Urutan Key
data = {
"alamat": {
"kota": "Bandung"
}
}
print(data["kota"])data["alamat"]["kota"] karena
kota berada di dalam record
alamat.
2. Mengakses Key yang Tidak Tersedia
data = {
"alamat": {
"kota": "Bandung"
}
}
print(data["alamat"]["kode_pos"])get() jika field bagian dalam belum
tentu tersedia.
kode_pos = data["alamat"].get(
"kode_pos",
"Belum tersedia"
)
Latihan
alamat.
nilai yang berisi tiga
mata kuliah.
Kesimpulan
Pertemuan 12
Nested Record
Pengertian Nested Record
pelanggan = {
"id": "C001",
"nama": "Andi",
"kontak": {
"email": "andi@example.com",
"telepon": "08123456789"
},
"alamat": {
"jalan": "Jl. Merdeka",
"kota": "Bandung"
}
}
Struktur Nested Record
Level
Field
Isi
Level 1
namaAndi
Level 1
kontakRecord kontak
Level 2
kontak["email"]andi@example.com
Level 1
alamatRecord alamat
Level 2
alamat["kota"]Bandung
Mengakses Data Nested Record
pelanggan = {
"nama": "Andi",
"kontak": {
"email": "andi@example.com",
"telepon": "08123456789"
},
"alamat": {
"kota": "Bandung"
}
}
print("Nama :", pelanggan["nama"])
print("Email :", pelanggan["kontak"]["email"])
print("Kota :", pelanggan["alamat"]["kota"])record["field_luar"]["field_dalam"]
Mengubah Data Nested Record
pelanggan = {
"nama": "Andi",
"alamat": {
"kota": "Bandung",
"kode_pos": "40123"
}
}
pelanggan["alamat"]["kota"] = "Jakarta"
pelanggan["alamat"]["kode_pos"] = "10110"
print(pelanggan)
Menambahkan Data pada Nested Record
pelanggan = {
"nama": "Andi",
"alamat": {
"kota": "Bandung"
}
}
pelanggan["alamat"]["provinsi"] = "Jawa Barat"
pelanggan["kontak"] = {
"email": "andi@example.com"
}
print(pelanggan)
Menghapus Data Nested Record
del atau pop().
pelanggan = {
"nama": "Andi",
"alamat": {
"kota": "Bandung",
"kode_pos": "40123"
}
}
del pelanggan["alamat"]["kode_pos"]
print(pelanggan)kota = pelanggan["alamat"].pop("kota")
print("Data dihapus:", kota)
Perulangan Nested Record
items() dapat digunakan untuk membaca
semua field dalam record bagian dalam.
mahasiswa = {
"nama": "Andi",
"nilai": {
"algoritma": 85,
"basis_data": 90,
"pemrograman": 88
}
}
for mata_kuliah, nilai in mahasiswa["nilai"].items():
print(mata_kuliah, ":", nilai)
List Berisi Nested Record
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"alamat": {
"kota": "Bandung"
},
"nilai": {
"algoritma": 85,
"basis_data": 90
}
},
{
"nim": "2026002",
"nama": "Budi",
"alamat": {
"kota": "Jakarta"
},
"nilai": {
"algoritma": 70,
"basis_data": 75
}
}
]
for data in mahasiswa:
print("Nama:", data["nama"])
print("Kota:", data["alamat"]["kota"])
print("Algoritma:", data["nilai"]["algoritma"])
print()
Mengolah Nilai pada Nested Record
values().
mahasiswa = {
"nama": "Andi",
"nilai": {
"algoritma": 85,
"basis_data": 90,
"pemrograman": 88
}
}
daftar_nilai = mahasiswa["nilai"].values()
total = sum(daftar_nilai)
rata_rata = total / len(daftar_nilai)
print("Total nilai :", total)
print("Rata-rata :", rata_rata)
Seleksi Nested Record
mahasiswa = [
{
"nama": "Andi",
"nilai": {
"algoritma": 85
}
},
{
"nama": "Budi",
"nilai": {
"algoritma": 65
}
}
]
for data in mahasiswa:
nilai = data["nilai"]["algoritma"]
if nilai >= 70:
print(data["nama"], "lulus")
else:
print(data["nama"], "tidak lulus")
Studi Kasus Data Pesanan
pesanan = {
"nomor": "ORD001",
"pelanggan": {
"nama": "Andi",
"kota": "Bandung"
},
"produk": {
"nama": "Keyboard",
"harga": 250000,
"jumlah": 2
}
}
harga = pesanan["produk"]["harga"]
jumlah = pesanan["produk"]["jumlah"]
total = harga * jumlah
print("Nomor pesanan:", pesanan["nomor"])
print("Nama pelanggan:", pesanan["pelanggan"]["nama"])
print("Produk:", pesanan["produk"]["nama"])
print("Total harga:", total)
Nested Record Bertingkat
perusahaan = {
"nama": "Teknologi Maju",
"alamat": {
"kantor": {
"jalan": "Jl. Sudirman",
"kota": "Jakarta"
}
}
}
print(
perusahaan["alamat"]["kantor"]["kota"]
)
Ringkasan Nested Record
Operasi
Contoh
Keterangan
Mengakses data
data["alamat"]["kota"]Mengambil field dari record dalam.
Mengubah data
data["nilai"]["algoritma"] = 90Mengubah field bagian dalam.
Menambah data
data["alamat"]["provinsi"] = "Jabar"Menambahkan field baru.
Menghapus data
del data["alamat"]["kota"]Menghapus field bagian dalam.
Membaca banyak data
data["nilai"].items()Melakukan perulangan field dalam.
Menghitung data
sum(data["nilai"].values())Mengolah nilai numerik bagian dalam.
Kesalahan Umum
1. Salah Menuliskan Urutan Key
data = {
"alamat": {
"kota": "Bandung"
}
}
print(data["kota"])data["alamat"]["kota"].
2. Mengakses Record yang Belum Dibuat
data = {
"nama": "Andi"
}
data["alamat"]["kota"] = "Bandung"alamat harus dibuat terlebih dahulu
sebelum field kota ditambahkan.
Latihan
Kesimpulan
Pertemuan 12
Pengolahan Nested Record
Pengertian Pengolahan Nested Record
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"alamat": {
"kota": "Bandung",
"provinsi": "Jawa Barat"
},
"nilai": {
"algoritma": 85,
"basis_data": 90
}
}
Membaca Data Nested Record
mahasiswa = {
"nama": "Andi",
"alamat": {
"kota": "Bandung"
},
"nilai": {
"algoritma": 85
}
}
print("Nama :", mahasiswa["nama"])
print("Kota :", mahasiswa["alamat"]["kota"])
print(
"Nilai Algoritma:",
mahasiswa["nilai"]["algoritma"]
)
Membaca Data dengan
get()
get() digunakan agar program tidak
langsung menghasilkan error ketika field belum tersedia.
mahasiswa = {
"nama": "Andi",
"alamat": {
"kota": "Bandung"
}
}
kota = mahasiswa.get(
"alamat",
{}
).get(
"kota",
"Belum tersedia"
)
kode_pos = mahasiswa.get(
"alamat",
{}
).get(
"kode_pos",
"Belum tersedia"
)
print("Kota :", kota)
print("Kode Pos :", kode_pos)
Mengubah Data Nested Record
mahasiswa = {
"nama": "Andi",
"alamat": {
"kota": "Bandung"
},
"nilai": {
"algoritma": 85
}
}
mahasiswa["alamat"]["kota"] = "Jakarta"
mahasiswa["nilai"]["algoritma"] = 90
print(mahasiswa)
Menambahkan Data Nested Record
mahasiswa = {
"nama": "Andi",
"alamat": {
"kota": "Bandung"
}
}
mahasiswa["alamat"]["kode_pos"] = "40123"
mahasiswa["alamat"]["jalan"] = "Jl. Merdeka"
mahasiswa["kontak"] = {
"email": "andi@example.com",
"telepon": "08123456789"
}
print(mahasiswa)
Menghapus Data Nested Record
del atau pop().
mahasiswa = {
"nama": "Andi",
"alamat": {
"kota": "Bandung",
"kode_pos": "40123"
}
}
del mahasiswa["alamat"]["kode_pos"]
print(mahasiswa)kota = mahasiswa["alamat"].pop("kota")
print("Data yang dihapus:", kota)
print(mahasiswa)
Menampilkan Isi Nested Record
items() dapat digunakan untuk membaca
key dan value pada record bagian dalam.
mahasiswa = {
"nama": "Andi",
"nilai": {
"algoritma": 85,
"basis_data": 90,
"pemrograman": 88
}
}
for mata_kuliah, nilai in mahasiswa["nilai"].items():
print(mata_kuliah, ":", nilai)
Menghitung Data pada Nested Record
values().
mahasiswa = {
"nama": "Andi",
"nilai": {
"algoritma": 85,
"basis_data": 90,
"pemrograman": 88
}
}
daftar_nilai = list(
mahasiswa["nilai"].values()
)
total = sum(daftar_nilai)
jumlah = len(daftar_nilai)
rata_rata = total / jumlah
print("Total nilai :", total)
print("Jumlah nilai:", jumlah)
print("Rata-rata :", rata_rata)
print("Tertinggi :", max(daftar_nilai))
print("Terendah :", min(daftar_nilai))
Mengolah Kumpulan Nested Record
mahasiswa = [
{
"nama": "Andi",
"alamat": {
"kota": "Bandung"
},
"nilai": {
"algoritma": 85
}
},
{
"nama": "Budi",
"alamat": {
"kota": "Jakarta"
},
"nilai": {
"algoritma": 65
}
}
]
for data in mahasiswa:
print("Nama :", data["nama"])
print("Kota :", data["alamat"]["kota"])
print(
"Nilai:",
data["nilai"]["algoritma"]
)
print()
Menyeleksi Kumpulan Nested Record
mahasiswa = [
{
"nama": "Andi",
"alamat": {
"kota": "Bandung"
},
"nilai": {
"algoritma": 85
}
},
{
"nama": "Budi",
"alamat": {
"kota": "Jakarta"
},
"nilai": {
"algoritma": 65
}
}
]
for data in mahasiswa:
if data["nilai"]["algoritma"] >= 70:
print(
data["nama"],
"lulus mata kuliah Algoritma"
)
Mencari Data Nested Record
mahasiswa = [
{
"nama": "Andi",
"alamat": {
"kota": "Bandung"
}
},
{
"nama": "Budi",
"alamat": {
"kota": "Jakarta"
}
}
]
kota_dicari = "Bandung"
for data in mahasiswa:
if data["alamat"]["kota"] == kota_dicari:
print(
data["nama"],
"tinggal di",
kota_dicari
)
Mengurutkan Nested Record
sorted() dapat digunakan untuk
mengurutkan list nested record berdasarkan field bagian
dalam.
mahasiswa = [
{
"nama": "Andi",
"nilai": {
"algoritma": 85
}
},
{
"nama": "Budi",
"nilai": {
"algoritma": 65
}
},
{
"nama": "Citra",
"nilai": {
"algoritma": 90
}
}
]
urut = sorted(
mahasiswa,
key=lambda data: data["nilai"]["algoritma"],
reverse=True
)
for data in urut:
print(
data["nama"],
data["nilai"]["algoritma"]
)reverse=True digunakan untuk
mengurutkan data dari nilai terbesar ke nilai terkecil.
Menambahkan Nested Record Baru
mahasiswa = []
data_baru = {
"nim": "2026001",
"nama": "Andi",
"alamat": {
"kota": "Bandung"
},
"nilai": {
"algoritma": 85
}
}
mahasiswa.append(data_baru)
print(mahasiswa)
Studi Kasus Pengolahan Data Mahasiswa
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"alamat": {
"kota": "Bandung"
},
"nilai": {
"algoritma": 85,
"basis_data": 90,
"pemrograman": 88
}
},
{
"nim": "2026002",
"nama": "Budi",
"alamat": {
"kota": "Jakarta"
},
"nilai": {
"algoritma": 65,
"basis_data": 70,
"pemrograman": 68
}
}
]
for data in mahasiswa:
daftar_nilai = list(
data["nilai"].values()
)
total = sum(daftar_nilai)
rata_rata = total / len(daftar_nilai)
if rata_rata >= 70:
status = "Lulus"
else:
status = "Tidak Lulus"
data["hasil"] = {
"total": total,
"rata_rata": rata_rata,
"status": status
}
for data in mahasiswa:
print("NIM :", data["nim"])
print("Nama :", data["nama"])
print("Kota :", data["alamat"]["kota"])
print(
"Rata-rata:",
data["hasil"]["rata_rata"]
)
print(
"Status :",
data["hasil"]["status"]
)
print()
Ringkasan Pengolahan Nested Record
Operasi
Contoh
Kegunaan
Membaca data
data["alamat"]["kota"]Mengambil field bagian dalam.
Mengubah data
data["nilai"]["algoritma"] = 90Memperbarui nilai nested record.
Menambah data
data["alamat"]["kode_pos"] = "40123"Menambahkan field baru.
Menghapus data
del data["alamat"]["kota"]Menghapus field bagian dalam.
Menghitung data
sum(data["nilai"].values())Menghitung nilai numerik.
Mencari data
data["alamat"]["kota"] == "Bandung"Mencari berdasarkan field bertingkat.
Mengurutkan data
sorted(..., key=lambda ...)Mengurutkan berdasarkan field dalam.
Kesalahan Umum
1. Record Bagian Dalam Belum Dibuat
data = {
"nama": "Andi"
}
data["alamat"]["kota"] = "Bandung"alamat harus dibuat terlebih dahulu
sebelum field kota ditambahkan.
2. Salah Menggunakan Fungsi Numerik
data = {
"nilai": {
"algoritma": 85,
"basis_data": 90
}
}
print(sum(data["nilai"]))values() untuk mengambil nilai
numerik.
print(sum(data["nilai"].values()))
Latihan
Kesimpulan
Pertemuan 13
File Teks
Pengertian File Teks
.txt,
.csv, dan beberapa file konfigurasi.
catatan.txt
data_mahasiswa.txt
produk.csv
Alur Pengolahan File
Tahap
Keterangan
Open
Membuka file.
Read atau Write
Membaca atau menulis isi file.
Close
Menutup file setelah selesai digunakan.
Membuka File dengan
open()
open() digunakan untuk membuka file.
Bentuk umumnya adalah:
open(nama_file, mode)file = open("catatan.txt", "r")
Mode Pembukaan File
Mode
Keterangan
"r"Membaca file. File harus sudah tersedia.
"w"Menulis file dan menghapus isi lama.
"a"Menambahkan data di akhir file.
"x"Membuat file baru. Error jika file sudah ada.
"r+"Membaca dan menulis file.
"b"Membuka file dalam mode biner.
"t"Membuka file dalam mode teks.
Menulis File Teks
write() digunakan untuk menulis teks ke
dalam file. Mode "w" akan membuat file baru
jika belum tersedia.
file = open("catatan.txt", "w")
file.write("Belajar pemrograman dasar")
file.write("\nBelajar file teks")
file.close()"w" akan menghapus isi file lama apabila
file tersebut sudah tersedia.
Menulis Banyak Baris
\n.
file = open("mahasiswa.txt", "w")
data = """Andi
Budi
Citra
Dewi"""
file.write(data)
file.close()
Menambahkan Isi File
"a" digunakan untuk menambahkan data di
bagian akhir file tanpa menghapus isi sebelumnya.
file = open("catatan.txt", "a")
file.write("\nData tambahan")
file.close()
Membaca Seluruh Isi File
read() digunakan untuk membaca seluruh
isi file sebagai satu string.
file = open("catatan.txt", "r")
isi = file.read()
print(isi)
file.close()
Membaca Satu Baris
readline() digunakan untuk membaca satu
baris dari file.
file = open("mahasiswa.txt", "r")
baris_pertama = file.readline()
print(baris_pertama)
file.close()
Membaca Semua Baris
readlines() digunakan untuk membaca
seluruh baris dan menyimpannya dalam bentuk list.
file = open("mahasiswa.txt", "r")
baris = file.readlines()
for data in baris:
print(data.strip())
file.close()strip() digunakan untuk menghapus
karakter newline dan spasi di awal atau akhir teks.
Menggunakan
with open()
with open() disarankan karena file
akan ditutup secara otomatis setelah selesai digunakan.
with open("catatan.txt", "r") as file:
isi = file.read()
print(isi)with, kita tidak perlu memanggil
file.close() secara manual.
Encoding File
encoding digunakan untuk menentukan
format karakter file. Encoding utf-8 mendukung
banyak karakter dan bahasa.
with open(
"catatan.txt",
"w",
encoding="utf-8"
) as file:
file.write("Belajar file teks")
Menyimpan Data Record ke File Teks
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
with open(
"mahasiswa.txt",
"w",
encoding="utf-8"
) as file:
file.write(f"NIM: {mahasiswa['nim']}\n")
file.write(f"Nama: {mahasiswa['nama']}\n")
file.write(f"Nilai: {mahasiswa['nilai']}\n")
Membaca Data Record dari File Teks
with open(
"mahasiswa.txt",
"r",
encoding="utf-8"
) as file:
for baris in file:
print(baris.strip())
File Teks Berformat CSV
nim,nama,nilai
2026001,Andi,85
2026002,Budi,75
2026003,Citra,90csv.
import csv
data = [
["nim", "nama", "nilai"],
["2026001", "Andi", 85],
["2026002", "Budi", 75],
["2026003", "Citra", 90]
]
with open(
"mahasiswa.csv",
"w",
newline="",
encoding="utf-8"
) as file:
writer = csv.writer(file)
writer.writerows(data)
Membaca File CSV
import csv
with open(
"mahasiswa.csv",
"r",
encoding="utf-8"
) as file:
reader = csv.reader(file)
for baris in reader:
print(baris)
Penanganan Error File
try-except untuk menangani
kondisi tersebut.
try:
with open(
"data.txt",
"r",
encoding="utf-8"
) as file:
isi = file.read()
print(isi)
except FileNotFoundError:
print("File tidak ditemukan")
Studi Kasus Penyimpanan Data Mahasiswa
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 75
},
{
"nim": "2026003",
"nama": "Citra",
"nilai": 90
}
]
with open(
"mahasiswa.txt",
"w",
encoding="utf-8"
) as file:
for data in mahasiswa:
file.write(
f"{data['nim']};"
f"{data['nama']};"
f"{data['nilai']}\n"
)split().
with open(
"mahasiswa.txt",
"r",
encoding="utf-8"
) as file:
for baris in file:
nim, nama, nilai = baris.strip().split(";")
print("NIM :", nim)
print("Nama :", nama)
print("Nilai:", nilai)
print()
Ringkasan Operasi File Teks
Operasi
Kegunaan
Contoh
open()Membuka file.
open("data.txt", "r")
read()Membaca seluruh isi file.
file.read()
readline()Membaca satu baris.
file.readline()
readlines()Membaca semua baris sebagai list.
file.readlines()
write()Menulis teks ke file.
file.write("Teks")
close()Menutup file.
file.close()
strip()Menghapus spasi dan newline.
baris.strip()
split()Memisahkan teks menjadi list.
baris.split(";")
Kesalahan Umum
1. Lupa Menutup File
with open()
agar file ditutup otomatis.
2. Salah Menggunakan Mode
"w"
"w" akan menghapus isi file lama. Gunakan
mode "a" jika ingin menambahkan data.
3. File Tidak Ditemukan
try-except.
Latihan
catatan.txt.
read().
csv.
Kesimpulan
with open() sangat disarankan karena file akan
ditutup secara otomatis setelah selesai digunakan.
Pertemuan 13
Membuat File Teks
open() dengan mode penulisan. Data kemudian dapat
dimasukkan menggunakan method write().
Pengertian Membuat File Teks
open() dengan mode "w" atau
"x".
file = open("data.txt", "w")
file.close()data.txt belum tersedia, Python akan
membuat file tersebut secara otomatis.
Membuat File dengan Mode
"w"
"w" digunakan untuk menulis data ke dalam
file. Jika file belum ada, file baru akan dibuat.
file = open("catatan.txt", "w")
file.write("Ini adalah file teks.")
file.close()"w" akan
menghapus isi lama sebelum menulis data baru.
Membuat File dengan Mode
"x"
"x" digunakan untuk membuat file baru.
Jika file sudah ada, Python akan menghasilkan error.
try:
file = open("data_baru.txt", "x")
file.write("File berhasil dibuat.")
file.close()
except FileExistsError:
print("File sudah tersedia.")"x" apabila program tidak boleh
menimpa file yang sudah ada.
Membuat File dengan
with open()
with open(). File akan ditutup secara
otomatis setelah proses selesai.
with open(
"catatan.txt",
"w",
encoding="utf-8"
) as file:
file.write("Belajar Python")
file.write("\nMembuat file teks")
Menulis Satu Baris Teks
with open(
"pesan.txt",
"w",
encoding="utf-8"
) as file:
file.write("Selamat belajar pemrograman.")pesan.txt akan berisi satu baris teks.
Menulis Banyak Baris
\n digunakan untuk berpindah ke baris
berikutnya.
with open(
"daftar.txt",
"w",
encoding="utf-8"
) as file:
file.write("Baris pertama\n")
file.write("Baris kedua\n")
file.write("Baris ketiga\n")
Menulis Data dari List
nama = [
"Andi",
"Budi",
"Citra",
"Dewi"
]
with open(
"nama.txt",
"w",
encoding="utf-8"
) as file:
for data in nama:
file.write(data + "\n")
Menggunakan
writelines()
writelines() digunakan untuk menulis
beberapa teks sekaligus. Karakter newline perlu ditambahkan
sendiri.
nama = [
"Andi\n",
"Budi\n",
"Citra\n",
"Dewi\n"
]
with open(
"nama.txt",
"w",
encoding="utf-8"
) as file:
file.writelines(nama)
Membuat File dari Input Pengguna
nama = input("Masukkan nama: ")
alamat = input("Masukkan alamat: ")
with open(
"biodata.txt",
"w",
encoding="utf-8"
) as file:
file.write(f"Nama: {nama}\n")
file.write(f"Alamat: {alamat}\n")
print("Data berhasil disimpan.")
Membuat File dari Data Record
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"program_studi": "Informatika",
"nilai": 85
}
with open(
"mahasiswa.txt",
"w",
encoding="utf-8"
) as file:
file.write(f"NIM: {mahasiswa['nim']}\n")
file.write(f"Nama: {mahasiswa['nama']}\n")
file.write(
f"Program Studi: "
f"{mahasiswa['program_studi']}\n"
)
file.write(f"Nilai: {mahasiswa['nilai']}\n")
Membuat File dari Banyak Record
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 75
},
{
"nim": "2026003",
"nama": "Citra",
"nilai": 90
}
]
with open(
"mahasiswa.txt",
"w",
encoding="utf-8"
) as file:
for data in mahasiswa:
file.write(
f"{data['nim']};"
f"{data['nama']};"
f"{data['nilai']}\n"
)
Menambahkan Data ke File
"a" untuk menambahkan data tanpa
menghapus isi file yang sudah ada.
with open(
"mahasiswa.txt",
"a",
encoding="utf-8"
) as file:
file.write(
"2026004;Dewi;88\n"
)
Menggunakan Encoding UTF-8
utf-8 disarankan agar file dapat
menyimpan berbagai karakter, termasuk karakter bahasa
Indonesia.
with open(
"catatan.txt",
"w",
encoding="utf-8"
) as file:
file.write(
"Belajar pemrograman "
"dengan Python."
)
Membuat File pada Folder Tertentu
with open(
"data/mahasiswa.txt",
"w",
encoding="utf-8"
) as file:
file.write("Data mahasiswa")data harus sudah tersedia agar file
dapat dibuat pada lokasi tersebut.
Menangani Error saat Membuat File
try:
with open(
"data_baru.txt",
"x",
encoding="utf-8"
) as file:
file.write("File baru")
except FileExistsError:
print("File sudah tersedia.")
except OSError:
print("File gagal dibuat.")
Studi Kasus Membuat File Nilai
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 65
},
{
"nim": "2026003",
"nama": "Citra",
"nilai": 90
}
]
with open(
"hasil_nilai.txt",
"w",
encoding="utf-8"
) as file:
for data in mahasiswa:
if data["nilai"] >= 70:
status = "Lulus"
else:
status = "Tidak Lulus"
file.write(
f"NIM: {data['nim']}\n"
f"Nama: {data['nama']}\n"
f"Nilai: {data['nilai']}\n"
f"Status: {status}\n"
f"{'-' * 25}\n"
)
print("File hasil_nilai.txt berhasil dibuat.")
Ringkasan Membuat File Teks
Perintah
Kegunaan
Contoh
open()Membuka atau membuat file.
open("data.txt", "w")
"w"Membuat dan menulis file.
Isi lama dapat terhapus.
"x"Membuat file baru.
Error jika file sudah ada.
"a"Menambahkan isi file.
Data ditulis di bagian akhir.
write()Menulis teks.
file.write("Data")
writelines()Menulis beberapa baris.
file.writelines(data)
with open()Membuka dan menutup file secara otomatis.
Struktur yang disarankan.
Kesalahan Umum
1. Tidak Menambahkan Newline
with open("data.txt", "w") as file:
file.write("Andi")
file.write("Budi")\n untuk membuat baris baru.
2. Menggunakan Mode
"w" untuk Menambah Data
"w" akan menghapus isi lama. Gunakan mode
"a" apabila ingin menambahkan data.
3. Folder Tujuan Tidak Tersedia
Latihan
biodata.txt yang berisi nama,
alamat, dan nomor telepon.
daftar-nama.txt yang berisi
minimal lima nama.
"a".
Kesimpulan
open()
dengan mode "w" atau "x". Data
ditulis menggunakan write() atau
writelines(). Penggunaan
with open() lebih aman karena file akan ditutup
secara otomatis setelah selesai digunakan.
Pertemuan 13
Menambah Isi File Teks
Pengertian Menambah Isi File
"a" atau append.
with open(
"catatan.txt",
"a",
encoding="utf-8"
) as file:
file.write("\nData tambahan")
Mode Append
"a"
"a" memiliki dua perilaku:
file = open("catatan.txt", "a")
file.write("\nBaris baru")
file.close()
Append dengan
with open()
with open() lebih disarankan karena
file akan ditutup secara otomatis.
with open(
"catatan.txt",
"a",
encoding="utf-8"
) as file:
file.write("\nBaris tambahan")
Menambah Satu Baris
\n sebelum teks agar data
tambahan ditulis pada baris baru.
with open(
"catatan.txt",
"a",
encoding="utf-8"
) as file:
file.write("\nBelajar file teks")\n, teks baru dapat menyatu dengan isi
baris terakhir.
Menambah Banyak Baris
with open(
"catatan.txt",
"a",
encoding="utf-8"
) as file:
file.write("\nBaris pertama")
file.write("\nBaris kedua")
file.write("\nBaris ketiga")
Menambah Data dari List
data_baru = [
"Andi",
"Budi",
"Citra"
]
with open(
"nama.txt",
"a",
encoding="utf-8"
) as file:
for nama in data_baru:
file.write(nama + "\n")
Menggunakan
writelines()
writelines() dapat menambahkan beberapa
baris sekaligus. Setiap data harus memiliki karakter
newline.
data_baru = [
"Andi\n",
"Budi\n",
"Citra\n"
]
with open(
"nama.txt",
"a",
encoding="utf-8"
) as file:
file.writelines(data_baru)
Menambah Isi dari Input Pengguna
catatan = input(
"Masukkan catatan baru: "
)
with open(
"catatan.txt",
"a",
encoding="utf-8"
) as file:
file.write(catatan + "\n")
print("Catatan berhasil ditambahkan.")
Menambah Data Record
mahasiswa_baru = {
"nim": "2026004",
"nama": "Dewi",
"nilai": 88
}
with open(
"mahasiswa.txt",
"a",
encoding="utf-8"
) as file:
file.write(
f"{mahasiswa_baru['nim']};"
f"{mahasiswa_baru['nama']};"
f"{mahasiswa_baru['nilai']}\n"
)
Menambah Banyak Record
data_baru = [
{
"nim": "2026004",
"nama": "Dewi",
"nilai": 88
},
{
"nim": "2026005",
"nama": "Eko",
"nilai": 79
}
]
with open(
"mahasiswa.txt",
"a",
encoding="utf-8"
) as file:
for data in data_baru:
file.write(
f"{data['nim']};"
f"{data['nama']};"
f"{data['nilai']}\n"
)
Menambah Data ke File CSV
csv dapat digunakan untuk menambahkan
record baru ke file CSV.
import csv
data_baru = [
["2026004", "Dewi", 88],
["2026005", "Eko", 79]
]
with open(
"mahasiswa.csv",
"a",
newline="",
encoding="utf-8"
) as file:
writer = csv.writer(file)
writer.writerows(data_baru)
Validasi Sebelum Menambah Data
nama = input("Nama: ").strip()
nilai = input("Nilai: ").strip()
if nama == "" or nilai == "":
print("Data tidak boleh kosong")
else:
with open(
"nilai.txt",
"a",
encoding="utf-8"
) as file:
file.write(
f"{nama};{nilai}\n"
)
print("Data berhasil ditambahkan.")
Mencegah Data Duplikat
nama_baru = input(
"Masukkan nama: "
).strip()
try:
with open(
"nama.txt",
"r",
encoding="utf-8"
) as file:
daftar_nama = [
baris.strip()
for baris in file
]
except FileNotFoundError:
daftar_nama = []
if nama_baru in daftar_nama:
print("Nama sudah tersedia.")
else:
with open(
"nama.txt",
"a",
encoding="utf-8"
) as file:
file.write(nama_baru + "\n")
print("Nama berhasil ditambahkan.")
Studi Kasus Menambah Data Mahasiswa
nim = input("Masukkan NIM: ").strip()
nama = input("Masukkan nama: ").strip()
nilai = input("Masukkan nilai: ").strip()
if nim == "" or nama == "" or nilai == "":
print("Semua data harus diisi.")
else:
try:
nilai = float(nilai)
if nilai < 0 or nilai > 100:
print("Nilai harus berada antara 0 dan 100.")
else:
with open(
"mahasiswa.txt",
"a",
encoding="utf-8"
) as file:
file.write(
f"{nim};{nama};{nilai}\n"
)
print("Data berhasil ditambahkan.")
except ValueError:
print("Nilai harus berupa angka.")
Perbandingan Mode
"w" dan "a"
Mode
Perilaku
Kapan Digunakan
"w"Menghapus isi lama dan menulis dari awal.
Membuat ulang isi file.
"a"Menulis di bagian akhir file.
Menambah data baru.
"x"Membuat file baru dan gagal jika file ada.
Mencegah file lama tertimpa.
Kesalahan Umum
1. Lupa Menambahkan
\n
with open("data.txt", "a") as file:
file.write("Andi")
file.write("Budi")\n setelah setiap data.
2. Salah Menggunakan Mode
"w"
"w" menghapus isi lama. Untuk menambah data
gunakan mode "a".
3. Menambah Data Tanpa Validasi
Latihan
catatan.txt yang berisi beberapa
catatan awal.
"a".
mahasiswa.txt.
0 sampai 100.
Kesimpulan
"a". Mode ini mempertahankan isi lama dan
menuliskan data baru di bagian akhir file. Gunakan
with open(), karakter \n, validasi
input, dan pemeriksaan duplikasi agar proses penambahan data
berjalan dengan baik.
Pertemuan 13
Membaca File Teks
Pengertian Membaca File Teks
"r". Mode ini digunakan untuk mengambil isi
file tanpa mengubah data di dalamnya.
file = open("catatan.txt", "r")
isi = file.read()
print(isi)
file.close()
Membaca File dengan Mode
"r"
"r" digunakan untuk membaca file. File
harus sudah tersedia sebelum dibuka.
file = open("data.txt", "r")
print(file.read())
file.close()FileNotFoundError.
Membaca dengan
with open()
with open() lebih disarankan karena
file akan ditutup secara otomatis setelah selesai dibaca.
with open(
"catatan.txt",
"r",
encoding="utf-8"
) as file:
isi = file.read()
print(isi)
Method
read()
read() membaca seluruh isi file dan
mengembalikannya dalam bentuk string.
with open(
"catatan.txt",
"r",
encoding="utf-8"
) as file:
isi = file.read()
print(isi)
Membaca Sejumlah Karakter
read(jumlah) digunakan untuk membaca
sejumlah karakter tertentu.
with open(
"catatan.txt",
"r",
encoding="utf-8"
) as file:
bagian = file.read(10)
print(bagian)
Method
readline()
readline() digunakan untuk membaca satu
baris file.
with open(
"mahasiswa.txt",
"r",
encoding="utf-8"
) as file:
baris_pertama = file.readline()
print(baris_pertama)
Membaca Baris Satu per Satu
with open(
"mahasiswa.txt",
"r",
encoding="utf-8"
) as file:
baris = file.readline()
while baris:
print(baris.strip())
baris = file.readline()
Method
readlines()
readlines() membaca seluruh baris dan
menyimpannya sebagai list.
with open(
"mahasiswa.txt",
"r",
encoding="utf-8"
) as file:
daftar_baris = file.readlines()
print(daftar_baris)
Membaca File dengan Perulangan
for.
with open(
"nama.txt",
"r",
encoding="utf-8"
) as file:
for baris in file:
print(baris.strip())
Membersihkan Isi Baris dengan
strip()
\n. Method strip()
digunakan untuk menghapusnya.
with open(
"nama.txt",
"r",
encoding="utf-8"
) as file:
for baris in file:
nama = baris.strip()
print("Nama:", nama)
Memisahkan Data dengan
split()
split() digunakan untuk memisahkan data
berdasarkan karakter pemisah tertentu.
data = "2026001;Andi;85"
nim, nama, nilai = data.split(";")
print("NIM :", nim)
print("Nama :", nama)
print("Nilai:", nilai)
Membaca Record dari File Teks
mahasiswa = []
with open(
"mahasiswa.txt",
"r",
encoding="utf-8"
) as file:
for baris in file:
nim, nama, nilai = baris.strip().split(";")
record = {
"nim": nim,
"nama": nama,
"nilai": float(nilai)
}
mahasiswa.append(record)
for data in mahasiswa:
print(data)
Membaca File CSV
csv.
import csv
with open(
"mahasiswa.csv",
"r",
encoding="utf-8"
) as file:
reader = csv.reader(file)
for baris in reader:
print(baris)
Membaca CSV sebagai Dictionary
DictReader membaca setiap baris CSV sebagai
dictionary berdasarkan nama kolom.
import csv
with open(
"mahasiswa.csv",
"r",
encoding="utf-8"
) as file:
reader = csv.DictReader(file)
for data in reader:
print("NIM :", data["nim"])
print("Nama :", data["nama"])
print("Nilai:", data["nilai"])
Menangani Error saat Membaca File
try-except untuk menangani kondisi
ketika file tidak ditemukan.
try:
with open(
"data.txt",
"r",
encoding="utf-8"
) as file:
isi = file.read()
print(isi)
except FileNotFoundError:
print("File tidak ditemukan.")
except PermissionError:
print("Tidak memiliki izin membaca file.")
Studi Kasus Membaca Data Nilai
mahasiswa.txt memiliki format:
2026001;Andi;85
2026002;Budi;65
2026003;Citra;90try:
with open(
"mahasiswa.txt",
"r",
encoding="utf-8"
) as file:
for baris in file:
nim, nama, nilai = (
baris.strip().split(";")
)
nilai = float(nilai)
if nilai >= 70:
status = "Lulus"
else:
status = "Tidak Lulus"
print("NIM :", nim)
print("Nama :", nama)
print("Nilai :", nilai)
print("Status:", status)
print()
except FileNotFoundError:
print("File mahasiswa.txt tidak ditemukan.")
Ringkasan Membaca File Teks
Method
Kegunaan
Contoh
read()Membaca seluruh isi file.
file.read()
read(jumlah)Membaca sejumlah karakter.
file.read(10)
readline()Membaca satu baris.
file.readline()
readlines()Membaca seluruh baris sebagai list.
file.readlines()
strip()Menghapus spasi dan newline.
baris.strip()
split()Memisahkan data berdasarkan delimiter.
baris.split(";")
csv.readerMembaca file CSV.
csv.reader(file)
csv.DictReaderMembaca CSV sebagai dictionary.
csv.DictReader(file)
Kesalahan Umum
1. File Tidak Ditemukan
try-except untuk menangani
FileNotFoundError.
2. Lupa Menggunakan
strip()
strip() sebelum mengolah data.
3. Jumlah Data Tidak Sesuai
data = "2026001;Andi"
nim, nama, nilai = data.split(";")
Latihan
catatan.txt yang berisi minimal
lima baris.
read().
nim;nama;nilai.
70.
Kesimpulan
"r".
Method read() digunakan untuk membaca seluruh isi,
readline() untuk satu baris, dan
readlines() untuk membaca semua baris sebagai
list. Data yang dibaca dapat dibersihkan dengan
strip() dan dipisahkan dengan
split() sebelum diolah lebih lanjut.
Pertemuan 14
File Bertipe
Pengertian File Bertipe
Tipe File
Ekstensi
Karakteristik
File teks
.txtBerisi karakter yang dapat dibaca manusia.
File CSV
.csvBerisi data tabel dengan pemisah tertentu.
File JSON
.jsonBerisi data terstruktur.
File biner
.binBerisi data dalam bentuk byte.
File Teks
with open(
"catatan.txt",
"w",
encoding="utf-8"
) as file:
file.write("Belajar file teks")with open(
"catatan.txt",
"r",
encoding="utf-8"
) as file:
isi = file.read()
print(isi)
File CSV
nim,nama,nilai
2026001,Andi,85
2026002,Budi,75
2026003,Citra,90csv:
import csv
data = [
["nim", "nama", "nilai"],
["2026001", "Andi", 85],
["2026002", "Budi", 75],
["2026003", "Citra", 90]
]
with open(
"mahasiswa.csv",
"w",
newline="",
encoding="utf-8"
) as file:
writer = csv.writer(file)
writer.writerows(data)
Membaca File CSV
import csv
with open(
"mahasiswa.csv",
"r",
encoding="utf-8"
) as file:
reader = csv.DictReader(file)
for data in reader:
print("NIM :", data["nim"])
print("Nama :", data["nama"])
print("Nilai:", data["nilai"])DictReader membaca setiap baris CSV sebagai
dictionary berdasarkan nama kolom.
File JSON
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}import json
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
with open(
"mahasiswa.json",
"w",
encoding="utf-8"
) as file:
json.dump(
mahasiswa,
file,
indent=4
)
Membaca File JSON
import json
with open(
"mahasiswa.json",
"r",
encoding="utf-8"
) as file:
mahasiswa = json.load(file)
print("NIM :", mahasiswa["nim"])
print("Nama :", mahasiswa["nama"])
print("Nilai:", mahasiswa["nilai"])
File JSON Berisi Banyak Record
import json
mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"nilai": 85
},
{
"nim": "2026002",
"nama": "Budi",
"nilai": 75
}
]
with open(
"mahasiswa.json",
"w",
encoding="utf-8"
) as file:
json.dump(
mahasiswa,
file,
indent=4
)with open(
"mahasiswa.json",
"r",
encoding="utf-8"
) as file:
data = json.load(file)
for mahasiswa in data:
print(
mahasiswa["nama"],
mahasiswa["nilai"]
)
File Biner
b, seperti "rb" untuk membaca dan
"wb" untuk menulis.
data = b"Data dalam bentuk byte"
with open(
"data.bin",
"wb"
) as file:
file.write(data)
Membaca File Biner
with open(
"data.bin",
"rb"
) as file:
data = file.read()
print(data)bytes.
Menyimpan Data Python dengan
pickle
pickle dapat digunakan untuk menyimpan
objek Python ke dalam file biner.
import pickle
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"nilai": 85
}
with open(
"mahasiswa.dat",
"wb"
) as file:
pickle.dump(mahasiswa, file)with open(
"mahasiswa.dat",
"rb"
) as file:
data = pickle.load(file)
print(data)
Perbandingan Tipe File
Tipe
Kelebihan
Kekurangan
Contoh Penggunaan
TXT
Sederhana dan mudah dibaca.
Struktur data terbatas.
Catatan dan log.
CSV
Cocok untuk data tabel.
Kurang sesuai untuk struktur bertingkat.
Data mahasiswa dan laporan.
JSON
Mendukung nested record.
Ukuran dapat lebih besar.
Konfigurasi dan API.
Biner
Efisien untuk data byte.
Tidak mudah dibaca manusia.
Gambar, audio, dan objek Python.
Mode File Bertipe
Mode
Keterangan
"r"Membaca file teks.
"w"Menulis file teks.
"a"Menambah isi file teks.
"rb"Membaca file biner.
"wb"Menulis file biner.
"ab"Menambah isi file biner.
Studi Kasus Penyimpanan Data Mahasiswa
import json
data_mahasiswa = [
{
"nim": "2026001",
"nama": "Andi",
"alamat": {
"kota": "Bandung"
},
"nilai": {
"algoritma": 85,
"basis_data": 90
}
},
{
"nim": "2026002",
"nama": "Budi",
"alamat": {
"kota": "Jakarta"
},
"nilai": {
"algoritma": 75,
"basis_data": 80
}
}
]
with open(
"data_mahasiswa.json",
"w",
encoding="utf-8"
) as file:
json.dump(
data_mahasiswa,
file,
indent=4
)
with open(
"data_mahasiswa.json",
"r",
encoding="utf-8"
) as file:
data = json.load(file)
for mahasiswa in data:
print("Nama :", mahasiswa["nama"])
print(
"Kota :",
mahasiswa["alamat"]["kota"]
)
print(
"Algoritma:",
mahasiswa["nilai"]["algoritma"]
)
print()
Kesalahan Umum
1. Salah Menggunakan Mode Teks dan Biner
"rb" atau "wb". File teks biasanya
menggunakan mode "r" atau "w".
2. Tidak Menggunakan Module yang Sesuai
csv untuk file CSV dan
json untuk file JSON.
3. Membaca JSON sebagai Teks Biasa
json.load()
agar langsung berubah menjadi dictionary atau list Python.
Latihan
DictReader.
Kesimpulan
Pertemuan 14
File Tidak Bertipe
Pengertian File Tidak Bertipe
Perbedaan File Bertipe dan Tidak Bertipe
Aspek
File Bertipe
File Tidak Bertipe
Struktur data
Memiliki format tertentu.
Tidak memiliki struktur tetap.
Interpretasi data
Format membantu membaca data.
Ditentukan sendiri oleh program.
Contoh
CSV, JSON, dan file terstruktur.
Data biner umum dan raw bytes.
Kemudahan pembacaan
Lebih mudah dipahami.
Memerlukan aturan pembacaan khusus.
Data dalam Bentuk Byte
bytes. Setiap byte memiliki nilai antara
0 sampai 255.
data = bytes([65, 66, 67])
print(data)
Menulis File Tidak Bertipe
"wb". Huruf b menunjukkan bahwa
file dibuka dalam mode biner.
data = bytes([65, 66, 67, 68])
with open(
"data.bin",
"wb"
) as file:
file.write(data)
Membaca File Tidak Bertipe
"rb" dan
hasilnya berupa data byte.
with open(
"data.bin",
"rb"
) as file:
data = file.read()
print(data)
Membaca Sebagian Data
read(jumlah) dapat digunakan untuk
membaca sejumlah byte tertentu.
with open(
"data.bin",
"rb"
) as file:
bagian = file.read(4)
print(bagian)
Menambah Data ke File Tidak Bertipe
"ab".
data_baru = bytes([69, 70])
with open(
"data.bin",
"ab"
) as file:
file.write(data_baru)
Mengubah Teks Menjadi Byte
encode().
teks = "Belajar Python"
data = teks.encode("utf-8")
with open(
"pesan.bin",
"wb"
) as file:
file.write(data)
Mengubah Byte Menjadi Teks
decode().
with open(
"pesan.bin",
"rb"
) as file:
data = file.read()
teks = data.decode("utf-8")
print(teks)
Posisi Pointer File
tell() digunakan untuk mengetahui posisi
pointer, sedangkan seek() digunakan untuk
memindahkannya.
with open(
"data.bin",
"rb"
) as file:
print("Posisi awal:", file.tell())
data = file.read(3)
print("Data:", data)
print("Posisi akhir:", file.tell())
Memindahkan Pointer dengan
seek()
with open(
"data.bin",
"rb"
) as file:
file.seek(2)
data = file.read(3)
print(data)
Mengetahui Ukuran File
os.
import os
ukuran = os.path.getsize("data.bin")
print("Ukuran file:", ukuran, "byte")
Menyalin File Tidak Bertipe
with open(
"sumber.bin",
"rb"
) as sumber:
data = sumber.read()
with open(
"salinan.bin",
"wb"
) as tujuan:
tujuan.write(data)
print("File berhasil disalin.")
Membaca File Secara Bertahap
ukuran_chunk = 1024
with open(
"data.bin",
"rb"
) as sumber:
while True:
bagian = sumber.read(ukuran_chunk)
if not bagian:
break
print(
"Membaca",
len(bagian),
"byte"
)
File Objek dengan
pickle
pickle dapat menyimpan objek Python
seperti dictionary dan list ke file biner.
import pickle
data = {
"nama": "Andi",
"nilai": [85, 90, 88]
}
with open(
"data.dat",
"wb"
) as file:
pickle.dump(data, file)with open(
"data.dat",
"rb"
) as file:
data = pickle.load(file)
print(data)
Studi Kasus Menyalin File Biner
ukuran_chunk = 4096
with open(
"file_asli.bin",
"rb"
) as sumber:
with open(
"file_salinan.bin",
"wb"
) as tujuan:
while True:
data = sumber.read(ukuran_chunk)
if not data:
break
tujuan.write(data)
print("Penyalinan selesai.")
Ringkasan File Tidak Bertipe
Operasi
Mode atau Method
Kegunaan
Membaca
"rb"Membuka file biner untuk dibaca.
Menulis
"wb"Membuat atau menimpa file biner.
Menambah
"ab"Menambahkan byte ke akhir file.
Membaca byte
read()Mengambil data byte.
Posisi pointer
tell()Mengetahui posisi pointer.
Memindahkan pointer
seek()Berpindah ke posisi tertentu.
Encoding
encode()Mengubah string menjadi byte.
Decoding
decode()Mengubah byte menjadi string.
Kesalahan Umum
1. Membuka File Biner sebagai File Teks
"rb" atau "wb", bukan mode teks
biasa.
2. Menulis String Langsung ke File Biner
with open("data.bin", "wb") as file:
file.write("Data")encode().
file.write("Data".encode("utf-8"))
3. Menggunakan
pickle dari Sumber Tidak Dikenal
Latihan
"ab".
encode().
decode().
Kesimpulan
"rb", "wb", dan "ab".
Program bertanggung jawab menentukan cara membaca dan
menafsirkan data tersebut.
Pertemuan 14
Operasi File
Pengertian Operasi File
os, shutil, dan fungsi bawaan
open().
Operasi
Kegunaan
Membuat file
Menghasilkan file baru.
Membaca file
Mengambil isi file.
Menulis file
Menyimpan data ke dalam file.
Menambah isi file
Menambahkan data tanpa menghapus isi lama.
Mengganti nama
Mengubah nama file.
Menyalin file
Membuat salinan file.
Memindahkan file
Memindahkan file ke folder lain.
Menghapus file
Menghapus file dari penyimpanan.
Membuka dan Menutup File
open() dan ditutup
menggunakan close().
file = open(
"data.txt",
"r",
encoding="utf-8"
)
isi = file.read()
print(isi)
file.close()with open() agar file ditutup secara
otomatis.
Operasi File dengan
with open()
with open(
"data.txt",
"r",
encoding="utf-8"
) as file:
isi = file.read()
print(isi)with selesai, file akan ditutup
secara otomatis.
Membuat File
"w" atau
"x".
with open(
"catatan.txt",
"w",
encoding="utf-8"
) as file:
file.write("Catatan pertama")try:
with open(
"file_baru.txt",
"x",
encoding="utf-8"
) as file:
file.write("File baru")
except FileExistsError:
print("File sudah tersedia.")
Membaca File
with open(
"catatan.txt",
"r",
encoding="utf-8"
) as file:
isi = file.read()
print(isi)with open(
"catatan.txt",
"r",
encoding="utf-8"
) as file:
for baris in file:
print(baris.strip())
Menulis dan Menimpa Isi File
"w" digunakan untuk menulis data baru.
Isi lama akan terhapus jika file sudah tersedia.
with open(
"catatan.txt",
"w",
encoding="utf-8"
) as file:
file.write("Isi file yang baru")
Menambah Isi File
"a" digunakan untuk menambahkan data di
akhir file tanpa menghapus isi sebelumnya.
with open(
"catatan.txt",
"a",
encoding="utf-8"
) as file:
file.write("\nIsi tambahan")
Memeriksa Keberadaan File
os menyediakan fungsi
path.exists() untuk memeriksa apakah file
tersedia.
import os
nama_file = "catatan.txt"
if os.path.exists(nama_file):
print("File tersedia")
else:
print("File tidak tersedia")
Mengetahui Ukuran File
os.path.getsize() digunakan untuk
mengetahui ukuran file dalam satuan byte.
import os
ukuran = os.path.getsize("catatan.txt")
print("Ukuran file:", ukuran, "byte")
Mendapatkan Informasi File
import os
nama_file = "catatan.txt"
print("Nama file :", os.path.basename(nama_file))
print("Folder :", os.path.dirname(nama_file))
print("Ukuran :", os.path.getsize(nama_file))
print("Absolute :", os.path.abspath(nama_file))
Mengganti Nama File
os.rename() digunakan untuk mengganti
nama file.
import os
os.rename(
"catatan.txt",
"catatan_lama.txt"
)
print("Nama file berhasil diubah.")
Menghapus File
os.remove() digunakan untuk menghapus
file.
import os
nama_file = "catatan_lama.txt"
if os.path.exists(nama_file):
os.remove(nama_file)
print("File berhasil dihapus.")
else:
print("File tidak ditemukan.")os.remove() tidak
dapat dipulihkan melalui program.
Menyalin File
shutil menyediakan fungsi
copy() untuk menyalin file.
import shutil
shutil.copy(
"data.txt",
"data_salinan.txt"
)
print("File berhasil disalin.")
Memindahkan File
shutil.move() digunakan untuk
memindahkan file ke lokasi lain.
import shutil
shutil.move(
"data.txt",
"arsip/data.txt"
)
print("File berhasil dipindahkan.")
Membuat Folder
os.mkdir() digunakan untuk membuat satu
folder baru.
import os
if not os.path.exists("arsip"):
os.mkdir("arsip")
print("Folder tersedia.")os.makedirs().
import os
os.makedirs(
"data/mahasiswa",
exist_ok=True
)
Menampilkan Isi Folder
os.listdir() digunakan untuk menampilkan
daftar file dan folder dalam suatu lokasi.
import os
isi_folder = os.listdir(".")
for nama in isi_folder:
print(nama)
Menyaring File Berdasarkan Ekstensi
import os
for nama in os.listdir("."):
if nama.endswith(".txt"):
print(nama)
Operasi File dengan
pathlib
pathlib menyediakan cara yang lebih
modern dan mudah dibaca untuk mengelola path file.
from pathlib import Path
file = Path("catatan.txt")
if file.exists():
print("File tersedia")
print("Nama:", file.name)
print("Suffix:", file.suffix)
print("Ukuran:", file.stat().st_size)pathlib:
from pathlib import Path
file = Path("catatan.txt")
file.write_text(
"Belajar pathlib",
encoding="utf-8"
)
isi = file.read_text(
encoding="utf-8"
)
print(isi)
Penanganan Error Operasi File
import os
try:
os.remove("data.txt")
print("File berhasil dihapus.")
except FileNotFoundError:
print("File tidak ditemukan.")
except PermissionError:
print("Tidak memiliki izin.")
except OSError as error:
print("Terjadi error:", error)
Studi Kasus Manajemen File
import os
import shutil
folder = "arsip"
if not os.path.exists(folder):
os.mkdir(folder)
with open(
"data_mahasiswa.txt",
"w",
encoding="utf-8"
) as file:
file.write("Data mahasiswa")
tujuan = os.path.join(
folder,
"data_mahasiswa.txt"
)
shutil.copy(
"data_mahasiswa.txt",
tujuan
)
print("Isi folder arsip:")
for nama in os.listdir(folder):
print(nama)
Ringkasan Operasi File
Fungsi
Kegunaan
open()Membuka, membaca, atau menulis file.
os.path.exists()Memeriksa keberadaan file atau folder.
os.path.getsize()Mengambil ukuran file.
os.rename()Mengganti nama file.
os.remove()Menghapus file.
os.mkdir()Membuat folder.
os.listdir()Menampilkan isi folder.
shutil.copy()Menyalin file.
shutil.move()Memindahkan file.
Path.read_text()Membaca file menggunakan pathlib.
Kesalahan Umum
1. Menghapus File Tanpa Pemeriksaan
os.path.exists() sebelum menghapusnya.
2. Folder Tujuan Belum Tersedia
os.mkdir() atau os.makedirs().
3. Salah Menentukan Path
os.path.join() atau
pathlib.Path agar penulisan path lebih aman
pada berbagai sistem operasi.
Latihan
data.txt menggunakan Python.
arsip.
Kesimpulan
os, shutil, dan
pathlib membantu melakukan operasi tersebut secara
lebih terstruktur.
Pertemuan 14
Studi Kasus Pengolahan File
Deskripsi Studi Kasus
mahasiswa.txt dengan format:
2026001;Andi;Informatika;85
2026002;Budi;Sistem Informasi;75
Struktur Program
Fungsi Membaca Data
def baca_data():
try:
with open(
"mahasiswa.txt",
"r",
encoding="utf-8"
) as file:
data_mahasiswa = []
for baris in file:
baris = baris.strip()
if baris == "":
continue
nim, nama, prodi, nilai = (
baris.split(";")
)
data_mahasiswa.append({
"nim": nim,
"nama": nama,
"prodi": prodi,
"nilai": float(nilai)
})
return data_mahasiswa
except FileNotFoundError:
return []
Fungsi Menyimpan Data
def simpan_data(data_mahasiswa):
with open(
"mahasiswa.txt",
"w",
encoding="utf-8"
) as file:
for data in data_mahasiswa:
file.write(
f"{data['nim']};"
f"{data['nama']};"
f"{data['prodi']};"
f"{data['nilai']}\n"
)"w" digunakan agar seluruh data terbaru
ditulis ulang ke dalam file.
Fungsi Menambah Data
def tambah_data(data_mahasiswa):
nim = input("NIM : ").strip()
nama = input("Nama : ").strip()
prodi = input("Program Studi: ").strip()
nilai = input("Nilai : ").strip()
if nim == "" or nama == "" or prodi == "":
print("Data tidak boleh kosong.")
return
try:
nilai = float(nilai)
if nilai < 0 or nilai > 100:
print("Nilai harus antara 0 sampai 100.")
return
except ValueError:
print("Nilai harus berupa angka.")
return
for data in data_mahasiswa:
if data["nim"] == nim:
print("NIM sudah terdaftar.")
return
data_mahasiswa.append({
"nim": nim,
"nama": nama,
"prodi": prodi,
"nilai": nilai
})
simpan_data(data_mahasiswa)
print("Data berhasil ditambahkan.")
Fungsi Menampilkan Data
def tampilkan_data(data_mahasiswa):
if len(data_mahasiswa) == 0:
print("Belum ada data mahasiswa.")
return
print("\nDaftar Mahasiswa")
print("-" * 60)
for nomor, data in enumerate(
data_mahasiswa,
start=1
):
print(f"Data ke-{nomor}")
print("NIM :", data["nim"])
print("Nama :", data["nama"])
print("Prodi :", data["prodi"])
print("Nilai :", data["nilai"])
if data["nilai"] >= 70:
status = "Lulus"
else:
status = "Tidak Lulus"
print("Status:", status)
print("-" * 60)
Fungsi Mencari Data
def cari_data(data_mahasiswa):
nim_dicari = input(
"Masukkan NIM yang dicari: "
).strip()
ditemukan = False
for data in data_mahasiswa:
if data["nim"] == nim_dicari:
print("\nData ditemukan")
print("NIM :", data["nim"])
print("Nama :", data["nama"])
print("Prodi :", data["prodi"])
print("Nilai :", data["nilai"])
ditemukan = True
break
if not ditemukan:
print("Data tidak ditemukan.")
Fungsi Mengubah Data
def ubah_data(data_mahasiswa):
nim_dicari = input(
"Masukkan NIM yang akan diubah: "
).strip()
for data in data_mahasiswa:
if data["nim"] == nim_dicari:
nama_baru = input(
"Nama baru: "
).strip()
prodi_baru = input(
"Program studi baru: "
).strip()
nilai_baru = input(
"Nilai baru: "
).strip()
try:
nilai_baru = float(nilai_baru)
if nilai_baru < 0 or nilai_baru > 100:
print("Nilai tidak valid.")
return
except ValueError:
print("Nilai harus berupa angka.")
return
data["nama"] = nama_baru
data["prodi"] = prodi_baru
data["nilai"] = nilai_baru
simpan_data(data_mahasiswa)
print("Data berhasil diubah.")
return
print("Data tidak ditemukan.")
Fungsi Menghapus Data
def hapus_data(data_mahasiswa):
nim_dicari = input(
"Masukkan NIM yang akan dihapus: "
).strip()
for data in data_mahasiswa:
if data["nim"] == nim_dicari:
data_mahasiswa.remove(data)
simpan_data(data_mahasiswa)
print("Data berhasil dihapus.")
return
print("Data tidak ditemukan.")
Fungsi Menghitung Statistik
def statistik_data(data_mahasiswa):
if len(data_mahasiswa) == 0:
print("Belum ada data.")
return
daftar_nilai = [
data["nilai"]
for data in data_mahasiswa
]
total = sum(daftar_nilai)
rata_rata = total / len(daftar_nilai)
nilai_tertinggi = max(daftar_nilai)
nilai_terendah = min(daftar_nilai)
jumlah_lulus = sum(
1
for nilai in daftar_nilai
if nilai >= 70
)
jumlah_tidak_lulus = (
len(daftar_nilai) - jumlah_lulus
)
print("Total nilai :", total)
print("Rata-rata :", rata_rata)
print("Nilai tertinggi :", nilai_tertinggi)
print("Nilai terendah :", nilai_terendah)
print("Jumlah lulus :", jumlah_lulus)
print("Jumlah tidak lulus:", jumlah_tidak_lulus)
Program Utama dan Menu
def tampilkan_menu():
print("\n=== MENU DATA MAHASISWA ===")
print("1. Tambah data")
print("2. Tampilkan data")
print("3. Cari data")
print("4. Ubah data")
print("5. Hapus data")
print("6. Statistik data")
print("7. Keluar")
data_mahasiswa = baca_data()
while True:
tampilkan_menu()
pilihan = input(
"Pilih menu: "
).strip()
if pilihan == "1":
tambah_data(data_mahasiswa)
elif pilihan == "2":
tampilkan_data(data_mahasiswa)
elif pilihan == "3":
cari_data(data_mahasiswa)
elif pilihan == "4":
ubah_data(data_mahasiswa)
elif pilihan == "5":
hapus_data(data_mahasiswa)
elif pilihan == "6":
statistik_data(data_mahasiswa)
elif pilihan == "7":
print("Program selesai.")
break
else:
print("Pilihan tidak tersedia.")
Program Lengkap
FILE_NAME = "mahasiswa.txt"
def baca_data():
data_mahasiswa = []
try:
with open(
FILE_NAME,
"r",
encoding="utf-8"
) as file:
for baris in file:
baris = baris.strip()
if baris == "":
continue
bagian = baris.split(";")
if len(bagian) != 4:
continue
nim, nama, prodi, nilai = bagian
data_mahasiswa.append({
"nim": nim,
"nama": nama,
"prodi": prodi,
"nilai": float(nilai)
})
except FileNotFoundError:
pass
return data_mahasiswa
def simpan_data(data_mahasiswa):
with open(
FILE_NAME,
"w",
encoding="utf-8"
) as file:
for data in data_mahasiswa:
file.write(
f"{data['nim']};"
f"{data['nama']};"
f"{data['prodi']};"
f"{data['nilai']}\n"
)
def tambah_data(data_mahasiswa):
nim = input("NIM: ").strip()
nama = input("Nama: ").strip()
prodi = input("Prodi: ").strip()
nilai = input("Nilai: ").strip()
if not nim or not nama or not prodi:
print("Data tidak boleh kosong.")
return
try:
nilai = float(nilai)
if not 0 <= nilai <= 100:
print("Nilai harus antara 0 sampai 100.")
return
except ValueError:
print("Nilai harus berupa angka.")
return
for data in data_mahasiswa:
if data["nim"] == nim:
print("NIM sudah digunakan.")
return
data_mahasiswa.append({
"nim": nim,
"nama": nama,
"prodi": prodi,
"nilai": nilai
})
simpan_data(data_mahasiswa)
print("Data berhasil ditambahkan.")
def tampilkan_data(data_mahasiswa):
if not data_mahasiswa:
print("Data masih kosong.")
return
for data in data_mahasiswa:
status = (
"Lulus"
if data["nilai"] >= 70
else "Tidak Lulus"
)
print("-" * 40)
print("NIM :", data["nim"])
print("Nama :", data["nama"])
print("Prodi :", data["prodi"])
print("Nilai :", data["nilai"])
print("Status:", status)
def cari_data(data_mahasiswa):
nim = input("NIM yang dicari: ").strip()
for data in data_mahasiswa:
if data["nim"] == nim:
print(data)
return
print("Data tidak ditemukan.")
def ubah_data(data_mahasiswa):
nim = input("NIM yang diubah: ").strip()
for data in data_mahasiswa:
if data["nim"] == nim:
data["nama"] = input(
"Nama baru: "
).strip()
data["prodi"] = input(
"Prodi baru: "
).strip()
try:
nilai = float(input(
"Nilai baru: "
))
if not 0 <= nilai <= 100:
print("Nilai tidak valid.")
return
data["nilai"] = nilai
except ValueError:
print("Nilai harus berupa angka.")
return
simpan_data(data_mahasiswa)
print("Data berhasil diubah.")
return
print("Data tidak ditemukan.")
def hapus_data(data_mahasiswa):
nim = input("NIM yang dihapus: ").strip()
for data in data_mahasiswa:
if data["nim"] == nim:
data_mahasiswa.remove(data)
simpan_data(data_mahasiswa)
print("Data berhasil dihapus.")
return
print("Data tidak ditemukan.")
def statistik_data(data_mahasiswa):
if not data_mahasiswa:
print("Data masih kosong.")
return
nilai = [
data["nilai"]
for data in data_mahasiswa
]
print("Jumlah data :", len(nilai))
print("Rata-rata :", sum(nilai) / len(nilai))
print("Tertinggi :", max(nilai))
print("Terendah :", min(nilai))
data_mahasiswa = baca_data()
while True:
print("\n=== DATA MAHASISWA ===")
print("1. Tambah")
print("2. Tampilkan")
print("3. Cari")
print("4. Ubah")
print("5. Hapus")
print("6. Statistik")
print("7. Keluar")
pilihan = input("Pilih: ").strip()
if pilihan == "1":
tambah_data(data_mahasiswa)
elif pilihan == "2":
tampilkan_data(data_mahasiswa)
elif pilihan == "3":
cari_data(data_mahasiswa)
elif pilihan == "4":
ubah_data(data_mahasiswa)
elif pilihan == "5":
hapus_data(data_mahasiswa)
elif pilihan == "6":
statistik_data(data_mahasiswa)
elif pilihan == "7":
print("Program selesai.")
break
else:
print("Pilihan tidak valid.")
Contoh Isi File
mahasiswa.txt
2026001;Andi;Informatika;85.0
2026002;Budi;Sistem Informasi;75.0
2026003;Citra;Teknik Komputer;90.0
Alur Pengolahan File
Kesalahan Umum
1. Format Data Tidak Konsisten
split() dapat berjalan dengan benar.
2. NIM Duplikat
3. Data Tidak Disimpan Kembali
simpan_data() agar perubahan tersimpan ke file.
4. Nilai Bukan Angka
try-except untuk menangani input nilai
yang bukan angka.
Pengembangan Program
Kesimpulan
Pertemuan 15
Penugasan Akhir
Deskripsi Penugasan
Tujuan Pembelajaran
Ketentuan Umum
Fitur Wajib Program
No.
Fitur
Keterangan
1
Tambah data
Menambahkan data baru ke dalam file.
2
Tampilkan data
Menampilkan seluruh data.
3
Cari data
Mencari data berdasarkan field tertentu.
4
Ubah data
Mengubah data yang sudah tersedia.
5
Hapus data
Menghapus data berdasarkan identitas.
6
Statistik
Menampilkan hasil perhitungan data.
7
Keluar
Menghentikan program dengan aman.
Contoh Struktur Data
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"identitas": {
"tempat_lahir": "Bandung",
"tanggal_lahir": "2005-05-10"
},
"akademik": {
"program_studi": "Informatika",
"semester": 2,
"ipk": 3.75
}
}
Format Penyimpanan File
[
{
"nim": "2026001",
"nama": "Andi",
"identitas": {
"tempat_lahir": "Bandung",
"tanggal_lahir": "2005-05-10"
},
"akademik": {
"program_studi": "Informatika",
"semester": 2,
"ipk": 3.75
}
}
]
Template Program
import json
NAMA_FILE = "data.json"
def baca_data():
try:
with open(
NAMA_FILE,
"r",
encoding="utf-8"
) as file:
return json.load(file)
except FileNotFoundError:
return []
except json.JSONDecodeError:
print("Format file tidak valid.")
return []
def simpan_data(data):
with open(
NAMA_FILE,
"w",
encoding="utf-8"
) as file:
json.dump(
data,
file,
indent=4,
ensure_ascii=False
)
def tambah_data(data):
record_baru = {
"id": "001",
"nama": "Contoh Data"
}
data.append(record_baru)
simpan_data(data)
print("Data berhasil ditambahkan.")
def tampilkan_data(data):
if not data:
print("Data masih kosong.")
return
for nomor, record in enumerate(
data,
start=1
):
print(nomor, record)
def cari_data(data):
kata_kunci = input(
"Masukkan kata kunci: "
).lower()
ditemukan = False
for record in data:
if kata_kunci in record["nama"].lower():
print(record)
ditemukan = True
if not ditemukan:
print("Data tidak ditemukan.")
def hapus_data(data):
identitas = input(
"Masukkan ID data: "
)
for record in data:
if record["id"] == identitas:
data.remove(record)
simpan_data(data)
print("Data berhasil dihapus.")
return
print("Data tidak ditemukan.")
def menu():
print("\n=== MENU UTAMA ===")
print("1. Tambah data")
print("2. Tampilkan data")
print("3. Cari data")
print("4. Hapus data")
print("5. Keluar")
data = baca_data()
while True:
menu()
pilihan = input(
"Pilih menu: "
)
if pilihan == "1":
tambah_data(data)
elif pilihan == "2":
tampilkan_data(data)
elif pilihan == "3":
cari_data(data)
elif pilihan == "4":
hapus_data(data)
elif pilihan == "5":
print("Program selesai.")
break
else:
print("Pilihan tidak valid.")
Contoh Tema: Sistem Data Barang
barang = {
"kode": "BRG001",
"nama": "Keyboard",
"kategori": {
"kode": "K01",
"nama": "Peralatan Komputer"
},
"stok": {
"jumlah": 25,
"satuan": "unit"
},
"harga": {
"beli": 150000,
"jual": 200000
}
}
Validasi yang Wajib Diterapkan
try-except.
Format Laporan
Skenario Pengujian
No.
Skenario
Hasil yang Diharapkan
1
Menambahkan data valid.
Data tersimpan ke file.
2
Menambahkan ID duplikat.
Program menolak data.
3
Memasukkan teks pada field angka.
Program menampilkan pesan error.
4
Mencari data tersedia.
Data ditampilkan.
5
Mencari data tidak tersedia.
Pesan data tidak ditemukan.
6
Mengubah data.
Perubahan tersimpan ke file.
7
Menghapus data.
Data terhapus dari file.
8
Menjalankan program tanpa file.
Program membuat data kosong tanpa error.
Rubrik Penilaian
Komponen
Bobot
Struktur program dan fungsi
15%
Penggunaan record atau dictionary
15%
Penggunaan nested record
15%
Operasi file
20%
Validasi dan penanganan error
15%
Kelengkapan fitur
10%
Laporan dan presentasi
10%
Ketentuan Pengumpulan
.py.
Nama_NIM_PenugasanAkhir
Checklist Sebelum Mengumpulkan
Kesimpulan
Pertemuan 15
Kuis Pertemuan 15
Petunjuk Pengerjaan
Hasil Kuis
Pembahasan Jawaban
json.load(file)
membaca data JSON dari file.
"a" digunakan
untuk menambahkan data.
json.dump() menyimpan
objek Python ke file JSON.
os.path.exists() memeriksa keberadaan
file atau folder.
os.rename() mengganti nama file.
os.remove() menghapus
file.
FileNotFoundError muncul saat file tidak
ditemukan.
shutil digunakan
untuk menyalin dan memindahkan file.
json.dump() menulis
objek Python ke file JSON.
Pertemuan 16
Project Akhir
Deskripsi Project
Pilihan Tema Project
Sistem Akademik
Sistem Inventaris
Sistem Perpustakaan
Fitur Wajib
No.
Fitur
Keterangan
1
Tambah data
Menambahkan data baru.
2
Tampilkan data
Menampilkan seluruh data.
3
Cari data
Mencari data berdasarkan kode atau ID.
4
Ubah data
Mengubah data yang sudah tersedia.
5
Hapus data
Menghapus data tertentu.
6
Laporan
Menampilkan ringkasan atau statistik data.
7
Penyimpanan file
Data tersimpan secara permanen.
Contoh Struktur Data
mahasiswa = {
"nim": "2026001",
"nama": "Andi",
"kontak": {
"email": "andi@example.com",
"telepon": "08123456789"
},
"akademik": {
"program_studi": "Informatika",
"semester": 2,
"ipk": 3.75
}
}
Format Penyimpanan Data
import json
NAMA_FILE = "data_project.json"
def baca_data():
try:
with open(
NAMA_FILE,
"r",
encoding="utf-8"
) as file:
return json.load(file)
except FileNotFoundError:
return []
except json.JSONDecodeError:
print("Isi file tidak valid.")
return []
def simpan_data(data):
with open(
NAMA_FILE,
"w",
encoding="utf-8"
) as file:
json.dump(
data,
file,
indent=4,
ensure_ascii=False
)
Fungsi Menambah Data
def tambah_data(data):
kode = input("Kode atau ID: ").strip()
nama = input("Nama: ").strip()
kategori = input("Kategori: ").strip()
if kode == "" or nama == "":
print("Kode dan nama wajib diisi.")
return
for item in data:
if item["kode"] == kode:
print("Kode sudah digunakan.")
return
record_baru = {
"kode": kode,
"nama": nama,
"kategori": {
"nama": kategori
}
}
data.append(record_baru)
simpan_data(data)
print("Data berhasil ditambahkan.")
Fungsi Menampilkan Data
def tampilkan_data(data):
if not data:
print("Data masih kosong.")
return
for nomor, item in enumerate(
data,
start=1
):
print("-" * 45)
print("Data ke-", nomor)
print("Kode :", item["kode"])
print("Nama :", item["nama"])
print(
"Kategori :",
item["kategori"]["nama"]
)
Fungsi Mencari Data
def cari_data(data):
kata_kunci = input(
"Masukkan kode atau nama: "
).lower()
hasil = []
for item in data:
if (
kata_kunci in item["kode"].lower()
or kata_kunci in item["nama"].lower()
):
hasil.append(item)
if not hasil:
print("Data tidak ditemukan.")
return
tampilkan_data(hasil)
Fungsi Menghapus Data
def hapus_data(data):
kode = input(
"Masukkan kode yang dihapus: "
).strip()
for item in data:
if item["kode"] == kode:
data.remove(item)
simpan_data(data)
print("Data berhasil dihapus.")
return
print("Data tidak ditemukan.")
Fungsi Laporan
def tampilkan_laporan(data):
if not data:
print("Belum ada data.")
return
jumlah_data = len(data)
kategori = {}
for item in data:
nama_kategori = (
item["kategori"]["nama"]
)
if nama_kategori not in kategori:
kategori[nama_kategori] = 0
kategori[nama_kategori] += 1
print("Jumlah data:", jumlah_data)
print("\nJumlah berdasarkan kategori:")
for nama, jumlah in kategori.items():
print(nama, ":", jumlah)
Menu Utama
def tampilkan_menu():
print("\n=== PROJECT AKHIR ===")
print("1. Tambah data")
print("2. Tampilkan data")
print("3. Cari data")
print("4. Hapus data")
print("5. Tampilkan laporan")
print("6. Keluar")
data = baca_data()
while True:
tampilkan_menu()
pilihan = input(
"Pilih menu: "
).strip()
if pilihan == "1":
tambah_data(data)
elif pilihan == "2":
tampilkan_data(data)
elif pilihan == "3":
cari_data(data)
elif pilihan == "4":
hapus_data(data)
elif pilihan == "5":
tampilkan_laporan(data)
elif pilihan == "6":
print("Program selesai.")
break
else:
print("Pilihan tidak valid.")
Validasi Program
Dokumentasi Project
Rubrik Penilaian
Komponen Penilaian
Bobot
Kelengkapan fitur
25%
Struktur dan kualitas kode
20%
Penggunaan struktur data
15%
Pengolahan file
15%
Validasi dan penanganan error
10%
Dokumentasi
10%
Presentasi
5%
Checklist Project
Kesimpulan
Ujian Akhir Semester
Penugasan UAS
Deskripsi Penugasan
Kompetensi yang Dinilai
Ketentuan Program
Fitur Wajib Aplikasi
No.
Fitur
Keterangan
1
Tambah data
Menambahkan data baru.
2
Tampilkan data
Menampilkan seluruh data.
3
Cari data
Mencari data berdasarkan ID atau kode.
4
Ubah data
Mengubah data yang sudah tersedia.
5
Hapus data
Menghapus data tertentu.
6
Laporan
Menampilkan rekap atau statistik data.
7
Keluar
Mengakhiri program dengan aman.
Contoh Struktur Data
barang = {
"kode": "BRG001",
"nama": "Keyboard",
"kategori": {
"kode": "K01",
"nama": "Peralatan Komputer"
},
"stok": {
"jumlah": 20,
"satuan": "unit"
},
"harga": {
"beli": 150000,
"jual": 200000
}
}
Contoh Pengolahan File JSON
import json
NAMA_FILE = "data_uas.json"
def baca_data():
try:
with open(
NAMA_FILE,
"r",
encoding="utf-8"
) as file:
return json.load(file)
except FileNotFoundError:
return []
except json.JSONDecodeError:
print("Format file tidak valid.")
return []
def simpan_data(data):
with open(
NAMA_FILE,
"w",
encoding="utf-8"
) as file:
json.dump(
data,
file,
indent=4,
ensure_ascii=False
)
Contoh Fungsi Tambah Data
def tambah_data(data):
kode = input("Kode data: ").strip()
nama = input("Nama data: ").strip()
kategori = input("Kategori: ").strip()
if kode == "" or nama == "":
print("Kode dan nama wajib diisi.")
return
for item in data:
if item["kode"] == kode:
print("Kode sudah digunakan.")
return
record_baru = {
"kode": kode,
"nama": nama,
"kategori": {
"nama": kategori
}
}
data.append(record_baru)
simpan_data(data)
print("Data berhasil ditambahkan.")
Contoh Fungsi Pencarian
def cari_data(data):
kata_kunci = input(
"Masukkan kode atau nama: "
).lower()
ditemukan = False
for item in data:
if (
kata_kunci in item["kode"].lower()
or kata_kunci in item["nama"].lower()
):
print(item)
ditemukan = True
if not ditemukan:
print("Data tidak ditemukan.")
Contoh Fungsi Laporan
def tampilkan_laporan(data):
if not data:
print("Belum ada data.")
return
jumlah_data = len(data)
daftar_kategori = {}
for item in data:
kategori = item["kategori"]["nama"]
if kategori not in daftar_kategori:
daftar_kategori[kategori] = 0
daftar_kategori[kategori] += 1
print("Jumlah data:", jumlah_data)
for kategori, jumlah in daftar_kategori.items():
print(
kategori,
":",
jumlah,
"data"
)
Validasi dan Penanganan Error
def input_angka(pesan):
while True:
try:
nilai = int(input(pesan))
if nilai < 0:
print("Nilai tidak boleh negatif.")
continue
return nilai
except ValueError:
print("Input harus berupa angka.")
try-except.
Format Laporan UAS
Skenario Pengujian
No.
Pengujian
Hasil yang Diharapkan
1
Menambahkan data valid.
Data tersimpan ke file.
2
Menambahkan kode duplikat.
Program menolak data.
3
Mencari data yang tersedia.
Data ditampilkan.
4
Mencari data yang tidak tersedia.
Pesan data tidak ditemukan.
5
Memasukkan data numerik yang salah.
Program menampilkan pesan error.
6
Menghapus data.
Data terhapus dari file.
7
Menjalankan program tanpa file data.
Program berjalan dengan data kosong.
Rubrik Penilaian UAS
Komponen
Bobot
Kelengkapan fitur aplikasi
25%
Penerapan struktur data
15%
Pengolahan file
20%
Validasi dan penanganan error
15%
Kualitas dan kerapian kode
10%
Laporan
10%
Presentasi atau demonstrasi
5%
Ketentuan Pengumpulan
.py.
Nama_NIM_UAS_PemrogramanDasar
Checklist Sebelum Mengumpulkan
Kesimpulan
Ujian Akhir Semester
Kuis UAS Pemrograman Dasar
Petunjuk Pengerjaan
Hasil Kuis UAS
Kunci Jawaban
Ujian Akhir Semester
Project UAS Pemrograman Dasar
Deskripsi Project
Sistem Akademik
Sistem Inventaris
Sistem Perpustakaan
Kompetensi yang Harus Diterapkan
Fitur Wajib
No.
Fitur
Keterangan
1
Tambah data
Menambahkan data baru.
2
Tampilkan data
Menampilkan seluruh data.
3
Cari data
Mencari data berdasarkan kode atau ID.
4
Ubah data
Mengubah data yang tersedia.
5
Hapus data
Menghapus data berdasarkan kode atau ID.
6
Laporan
Menampilkan statistik atau rekap data.
7
Keluar
Mengakhiri program dengan aman.
Contoh Struktur Data
data = {
"kode": "BRG001",
"nama": "Keyboard",
"kategori": {
"kode": "K01",
"nama": "Perangkat Komputer"
},
"stok": {
"jumlah": 20,
"satuan": "unit"
},
"harga": {
"beli": 150000,
"jual": 200000
}
}
Template Dasar Program
import json
NAMA_FILE = "data_project_uas.json"
def baca_data():
try:
with open(
NAMA_FILE,
"r",
encoding="utf-8"
) as file:
return json.load(file)
except FileNotFoundError:
return []
except json.JSONDecodeError:
print("Format file tidak valid.")
return []
def simpan_data(data):
with open(
NAMA_FILE,
"w",
encoding="utf-8"
) as file:
json.dump(
data,
file,
indent=4,
ensure_ascii=False
)
def tampilkan_menu():
print("\n=== PROJECT UAS ===")
print("1. Tambah data")
print("2. Tampilkan data")
print("3. Cari data")
print("4. Ubah data")
print("5. Hapus data")
print("6. Laporan")
print("7. Keluar")
data = baca_data()
while True:
tampilkan_menu()
pilihan = input(
"Pilih menu: "
).strip()
if pilihan == "1":
print("Menu tambah data")
elif pilihan == "2":
print("Menu tampilkan data")
elif pilihan == "3":
print("Menu cari data")
elif pilihan == "4":
print("Menu ubah data")
elif pilihan == "5":
print("Menu hapus data")
elif pilihan == "6":
print("Menu laporan")
elif pilihan == "7":
print("Program selesai.")
break
else:
print("Pilihan tidak valid.")
Validasi Program
try-except.
Skenario Pengujian
No.
Skenario
Hasil yang Diharapkan
1
Menambahkan data valid.
Data berhasil tersimpan.
2
Memasukkan kode duplikat.
Data ditolak.
3
Mencari data yang tersedia.
Data ditampilkan.
4
Mencari data yang tidak tersedia.
Pesan data tidak ditemukan.
5
Memasukkan input angka yang salah.
Program menampilkan pesan error.
6
Mengubah data.
Perubahan tersimpan.
7
Menghapus data.
Data terhapus dari file.
8
Menjalankan program tanpa file.
Program tetap dapat dijalankan.
Format Laporan
Rubrik Penilaian
Komponen Penilaian
Bobot
Kelengkapan fitur
25%
Struktur data dan nested record
15%
Pengolahan file
20%
Validasi dan penanganan error
15%
Kualitas kode program
10%
Laporan
10%
Presentasi
5%
Ketentuan Pengumpulan
.py.
Nama_NIM_ProjectUAS
Checklist Sebelum Mengumpulkan
Kesimpulan