Latihan Soal BAB 4

06 October 2024 01:00:51 Dibaca : 32

Nama                        : Rahmat Ibrahim

NIM                           : 411423042

Prodi/Kelas               : Pendidikan Matematika/B

Mata Kuliah              : Komputasi dan Pemograman

Dosen Pengampuh  : Agusyarif Rezka Nuha, S.Pd., M.Pd

1. Pengertian Fungsi

Fungsi digunakan untuk mengimplementasikan konsep modular (memecah-mecah program ke dalam subprogram yang dikenal dengan teknik dekomposisi). Fungsi bertugas untuk menjalankan serangkaian perintah secara spesifik.

2. Pengertian Prosedur

Dalam pemrograman Python, prosedur mengacu pada sebuah blok kode yang dapat dieksekusi secara independen, biasanya berupa fungsi yang tidak mengembalikan nilai (return value). Fungsi dalam Python digunakan untuk menjalankan satu atau beberapa instruksi, dan prosedur adalah fungsi yang tujuannya lebih kepada melakukan suatu tindakan daripada mengembalikan hasil.

3. Perbedaan Fungsi dan Prosedur

Fungsi dan Prosedur memiliki tujuan dan tugas yang sama. Hanya saja membedakan fungsi dan prosedur, yaitu:

  • Prosedur tidak memiliki nilai balik.
  • Fungsi memiliki nilai balik (return value).
  • Di phyton, prosedur disebut dengan fungsi tanpa nilai blaik.

4. Pengertian dan Perbedaan iteratif, dan rekursif

   Dalam pemrograman Python, istilah iteratif merujuk pada proses atau teknik di mana sekelompok instruksi dijalankan berulang kali, biasanya menggunakan loop (pengulangan). Pendekatan ini sangat berguna untuk menyelesaikan masalah yang membutuhkan perulangan suatu tindakan hingga suatu kondisi tertentu terpenuhi.

     Rekursif adalah fungsi yang memanggil dirinya sendiri. Dalam menerapkan rekursif, harus ada kondisi untuk membatasi proses rekursif (sehingga bisa keluar dari proses rekursif). Jika tidak ada yang membatasi, maka proses rekursif tidak akan berhenti (infinity loop) sampai memori tidak dapat menampung lagi. Untuk menghentikan proses rekursif tanpa batas dapat menekan tombol CTRL+U secara bersamaan.

   Perbedaan antara iteratif dan rekursif terletak pada metode penyelesaiannya. Iteratif menggunakan loop seperti `for` atau `while` untuk mengulangi blok kode hingga suatu kondisi tercapai, dan biasanya lebih efisien dalam penggunaan memori. Rekursif melibatkan fungsi yang memanggil dirinya sendiri sampai mencapai kondisi dasar, memerlukan lebih banyak memori karena menggunakan tumpukan panggilan. Iterasi sering lebih cepat, sementara rekursi lebih elegan untuk masalah yang secara alami dapat dipecah menjadi sub-masalah, seperti traversing pohon atau algoritma rekursif lainnya.

 5. Fungsi untuk mengecek suatu bilangan positif atau negatif

1). Membuat Fungsi

  • def: Kata kunci ini digunakan untuk mendefinisikan fungsi baru.
  • cek_bilangan: Ini adalah nama fungsi yang akan digunakan untuk memeriksa nilai bilangan.
  • (n): Parameter n ditentukan di dalam tanda kurung, yang akan menerima nilai yang dimasukkan oleh pengguna ketika fungsi dipanggil.

2). Struktur Kontrol untuk Mengecek Nilai Bilangan

  • if n > 0: : Memeriksa apakah nilai n lebih besar dari 0. Jika benar, maka: return "Bilangan positif": Fungsi akan mengembalikan string "Bilangan positif".
  • elif n < 0:: Jika kondisi pertama tidak terpenuhi, program akan memeriksa apakah nilai n kurang dari 0. Jika benar, maka:return "Bilangan negatif": Fungsi akan mengembalikan string "Bilangan negatif".
  • else:: Jika kedua kondisi sebelumnya tidak terpenuhi (artinya n adalah 0), maka:return "Bilangan nol": Fungsi akan mengembalikan string "Bilangan nol".

3). Program Utama

  • input("Masukkan bilangan: "): Menggunakan fungsi input() untuk meminta pengguna memasukkan suatu bilangan. Teks dalam tanda kutip ditampilkan sebagai prompt untuk pengguna.
  • int(...): Fungsi int() digunakan untuk mengonversi input yang awalnya bertipe string (karena input() selalu mengembalikan string) menjadi bilangan bulat (integer). Nilai ini kemudian disimpan dalam variabel bilangan.

4). Memanggil Fungsi dan Menyimpan Hasil

  • cek_bilangan(bilangan): Memanggil fungsi cek_bilangan dengan argumen bilangan, yaitu nilai yang dimasukkan oleh pengguna. Hasil dari fungsi ini (string yang menunjukkan jenis bilangan) disimpan dalam variabel hasil.

5). Menampilkan Hasil

  • print(hasil): Menggunakan fungsi print() untuk menampilkan hasil yang telah disimpan dalam variabel hasil ke layar. Ini memberikan umpan balik kepada pengguna tentang jenis bilangan yang dimasukkan (apakah positif, negatif, atau nol).

6. Program Untuk Mengecek Bilangan Bulat atau Bilangan Ganjil

1). Mendefinisikan Fungsi

  • def: Kata kunci ini digunakan untuk mendefinisikan sebuah fungsi baru dengan nama cek_bulat_ganjil.
  • (n): Ini adalah parameter fungsi yang akan menerima nilai dari bilangan yang dimasukkan oleh pengguna ketika fungsi dipanggil.

2). Struktur Kontrol untuk Mengecek Bilangan

  • if n % 2 == 0:: Di sini, program memeriksa apakah sisa pembagian n dengan 2 adalah 0. Jika iya, maka: return "Bilangan bulat": Fungsi mengembalikan string "Bilangan bulat", yang berarti bilangan tersebut adalah genap.

3). Program Utama

  • input("Masukkan bilangan: "): Menggunakan fungsi input() untuk meminta pengguna memasukkan sebuah bilangan. Teks dalam tanda kutip ditampilkan sebagai prompt untuk pengguna.
  • int(...): Fungsi int() digunakan untuk mengonversi input yang awalnya bertipe string (karena input() selalu mengembalikan string) menjadi tipe data integer. Nilai ini kemudian disimpan dalam variabel bilangan.

4). Memanggil Fungsi dan Menyimpan Hasil

  • cek_bulat_ganjil(bilangan): Memanggil fungsi cek_bulat_ganjil dengan argumen bilangan, yaitu nilai yang dimasukkan oleh pengguna. Hasil dari pemanggilan fungsi ini (string yang menunjukkan jenis bilangan) disimpan dalam variabel hasil.

5). Menampilkan Hasil

  • print(hasil): Menggunakan fungsi print() untuk menampilkan hasil yang telah disimpan dalam variabel hasil ke layar. Ini memberikan umpan balik kepada pengguna tentang jenis bilangan yang dimasukkan (apakah genap atau ganjil).

7. Program Untuk Mengecek Suatu Tahun Kabisat atau Bukan

1). Mendefinisikan Fungsi cek_tahun_kabisat

  • def: Digunakan untuk mendefinisikan fungsi baru.
  • cek_tahun_kabisat(tahun): Nama fungsi ini adalah cek_tahun_kabisat dan menerima satu parameter, yaitu tahun, yang mewakili tahun yang akan diperiksa.

2). Mengecek Apakah Tahun Adalah Kabisat

Logika Utama:

  • tahun % 4 == 0: Jika tahun habis dibagi 4 (tidak ada sisa), maka bisa jadi tahun kabisat.
  • tahun % 100 != 0: Namun, jika tahun tersebut habis dibagi 100 (misalnya tahun 1900), maka bukan tahun kabisat, kecuali juga habis dibagi 400.
  • tahun % 400 == 0: Jika tahun habis dibagi 400 (misalnya tahun 2000), maka pasti tahun kabisat.
  • Kondisi if: Menggunakan kombinasi kondisi and dan or untuk memastikan aturan-aturan di atas diterapkan.

3). Program Utama

  • input("Masukkan tahun: "): Meminta pengguna untuk memasukkan tahun.
  • int(): Fungsi input() selalu mengembalikan string, sehingga fungsi int() digunakan untuk mengonversi input menjadi bilangan bulat (integer).
  • Nilai yang dimasukkan disimpan dalam variabel tahun.

4). Memanggil Fungsi dan Menyimpan Hasil

  • cek_tahun_kabisat(tahun): Fungsi cek_tahun_kabisat dipanggil dengan argumen tahun, dan hasilnya disimpan dalam variabel hasil.

5). Menampilkan Hasil

  • print(hasil): Menampilkan hasil dari fungsi cek_tahun_kabisat ke layar, yaitu apakah tahun tersebut "Tahun kabisat" atau "Bukan tahun kabisat".

8. Program yang Menerapkan Proses Rekursif

 

Fungsi ini digunakan untuk menghitung bilangan Fibonacci ke-n berdasarkan input pengguna. Fungsi ini bekerja dengan logika rekursif, artinya fungsi memanggil dirinya sendiri untuk menyelesaikan perhitungan.

Penjelasan Program:

1). Fungsi Rekursif fibonacci(n)

Kondisi dasar (Base Case)

  • if n <= 0:: Jika n kurang dari atau sama dengan 0, fungsi mengembalikan pesan bahwa input harus bilangan positif.
  • elif n == 1:: Jika n sama dengan 1, fungsi mengembalikan 0. Ini karena Fibonacci pertama (F(1)) adalah 0.
  • elif n == 2:: Jika n sama dengan 2, fungsi mengembalikan 1. Ini karena Fibonacci kedua (F(2)) adalah 1.

Kondisi rekursif (Recursive Case)

  • else:: Jika n lebih dari 2, fungsi memanggil dirinya sendiri dengan dua argumen yang lebih kecil, yaitu fibonacci(n - 1) dan fibonacci(n - 2). Ini mengikuti definisi Fibonacci, di mana: F(n) = F(n-1) + F(n-2)
  • Proses ini akan terus berlanjut hingga mencapai kondisi dasar.

 2). Program Utama

  • input("Masukkan bilangan: "): Program meminta input dari pengguna, yaitu bilangan yang ingin dihitung nilai Fibonacci-nya. Nilai input ini akan disimpan sebagai variabel bilangan.
  • int(): Input dari pengguna secara otomatis bertipe string, sehingga harus dikonversi menjadi bilangan bulat menggunakan fungsi int().

3). Validasi Input

  • if bilangan <= 0:: Program memeriksa apakah bilangan yang dimasukkan lebih kecil atau sama dengan 0. Jika ya, program memberikan pesan bahwa input harus bilangan positif.
  • else:: Jika input valid (lebih dari 0), fungsi fibonacci(bilangan) dipanggil untuk menghitung nilai Fibonacci ke-n. Hasil perhitungan disimpan dalam variabel hasil dan kemudian ditampilkan ke layar menggunakan fungsi print().

4). Output Program

Setelah input valid diberikan, program akan menghitung nilai Fibonacci ke-n dan menampilkannya.

Kategori

  • Masih Kosong

Blogroll

  • Masih Kosong