Python adalah bahasa pemrograman yang powerful dan fleksibel. Di tingkat menengah, kita akan mempelajari konsep-konsep yang lebih advanced untuk meningkatkan skill pemrogramanmu. Berikut penjelasan detail untuk setiap materi:
1. Pemahaman Mendalam tentang List Comprehension dan Generator
List Comprehension
List comprehension adalah cara singkat dan elegan untuk membuat list di Python. Ini menggantikan penggunaan loop for
yang panjang dengan sintaks yang lebih ringkas.
Contoh:
# Membuat list kuadrat dari 1 sampai 5 numbers = [1, 2, 3, 4, 5] squared = [x**2 for x in numbers] print(squared) # Output: [1, 4, 9, 16, 25]
Penjelasan:
-
x**2
adalah ekspresi yang dieksekusi untuk setiap elemenx
dalamnumbers
. -
for x in numbers
adalah loop yang mengiterasi setiap elemen dalamnumbers
.
Keuntungan:
-
Kode lebih ringkas dan mudah dibaca.
-
Performa lebih cepat dibanding menggunakan loop
for
biasa.
Generator
Generator mirip dengan list comprehension, tetapi menggunakan tanda kurung ()
dan bersifat lazy evaluation (hanya menghasilkan nilai saat dibutuhkan). Ini sangat berguna untuk menghemat memori saat bekerja dengan data besar.
Contoh:
# Membuat generator untuk kuadrat dari 1 sampai 5 squared_gen = (x**2 for x in numbers) for num in squared_gen: print(num) # Output: 1, 4, 9, 16, 25
Penjelasan:
-
Generator tidak menyimpan semua nilai di memori sekaligus, melainkan menghasilkan nilai satu per satu saat diiterasi.
-
Cocok untuk data yang besar atau infinite sequences.
2. Manipulasi String: Metode dan Fungsi String yang Berguna
String adalah tipe data yang sangat sering digunakan. Python menyediakan banyak metode bawaan untuk memanipulasi string.
Contoh Metode String:
text = " Hello, World! " # Menghapus spasi di awal dan akhir print(text.strip()) # Output: "Hello, World!" # Mengubah ke huruf kecil print(text.lower()) # Output: " hello, world! " # Mengganti substring print(text.replace("H", "J")) # Output: " Jello, World! " # Memisahkan string berdasarkan delimiter print(text.split(",")) # Output: [" Hello", " World! "]
Fungsi String yang Berguna:
-
len()
: Menghitung panjang string. -
str()
: Mengubah objek lain menjadi string. -
join()
: Menggabungkan list string menjadi satu string.
3. Bekerja dengan Library Standar Python
Python memiliki banyak library standar yang siap digunakan. Berikut beberapa yang sering dipakai:
os
Library os
digunakan untuk berinteraksi dengan sistem operasi.
import os print(os.getcwd()) # Menampilkan direktori kerja saat ini
sys
Library sys
memberikan akses ke variabel dan fungsi yang berhubungan dengan interpreter Python.
import sys print(sys.version) # Menampilkan versi Python
datetime
Library datetime
digunakan untuk mengelola tanggal dan waktu.
from datetime import datetime now = datetime.now() print(now.strftime("%Y-%m-%d %H:%M:%S")) # Format tanggal dan waktu
math
Library math
menyediakan fungsi matematika tingkat lanjut.
import math print(math.sqrt(16)) # Output: 4.0
4. Pemrograman Berorientasi Objek (OOP) di Python
OOP adalah paradigma pemrograman yang menggunakan objek dan class untuk mengorganisasi kode.
Class dan Object
Class adalah blueprint untuk membuat objek. Objek adalah instance dari class.
class Dog: def __init__(self, name): self.name = name def bark(self): return "Woof!" my_dog = Dog("Buddy") print(my_dog.bark()) # Output: Woof!
Inheritance
Inheritance memungkinkan class baru (child class) mewarisi atribut dan metode dari class lain (parent class).
class Bulldog(Dog): def run(self): return "Running slowly!" my_bulldog = Bulldog("Max") print(my_bulldog.bark()) # Output: Woof! print(my_bulldog.run()) # Output: Running slowly!
Polymorphism
Polymorphism memungkinkan objek berbeda merespon metode yang sama dengan cara yang berbeda.
def animal_sound(animal): print(animal.bark()) animal_sound(my_dog) # Output: Woof!
5. Pengenalan ke Regular Expression (Regex) di Python
Regex digunakan untuk pencocokan pola dalam teks. Library re
di Python menyediakan fungsi untuk bekerja dengan regex.
Contoh:
import re text = "Python 3.10 was released on October 4, 2021" pattern = r"\d+" # Mencari semua digit matches = re.findall(pattern, text) print(matches) # Output: ['3', '10', '4', '2021']
6. Bekerja dengan JSON
JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan.
Parsing JSON
Mengubah string JSON menjadi objek Python.
import json data = '{"name": "John", "age": 30}' parsed = json.loads(data) print(parsed["name"]) # Output: John
Serialisasi ke JSON
Mengubah objek Python menjadi string JSON.
data = {"name": "John", "age": 30} json_data = json.dumps(data) print(json_data) # Output: {"name": "John", "age": 30}
7. Membuat dan Mengelola Virtual Environment
Virtual environment memungkinkan kamu mengisolasi dependencies proyek.
Cara Membuat:
python -m venv myenv
Cara Mengaktifkan:
-
Windows:
myenv\Scripts\activate
-
macOS/Linux:
source myenv/bin/activate
Cara Nonaktifkan:
deactivate
8. Pengenalan ke Unit Testing
Unit testing memastikan kode berfungsi dengan benar.
unittest
import unittest def add(a, b): return a + b class TestMath(unittest.TestCase): def test_add(self): self.assertEqual(add(2, 3), 5) unittest.main()
pytest
Install pytest:
pip install pytest
Buat file test_sample.py
:
def test_add(): assert add(2, 3) == 5
Jalankan:
pytest test_sample.py
9. Manajemen Package dengan Pip
-
Install package:
pip install requests
-
Update package:
pip install --upgrade requests
-
Hapus package:
pip uninstall requests
10. Menggunakan Lambda, Map, Filter, dan Reduce
Lambda
Fungsi anonim yang bisa didefinisikan dalam satu baris.
square = lambda x: x**2 print(square(5)) # Output: 25
Map
Menerapkan fungsi ke setiap item dalam iterable.
numbers = [1, 2, 3] squared = list(map(lambda x: x**2, numbers)) print(squared) # Output: [1, 4, 9]
Filter
Menyaring item dalam iterable berdasarkan kondisi.
evens = list(filter(lambda x: x % 2 == 0, numbers)) print(evens) # Output: [2]
Reduce
Mengurangi iterable menjadi satu nilai.
from functools import reduce total = reduce(lambda x, y: x + y, numbers) print(total) # Output: 6