BAB 3 SISTEM KONTROL
Latihan Soal Bab 3
1. Counted loop dan Uncounted loop
Counted loop (Perulangan Terhitung) adalah perulangan yang jumlah iterasinya diketahui atau ditentukan sebelumnya. Biasanya, ini digunakan ketika kita tahu berapa kali perulangan harus dilakukan sebelum perulangan dimulai. Dalam Python, perulangan ini biasanya menggunakan pernyataan for.
* Contoh Penggunaan Counted loop (for)
* Contoh keluaran program seperti pada gambar berikut.
Uncounted loop (Perulangan Tidak Terhitung) adalah perulangan yang jumlah iterasinya tidak diketahui sebelumnya. Perulangan akan terus berjalan sampai suatu kondisi tertentu terpenuhi. Ini biasanya diimplementasikan menggunakan while loop. Perulangan ini akan terus berlanjut sampai syarat atau kondisi menjadi False.
* Contoh Penggunaan Uncounted loop (while)
* Contoh keluaran program seperti pada gambar berikut.
2. Nested Loop
Perulangan di dalam pengulangan disebut dengan perulangan bersarang (nested loop). Nested loop adalah konsep di mana sebuah loop (perulangan) berada di dalam loop lain. Loop yang berada di dalam disebut inner loop, sementara loop yang melingkupi disebut outer loop. Pada nested loop, perulangan paling dalam dikerjakan terlebih dahulu. Bila perulangan paling dalam selesai dikerjakan selanjutkan mengerjakan perulangandi bagian luar.
* Contoh Penggunaan Nested Loop (for)
* Contoh keluaran program seperti pada gambar berikut.
3. Controlled Jump
Pada bahasa pemrograman Python mengenal Controlled jump. Kita bisa melakukan intervensi pada proses perulangan, sehingga mengubah arah jalannya proses perulangan. Intervensi pada proses perulangan dapat dilakukan dengan menerapkan Controlled jump. Pada bahasa pemrograman Python, Controlled jump seperti break dan continue. Sedangkan return digunakan untuk keluar dari suatu fungsi atau method. Penerapan break dan continue sudah kita coba pada latihan perulangan dengan for dan while, untuk return akan digunakan pada saat membuat fungsi.
4. Pengulangan iteratif
Perulangan iteratif adalah proses di mana sekelompok instruksi atau perintah (statements) dieksekusi berulang kali selama syarat atau kondisi tertentu masih terpenuhi. Begitu kondisi tersebut tidak lagi terpenuhi, perulangan akan berhenti. Konsep ini diimplementasikan menggunakan struktur perulangan for dan while dalam Python.
5. Program untuk memebuat tabel perkalian
Tahap Pembuatan:
a. Menggunakan Dua Loop untuk Menghasilkan Tabel Perkalian Dalam program ini, kita akan menggunakan dua loop bersarang (nested loops). Loop pertama digunakan untuk menghasilkan angka dasar perkalian dari 1 hingga 10, sedangkan loop kedua digunakan untuk menghitung dan menampilkan hasil perkalian setiap angka dengan angka-angka dari 1 hingga 10.
:
- range (1, 11) menghasilkan angka dari 1 hingga 10. Ini akan menjadi angka dasar untuk tabel perkalian.
- Loop ini disebut outer loop karena mengelilingi loop lain yang bertanggung jawab untuk menghitung hasil perkalian.
b. Mencetak Judul atau Deskripsi Tabel Untuk setiap angka dari outer loop, kita mencetak judul yang menunjukkan bahwa tabel perkalian untuk angka tersebut akan dimulai.
- Menggunakan f-string untuk menyisipkan variabel angka ke dalam teks yang dicetak agar output terlihat dinamis.
- \n digunakan untuk memulai baris baru sebelum mencetak tabel perkalian berikutnya, sehingga outputnya lebih teratur.
c. Menggunakan Inner Loop untuk Menghitung Hasil PerkalianDi dalam loop pertama, kita menggunakan loop kedua (inner loop) untuk menghitung dan mencetak hasil perkalian antara angka dari outer loop dengan angka-angka dari 1 hingga 10.
- range (1, 11) dalam inner loop menghasilkan angka dari 1 hingga 10 yang digunakan untuk perkalian.
- Dalam setiap iterasi inner loop, hasil adalah hasil perkalian dari angka (nilai dari outer loop) dengan i (nilai dari inner loop).
- print() digunakan untuk menampilkan hasil perkalian dalam format angka x i = hasil, yang memastikan hasilnya dicetak dalam bentuk tabel perkalian yang rapi.
Keluaran program akan seperti ini:
6. Program untuk konversu suhu (Celcius, Farenheit, Kelvin)
Tahap Pembuatan:
a. Mendefinisikan Lookup Table Program dimulai dengan membuat lookup table yang menyimpan nilai suhu dalam berbagai skala untuk setiap nilai Celsius dari 0 hingga 5.
b. Membuat Fungsi untuk Menampilkan Tabel Fungsi display_temperature_table_lookup() bertugas untuk menampilkan tabel yang berisi nilai Celsius beserta konversi suhu lainnya berdasarkan lookup table.
c Melakukan Loop untuk Mencetak Setiap Baris Data Pada Baris ini program akan mengiterasi setiap nilai Celsius dari 0 hingga 5 dan menampilkan nilai-nilai yang sesuai dari lookup table.
fungsi display_temperature_table_lookup() untuk menampilkan tabel suhu berdasarkan data dalam lookup table.
Keluaran program akan seperti ini:
7. Algoritma dengan kode semu dan program untuk menampilkan pola segitiga (Angka)
Tahap Pembuatan:
a. Inisialisasi Angka Awal
Program dimulai dengan mendefinisikan fungsi `print_number_pattern_alt(n)`. Di dalam fungsi tersebut, variabel `current_number` diinisialisasi dengan nilai 1. Variabel ini digunakan untuk menyimpan angka yang akan dicetak pada setiap baris.
- `current_number` adalah angka yang pertama kali dicetak, dimulai dari 1. Pada setiap iterasi, nilai ini diperbarui.
b. Looping untuk Baris Pola
Sebuah loop digunakan untuk mengontrol jumlah baris yang dicetak, berdasarkan nilai `n` yang diberikan.
- `range(1, n + 1)` memastikan bahwa loop berjalan mulai dari baris pertama hingga baris ke-`n`.
- Variabel `i` menunjukkan nomor baris yang sedang dikerjakan.
c. Membuat Deretan Angka pada Setiap Baris
Untuk setiap baris, deretan angka harus dicetak. Deretan ini dimulai dari angka yang ada di `current_number`, dan panjang deretan sesuai dengan nomor baris `i`.
Ini adalah list comprehension yang menghasilkan deretan angka dalam bentuk string.
- `current_number + j` menghasilkan angka yang dicetak pada baris saat ini. Angka pertama adalah `current_number`, kemudian angka berikutnya bertambah 1 hingga jumlah angka sama dengan `i`.
- Misalnya, untuk baris pertama (`i=1`), hanya satu angka yang dicetak, yaitu `1`. Untuk baris kedua (`i=2`), dua angka dicetak: `2 3`, dan seterusnya.
d. Mencetak Deretan Angka dalam Bentuk Pola Deretan angka yang telah dibuat diubah menjadi string yang dipisahkan oleh spasi, lalu dicetak.
- `row` berisi daftar angka dalam bentuk string. `join()` menggabungkan elemen-elemen dalam daftar tersebut dengan spasi di antara setiap angka, sehingga menghasilkan satu baris string yang rapi.
- Misalnya, pada iterasi pertama, akan tercetak: `1`. Pada iterasi kedua, akan tercetak: `2 3`, dan seterusnya.
e. Memperbarui Angka Awal untuk Baris Berikutnya
Setelah mencetak satu baris, program memperbarui nilai `current_number` untuk memastikan baris berikutnya dimulai dari angka yang tepat.
- Setelah setiap iterasi loop, nilai `current_number` ditambah dengan `i`, yaitu jumlah angka yang dicetak pada baris tersebut.
- Misalnya, setelah mencetak baris pertama (dengan 1 angka), `current_number` diperbarui menjadi `2`. Setelah mencetak baris kedua (dengan 2 angka: `2 3`), `current_number` diperbarui menjadi `4`, dan seterusnya.
f. Menjalankan Fungsi
Fungsi dipanggil dengan nilai `n=7`, yang berarti pola akan dicetak sebanyak 7 baris.
Output untuk n=7:
Program ini akan mencetak pola angka seperti berikut:
8. Algoritma dengan kode semu dan program untuk menampilkan pola segitiga (Huruf)
Tahap Pembuatan:
a. Definisi Fungsi `print_triangle(n)`
Program dimulai dengan mendefinisikan fungsi `print_triangle(n)` yang bertanggung jawab untuk mencetak pola segitiga dengan karakter huruf alfabet berdasarkan input `n`, yang menentukan jumlah baris.
Fungsi ini menerima parameter `n` yang merupakan jumlah baris yang ingin dicetak dalam pola segitiga.
b. Loop untuk Mengontrol Baris Di dalam fungsi, sebuah loop `for` digunakan untuk mengontrol jumlah baris yang akan dicetak.
- `range(n)` membuat loop yang berjalan dari `0` hingga `n-1`. Setiap iterasi mewakili satu baris dari segitiga.
c. Menghasilkan Karakter Berdasarkan Nomor Baris
Di dalam loop, karakter alfabet dihasilkan menggunakan fungsi `chr()`. Angka 65 adalah kode ASCII untuk huruf 'A'. Setiap iterasi menambahkan `i` ke nilai 65 untuk mendapatkan huruf yang berbeda pada setiap baris.
- Pada iterasi pertama (`i=0`), karakter yang dihasilkan adalah `chr(65 + 0)` atau `A`.
- Pada iterasi kedua (`i=1`), karakter yang dihasilkan adalah `chr(65 + 1)` atau `B`, dan seterusnya.
- Dengan cara ini, karakter yang akan dicetak pada setiap baris selalu berubah sesuai dengan nomor baris.
d. Mencetak Karakter yang Berulang
Setelah mendapatkan karakter yang sesuai untuk baris tersebut, karakter ini dicetak sebanyak `i+1` kali, di mana `i` adalah nomor baris dimulai dari 0. Ini menghasilkan segitiga di mana setiap baris bertambah satu karakter lebih banyak dari baris sebelumnya.
- Pada iterasi pertama (`i=0`), `char * (i + 1)` berarti `A` dicetak sekali: `A`.
- Pada iterasi kedua (`i=1`), `char * (i + 1)` berarti `B` dicetak dua kali: `BB`, dan seterusnya.
- Setiap karakter dicetak berulang sesuai dengan jumlah baris yang sedang diproses.
e. Meminta Input dari Pengguna
Sebelum memanggil fungsi `print_triangle()`, program meminta pengguna untuk memasukkan angka `n` yang akan menentukan jumlah baris dari segitiga karakter yang dicetak.
- Program meminta input dari pengguna, dan nilai input tersebut dikonversi menjadi integer (`int`) sebelum digunakan sebagai parameter untuk fungsi `print_triangle(n)`.
f. Memanggil Fungsi
Setelah nilai `n` diperoleh dari pengguna, fungsi `print_triangle(n)` dipanggil untuk mencetak pola segitiga dengan jumlah baris yang sesuai dengan input pengguna.
Program akan mencetak pola huruf seperti ini:
Pembuatan Algoritma Menghitung Sewa dan Denda Keterlambatan Menggunakan Phyton
Nama :I Komang Yuda
NIm : 411423072
Prodi / Kelas : Pendidikan Matematika / B
Mata kuliah : Komputasi dan Pemograman
Dosen Pengampu : Agusyarif Rezka Nuha, S.Pd, M,Pd
Algoritma Menghitung Sewa dan Denda Keterlambatan Menggunakan Phyton
Program ini berfungsi untuk menghitung total pembayaran sewa, dengan mempertimbangkan durasi sewa dan keterlambatan pengembalian. Apabila terjadi keterlambatan, denda sebesar 50% dari biaya sewa per hari keterlambatan akan dikenakan. Program ini juga meminta informasi dari pengguna, seperti nama, alamat, nomor telepon, serta lama waktu sewa.
1.Baris ke 1 (Menetapkan biaya sewa)
Variabel biaya_sewa: Nilai ini merupakan biaya sewa tetap perhari, yang dalam program ini ditetapkan sebesar 250.000
2.Baris ke 2 - 7 (Menambah kan variable)
- Input() : Program meminta pengguna untuk memasukkan data seperti nama, alamat, nomor telepon, lama sewa, dan lama keterlambatan. Semua data ini disimpan ke dalam variabel.
- Str(input()) : Mengonversi input menjadi string. Digunakan untuk variabel nama dan alamat.
- int(input()) : Mengonversi input menjadi integer (bilangan bulat). Digunakan untuk variabel no_tlp, lama_sewa, dan lama_keterlambatan, karena semua ini harus berupa angka.
3. Baris ke 8 (Perencanaan If untuk keterlambatan)
Penggunaan if : Pernyataan if dalam digunakan untuk membuat keputusan berdasarkan kondisi tertentu. Dalam program ini digunakan untuk memeriksa apakah pengguna mengalami keterlambatan (lama_keterlambatan >= 1), jika terjadi keterlambatan maka denda akan dikenakan.
4. Baris ke 9-11 (Perhitungan Denda dan Total Pembayaran)
Perhitungan denda : jika pengguna terlambat, denda dihitung sebesar 50% dari biaya sewa per hari keterlambatan. Rumusnya adalah 0.5*biaya_sewa*lama_keterlambatan.
Total pembayaran : jika ada denda, maka total pembayaran dihitung dengan menjumlahkan total biaya sewa (lama_sewa * biaya_sewa) dan denda yang dihitung.output: program menamppilkan total pembayaran, termasuk denda.
output : program menamppilkan total pembayaran, termasuk denda.
Jika pembayaran terlambat, Program akan berjalan seperti ini:
5. Baris ke 12-14 (Pembayaran jika Tanpa Denda)
else: pernyataan else digunakan untuk mengeksekusi blok kode tertentu jika kondisi pada pernyataan if atau elif sebelumnya tidak terpenuhi. Dengan kata lain, else memberikan jalur alternatif untuk menjalankan kode jika semua kondisi lain gagal. Pada program ini pernyataan else digunakan untuk menentukan adanya keterlambatan :( lama_keterlambatan < 1), maka denda tidak dikenakan.
total pembayaran tanpa denda : total hanya hitung berdasarkan biaya sewa tanpa tambahan denda. rumusnya adalah lama_sewa * biaya_sewa.
output : program menampilkan total pembayaran tanpa denda.
Jika pembayaran tepat waktu, Program akan berjalan seperti ini:
Kesimpulan
Program dapat secara otomatis menghitung total biaya sewa dan denda keterlambatan, sehingga mempermudah proses penghitungan tanpa harus dilakukan secara manual. Ini meningkatkan efisiensi dan mengurangi risiko kesalahan perhitungan.
Kategori
Blogroll
- Masih Kosong