Pembahasan Latihan Mandiri Bab 4 "Fungsi"
Nama : Dahlia Hunawa
Nim : 411423004
Prodi / Kelas : Pendidikan Matematika/B
Mata Kuliah : Komputasi dan Pemrograman
Dosen Pengampu : Agusyarif Rezka Nuha, S.Pd. M.Pd
Pembahasan Latihan Mandiri Bab 4 "Fungsi"
1. Apa yang dimaksud dengan fungsi?
Fungsi adalah sebuah blok kode dalam pemrograman yang dirancang untuk melakukan tugas tertentu dan dapat dipanggil kapan saja dalam program. Fungsi biasanya menerima input berupa argumen dan mengembalikan output sebagai hasil dari proses yang dilakukan. Misalnya, kita bisa membuat fungsi untuk menghitung luas lingkaran, yang menerima input berupa jari-jari dan mengembalikan hasil berupa luasnya.
Fungsi memudahkan kita dalam menyusun kode karena kita bisa memecah program besar menjadi potongan-potongan kecil yang dapat digunakan ulang tanpa perlu menulis ulang kode yang sama. Dengan menggunakan fungsi, program menjadi lebih modular dan mudah dipelihara.
2. Apa yang dimaksud dengan prosedur?
Prosedur mirip dengan fungsi, yaitu sebuah blok kode yang digunakan untuk menyelesaikan tugas tertentu dalam program. Namun, perbedaannya adalah prosedur tidak harus mengembalikan nilai seperti fungsi. Prosedur digunakan lebih untuk menjalankan serangkaian instruksi atau melakukan tugas tertentu tanpa memperhatikan hasil output yang dikembalikan.
Misalnya, kita bisa membuat prosedur untuk menampilkan pesan ke layar. Prosedur ini tidak mengembalikan nilai apapun, melainkan hanya mengeksekusi instruksi yang ada di dalamnya, seperti menampilkan teks atau pesan.
3. Apa perbedaan fungsi dan prosedur?
Perbedaan utama antara fungsi dan prosedur adalah pada output yang dihasilkan. Fungsi selalu mengembalikan nilai, sedangkan prosedur tidak. Ketika kita membuat fungsi, kita mengharapkan ada nilai yang dihasilkan sebagai hasil dari operasi yang dilakukan fungsi tersebut. Sebaliknya, prosedur lebih fokus pada menjalankan serangkaian instruksi tanpa perlu memberikan hasil.
Contohnya, jika kita membuat fungsi untuk menghitung jumlah dua angka, maka fungsi tersebut akan mengembalikan hasil penjumlahan. Namun, jika kita membuat prosedur untuk mencetak sesuatu ke layar, prosedur tersebut hanya menjalankan tugasnya tanpa mengembalikan nilai apapun.
4. Apa yang dimaksud dengan iteratif, rekursif, dan apa perbedaan keduanya?
Iteratif adalah metode di mana sebuah proses diulang menggunakan struktur loop seperti for atau while sampai kondisi tertentu tercapai. Misalnya, ketika kita ingin menjumlahkan angka dari 1 hingga 10, kita bisa menggunakan loop untuk mengulang proses penjumlahan hingga angka terakhir tercapai. Pendekatan iteratif ini biasanya lebih mudah dipahami dan sering digunakan dalam banyak situasi.
Rekursif, di sisi lain, adalah metode di mana sebuah fungsi memanggil dirinya sendiri untuk menyelesaikan masalah yang lebih besar dengan membaginya menjadi submasalah yang lebih kecil. Rekursi sering digunakan pada masalah yang secara alami dapat dipecah menjadi bagian-bagian yang lebih kecil, seperti mencari faktor dari sebuah bilangan atau menghitung deret Fibonacci.
Perbedaan utama antara keduanya adalah pada cara penyelesaian masalah. Pendekatan iteratif menggunakan loop dan menghentikan eksekusi ketika kondisi tertentu tercapai, sementara rekursif mengandalkan fungsi yang memanggil dirinya sendiri hingga mencapai kondisi dasar (base case) yang menyelesaikan rekursi tersebut.
Misalnya, jika kita ingin menghitung faktorial dari sebuah angka, kita bisa menggunakan pendekatan iteratif dengan loop atau pendekatan rekursif dengan fungsi yang memanggil dirinya sendiri hingga mencapai angka 1.
5. Buat fungsi yang digunakan untuk mengecek suatu bilangan, apakah bilangan tersebut positif atau negatif!
Penjelasan:
- input(): Digunakan untuk mengambil input dari pengguna.
- float(input()): Karena input secara default adalah string, kita harus mengonversinya menjadi tipe data numerik seperti float (atau int, tergantung kebutuhan).
- Mencetak hasil: Setelah fungsi dipanggil, hasilnya disimpan di variabel hasil, lalu dicetak.
Contoh penggunaan program:
Jika dimasukkan angka 8, program akan mengeluarkan hasil:
6. Buat fungsi yang digunakan untuk mengecek suatu bilangan, apakah bilangan bulat atau bilangan ganjil!
Penjelasan:
1. Definisi Fungsi:
- Fungsi cek_bilangan(bilangan) didefinisikan menggunakan kata kunci def, dengan parameter bilangan sebagai input.
2. Pengecekan Bilangan Bulat:
- isinstance(bilangan, int) digunakan untuk mengecek apakah bilangan adalah tipe bilangan bulat (integer).
3. Pengecekan Bilangan Ganjil:
- bilangan % 2 != 0 memeriksa apakah sisa pembagian bilangan dengan 2 tidak sama dengan 0, yang berarti bilangan tersebut ganjil.
4. Mengembalikan Nilai Ganjil:
- Jika bilangan ganjil, fungsi akan mengembalikan "Bilangan ganjil" menggunakan pernyataan return.
5. Pengecekan Bilangan Genap:
- Jika bilangan tidak ganjil, maka akan diidentifikasi sebagai bilangan genap, dan mengembalikan "Bilangan bulat tetapi genap".
6. Menangani Bilangan Non-Bulat:
- Jika bilangan bukan bulat, fungsi akan mengembalikan "Bukan bilangan bulat".
7. Meminta Input Pengguna:
- Dengan float(input()), pengguna diminta memasukkan bilangan yang kemudian dicek apakah itu bilangan bulat menggunakan angka.is_integer().
8. Mengonversi ke Integer:
- Jika bilangan adalah bulat, dikonversi menjadi integer menggunakan int() sebelum diperiksa oleh fungsi cek_bilangan().
9. Mencetak Hasil:
- Hasil dari pengecekan bilangan (ganjil, genap, atau bukan bulat) ditampilkan menggunakan print().
Output:
Jika memasukkan bilangan 5:
Jika memasukkan bilangan 6:
dan jika memasukkan bilangan desimal seperti 7.5:
7. Buat fungsi yang digunakan untuk mengecek apakah suatu tahun adalah tahun kabisat atau bukan!
Sebelum membuat fungsi, mari kita pahami dulu aturan dasar tahun kabisat:
- Tahun kabisat adalah tahun yang habis dibagi 4.
- Namun, tahun yang habis dibagi 100 bukan tahun kabisat, kecuali tahun tersebut juga habis dibagi 400.
Berikut fungsi untuk mengecek tahun kabisat
Penjelasan:
1. Definisi Fungsi:
- Fungsi cek_tahun_kabisat(tahun) didefinisikan dengan parameter tahun sebagai input.
2. Pengecekan Apakah Tahun Bisa Dibagi 4:
- tahun % 4 == 0 mengecek apakah tahun tersebut habis dibagi 4. Jika ya, lanjut ke pengecekan berikutnya. Jika tidak, tahun tersebut bukan tahun kabisat.
3. Pengecekan Apakah Tahun Dibagi 100:
- tahun % 100 == 0 mengecek apakah tahun tersebut juga habis dibagi 100. Jika ya, tahun tersebut belum tentu kabisat, dan perlu dicek apakah habis dibagi 400.
4. Pengecekan Apakah Tahun Dibagi 400:
- tahun % 400 == 0 mengecek apakah tahun tersebut habis dibagi 400. Jika iya, maka tahun itu adalah tahun kabisat. Jika tidak, maka tahun itu bukan tahun kabisat.
5. Mengembalikan Nilai:
- Jika semua syarat dipenuhi, fungsi akan mengembalikan string "Tahun kabisat". Jika tidak, maka akan mengembalikan "Bukan tahun kabisat".
Output:
Misalkan tahun 2024:
Tahun 1900:
Dengan menggunakan fungsi ini, kita bisa dengan mudah mengecek apakah suatu tahun adalah tahun kabisat atau bukan. Logika yang digunakan mengikuti aturan dasar dalam penentuan tahun kabisat: habis dibagi 4, kecuali tahun yang habis dibagi 100, kecuali juga habis dibagi 400.
8. Buat sebuah program yang menerapkan proses rekursif!
Program yang akan saya buat yaitu untuk menghitung total jumlah diigit dari bilangan dengan cara rekursif.
Program Rekursif: Menghitung Jumlah Digit Bilangan
Penjelasan Program:
1. Definisi Fungsi:
- Fungsi jumlah_digit(bilangan) akan menghitung jumlah digit dari bilangan yang diberikan.
2. Basis Rekursi:
- Kondisi dasar rekursi adalah ketika bilangan < 10, artinya bilangan tersebut hanya memiliki satu digit. Dalam kasus ini, kita cukup mengembalikan nilai bilangan itu sendiri.
3. Proses Rekursi:
- Pada kondisi selain basis, kita akan memecah bilangan menjadi dua bagian: digit terakhir (bilangan % 10) dan sisa bilangan yang diproses lebih lanjut oleh rekursi (bilangan // 10).
- Secara rekursif, fungsi akan memanggil dirinya sendiri dengan bilangan yang sudah dipecah, sampai semua digit berhasil dijumlahkan.
4. Penggunaan Input:
- Bilangan diminta dari pengguna menggunakan int(input()), lalu diproses untuk menghitung jumlah digitnya.
Contoh Penggunaan:
Jika kita memasukkan bilangan 1234, hasilnya adalah:
Program ini memperlihatkan cara menggunakan rekursi untuk menghitung jumlah digit dari suatu bilangan. Dengan pendekatan rekursif, bilangan dipecah menjadi digit-digitnya sampai hanya tersisa satu digit, dan setiap digit dijumlahkan kembali untuk menghasilkan totalnya.
Latihan Soal Bab 3 Buku Python: Bahasa Pemrograman Era Digital
Nama: Dahlia Hunawa
Nim: 411423004
Prodi/Kelas: Pendidikan Matematika/B
Mata Kuliah: Komputasi dan Pemrograman
Dosen Pengampu: Agusyarif Rezka Nuha, S.Pd. M.Pd
1. Apa yang Dimaksud dengan Counted Loop dan Uncounted Loop?
Counted loop adalah jenis perulangan yang sudah ditentukan sebelumnya berapa kali akan dieksekusi. Dengan kata lain, loop ini memiliki jumlah iterasi yang jelas, biasanya menggunakan variabel counter. Sebagai contoh, jika kita tahu bahwa kita ingin menjalankan sebuah perulangan sebanyak 10 kali, maka itu adalah counted loop. Loop semacam ini sering digunakan dalam perulangan for di berbagai bahasa pemrograman.
Contohnya:
Di sisi lain, uncounted loop adalah perulangan yang tidak memiliki jumlah iterasi pasti sejak awal. Loop ini akan terus berjalan hingga suatu kondisi tertentu terpenuhi, bukan berdasarkan jumlah iterasi yang sudah ditetapkan. Biasanya, jenis perulangan ini ditemukan dalam loop while, di mana kondisi loop terus diperiksa di setiap iterasi. Perulangan akan berhenti ketika kondisinya menjadi False.
2. Apa yang Dimaksud dengan Nested Loop?
Nested loop adalah perulangan yang terdapat di dalam perulangan lain. Dengan kata lain, sebuah loop berjalan di dalam loop yang lain. Ini sering digunakan saat kita ingin menjalankan perulangan bertingkat, misalnya untuk mengakses data yang berbentuk matriks atau tabel (dua dimensi). Nested loop memungkinkan kita untuk mengulangi tindakan tertentu di setiap iterasi dari loop luar. Misalkan, jika kita ingin mencetak matriks 3x3, kita bisa menggunakan dua loop yang saling bersarang (nested):
Dalam contoh ini, loop di dalam (inner loop) akan selesai sepenuhnya sebelum loop di luar (outer loop) pindah ke iterasi berikutnya.
3. Apa yang Dimaksud dengan Controlled Jump?
Controlled jump adalah mekanisme dalam program yang memungkinkan kita untuk melompat ke bagian lain dari kode tanpa mengikuti alur eksekusi linear. Biasanya, ini dilakukan menggunakan perintah seperti break, continue, atau bahkan return di beberapa bahasa pemrograman. Controlled jump memungkinkan kita untuk mempengaruhi jalannya loop atau fungsi, sering kali digunakan untuk mempercepat proses atau menghindari kode yang tidak diperlukan lagi.
- break: Berhenti dari loop sepenuhnya, tidak peduli apakah loop itu sudah mencapai kondisi akhirnya atau belum.
- continue: Melompati iterasi saat ini dan lanjut ke iterasi berikutnya tanpa menghentikan seluruh loop.
4. Apa yang Dimaksud dengan Perulangan Jenis Iteratif?
Perulangan iteratif adalah proses mengulang eksekusi sekelompok kode beberapa kali berdasarkan kondisi tertentu. Biasanya, perulangan ini digunakan untuk mengulangi instruksi yang sama sampai kondisi yang diberikan tidak lagi terpenuhi. Ada dua jenis perulangan iteratif yang paling umum:
- For Loop: Digunakan ketika kita tahu berapa kali loop harus dijalankan.
- While Loop: Digunakan ketika jumlah perulangan tidak diketahui sebelumnya, dan akan terus berjalan sampai kondisi yang ditentukan menjadi False.
5. Program untuk membuat tabel perkalian
Algoritma ini berfungsi untuk menampilkan tabel perkalian dari 1 hingga 10, dengan angka dari 0 sampai 10 menggunakan while loop. Algoritma ini dibagi menjadi dua bagian: bagian pertama untuk angka 1 hingga 5, dan bagian kedua untuk angka 6 hingga 10.
Bagaimana Algoritma Ini Bekerja?
1) Bagian Pertama
- Pada bagian pertama, loop luar (while j <= 10) digunakan untuk mengatur angka yang akan dikalikan, yaitu dari 0 hingga 10.
- Kemudian, ada loop dalam (while i <= 5) yang digunakan untuk mengatur angka 1 sampai 5, yang akan dikalikan dengan j.
- Setiap kali iterasi, hasil perkalian ditampilkan dengan format i * j = hasil, dan disusun dalam satu baris menggunakan end="\t".
- Setelah loop dalam selesai (setiap angka dari 1 sampai 5 sudah dikalikan dengan j), program menampilkan baris baru (print()), dan nilai j bertambah 1 untuk iterasi berikutnya.
2) Bagian Kedua
- Bagian kedua bekerja dengan cara yang sama, tetapi untuk angka 6 hingga 10.
- Loop luar (while j <= 10) tetap mengatur angka dari 0 sampai 10, namun kali ini loop dalam (while i <= 10) mengatur angka 6 sampai 10.
- Setelah semua kombinasi selesai, hasilnya adalah tabel perkalian lengkap.
Output
Program ini akan menghasilkan tabel perkalian yang terstruktur dengan baik seperti ini:
6. Program untuk konversi suhu
Program ini digunakan untuk melakukan konversi suhu dari derajat Celsius ke tiga satuan suhu lainnya, yaitu: Reamur, Kelvin, dan Fahrenheit. Program akan menampilkan tabel konversi dari batas bawah hingga batas atas suhu yang ditentukan oleh pengguna.
Cara kerja Program:
1) Fungsi konversi_suhu(celsius)
Fungsi ini digunakan untuk menghitung tiga jenis konversi suhu dari Celsius, yaitu ke Reamur, Kelvin, dan Fahrenheit.
- Reamur dihitung menggunakan rumus (4/5) * celsius, karena konversi dari Celsius ke Reamur berdasarkan skala ini.
- Kelvin dihitung dengan menambahkan 273 ke suhu Celsius (celsius + 273). Ini karena titik nol Kelvin adalah -273°C, jadi kita cukup menambahkannya untuk mendapatkan skala Kelvin.
- Fahrenheit menggunakan rumus (9/5) * celsius + 32. Rumus ini sudah umum digunakan dalam konversi suhu ke Fahrenheit.
Setelah ketiga nilai tersebut dihitung, fungsi ini mengembalikannya dalam bentuk tuple (tiga nilai sekaligus) yang nantinya akan ditampilkan dalam tabel.
2) Fungsi main()Fungsi main() adalah pusat dari program ini yang mengatur proses input, perhitungan, dan output. Berikut adalah langkah-langkahnya:
- Input batas bawah dan batas atas: Pengguna diminta untuk memasukkan suhu awal (batas bawah) dan suhu akhir (batas atas). Program kemudian akan mengkonversi semua suhu dalam rentang tersebut.
- Tampilan Header Tabel: Program menampilkan judul kolom (Celsius, Reamur, Kelvin, Fahrenheit) dengan format tabel agar lebih mudah dibaca.
- Perulangan (Loop): Setelah input batas bawah dan atas diberikan, program menjalankan perulangan for untuk setiap nilai Celsius dalam rentang yang diminta (mulai dari batas bawah hingga batas atas).
Di setiap iterasi perulangan, program:
- Memanggil fungsi konversi_suhu(celsius) untuk melakukan konversi.
- Menampilkan hasil konversi dalam format tabel. Hasil ditampilkan dengan format yang rapi untuk menjaga tata letak tabel tetap terlihat konsisten.
- Fungsi ini menggunakan range(batas_bawah, batas_atas + 1) untuk memastikan semua nilai dari batas bawah hingga batas atas dihitung.
- Format f"{celsius:>5}|{reamur:>5.1f}|{kelvin:>5}|{fahrenheit:>5.1f}" memastikan bahwa hasil konversi ditampilkan dengan presisi (terutama Reamur dan Fahrenheit yang memiliki satu angka desimal).
3) Bagian if __name__ == "__main__":
Baris ini memastikan bahwa program akan dijalankan hanya jika script ini dijalankan secara langsung (bukan diimpor sebagai modul dalam program lain).
Bagian ini memanggil fungsi main() untuk memulai program, mengambil input pengguna, melakukan perhitungan konversi, dan menampilkan hasilnya dalam bentuk tabel.
Output
Program ini akann menghasilkan konversi suhu dari Celcius ke tiga jenis satuan yaitu: Reamur, Kelvin, dan Fahrenheit dalam b entuk tabel.
7. Program Pola Segitiga
Program ini menggunakan struktur loop while, dengan perulangan diatur berdasarkan nilai i dan j.
Penjelasan Program:
1. Inisialisasi variabel:
- Variabel count diinisialisasi dengan nilai 1 untuk mulai mencetak angka dari 1.
- Variabel i diinisialisasi dengan nilai 1 sebagai kontrol untuk baris pertama.
2. Loop while pertama (mengontrol baris):
- while i <= n: Loop ini akan berjalan selama i masih kurang dari atau sama dengan n, di mana n adalah jumlah baris segitiga.
- Untuk setiap iterasi i, program akan mencetak i angka di baris tersebut.
3. Loop while kedua (mengontrol kolom):
- Di dalam setiap baris, while j <= i akan berjalan sebanyak i kali. Misalnya, untuk baris ke-3 (i = 3), akan ada 3 angka yang dicetak.
- Di dalam loop ini, setiap kali nilai count dicetak, count ditambah 1 sehingga setiap angka berikutnya dalam pola akan terus meningkat.
4. Mencetak angka:
- print(count, end=" ") akan mencetak nilai count diikuti oleh spasi tanpa pindah ke baris baru (karena end=" ").
- Setelah semua angka pada baris selesai dicetak, print() di luar loop kedua digunakan untuk pindah ke baris baru.
5. Increment variabel baris:
- Setelah satu baris selesai dicetak, i ditambah 1 (i += 1) untuk pindah ke baris berikutnya.
Output untuk n=4
8. Program Pola Segitiga Huruf
Program ini akan pola segitiga huruf.
Penjelasan Program:
1. Inisialisasi variabel:
- i diinisialisasi dengan nilai 1 untuk mengontrol baris pertama.
- char diinisialisasi dengan nilai 65, yaitu kode ASCII untuk huruf 'A'.
2. Loop while pertama (mengontrol baris):
- while i <= n: Loop ini akan berjalan sebanyak n kali untuk mencetak n baris pola segitiga.
- Untuk setiap baris i, huruf yang dicetak adalah sama dan bertambah dengan setiap baris baru.
3. Loop while kedua (mengontrol kolom):
- while j <= i: Loop ini akan mencetak i huruf yang sama di setiap baris (misalnya baris pertama 1 huruf, baris kedua 2 huruf, dan seterusnya).
4. Mencetak huruf:
- print(chr(char), end=" "): chr(char) mengonversi kode ASCII ke huruf, dan end=" " memastikan bahwa setiap huruf dipisahkan oleh spasi tanpa pindah ke baris baru.
5. Pindah ke huruf berikutnya:
- Setelah mencetak semua huruf di baris tersebut, char ditambah 1 (char += 1), sehingga huruf berikutnya akan dicetak pada baris selanjutnya.
6. Increment variabel baris:
- Setelah satu baris selesai dicetak, i ditambah 1 (i += 1) untuk pindah ke baris berikutnya.
Output:
Untuk n = 5
Menghitung Volume dan Luas Permukaan Bola dengan Python
Nama: Dahlia Hunawa
Nim: 411423004
Prodi/Kelas: Pendidikan Matematika/B
Mata Kuliah: Komputasi dan Pemrograman
Dosen Pengampu: Agusyarif Rezka Nuha, S.Pd. M.Pd
Pada blog ini, kita akan membahas langkah demi langkah cara menghitung volume dan luas permukaan bola menggunakan Python.
Rumus Dasar
Sebelum masuk ke dalam kode, mari kita ingat kembali rumus matematika untuk menghitung volume dan luas permukaan bola:
- Volume bola:
- Luas permukaan bola:
Disini:
- r adalah jari-jari bola
- phi adalah konstanta yang umumnya bernilai 3,14.
Langkah-Langkah Implementasi di Python.
1. Definisikan Konstanta Phi
Pertama, kita akan menggunakan konstanta phi yang dalam program ini kita inisialisasi dengan nilai 3,14.
2. Inisialisasi dan Imput Jari-Jari
Lalu, kita perlu meminta pengguna untuk memasukkan jari-jari bola. Dalam Python, kita bisa menggunakan fungsi input() untuk menangkap nilai yang dimasukkan oleh pengguna, dan kemudian mengonversinya menjadi tipe data float agar bisa digunakan dalam perhitungan.
3. Hitung Volume Bola
Untuk menghitung volume bola, kita menggunakan rumus
Dalam Python, operator ** digunakan untuk melakukan operasi pangkat.
4. Hitung Luas Permukaan Bola
Luas permukaan bola dihitung dengan rumus .
5. Tampilkan Hasil
Terakhir, kita akan menggunakan print() untuk menampilkan hasil volume dan luas permukaan bola kepada pengguna.
Keseluruhan Kode:
Penjelasan Tambahan
- float(input()) memungkinkan kita menerima input angka desimal dari pengguna.
- r**3 dan r**2 masing-masing digunakan untuk menghitung pangkat tiga dan pangkat dua dari jari-jari.
Contoh saat menjalankan program:
Misalkan kita menjalankan program ini, dan kita memasukkan jari-jari bola sebesar 7. Maka, program akan berjalan seperti ini:
Pada contoh di atas:
- Jari-jari: 7
- Volume yang dihitung adalah 1436,03 (hasil pembulatan dari 1436.02666666).
- Luas permukaan yang dihitung adalah 615,44
Dengan mengikuti langkah-langkah di atas, kamu dapat menghitung volume dan luas permukaan bola secara efisien menggunakan Python.
Kategori
- Masih Kosong
Blogroll
- Masih Kosong