Bismillah.
Kembali lagi pada seri latihan belajar logika pada python. Pada seri ini kita mencoba untuk memecahkan berbagai macam kasus umum di dunia pemrograman. Tujuannya adalah untuk melatih logika kita dalam pemecahan suatu masalah.
Kasus yang Akan Dipecahkan
Pada pertemuan kali ini, kita akan menulis program untuk mencari tahu angka mana yang paling besar dari 3 buah angka.
Contoh:
- Kita punya 3 angka yaitu
3
,6
dan5
. Kita akan membuat program yang bisa mengetahui bahwa angka yang terbesar dari 3 angka tersebut adalah6
.
Tidak hanya mencari yang terbesar, pada tutorial ini kita juga akan mencari mana angka yang paling kecil, dan mana angka yang ada di pertengahan.
Ide Solusi
Kita bisa dengan mudah menggunakan list untuk memecahkan kasus ini. Perhatikan contoh berikut:
deret = [14, 5, 10]
# urutkan
deret.sort()
# angka terbesar adalah index 0
print(deret[0])
Tapi, bukan itu yang kita inginkan π
Solusi yang kita inginkan adalah menggunakan hanya percabangan saja.
Logikanya simpel karena angkanya hanya terbatas untuk 3 angka.
Bagaimana logikanya?
Misal kita punya 3 variabel a
, b
, dan c
.
Kapan variabel b
dikatakan yang paling besar?
Jawabannya adalah:
Variabel b
akan dikatakan yang paling besar, ketika ia lebih besar dari nilai a
dan juga lebih besar dari nilai c
.
Sebelum Ngoding
Sebelum mulai ngoding, pastikan kalian telah familiar dengan dasar-dasar python terlebih dahulu, terutama pembahasan-pembahasan ini:
Persiapan Variabel
Baik, kita mulai langsung dengan menyiapkan 3 buah variabel, yaitu a
, b
, dan c
.
Ketiga variabel ini kita isi dari inputan user seperti berikut:
a = int(input('Masukkan nilai a: '))
b = int(input('Masukkan nilai b: '))
c = int(input('Masukkan nilai c: '))
Atau kita juga bisa menggunakan fitur destruksi atau mengisi beberapa variabel secara sekaligus.
a, b, c = (
int(input('Masukkan nilai a: ')),
int(input('Masukkan nilai b: ')),
int(input('Masukkan nilai c: '))
)
Buat saya cara yang kedua ini terlihat lebih keren meskipun tidak manusiawi π
Mencari Angka Terbesar Antara a, b, dan c
Langkah selanjutnya adalah menulis logika untuk mencari angka terbesar, apakah itu a? b? atau c?
Berikut ini kira-kira implementasi logikanya:
if a > b and a > c:
print('A yang terbesar')
elif b > a and b > c:
print('B yang terbesar')
else:
print('C yang terbesar')
Sekarang coba kita testing, saya coba masukkan angka 50
, 23
, dan 34
:
Masukkan nilai a: 50
Masukkan nilai b: 23
Masukkan nilai c: 34
A yang terbesar
Kelemahan dari kode di atas adalah, jika kita masukkan 3 angka yang sama, maka nilai C lah yang dianggap terbesar. Kalian bisa memodifikasi sendiri agar kalau angkanya sama, output yang ditampilkan adalah “Ketiga angka sama”, atau yang semisalnya π
Mencari Angka Terkecil Antara a, b, dan c
Setelah berhasil mencari angka yang terbesar, sekarang kita coba mencari angka yang terkecil. Caranya sama saja, kita hanya menggunakan “logika terbalik” dari apa yang telah kita lakukan untuk mencari nilai terbesar.
Berikut ini kira-kira kode programnya:
if a < b and a < c:
print('A yang terkecil')
elif b < a and b < c:
print('B yang terkecil')
else:
print('C yang terkecil')
Yang kita lakukan hanyalah mengubah operator lebih dari (>
) menjadi kurang dari (<
) π
Berikut ini adalah contoh output kode program di atas:
Masukkan nilai a: 50
Masukkan nilai b: 20
Masukkan nilai c: 33
B yang terkecil
Mencari Angka Kedua Antara a, b, dan c
Kita telah berhasil mencari mana yang terbesar dan mana yang terkecil dari 3 angka yang diinputkan oleh user.
Langkah berikutnya adalah mencari mana di antara 3 angka tersebut yang berada di tengah-tengah.
Sebagai pendekatan untuk menyusun logika, kita bisa bertanya kepada diri kita sendiri:
- Dari 3 variabel
a
,b
, danc
. Kapan nilaic
dikatakan sebagai nilai tengah? - Kita akan jawab: variabel
c
akan dianggap sebagai nilai tengah ketika:- ia lebih dari nilai
a
dan kurang dari nilaib
- atau sebaliknya ia kurang dari nilai
a
dan lebih dari nilaib
- ia lebih dari nilai
Setelah mendapatkan jawaban, tugas kita selanjutnya adalah menuangkannya dalam bentuk kode program.
Kira-kira begini bentuk if-else
nya untuk variabel a
:
if (a > b and a < c) or (a < b and a > c):
print('A adalah nilai tengah')
Yang menarik dari python adalah: kita bisa menyingkat operator perbandingan (plus operator logika) di atas menjadi lebih natural dan manusiawi seperti berikut:
if (b > a > c) or (c > a > b):
print('A adalah nilai tengah')
Cara penulisan di atas adalah sesuatu yang tidak bisa diterima oleh pemrogram bahasa lain ππ
Baik, kita lengkapi kode programnya untuk dua variabel lainnya:
if (b > a > c) or (c > a > b):
print('A adalah nilai tengah')
elif (a > b > c) or (c > b > a):
print('B adalah nilai tengah')
else:
print('C adalah nilai tengah')
Contoh output:
Masukkan nilai a: 10
Masukkan nilai b: 3
Masukkan nilai c: 5
C adalah nilai tengah
Mengurutkan 3 Angka
Kita telah sukses membuat logika untuk mencari mana angka yang terbesar, terkecil, dan nilai tengah dari 3 buah angka.
Sekarang, kalian bisa membuat ketiga pemeriksaan tadi menjadi masing-masing satu fungsi, lalu menjadikan 3 fungsi tersebut untuk mengurutkan 3 angka inputan dari yang terkecil hingga yang terbesar.
Berikut ini potongan kode program yang saya lakukan:
i1 = angka_terkecil(a, b, c)
i2 = nilai_tengah(a, b, c)
i3 = angka_terbesar(a, b, c)
print(f'Urutan: {i1}, {i2}, {i3}')
Contoh output:
Masukkan nilai a: 3
Masukkan nilai b: 431
Masukkan nilai c: 394
Urutan: 431, 394, 3
Kode Program Lengkap
Nah, penasaran enggak? Gimana penampakan kode program untuk 3 fungsi tersebut? Kalian bisa mencoba-cobanya sendiri untuk melatih logika dan cara berpikir.
Jangan takut salah, karena semakin banyak salah akan semakin bagus π
Kalau sudah beres dan outputnya sama dengan contoh output di atas, kalian bisa membandingkan kode program yang kalian tulis sendiri dengan kode program saya.
Untuk mengakses kode program lengkapnya, kalian bisa mampir ke repositori python-latihan-logika di github.
Jangan lupa kasih ββ ya!
Pertemuan Selanjutnya
Pada pertemuan selanjutnya insyaallah kita akan mencoba untuk menukarkan isi dari dua variabel. Gimana maksudnya?
Misalkan kita punya variabel x = 20
dan y = 50
. Kita akan menukarkan kedua isinya sehingga:
x
menjadi50
- dan
y
menjadi20
Penasaran kan gimana caranya? Stay tune terus di Jago Ngoding!
Jika ada pertanyaan atau sesuatu yang ingin didiskusikan, atau bahkan request tutorial, jangan sungkan-sungkan untuk berkomentar, ya! π
Terima kasih banyak!