{ "cells": [ { "cell_type": "markdown", "id": "d3a68c49-aba5-4100-ba62-6ab503b61c06", "metadata": {}, "source": [ "# Modul-modul Python: Memperluas Fungsionalitas dengan Modularitas\n", "Modul-modul Python adalah kumpulan kode yang mengandung definisi variabel, fungsi, dan kelas yang dapat digunakan dalam program Python. Modul memungkinkan pemisahan kode ke dalam file yang berbeda untuk meningkatkan keterbacaan, organisasi, dan modularitas program. Contoh Penggunaan Modul:" ] }, { "cell_type": "code", "execution_count": null, "id": "0e80df85-bece-41a7-9d99-5fdfe25f1d90", "metadata": {}, "outputs": [], "source": [ "# Modul math menyediakan fungsi matematika seperti akar kuadrat, logaritma, dan trigonometri.\n", "\n", "import math\n", "print(math.sqrt(25))" ] }, { "cell_type": "code", "execution_count": null, "id": "2657f8ce-ee48-4a89-890b-85d2e2d67069", "metadata": {}, "outputs": [], "source": [ "# Modul random digunakan untuk menghasilkan angka acak\n", "\n", "import random\n", "random_number = random.randint(1, 10) # Menghasilkan angka acak antara 1 dan 10" ] }, { "cell_type": "code", "execution_count": null, "id": "253537d8-59f7-40f6-8f0f-2e9c6350ea02", "metadata": {}, "outputs": [], "source": [ "# Modul os memberikan fungsionalitas untuk berinteraksi dengan sistem operasi, seperti manipulasi file dan direktori.\n", "\n", "import os\n", "current_directory = os.getcwd() # Mendapatkan direktori kerja saat ini" ] }, { "cell_type": "markdown", "id": "eb19604d-e8a3-46a1-a37d-49ec4e62edd2", "metadata": {}, "source": [ "### 1. Manipulasi Tanggal/Waktu: Mengelola Informasi Waktu dengan Mudah\n", "Python memiliki modul datetime yang memungkinkan manipulasi, format, dan pengolahan tanggal dan waktu.\n", "Contoh Penggunaan Modul datetime:" ] }, { "cell_type": "code", "execution_count": 1, "id": "6293a3c9-ac33-4f99-baa8-d2e06e180519", "metadata": {}, "outputs": [], "source": [ "# Mendapatkan waktu saat ini\n", "from datetime import datetime\n", "current_time = datetime.now()" ] }, { "cell_type": "code", "execution_count": 2, "id": "96451fb0-63f5-4cf0-89d2-aa314bc21858", "metadata": {}, "outputs": [], "source": [ "# Menampilkan tanggal dalam format kustom\n", "from datetime import datetime\n", "current_time = datetime.now()\n", "formatted_time = current_time.strftime(\"%Y-%m-%d %H:%M:%S\")" ] }, { "cell_type": "code", "execution_count": null, "id": "3792f9b6-5dce-4ed1-b773-c17093921495", "metadata": {}, "outputs": [], "source": [ "# Menghitung selisih waktu\n", "from datetime import datetime, timedelta\n", "current_time = datetime.now()\n", "one_hour_later = current_time + timedelta(hours=1)\n" ] }, { "cell_type": "markdown", "id": "a5555421-3676-4f49-a44c-331f7871c38c", "metadata": {}, "source": [ "### 2. Interaksi dengan Sistem Operasi: Integrasi dengan Lingkungan\n", "Modul os menyediakan fungsionalitas untuk berinteraksi dengan sistem operasi tempat program dijalankan. Contoh Penggunaan Modul os" ] }, { "cell_type": "code", "execution_count": null, "id": "5d8a4cbd-f624-4311-af15-63f8612330c6", "metadata": { "scrolled": true }, "outputs": [], "source": [ "# Mengubah direktori kerja\n", "import os\n", "os.chdir(\"/path/to/directory\") # Mengubah direktori kerja" ] }, { "cell_type": "code", "execution_count": null, "id": "c8998520-7f3d-4e5d-8398-fa23a2c21869", "metadata": {}, "outputs": [], "source": [ "# Membuat direktori baru\n", "import os\n", "os.mkdir(\"new_directory\") # Membuat direktori baru" ] }, { "cell_type": "markdown", "id": "7db50dcb-040f-424d-8125-28ed2f86392a", "metadata": {}, "source": [ "### 3. Modul sys: Akses Parameter Baris Perintah\n", "Modul sys memungkinkan akses ke argumen baris perintah yang diberikan saat menjalankan program. Contoh Penggunaan Modul sys:" ] }, { "cell_type": "code", "execution_count": 4, "id": "1a8009c6-643b-41cd-9e8e-d2c9736866f0", "metadata": {}, "outputs": [], "source": [ "# Mengakses argumen baris perintah\n", "import sys\n", "arguments = sys.argv" ] }, { "cell_type": "code", "execution_count": 5, "id": "0a4409a1-fd72-4798-87c1-63cfefb7fd3d", "metadata": {}, "outputs": [], "source": [ "# Mengakses nama skrip yang sedang berjalan\n", "import sys\n", "script_name = sys.argv[0]" ] }, { "cell_type": "code", "execution_count": null, "id": "a455ca73-76c8-4e1b-af7f-6c4a6868133e", "metadata": {}, "outputs": [], "source": [ "# Menambahkan lokasi direktori ke path\n", "import sys\n", "sys.path.append(\"/path/to/directory\")" ] }, { "cell_type": "markdown", "id": "18ee861c-502d-4286-9140-7d3a61434e4e", "metadata": {}, "source": [ "## 4. Modul Eksternal dengan pip: Memperluas Fungsionalitas dengan Paket Pihak Ketiga\n", "Pip adalah alat manajemen paket untuk mengunduh, menginstal, dan mengelola paket pihak ketiga yang ditulis oleh pengembang lain. Contoh Penggunaan pip untuk Instalasi Modul Eksternal:" ] }, { "cell_type": "code", "execution_count": null, "id": "41b7ef0e-1bec-468e-ade2-6dae0eb1b936", "metadata": {}, "outputs": [], "source": [ "# Menginstal paket\n", "pip install nama_paket" ] }, { "cell_type": "code", "execution_count": null, "id": "2bee67b8-6a22-4504-a128-e19183e89595", "metadata": {}, "outputs": [], "source": [ "# Menginstal versi spesifik\n", "pip install nama_paket==versi" ] }, { "cell_type": "code", "execution_count": null, "id": "c065002d-eda2-412b-856b-5bdca18d8921", "metadata": {}, "outputs": [], "source": [ "# Menginstal dari file requirements\n", "pip install -r requirements.txt" ] }, { "cell_type": "code", "execution_count": null, "id": "e8e8b11b-5ac3-4d23-82b7-d3124f34a5ae", "metadata": { "scrolled": true }, "outputs": [], "source": [ "import tkinter as tk\n", "from pygame import mixer\n", "\n", "class MusicPlayerApp:\n", " def __init__(self, root):\n", " self.root = root\n", " self.root.title(\"Aplikasi Pemutar Musik\")\n", " \n", " self.mixer = mixer\n", " self.mixer.init()\n", " \n", " self.play_button = tk.Button(self.root, text=\"Play\", command=self.play_music)\n", " self.play_button.pack(pady=20)\n", " \n", " self.stop_button = tk.Button(self.root, text=\"Stop\", command=self.stop_music)\n", " self.stop_button.pack(pady=10)\n", " \n", " def play_music(self):\n", " self.mixer.music.load(\"music.mp3\")\n", " self.mixer.music.play()\n", "\n", " def stop_music(self):\n", " self.mixer.music.stop()\n", "\n", "if __name__ == \"__main__\":\n", " root = tk.Tk()\n", " app = MusicPlayerApp(root)\n", " root.mainloop()" ] }, { "cell_type": "markdown", "id": "7a6e84c3-9711-42ee-835f-5c8d54e42281", "metadata": {}, "source": [ "## 5. Modul GUI: Antarmuka Grafis Pengguna\n", "Python memiliki berbagai modul GUI yang memungkinkan pembuatan aplikasi antarmuka grafis yang interaktif.erikut adalah contoh penerapan antarmuka grafis pengguna (GUI) menggunakan modul tkinter:\n", "1. Buat folder bernama \"GUI_Example\".\n", "2. Di dalam folder tersebut, buat file \"main.py\" untuk kode utama.\n", "3. Buat file \"gui_module.py\" untuk kode yang berisi definisi antarmuka GUI." ] }, { "cell_type": "code", "execution_count": null, "id": "df571cbe-44ab-4b8d-8c36-ddcb1d8a75c4", "metadata": {}, "outputs": [], "source": [ "# main.py\n", "import tkinter as tk\n", "from gui_module import GUIApp\n", "\n", "if __name__ == \"__main__\":\n", " root = tk.Tk()\n", " app = GUIApp(root)\n", " root.mainloop()" ] }, { "cell_type": "code", "execution_count": null, "id": "efdfb778-b6e4-42ee-bc30-a470064d4df4", "metadata": {}, "outputs": [], "source": [ "# gui_module.py\n", "\n", "import tkinter as tk\n", "\n", "class GUIApp:\n", " def __init__(self, root):\n", " self.root = root\n", " self.root.title(\"Contoh Aplikasi GUI\")\n", "\n", " self.label = tk.Label(self.root, text=\"Selamat Datang di Aplikasi GUI!\", font=(\"Helvetica\", 16))\n", " self.label.pack(pady=20)\n", "\n", " self.button = tk.Button(self.root, text=\"Klik Saya\", command=self.display_message)\n", " self.button.pack()\n", "\n", " def display_message(self):\n", " message = \"Terima kasih telah mengklik tombol!\"\n", " message_label = tk.Label(self.root, text=message)\n", " message_label.pack(pady=10)\n" ] }, { "cell_type": "markdown", "id": "d1975197-53ba-4c28-9dd4-a78ba3c8c4f3", "metadata": {}, "source": [ "Dalam contoh di atas, \"main.py\" mengimpor modul tkinter dan \"gui_module.py\" yang berisi kelas GUIApp. Ketika \"main.py\" dieksekusi, ia membuat jendela utama dengan antarmuka GUI yang telah didefinisikan di kelas GUIApp. Ketika tombol \"Klik Saya\" ditekan, pesan terima kasih akan ditampilkan di bawahnya." ] }, { "cell_type": "markdown", "id": "96ca4589-0d4d-404a-80b3-bd92c57df89e", "metadata": {}, "source": [ "## Soal Latihan\n", "\n", "### Soal 1: Kalkulator Sederhana\n", "Buatlah aplikasi kalkulator sederhana menggunakan modul tkinter. Aplikasi harus memiliki tombol-tombol angka, tombol operasi matematika (+, -, *, /), dan tombol hasil.\n", "\n", "### Soal 2: Aplikasi Catatan\n", "Buatlah aplikasi catatan sederhana yang memungkinkan pengguna menambah, mengedit, dan menghapus catatan. Gunakan elemen GUI seperti daftar, tombol tambah, tombol simpan, dan tombol hapus.\n", "\n", "### Soal 3: Aplikasi Pemutar Musik\n", "Buatlah aplikasi pemutar musik yang memungkinkan pengguna memilih dan memutar file musik. Aplikasi harus memiliki tombol play, pause, stop, serta daftar lagu yang dapat dipilih.\n", "\n", "### Soal 4: Aplikasi Konversi Satuan\n", "Buatlah aplikasi konversi satuan yang memungkinkan pengguna mengkonversi antara beberapa jenis satuan, seperti konversi suhu (Celsius ke Fahrenheit), konversi panjang (meter ke kaki), atau konversi berat (kilogram ke pound).\n", "\n", "### Soal 5: Aplikasi Anotasi Gambar\n", "Buatlah aplikasi yang memungkinkan pengguna membuka gambar, menandai atau memberi anotasi pada gambar dengan bentuk atau teks, serta menyimpan gambar dengan anotasi tersebut.\n", "\n", "### Soal 6: Aplikasi To-Do List\n", "Buatlah aplikasi to-do list yang memungkinkan pengguna menambahkan tugas, menandai tugas sebagai selesai, dan menghapus tugas dari daftar. Aplikasi harus menampilkan daftar tugas yang belum selesai.\n", "\n", "### Soal 7: Aplikasi Kuis Sederhana\n", "Buatlah aplikasi kuis sederhana yang menampilkan pertanyaan-pertanyaan dan beberapa pilihan jawaban. Pengguna harus dapat memilih jawaban yang benar dan melihat hasil kuis setelah menjawab semua pertanyaan.\n", "\n", "### Soal 8: Aplikasi Pencatat Pengeluaran\n", "Buatlah aplikasi yang memungkinkan pengguna mencatat pengeluaran mereka setiap hari. Aplikasi harus memiliki input untuk jumlah pengeluaran, kategori pengeluaran, dan tanggal.\n", "\n", "### Soal 9: Aplikasi Perpustakaan\n", "Buatlah aplikasi perpustakaan sederhana yang memungkinkan pengguna mencari, meminjam, dan mengembalikan buku. Aplikasi harus menampilkan daftar buku, status buku (tersedia/dipinjam), dan informasi peminjam.\n", "\n", "### Soal 10: Aplikasi Pencari Restoran\n", "Buatlah aplikasi pencari restoran yang memungkinkan pengguna mencari restoran berdasarkan lokasi atau jenis masakan. Aplikasi harus menampilkan daftar restoran, informasi tentang restoran, dan ulasan pengguna." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.4" } }, "nbformat": 4, "nbformat_minor": 5 }