Program Phyton - Soal BAB 4
Nama : Karsum H. Talib
NIM : 411423033
Prodi / Kelas : Pendidikan Matematika / B
Mata Kuliah : Komputasi dan Pemograman
Dosen Pengampu : Agusyarif Rezka Nuha, S.Pd, M.Si
1. Apa yang Dimaksud dengan Fungsi?
Fungsi adalah blok kode dalam pemrograman yang dirancang untuk melakukan tugas tertentu dan mengembalikan nilai setelah selesai dieksekusi. Fungsi biasanya menerima input (disebut parameter) dan mengembalikan output yang merupakan hasil dari operasi di dalam fungsi tersebut.
2. Apa yang Dimaksud dengan Prosedur?
Prosedur adalah blok kode yang mirip dengan fungsi, tetapi tidak mengembalikan nilai. Prosedur digunakan untuk menjalankan serangkaian instruksi tanpa harus mengembalikan hasil tertentu. Prosedur dalam banyak bahasa pemrograman dikenal sebagai fungsi yang tidak mengembalikan nilai.
3. Perbedaan Fungsi dan Prosedur
- Fungsi: Mengembalikan nilai setelah selesai dijalankan. Biasanya digunakan jika kita membutuhkan hasil dari operasi tersebut. Contoh: Fungsi yang menghitung luas persegi panjang dan mengembalikan hasilnya.
- Prosedur: Tidak mengembalikan nilai setelah selesai dijalankan. Biasanya digunakan untuk menjalankan instruksi tertentu tanpa perlu hasil balik. Contoh: Prosedur yang mencetak pesan atau menampilkan informasi.
Secara umum, perbedaan utama adalah apakah suatu blok kode mengembalikan nilai atau tidak.
4. Jelaskan apa yanag dimakasud dengan iteratif, rekursif, dan apa perbedaan kedua
- Iteratif: Metode yang menggunakan perulangan (loop) untuk mengulang blok kode hingga kondisi tertentu terpenuhi. Contoh perulangan adalah for atau while dalam Python.
- Contoh iterasi untuk menghtung faktorial dari sebuah bilangan
- Rekursif: Metode pemrograman di mana fungsi memanggil dirinya sendiri untuk menyelesaikan tugas hingga mencapai kondisi dasar (base case). Rekursi sering digunakan untuk masalah yang dapat dipecah menjadi sub-masalah yang lebih kecil.
- Contoh rekursi untuk menghitung faktorial:
Perbedaan antara Iteratif dan Rekursif :
- Iteratif menggunakan struktur perulangan (loop) seperti for atau while, sedangkan rekursif menggunakan fungsi yang memanggil dirinya sendiri untuk menyelesaikan masalah.
- Dalam beberapa kasus, rekursi bisa membuat kode lebih ringkas dan mudah dibaca, namun bisa menyebabkan masalah stack overflow jika kedalaman rekursinya terlalu besar. Iterasi, di sisi lain, lebih efisien dalam hal penggunaan memori karena tidak menggunakan stack rekursif.
5. Buat fungsi yang digunakan untuk mengecek suatu bilangan,apakah bialngan tersebut positif atau negatif
Cara Kerja Program :
1. Definisi Fungsi cek_bilangan
- Fungsi : Program dimulai dengan mendefinisikan sebuah fungsi bernama cek_bilangan yang menerima satu parameter, yaitu bilangan.
- Pengecekan:
- Jika bilangan lebih besar dari 0, fungsi mengembalikan string "Bilangan Positif".
- Jika bilangan kurang dari 0, fungsi mengembalikan string "Bilangan Negatif".
- Jika bilangan sama dengan 0, fungsi mengembalikan string "Bilangan Nol".
- Fungsi ini bertujuanuntuk mengkalsifikasikan bilangan yang dimasukkan kedalam salah satu dari tiga kategor t tersebut.
2. Input
- Program meminta pengguna untuk memasukkan sebuah bilangan melalui fungsi input().
- Input yang diterima berupa string, sehingga harus diubah menjadi integer menggunakan int().
- Nilai yang dimasukkan oleh pengguna disimpan dalam variabel bil.
3. Memanggil fungsi dan menyimpan hasil.
- Program memanggil fungsi cek_bilangan, dengan argumen bil yang merupakan bilangan yang dimasukkan oleh pengguna.
- Hasil dari fungsi (string yang menunjukkan status bilangan) disimpan dalam variabel hasil.
4. Menampilkan hasil
- Program menampilkan hasil kepada pengguna menggunakan print().
- Menggunakan f-string (f"...") untuk menyisipkan nilai variabel bil dan hasil dalam string yang dicetak.
- Output mencakup informasi mengenai bilangan yang dimasukkan oleh pengguna dan statusnya (positif, negatif, atau nol).
contoh jalannya program :
Misalkan memasukan 5:
- Fungsi cek_bilangan(5) dipanggil.Karena 5 lebih besar dari 0, fungsi mengembalikan "Bilangan Positif".Program kemudian mencetak: "Anda memasukkan: 5. Hasil pengecekan: Bilangan Positif."
Misalkan memasukkan -10:
- Fungsi cek_bilangan(-10) dipanggil.Fungsi mengembalikan "Bilangan Negatif".Program mencetak: "Anda memasukkan: -10. Hasil pengecekan: Bilangan Negatif."
Misalkan memasukkan 0:
-
Fungsi cek_bilangan(0) dipanggil.Fungsi mengembalikan "Bilangan Nol".Program mencetak: "Anda memasukkan: 0. Hasil pengecekan: Bilangan Nol."
6. Buatkan fungsi yang digunakan untuk mengecek suatu bilangan,apakah bilangan bulat atau bilangan ganjil!
Cara Kerja Program
1. Fungsi cek_bilangan(n):
- Fungsi ini bertujuan untuk memeriksa apakah suatu bilangan adalah bilangan bulat dan bilangan ganjil.
- Parameter n: Ini adalah bilangan yang akan diperiksa.
2. Pemeriksaan bilangan bulat
- if isinstance(n, int): Memeriksa apakah n adalah bilangan bulat. Jika ya, program akan mencetak bahwa n adalah bilangan bulat.
- print(f"{n} adalah bilangan bulat."): Menampilkan pesan bahwa n adalah bilangan bulat.
3. Pemeriksaan bilangan ganjil
- if n % 2 != 0: Memeriksa apakah n adalah bilangan ganjil. Jika n dibagi 2 tidak menghasilkan sisa 0, maka itu adalah bilangan ganjil.
- print(f"{n} adalah bilangan ganjil."): Menampilkan pesan bahwa n adalah bilangan ganjil.
- Jika tidak, program akan mencetak bahwa n adalah bilangan bulat tetapi tidak mengonfirmasi ganjil.
- else: print(f"{n} bukan bilangan bulat."): Jika n tidak adalah bilangan bulat, maka mencetak pesan bahwa n bukan bilangan bulat.
4. Bagian try-except:
- try:: Mencoba menjalankan kode yang ada di dalam blok ini.
- angka_input = int(input("Masukkan sebuah bilangan: ")): Menerima input dari pengguna dan mengonversinya ke integer. Jika pengguna memasukkan nilai yang tidak bisa diubah menjadi integer, program akan memasuki blok except.
- except ValueError:: Menangkap kesalahan jika terjadi konversi yang tidak valid, dan menampilkan pesan bahwa input tidak valid.
Contoh penggunaan program:
Jika memasukkan 7.outputnya akan:
jika memasukkan 8, outputnya akan :
7. Buat fungsi yang digunakan untuk mengecek apakah suatu tahun adalah tahun kabisat atau bukan.
Cara kerja program :
1. Definisi Fungsi
Program dimulai dengan mendefinisikan fungsi bernama cek_tahun_kabisat yang menerima satu parameter, yaitu tahun
2. Mencetak Informasi tahun
Program mencetak tahun yang dimasukkan oleh pengguna untuk memberi konfirmasi.
3. Pengecekan tahun kasibat
- Tahun Kasibat adalah tahun yang habis dibagi 4: tahun %4 = =0
- Tidak habis dibagi 100: tahun % 100 != 0 (kecuali tahun tersebut juga habis dibagi 400)
- Atau habis dibagi 400: tahun % 400 == 0
- Hasil dari ekspresi ini disimpan dalam variabel is_kabisat.
4. Menampilkan hasil pengecekan
Program memeriksa nilai is_kabisat. Jika True, program mencetak bahwa tahun tersebut adalah tahun kabisat; jika False, program mencetak bahwa tahun tersebut bukan tahun kabisat.
5. Penjelasan logika
- Program kemudian memberikan penjelasan lebih lanjut tentang logika di balik keputusan tersebut
- Penjelasan ini memberikan rincian tentang mengapa tahun tertentu dianggap kabisat atau tidak berdasarkan sifat pembagiannya
6. Contoh penggunaan
- Pengguna diminta untuk memasukkan tahun
- Setelah itu, fungsi cek_tahun_kabisat(tahun_input) dipanggil untuk memeriksa tahun yang dimasukkan.
Menampilkan hasil :
Misalnya memasukkan tahun 2000
Misalnya memasukkan tahun 2019
misalnya memasukkan 2040
8. Buatkan sebuah program yang menerapkan proses rekursif
Cara Kerja program :
1. Definisi Fungsi
Fungsi jumlah_digit(n) didefinisikan untuk menghitung jumlah digit dari bilangan n. Di dalamnya, kita menggunakan dua jenis kontrol alur: kondisi dasar (base case) dan rekursi.
2. Kondisi dasar
Baris if n < 10: memeriksa apakah n kurang dari 10. Jika ya, maka fungsi langsung mengembalikan n. Ini berarti bahwa jika n hanya memiliki satu digit, maka itu adalah hasil akhir. Misalnya, jika n adalah 7, maka hasilnya adalah 7.
3. Rekursi
- Jika n memiliki lebih dari satu digit (yaitu n >= 10), maka kita akan menjumlahkan digit terakhir dari n dengan hasil dari pemanggilan fungsi jumlah_digit dengan argumen yang lebih kecil (n // 10).
- n % 10 memberikan digit terakhir dari n, sementara n // 10 menghilangkan digit terakhir dari n. Contoh jika n = 98765.
- jumlah_digit(98765):98765 % 10 = 5 (digit terakhir)Memanggil fungsi lagi: jumlah_digit(9876)
- jumlah_digit(9876):9876 % 10 = 6 (digit terakhir)Memanggil fungsi lagi: jumlah_digit(987)
Proses ini berulang sampai mencapai kondisi dasar di mana n hanya tersisa sebagai satu digit.
4. Contoh penggunaan
- Di bagian bawah program, kita meminta pengguna untuk memasukkan angka. Input ini kemudian dikonversi menjadi bilangan bulat dan disimpan dalam variabel angka.
- Fungsi jumlah_digit(angka) dipanggil untuk menghitung jumlah digit dari angka yang dimasukkan. Hasilnya disimpan dalam variabel hasil.
- Akhirnya, program mencetak hasil jumlah digit tersebut.
Contoh proses :
misalkan memasukkan n = 98765.
1. Pemanggilan pertama
- Jumlah_digit(98765):
- 98765 % 10 = 5 (digit terakhir)
- Memanggil fungsi lagi: jumlah_digit(9876)
2. Pemanggilan kedua
- Jumlah_digit(9876):
- 9876 % 10 = 6 (digit terakhir)
- Memanggil fungsi lagi: jumlah_digit(987)
3. Pemanggilan ketiga
- Jumlah_digit(987):
- 987 % 10 = 7 (digit terakhir)
- Memanggil fungsi lagi: jumlah_digit(98)
4. Pemanggilan keempat
- Jumlah_digit(98):
- 98 % 10 = 8 (digit terakhir)
- Memanggil fungsi lagi: jumlah_digit(9)
5. Pemanggilan kelima
- Jumlah_digit(9):
- Kondisi dasar tercapai karena 9 < 10.
- Mengembalikan 9.
Menghitung jumlah digit
Sekarang kita akan menghitung hasil dari semua pemanggilan sebelumnya:
- Dari pemanggilan kelima, kita memiliki: 9
- Dari pemanggilan keempat: 8 + 9 = 17
- Dari pemanggilan ketiga: 7 + 17 = 24
- Dari pemanggilan kedua: 6 + 24 = 30
- Dari pemanggilan pertama: 5 + 30 = 35
Kategori
- Masih Kosong
Blogroll
- Masih Kosong