📘 Pertemuan 2 - Dasar Python untuk Data Sains
🎯 Tujuan Pembelajaran
- Memahami tipe data dasar dan struktur data dalam Python
- Menggunakan operasi aritmatika, logika, dan kontrol alur (if, for, while)
- Membuat fungsi sederhana dalam Python
- Menerapkan konsep dasar untuk analisis data sederhana
🧩 1. Pengantar Python
Python adalah bahasa pemrograman yang mudah dibaca dan fleksibel, sangat populer di dunia Data Sains.
Python mendukung paradigma pemrograman:
- Imperatif - instruksi berurutan
- Fungsional - berbasis fungsi
- Berorientasi Objek (OOP) - berbasis class dan object
📦 2. Tipe Data Dasar dalam Python
| Jenis | Contoh | Keterangan |
|---|---|---|
| Integer | 10, -5, 1000 | Bilangan bulat |
| Float | 10.5, 3.14, -2.7 | Bilangan desimal |
| String | "Halo", 'Python' | Teks atau karakter |
| Boolean | True, False | Nilai logika |
# Contoh tipe data dasar a = 10 # Integer b = 3.14 # Float c = "Data Sains" # String d = True # Boolean # Mengecek tipe data print(type(a)) # <class 'int'> print(type(b)) # <class 'float'> print(type(c)) # <class 'str'> print(type(d)) # <class 'bool'> # Konversi tipe data angka_str = "100" angka_int = int(angka_str) print(type(angka_int)) # <class 'int'>
📚 3. Struktur Data Python
a. List - Koleksi Data Terurut
# Membuat list nilai = [80, 75, 90, 85, 70] nama = ["Ali", "Budi", "Cici"] campuran = [1, "dua", 3.0, True] # Akses elemen print(nilai[0]) # 80 (indeks pertama) print(nilai[-1]) # 70 (indeks terakhir) print(nilai[1:4]) # [75, 90, 85] (slicing) # Operasi list print(len(nilai)) # 5 (jumlah elemen) print(sum(nilai)) # 400 (total nilai) print(sum(nilai)/len(nilai)) # 80.0 (rata-rata) # Menambah elemen nilai.append(95) print(nilai) # [80, 75, 90, 85, 70, 95] # Menghapus elemen nilai.remove(70) print(nilai) # [80, 75, 90, 85, 95]
b. Tuple - List yang Tidak Bisa Diubah
# Membuat tuple
koordinat = (3, 5)
data_mahasiswa = ("Budi", 20, "Informatika")
# Akses elemen
print(koordinat[0]) # 3
print(koordinat[1]) # 5
# Tuple tidak bisa diubah (immutable)
# koordinat[0] = 10 # Error!
c. Dictionary - Pasangan Kunci-Nilai
# Membuat dictionary
mahasiswa = {
"nama": "Budi",
"umur": 20,
"nilai": 88,
"jurusan": "Informatika"
}
# Akses nilai
print(mahasiswa["nama"]) # Budi
print(mahasiswa.get("umur")) # 20
# Menampilkan semua kunci dan nilai
print(mahasiswa.keys()) # dict_keys(['nama', 'umur', 'nilai', 'jurusan'])
print(mahasiswa.values()) # dict_values(['Budi', 20, 88, 'Informatika'])
# Menambah/mengubah data
mahasiswa["semester"] = 5
mahasiswa["nilai"] = 90
print(mahasiswa)
d. Set - Kumpulan Elemen Unik
# Membuat set
angka = {1, 2, 3, 3, 4, 4, 5}
print(angka) # {1, 2, 3, 4, 5} (duplikat dihapus otomatis)
# Operasi set
set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
print(set1.union(set2)) # {1, 2, 3, 4, 5, 6}
print(set1.intersection(set2)) # {3, 4}
⚙️ 4. Operator dan Logika Dasar
Operator Aritmatika
a, b = 10, 3 print(a + b) # 13 (penjumlahan) print(a - b) # 7 (pengurangan) print(a * b) # 30 (perkalian) print(a / b) # 3.333... (pembagian) print(a // b) # 3 (pembagian bulat) print(a % b) # 1 (modulus/sisa bagi) print(a ** b) # 1000 (pangkat)
Operator Perbandingan
x, y = 5, 10 print(x == y) # False (sama dengan) print(x != y) # True (tidak sama dengan) print(x < y) # True (kurang dari) print(x > y) # False (lebih dari) print(x <= y) # True (kurang dari atau sama dengan) print(x >= y) # False (lebih dari atau sama dengan)
Operator Logika
x, y = True, False print(x and y) # False (kedua harus True) print(x or y) # True (salah satu True) print(not x) # False (kebalikan)
Percabangan (if-else)
# Contoh 1: Kategori nilai
nilai = 78
if nilai >= 85:
kategori = "A (Sangat Baik)"
elif nilai >= 75:
kategori = "B (Baik)"
elif nilai >= 65:
kategori = "C (Cukup)"
else:
kategori = "D (Kurang)"
print(f"Nilai {nilai} termasuk kategori: {kategori}")
# Contoh 2: Validasi kehadiran
kehadiran = 85
if kehadiran >= 75:
print("Mahasiswa berhak mengikuti ujian")
if kehadiran == 100:
print("Bonus: +5 poin nilai akhir")
else:
print("Mahasiswa tidak berhak mengikuti ujian")
🔁 5. Perulangan (Looping)
For Loop
# Contoh 1: Iterasi angka
for i in range(1, 6):
print(f"Iterasi ke-{i}")
# Contoh 2: Iterasi list
nama_mahasiswa = ["Ali", "Budi", "Cici", "Dodi"]
for nama in nama_mahasiswa:
print(f"Halo, {nama}!")
# Contoh 3: Iterasi dengan enumerate
for index, nama in enumerate(nama_mahasiswa, start=1):
print(f"{index}. {nama}")
# Contoh 4: Iterasi dictionary
mahasiswa = {"nama": "Eka", "nilai": 85, "semester": 5}
for kunci, nilai in mahasiswa.items():
print(f"{kunci}: {nilai}")
While Loop
# Contoh 1: Hitung mundur
x = 5
while x > 0:
print(f"Nilai: {x}")
x -= 1
print("Selesai!")
# Contoh 2: Input validasi
password_benar = "data123"
percobaan = 3
while percobaan > 0:
password_input = input("Masukkan password: ")
if password_input == password_benar:
print("Login berhasil!")
break
else:
percobaan -= 1
print(f"Password salah. Sisa percobaan: {percobaan}")
🧮 6. Fungsi dalam Python
Fungsi digunakan untuk memecah program menjadi bagian kecil yang reusable.
# Fungsi sederhana
def sapa(nama):
print(f"Halo, {nama}!")
sapa("Budi")
# Fungsi dengan return value
def rata_rata(data):
"""Menghitung rata-rata dari list angka"""
return sum(data) / len(data)
nilai = [70, 80, 90, 100]
print(f"Rata-rata: {rata_rata(nilai)}")
# Fungsi dengan multiple parameters
def hitung_nilai_akhir(uts, uas, tugas):
"""Menghitung nilai akhir mahasiswa
Formula: 30% UTS + 40% UAS + 30% Tugas
"""
nilai_akhir = (uts * 0.3) + (uas * 0.4) + (tugas * 0.3)
return nilai_akhir
uts_score = 80
uas_score = 85
tugas_score = 90
final = hitung_nilai_akhir(uts_score, uas_score, tugas_score)
print(f"Nilai akhir: {final:.2f}")
# Fungsi dengan default parameter
def cetak_biodata(nama, umur, jurusan="Belum ditentukan"):
print(f"Nama: {nama}")
print(f"Umur: {umur}")
print(f"Jurusan: {jurusan}")
cetak_biodata("Ali", 20, "Informatika")
cetak_biodata("Budi", 19) # jurusan menggunakan nilai default
📊 7. Studi Kasus Mini - Analisis Nilai Mahasiswa
📝 Kasus: Sistem Penilaian Mahasiswa
Buat program untuk menganalisis nilai mahasiswa dengan fitur:
- Input data nama dan nilai
- Hitung rata-rata kelas
- Tentukan kategori setiap mahasiswa
- Tampilkan statistik kelas
# Dataset sederhana
nama = ["Ani", "Budi", "Cici", "Dodi", "Eka"]
nilai = [85, 70, 90, 65, 75]
# Fungsi untuk menghitung rata-rata
def rata_rata(data):
return sum(data) / len(data)
# Fungsi untuk menentukan kategori
def kategori_nilai(nilai):
if nilai >= 85:
return "A (Sangat Baik)"
elif nilai >= 75:
return "B (Baik)"
elif nilai >= 65:
return "C (Cukup)"
else:
return "D (Kurang)"
# Fungsi untuk menghitung statistik
def statistik_kelas(nilai):
stats = {
"rata_rata": rata_rata(nilai),
"tertinggi": max(nilai),
"terendah": min(nilai),
"lulus": sum(1 for n in nilai if n >= 70),
"tidak_lulus": sum(1 for n in nilai if n < 70)
}
return stats
# Main program
print("=" * 50)
print("SISTEM PENILAIAN MAHASISWA")
print("=" * 50)
# Tampilkan data per mahasiswa
print("
Data Mahasiswa:")
for i, (n, v) in enumerate(zip(nama, nilai), start=1):
kategori = kategori_nilai(v)
status = "LULUS" if v >= 70 else "TIDAK LULUS"
print(f"{i}. {n:10s} | Nilai: {v:3d} | {kategori:20s} | {status}")
# Tampilkan statistik
print("
" + "=" * 50)
print("STATISTIK KELAS")
print("=" * 50)
stats = statistik_kelas(nilai)
print(f"Rata-rata kelas : {stats['rata_rata']:.2f}")
print(f"Nilai tertinggi : {stats['tertinggi']}")
print(f"Nilai terendah : {stats['terendah']}")
print(f"Jumlah lulus : {stats['lulus']} mahasiswa")
print(f"Jumlah tidak lulus : {stats['tidak_lulus']} mahasiswa")
print("=" * 50)
# Analisis tambahan
if stats['rata_rata'] >= 75:
print("
✓ Performa kelas: BAIK")
else:
print("
✗ Performa kelas: PERLU PENINGKATAN")
💡 Output yang Diharapkan:
================================================== SISTEM PENILAIAN MAHASISWA ================================================== Data Mahasiswa: 1. Ani | Nilai: 85 | A (Sangat Baik) | LULUS 2. Budi | Nilai: 70 | B (Baik) | LULUS 3. Cici | Nilai: 90 | A (Sangat Baik) | LULUS 4. Dodi | Nilai: 65 | C (Cukup) | TIDAK LULUS 5. Eka | Nilai: 75 | B (Baik) | LULUS ================================================== STATISTIK KELAS ================================================== Rata-rata kelas : 77.00 Nilai tertinggi : 90 Nilai terendah : 65 Jumlah lulus : 4 mahasiswa Jumlah tidak lulus : 1 mahasiswa ================================================== ✓ Performa kelas: BAIK
🧠 8. Tugas Latihan Mandiri
Latihan 1: Kalkulator Nilai
- Buat list berisi 10 nilai mahasiswa
- Hitung rata-rata, nilai tertinggi, dan nilai terendah
- Buat fungsi untuk menentukan kategori nilai (A/B/C/D)
- Tampilkan hasilnya menggunakan perulangan
Latihan 2: Analisis Data Penjualan
- Buat dictionary untuk menyimpan data penjualan produk (nama produk: jumlah terjual)
- Hitung total penjualan semua produk
- Tampilkan produk terlaris
- Buat fungsi untuk menghitung persentase penjualan setiap produk
Latihan 3: Validasi Data
- Buat program yang meminta input nilai mahasiswa (0-100)
- Validasi input menggunakan while loop
- Jika input tidak valid, minta input ulang
- Tampilkan kategori nilai setelah input valid
✍️ Kesimpulan
Pada pertemuan ini, mahasiswa telah mempelajari:
- ✅ Tipe data dan struktur data dasar Python (list, tuple, dict, set)
- ✅ Operator aritmatika, perbandingan, dan logika
- ✅ Percabangan (if-elif-else) dan perulangan (for, while)
- ✅ Cara membuat dan menggunakan fungsi
- ✅ Penerapan konsep dasar untuk analisis data sederhana
Pertemuan selanjutnya: Kita akan mempelajari Pandas untuk manipulasi data tabular yang lebih kompleks.