Soal Latihan Bab 4

06 October 2024 20:44:16 Dibaca : 16

1. Jelaskan apa yang dimaksud dengan fungsi!

  • Fungsi adalah blok kode yang dirancang untuk melakukan tugas tertentu, biasanya menerima input (parameter) dan mengembalikan output (nilai). Fungsi memungkinkan pengorganisasian kode yang lebih baik, pengurangan duplikasi, dan meningkatkan keterbacaan. Contoh penggunaan fungsi adalah dalam perhitungan matematika atau pengolahan data.

2. Jelaskan apa yang dimaksud dengan prosedur!

  •  Prosedur, mirip dengan fungsi, adalah blok kode yang melakukan tugas tertentu. Namun, prosedur tidak mengembalikan nilai. Sebagai gantinya, prosedur sering digunakan untuk melakukan aksi atau mengubah keadaan program, seperti mencetak informasi ke layar atau memperbarui data.

3. Jelaskan apa perbedaan fungsi dan prosedur!

  •  Fungsi selalu mengembalikan nilai, sedangkan prosedur tidak mengembalikan nilai apapun. Fungsi lebih sering digunakan ketika ada kebutuhan untuk mengembalikan hasil dari operasi tertentu, sementara prosedur digunakan untuk melaksanakan aksi tanpa memerlukan hasil yang dikembalikan. Secara umum, fungsi berfokus pada perhitungan dan pengembalian nilai, sementara prosedur lebih fokus pada pelaksanaan tugas atau tindakan tertentu tanpa mengembalikan hasil.

4. Jelaskan apa yang dimaksud dengan iteratif, rekursif, dan apa perbedaan keduanya!

  • Iteratif merupakan pendekatan di mana suatu proses diulang menggunakan struktur kontrol seperti loop (misalnya for atau while). Contohnya, menghitung jumlah angka dari 1 hingga n dengan menggunakan loop.
  • Rekursif merupakan pendekatan di mana suatu fungsi memanggil dirinya sendiri untuk menyelesaikan tugas. Fungsi rekursif biasanya memiliki kondisi dasar untuk menghentikan pemanggilan berulang. Contohnya, menghitung faktorial angka dengan cara memanggil fungsi faktorial itu sendiri.
  • Perebedaan keduanya
    • Iteratif menggunakan loop, sedangkan rekursif menggunakan pemanggilan fungsi. Dari segi kinerja, iteratif biasanya lebih efisien dalam penggunaan memori, sementara rekursif dapat menyebabkan penggunaan stack yang lebih besar jika kedalaman rekursi tinggi. Dalam hal keterbacaan, rekursif sering kali lebih mudah dibaca dan ditulis untuk masalah yang bersifat berulang atau bersarang, tetapi bisa lebih sulit dipahami bagi pemula.

5. Buat fungsi yang digunakan untuk mengecek suatu bilangan, apakah bilangan tersebut positif atau negatif!

Berikut adalah langkah langkah dari program di atas

1.Definisi Fungsi (def cek_positif_negatif(bilangan):):

  • Sebuah fungsi bernama cek_positif_negatif didefinisikan dengan parameter bilangan, yang akan menerima input berupa angka ketika fungsi dipanggil.

2.Pengecekan Kondisi 1 (if bilangan > 0:):

  • Di dalam fungsi, kondisi pertama mengecek apakah bilangan lebih besar dari nol.
  • Jika kondisi ini benar, maka fungsi akan mengembalikan (return) string "Bilangan positif".

3.Pengecekan Kondisi 2 (elif bilangan < 0:):

  • Kondisi berikutnya menggunakan elif untuk mengecek apakah bilangan kurang dari nol.
  • Jika kondisi ini benar, maka fungsi akan mengembalikan string "Bilangan negatif".

4. Kondisi Lainnya (else:):

  • Jika kondisi pertama dan kedua tidak terpenuhi (bilangan tidak lebih besar atau kurang dari nol), maka bilangan haruslah nol.
  • Fungsi akan mengembalikan string "Bilangan nol" dalam kasus ini.

5. Eksekusi Kode Utama:

  • Baris 10: Fungsi input() digunakan untuk meminta pengguna memasukkan sebuah angka. Input tersebut diubah menjadi tipe data float dengan float() dan disimpan dalam variabel bilangan.
  • Baris 11: Fungsi cek_positif_negatif() dipanggil dengan argumen bilangan yang dimasukkan pengguna. Hasil dari pemanggilan fungsi ini disimpan dalam variabel hasil.
  • Baris 12: Fungsi print() digunakan untuk menampilkan hasil (hasil) di layar, yang akan berupa salah satu dari "Bilangan positif", "Bilangan negatif", atau "Bilangan nol" sesuai dengan input yang diberikan.

ketika program dijalankan

  • Jika pengguna memasukkan angka 5, maka output dari fungsi adalah "Bilangan positif".
  • Jika pengguna memasukkan -3, output akan menjadi "Bilangan negatif".
  • Jika pengguna memasukkan 0, output akan menjadi "Bilangan nol".

6. Buat fungsi yang digunakan untuk mengecek suatu bilangan, apakah bilangan bulat atau bilangan ganjil!

Berikut adalah langkah langkah dari program di atas

1. Definisi Fungsi (def klasifikasi_bilangan(bilangan):):

  • Fungsi klasifikasi_bilangan didefinisikan dengan parameter bilangan, yang akan menerima input berupa bilangan ketika dipanggil.

2. Pengecekan Tipe Data (if not isinstance(bilangan, (int, float)):):

  • Kondisi ini digunakan untuk mengecek apakah input yang diterima adalah angka (baik bilangan bulat atau bilangan desimal). Jika input bukan angka, maka fungsi akan mengembalikan string "Input bukan angka.".

3. Pengecekan Apakah Bilangan Bulat (if bilangan.is_integer():):

  • Kondisi ini memeriksa apakah bilangan tersebut merupakan bilangan bulat (bilangan yang tidak memiliki desimal).
  • Fungsi is_integer() mengembalikan True jika bilangan tersebut bulat, meskipun inputnya dalam bentuk float. Misalnya, 4.0 akan dianggap sebagai bilangan bulat karena secara matematis sama dengan 4.

4. Pengecekan Genap atau Ganjil:

  • Jika bilangan merupakan bilangan bulat, maka langkah selanjutnya adalah mengubahnya ke tipe data int dengan int(bilangan) untuk menghilangkan titik desimal.
  • Bilangan kemudian dicek apakah genap atau ganjil dengan menggunakan operator modulus (%):
    • Jika bilangan_bulat % 2 == 0, artinya bilangan tersebut habis dibagi 2 dan merupakan bilangan genap. Fungsi akan mengembalikan string "Ini adalah bilangan bulat genap.".
    • Jika tidak habis dibagi 2, maka bilangan tersebut merupakan bilangan ganjil, dan fungsi akan mengembalikan string "Ini adalah bilangan bulat ganjil.".

5. Jika Bukan Bilangan Bulat:

  • Jika bilangan yang dimasukkan memiliki desimal (bukan bilangan bulat), maka fungsi akan mengembalikan string "Ini bukan bilangan bulat.".

6. Menerima Input dari Pengguna:

  • input() digunakan untuk meminta pengguna memasukkan sebuah bilangan. Input disimpan dalam variabel bilangan_input sebagai string.

7. Mengonversi Input ke Float:

  • Kode mencoba mengonversi input dari string ke float dengan float(bilangan_input). Jika konversi berhasil, input akan diubah menjadi tipe float dan disimpan di variabel bilangan_float.
  • Jika terjadi error karena input bukan angka (misalnya, pengguna memasukkan huruf atau karakter selain angka), blok except akan menangkap error tersebut dan mencetak pesan "Input tidak valid. Harap masukkan angka yang benar.".

8. Memanggil Fungsi dan Menampilkan Hasil:

  • Setelah input berhasil dikonversi menjadi float, fungsi klasifikasi_bilangan() dipanggil dengan argumen bilangan_float. Hasil dari fungsi ini disimpan dalam variabel hasil dan kemudian dicetak.

ketika program dijalankan

  • Jika pengguna memasukkan angka 4, maka output dari fungsi adalah "Bilangan genap".
  • Jika pengguna memasukkan 9, output akan menjadi "Bilangan ganjil".

7. Buat fungsi yang digunakan untuk mengecek apakah suatu tahun adalah tahun kabisat atau bukan!

Berikut adalah langkah langkah dari program di atas

1. Definisi Fungsi (def cek_tahun_kabisat(tahun):):

  • Sebuah fungsi bernama cek_tahun_kabisat didefinisikan dengan parameter tahun. Fungsi ini akan mengembalikan True jika tahun tersebut adalah tahun kabisat, dan False jika tidak.

2. Logika Pengecekan Tahun Kabisat:

  • Tahun kabisat adalah tahun yang:
    • Dapat dibagi habis oleh 4 (tahun % 4 == 0).
    • Tidak dapat dibagi habis oleh 100 kecuali bisa dibagi habis oleh 400 (tahun % 100 != 0 atau tahun % 400 == 0).
  • Kondisi di dalam fungsi memeriksa apakah:
    • (tahun % 4 == 0 and tahun % 100 != 0): Tahun harus dapat dibagi 4 dan tidak habis dibagi 100 atau:
    • (tahun % 400 == 0): Tahun harus habis dibagi 400.
  • Jika salah satu dari kondisi ini terpenuhi, maka tahun tersebut dianggap sebagai tahun kabisat dan fungsi akan mengembalikan True. Jika tidak, fungsi akan mengembalikan False.

3. Memasukkan Tahun dari Pengguna:

  • Pengguna diminta untuk memasukkan sebuah tahun menggunakan input(). Input ini dikonversi ke tipe int agar dapat dilakukan operasi matematika modulus (%).

4. Memanggil Fungsi dan Menampilkan Hasil:

  • Setelah pengguna memasukkan tahun, fungsi cek_tahun_kabisat() dipanggil dengan input_tahun sebagai argumennya.
  • Jika fungsi mengembalikan True, maka tahun tersebut adalah tahun kabisat, dan pesan yang dicetak adalah "{input_tahun} adalah tahun kabisat.".
  • Jika fungsi mengembalikan False, maka outputnya adalah "{input_tahun} bukan tahun kabisat.".

ketika program dijalankan

8. Buat sebuah program yang menerapkan proses rekursif!

Program ini menghitung faktorial dari sebuah angka.

Berikut adalah langkah langkah dari program di atas

1. Fungsi faktorial(n):

  • Fungsi ini menghitung faktorial dari bilangan bulat n.
  • Jika n adalah 0 atau 1, maka fungsi mengembalikan 1 (kasus dasar).
  • Jika n lebih dari 1, fungsi akan memanggil dirinya sendiri dengan argumen n - 1 dan mengalikan hasilnya dengan n.

2. Input Pengguna:

  • Program meminta pengguna memasukkan angka yang ingin dihitung faktorialnya dan mengonversinya ke dalam tipe integer.

3. Menghitung dan Menampilkan Hasil:

  • Hasil dari pemanggilan fungsi faktorial(angka) disimpan dalam variabel hasil.
  • Program mencetak hasil faktorial ke layar dalam format yang mudah dibaca.

ketika program dijalankan

Jika pengguna memasukkan 5:

Kategori

  • Masih Kosong

Blogroll

  • Masih Kosong