8 Program Python Sederhana
Pendahuluan
Program python sederhana. Dunia menuju pada zaman AI, ML, dan Data science yang merupakan teknologi dominan pada saat ini. Seluruh teknologi yang disebutkan itu bergantung pada bahasa pemrograman Python dalam beberapa hal. Oleh sebab itu, menjadi master pada pemrograman Python akan membuka kesempatan dalam berkarir dan mendapatkan banyak peluang terbaik di seluruh planet ini.
Harapannya, Anda sebagai pembaca di sini dapat mulai belajar menggunakan atau berlatih untuk menjadi ahli atau mungkin menantang keterampilan Anda dengan masalah yang lebih sulit untuk dikerjakan dengan Python. Tidak perlu khawatir posisi Anda pada saat ini dalam hal keterampilan menggunakan Python. Dengan cara mencoba untuk mengerjakan proyek Python, Anda sudah pasti akan meningkatkan keterampilan dan membangun profil terbaik untuk menghadapi dunia yang kompetitif di luar sana. Meskipun tutorial Python cukup membantu dan memberikan pengetahuan yang cukup rinci dalam proses pembelajaran Anda. Pada suatu saat, akan datang kemampuan Anda untuk membuat kode dan sesuatu yang bermanfaat secara mandiri.
Sebelum memulai pada ide-ide atau contoh program Python sederhana, mari kita baca terlebih dahulu bagaimana proyek ini dapat membantu Anda sebagai Python developer serta platform mana yang harus Anda pertimbangkan sebelum memulai segala macam proyek Python.
Bagaimana Proyek Program Python Sederhana Dapat Membantu Anda?
Membangun proyek Python dapat membantu Anda dalam berbagai hal, beberapa di antaranya tercantum pada poin-poin di bawah ini:
Meningkatkan kepercayaan diri
Melakukan berbagai hal secara mandiri dengan cara Anda menggunakan alat dan teknologi akan membangun kepercayaan diri Anda. Jika Anda membuat konten pada platform youtube, maka, hal ini akan membantu youtube menilai keahlian Anda sebagai Python developer, sehingga pemeringkatan konten video Anda akan tampil lebih baik.
Menjelajah dan bereksperimen
Proyek membuat sesuatu akan memberikan kesempatan untuk memperkenalkan diri Anda dengan alat dan teknologi yang sedang tren yang diperlukan untuk menyelesaikan suatu proyek. Anda dapat memilih keterampilan Anda dalam bidang server, database, konsep UI, dan masih banyak lagi.
Menguasai keterampilan mengoding
Proyek adalah nama lain untuk latihan, kita pun tahu bahwa latihan adalah resep untuk unggul dalam segala hal. Setelah Anda mahir dalam menulis kode dengan bahasa pemrograman Python serta mengetahui dependensi - dependensi lain yang dibutuhkan. Maka, Anda akan merasakan efisiensi pembelajaran Anda dalam menaiki anak tangga untuk mengerjakan proyek yang lebih menantang.
Mempelajari mengenai siklus pengembangan software
Langkah ini penting untuk dipelajari ketika Anda merasa sudah siap menuju industri dan Anda telah mampu melakukan proyek pada kehidupan nyata. Sehingga, Anda harus belajar mengembangkan proyek dengan cara yang optimal dan terorganisir sebagai paradigma SDLC (Software Development Life Cycle).
Proyek Apa Yang ingin Anda Kerjakan?
Setelah Anda siap dan termotivasi untuk mengerjakan suatu proyek, Anda harus memikirkan apa yang akan dibangun dan pada platform mana untuk membangun proyek Python tersebut. Anda harus memulai dari minat terlebih dahulu, terlepas dari apakah hal tersebut sedang ngetren atau tidak. Lalu, apakah membutuhkan tingkat keahlian ngoding yang sedikit atau masif. Akan sulit untuk bertahan pada suatu proyek atau bahkan menyelesaikannya jika Anda memulai dengan sesuatu yang tidak menarik menurut Anda.
Ada tiga platform utama dimana Anda dapat memulai membangun proyek Anda. Blog ini akan memberikan gambaran umum mengenai tiga platform tersebut:
1. Web
Aplikasi web dapat berjalan di web maupun di perangkat apa pun tanpa perlu diunduh; satu-satunya persyaratan adalah harus ada akses internet. Aplikasi web memiliki frontend dan backend. Frontend bertanggung jawab untuk UI (User Interface) situs web. Sedangkan backend adalah dimana logika program, kode dan penyimpanan data terjadi.
Python developer berfokus pada kode backend. Oleh karena frontend pun merupakan hal yang penting. Maka, Python developer harus memiliki pengetahuan mengenai HTML, CSS, dan Javascript untuk membuat UI yang tampak sederhana. Dengan library tambahan, Python developer dapat menggunakan Python untuk backend dan frontend pada proyek Python tersebut. Django dan Flask adalah framework web populer untuk membangun aplikasi menggunakan Python.
2. UI Desktop
Membangun Aplikasi Desktop dengan Python adalah proyek yang bagus untuk pemula dan juga untuk pengguna menengah. Ada beberapa framework untuk membangun aplikasi desktop pada Python. PySimple GUI adalah framework Python yang user friendly, PyQt5 adalah framework GUI berbasis python tingkat lanjut. Aplikasi desktop yang dikembangkan pada nantinya dapat dibuat kompatibel dengan suluruh OS utama (Linux, Windows, atau macOS).
3. Command Line
Dalam aplikasi command line, interaksi user sepenuhnya bergantung pada terminal & shell. Aplikasi ini hanya berfungsi pada Windows Console, tidak memiliki bentuk grafik serta tidak adanya user interface visual. Python developer harus memasukkan perintah tertentu, sementara itu, pengguna memberikan input kepada aplikasi dengan menggunakan karakter ASCII, lalu aplikasi pun memberikan output berupa ASCII.
Aplikasi command line ini robust dan powerfull tetapi tidak user friendly. Sekarang saatnya untuk mencoba program Python sederhana sebagaimana dijabarkan pada bagian selanjutnya.
Ide proyek program python sederhana
Ini adalah list untuk proyek pemrograman python sederhana yang cocok untuk pemula ataupun menengah.
Menebak Angka
Proyek ini adalah permainan yang cukup menyenangkan untuk pemula. Program ini memberikan nomor acak dari 1 hingga 10, 1 hingga 100 atau rentang apa pun yang telah ditentukan. Lalu, pengguna harus menebak nomor tersebut setelah mengikuti petunjuk dari komputer. Setiap kali tebakan salah, maka, pengguna akan diminta untuk memilih apakah membutuhkan lebih banyak petunjuk agar memudahkan dalam menebak angka dengan mengorbankan pengurangan skor. Simbol matematika pun seperti kelipatan, habis dibagi, lebih besar atau lebih kecil, atau kombinasi semuanya dapat dijadikan sebagai petunjuk.
Program ini pun membutuhkan fungsi untuk memeriksa apakah angka sebenarnya dimasukkan oleh pengguna atau tidak, lalu digunakan untuk membandingkan angka yang dimasukkan dengan angka sebenarnya, untuk mencari selisih antara kedua angka tersebut.
Kode:
""" Program python sederhana - Menebak angka----------------------------------------"""import randomattempts_list = []def show_score(): if len(attempts_list) <= 0: print("Saat ini belum ada skor tertinggi, kesempatan Anda untuk mengambilnya!") else: print("Skor tertinggi saat ini adalah {} percobaan".format(min(attempts_list)))def start_game(): random_number = int(random.randint(1, 10)) print("Halo petualang! Selamat datang pada permainan tebak-tebakan angka!") player_name = input("Siapa nama Anda? ") wanna_play = input("Hi, {}, apakah Anda ingin bermain tebak angka? (Tulis Ya/Tidak) ".format(player_name)) attempts = 0 show_score() while wanna_play.lower() == "ya": try: guess = input("Pilih angka antara 1 dan 10: ") if int(guess) < 1 or int(guess) > 10: raise ValueError("Silahkan tebak angka di antara nya") if int(guess) == random_number: print("Selamat! Anda benar!") attempts += 1 attempts_list.append(attempts) print("Anda melakukannya dengan {} percobaan".format(attempts)) play_again = input("Apakah Anda ingin bermain lagi? (Tulis Ya/Tidak) ") attempts = 0 show_score() random_number = int(random.randint(1, 10)) if play_again.lower() == "tidak": print("Terima kasih, sampai jumpa kembali!") break elif int(guess) > random_number: print("Angkanya lebih kecil") attempts += 1 elif int(guess) < random_number: print("Angkanya lebih besar") attempts += 1 except ValueError as err: print("Oh tidak!, ini nilai yang salah. Silahkan mencoba lagi...") print("({})".format(err)) else: print("Selamat, telah bermain game ini!")if __name__ == '__main__': start_game()
Gunting batu kertas
Program atau mini-game ini dirancang saat Anda tidak memiliki kawan untuk bermain atau Anda sedang sendirian, lebih tepat nya untuk jomblo yang merana, hehe. Ada sejumlah fungsi yang dibutuhkan untuk membuat program ini, oleh karena itu mari kita lihat gambaran umumnya.
- Fungsi acak: untuk menghasilkan batu, kertas, atau gunting.
- Fungsi valid: untuk memeriksa validitas perpindahan.
- Fungsi hasil: untuk mengumumkan pemenang.
- Pencatat skor: untuk menghitung skor.
Program ini mengharuskan pengguna untuk melakukan langkah pertama sebelum membuat satu gerakan. Setelah langkah validasi, input akan dievaluasi. Input yang dimasukkan bisa berupa string atau alfabet. Setelah mengevaluasi input string, pemenang ditentukan oleh fungsi hasil. Lalu, skor babak akan diperbarui oleh fungsi pencatat skor.
Kode:
# -*- coding: utf-8 -*-"""Program python sederhana - Gunting batu kertas"""from random import randint#create a list of play optionst = ["Batu", "Kertas", "Gunting"]#assign a random play to the computercomputer = t[randint(0,2)]#set player to Falseplayer = Falsewhile player == False:#set player to True player = input("Batu, Gunting, Kertas?") if player == computer: print("Seri!") elif player == "Batu": if computer == "Kertas": print("Anda Kalah!", computer, "menutup", player) else: print("Anda Menang!", player, "memukul", computer) elif player == "Kertas": if computer == "Gunting": print("Anda Kalah!", computer, "memotong", player) else: print("Anda Menang!", player, "menutup", computer) elif player == "Gunting": if computer == "Batu": print("Anda Kalah...", computer, "memukul", player) else: print("Anda Menang!", player, "memotong", computer) else: print("Input tidak valid. Perhatikan penulisan Anda!") #player was set to True, but we want it to be False so the loop continues player = False computer = t[randint(0,2)]
Pemblokir situs web
Kita semua tahu bahwa saat browsing di internet banyak situs yang tidak diinginkan muncul yang dapat mengalihkan perhatian kita. Program ini dapat membantu kita dalam situasi tersebut. Program python sederhana ini dibangun untuk memblokir situs web tertentu agar tidak dapat dibuka. Program ini bermanfaat bagi orang-orang yang perhatiannya mudah teralihkan ke situs media sosial saat melakukan suatu pekerjaan yang serius.
Kode:
""" Program python sederhana - Website Blocker----------------------------------------"""import timefrom datetime import datetime as dt#r adalah raw untuk stringhosts_path = r"C://Windows//System32//drivers//etc" hosts_temp = "hosts"redirect = "127.0.0.1"#User dapat memilih website yang akan di blokweb_sites_list = ["www.facebook.com", "facebook.com"] while True: if dt(dt.now().year, dt.now().month, dt.now().day, 9) < dt.now() < dt(dt.now().year, dt.now().month, dt.now().day,22): print("Waktu kerja") with open(hosts_path, "r+") as file: content = file.read() for website in web_sites_list: if website in content: pass else: file.write(redirect+" "+website+"\n") else: print("Fun time") with open(hosts_path, "r+") as file: content = file.readlines() file.seek(0) # reset pointer ke bagian atas file text for line in content: # overwrite seluruh file if not any(website in line for website in web_sites_list): file.write(line) file.truncate() # Baris ini di gunakan untuk menghapus baris (termasuk DNS) time.sleep(5)
Algoritma pencarian bilangan biner
Nama tersebut cukup jelas untuk memberikan gambaran umum tentang program tersebut. Program ini mengharuskan Anda untuk membuat daftar angka antara 0 hingga rentang apa pun yang Anda inginkan, dengan setiap angka berikutnya memiliki selisih 2 di antaranya.
Ketika pengguna memasukkan nomor acak yang akan dicari, program memulai pencariannya dengan membagi daftar angka menjadi dua bagian. Bagian pertama akan mencari nomor yang dibutuhkan, lalu, jika ditemukan separuh lainnya akan ditolak, begitupun sebaliknya. Pencarian berlanjut hingga nomor tersebut ditemukan atau ukuran subarray nya menjadi nol. Ide pembuatan program Python sederhana ini pun dapat membantu Anda untuk mencari elemen dalam suatu daftar.
Kode:
""" Program python sederhana - Algoritma pencari bilangan biner----------------------------------------"""# implementasi pencarian bilangan biner secara iteratif pada Pythondef binary_search(a_list, item): # """Melakukan bilangan biner secara iteratif untuk menemukan posisi dari integer pada list yg terurut # a_list -- list dari integer yang terurut # item -- integer yang anda cari pada posisi tertentu integer first = 0 last = len(a_list) - 1 while first <= last: i = (first + last) / 2 if a_list[i] == item: return ' ditemukan pada posisi '.format(item=item, i=i) elif a_list[i] > item: last = i - 1 elif a_list[i] < item: first = i + 1 else: return ' tidak di temukan di dalam list'.format(item=item)# Implementasi pencarian bilangan biner secara recursive pada Pythondef binary_search_recursive(a_list, item): # """Melakukan pencarian bilangan biner secara recursive dari integer pada list yang berurutan. # a_list -- list dari integer yang terurut # item -- integer yang anda cari pada posisi tertentu integer first = 0 last = len(a_list) - 1 if len(a_list) == 0: return ' tidak di temukan di dalam list'.format(item=item) else: i = (first + last) // 2 if item == a_list[i]: return ' ditemukan'.format(item=item) else: if a_list[i] < item: return binary_search_recursive(a_list[i+1:], item) else: return binary_search_recursive(a_list[:i], item)
Program python sederhana untuk Kalkulator
Dalam membuat program ini, Anda akan belajar mendesain UI grafis dan membuat Anda terbiasa dengan library seperti Tkinter. Library ini memungkinkan Anda untuk membuat tombol yang dapat melakukan operasi berbeda serta menampilkan hasilnya pada layar.
Kode:
""" Program python sederhana - Calculator----------------------------------------"""def addition (): print("Penambahan") n = float(input("Silahkan masukkan angka: ")) t = 0 ans = 0 while n != 0: ans = ans + n t+=1 n = float(input("Silahkan masukkan angka lain (masukkan 0 untuk menghitung): ")) return [ans,t]def subtraction (): print("Pengurangan") n = float(input("Silahkan masukkan angka: ")) t = 0 ans = 0 while n != 0: ans = ans - n t+=1 n = float(input("Silahkan masukkan angka lain (masukkan 0 untuk menghitung): ")) return [ans,t]def multiplication (): print("Perkalian") n = float(input("Silahkan masukkan angka: ")) t = 0 #Total number enter ans = 1 while n != 0: ans = ans * n t+=1 n = float(input("Silahkan masukkan angka lain (masukkan 0 untuk menghitung): ")) return [ans,t]def average(): an = [] an = addition() t = an[1] a = an[0] ans = a / t return [ans,t]while True: list = [] print(" Program Python pertamaku!") print(" Tulis 'a' untuk penambahan") print(" Tulis 's' untuk pengurangan") print(" Tulis 'm' untuk perkalian") print(" Tulis 'v' untuk average") print(" Tulis 'q' untuk keluar") c = input(" ") if c != 'q': if c == 'a': list = addition() print("Jawaban = ", list[0], " total inputs ",list[1]) elif c == 's': list = subtraction() print("Jawaban = ", list[0], " total inputs ",list[1]) elif c == 'm': list = multiplication() print("Jawaban = ", list[0], " total inputs ",list[1]) elif c == 'v': list = average() print("Jawaban = ", list[0], " total inputs ",list[1]) else: print ("Maaf, karakter tidak valid") else: break
Alarm Jam
Ini adalah aplikasi Python Command Line Interface (CLI) yang menarik untuk developer tingkat menengah dalam membuat program python sederhana. Orang-orang di seluruh dunia menggunakan fitur jam alarm pada perangkat mereka. Akan tetapi, program ini dapat diubah dengan cara yang sedikit berbeda. Beberapa link YouTube tertentu dapat ditambahkan ke dalam teks file. Lalu, program ditulis sedemikian rupa sehingga ketika pengguna menyetel alarm, maka kode akan memilih link secara acak, lalu, akan mulai memutar link YouTube tersebut.
Kode:
""" Program python sederhana - Alarm Clock----------------------------------------"""import datetimeimport osimport timeimport randomimport webbrowser# Jika video URL tidak ada, maka buatlah yang baru dengan script di bawah iniif not os.path.isfile("youtube_alarm_videos.txt"): print('Creating "youtube_alarm_videos.txt"...') with open("youtube_alarm_videos.txt", "w") as alarm_file: alarm_file.write("https://www.youtube.com/watch?v=HQaCF2F_MRo")def check_alarm_input(alarm_time): """Memeriksa apakah user telah memasukkan waktu alarm yang valid""" if len(alarm_time) == 1: # [Hour] Format if alarm_time[0] < 24 and alarm_time[0] >= 0: return True if len(alarm_time) == 2: # [Hour:Minute] Format if alarm_time[0] < 24 and alarm_time[0] >= 0 and \ alarm_time[1] < 60 and alarm_time[1] >= 0: return True elif len(alarm_time) == 3: # [Hour:Minute:Second] Format if alarm_time[0] < 24 and alarm_time[0] >= 0 and \ alarm_time[1] < 60 and alarm_time[1] >= 0 and \ alarm_time[2] < 60 and alarm_time[2] >= 0: return True return False# User input untuk waktu alarmprint("Set waktu alarm (Contoh 06:30 or 18:30:00)")while True: alarm_input = input(">> ") try: alarm_time = [int(n) for n in alarm_input.split(":")] if check_alarm_input(alarm_time): break else: raise ValueError except ValueError: print("ERROR: Masukkan format waktu dengan HH:MM atau HH:MM:SS")# Konversi waktu alarm dari [H:M] atau [H:M:S] ke dalam detikseconds_hms = [3600, 60, 1] # Jumlah detik dalam jam, menit dan detikalarm_seconds = sum([a*b for a,b in zip(seconds_hms[:len(alarm_time)], alarm_time)])#Waktu hari ini dalam detiknow = datetime.datetime.now()current_time_seconds = sum([a*b for a,b in zip(seconds_hms, [now.hour, now.minute, now.second])])# Hitung jumlah detik hingga alarm berhentitime_diff_seconds = alarm_seconds - current_time_seconds# Jika perbedaan waktunya adalah negatif, set alarm untuk hari selanjutnyaif time_diff_seconds < 0: time_diff_seconds += 86400 # jumlah detik dalam satu hari# Tampilkan jumlah waktu hingga alarm berbunyiprint("Alarm akan berbunyi dalam %s" % datetime.timedelta(seconds=time_diff_seconds))# Sleep mode hingga alarm berbunyitime.sleep(time_diff_seconds)# Waktu alarm berbunyiprint("Ayo bangun!")# Load daftar video URLwith open("youtube_alarm_videos.txt", "r") as alarm_file: videos = alarm_file.readlines()# Buka random video dari listwebbrowser.open(random.choice(videos))
Tic-Tac-Toe
Game ini sangat populer di antara kita semua dan bahkan menyenangkan untuk dibuat sebagai program Python.
Ini adalah permainan antara dua pemain yang terdiri dari sembilan kotak. Setiap pemain memilih gerakan mereka dengan O atau X dan menandai kotak mereka di setiap kesempatan. Pemain yang berhasil membuat tanda dalam satu baris, baik secara diagonal, horizontal, atau vertikal akan menang. Tantangan bagi pemain lain adalah memblokir permainan lawannya dan juga untuk membuat rantai.
Untuk membuat program ini dengan Python, maka, kita dapat menggunakan library Pygame yang telah dimuat dengan grafik dan suara komputer.
Kode:
""" Program python sederhana - Tic Tac Toe----------------------------------------"""import randomimport sysboard=[i for i in range(0,9)]player, computer = '',''# Pojok, tengah dan lokasi lainnya, berturut-turutmoves=((1,7,3,9),(5,),(2,4,6,8))# Kombinasi pemenangwinners=((0,1,2),(3,4,5),(6,7,8),(0,3,6),(1,4,7),(2,5,8),(0,4,8),(2,4,6))# Tabeltab=range(1,10)def print_board(): x=1 for i in board: end = ' | ' if x%3 == 0: end = ' \n' if i != 1: end+='---------\n'; char=' ' if i in ('X','O'): char=i; x+=1 print(char,end=end)def select_char(): chars=('X','O') if random.randint(0,1) == 0: return chars[::-1] return charsdef can_move(brd, player, move): if move in tab and brd[move-1] == move-1: return True return Falsedef can_win(brd, player, move): places=[] x=0 for i in brd: if i == player: places.append(x); x+=1 win=True for tup in winners: win=True for ix in tup: if brd[ix] != player: win=False break if win == True: break return windef make_move(brd, player, move, undo=False): if can_move(brd, player, move): brd[move-1] = player win=can_win(brd, player, move) if undo: brd[move-1] = move-1 return (True, win) return (False, False)# Komputer AI menggunakan function di bawah inidef computer_move(): move=-1 # Jika saya menang, yang lain tidak dihiraukan. for i in range(1,10): if make_move(board, computer, i, True)[1]: move=i break if move == -1: # Jika player menang, lakukan penghadangan. for i in range(1,10): if make_move(board, player, i, True)[1]: move=i break if move == -1: # Mencoba mengambil posisi yang di inginkan. for tup in moves: for mv in tup: if move == -1 and can_move(board, computer, mv): move=mv break return make_move(board, computer, move)def space_exist(): return board.count('X') + board.count('O') != 9player, computer = select_char()print('Player adalah [%s] dan komputer adalah [%s]' % (player, computer))result='%%% Seri ! %%%'while space_exist(): print_board() print('#Silahkan memulai duluan ! [1-9] : ', end='') move = int(input()) moved, won = make_move(board, player, move) if not moved: print(' >> Input tidak valid ! Coba lagi !') continue if won: result='*** Selamat ! Anda memenangkannya ! ***' break elif computer_move()[1]: result='=== Maaf Anda kalah! Silahkan mencoba lagi di lain kesempatan ! ==' break;print_board()print(result)
Konversi Mata Uang
Ini adalah program langsung dengan GUI sederhana. Nama tersebut cukup jelas menggambarkan peran program ini untuk mengubah mata uang dari satu unit ke unit lainnya. Misalnya, mengkonversi rupiah ke USD atau euro.
Tkinter, merupakan interface standar Python yang dapat digunakan untuk merancang dan mengembangkan aplikasi ini.
Kode:
""" Program python sederhana - Currency Converter----------------------------------------"""import urllib.requestimport jsondef currency_converter(currency_from, currency_to, currency_input): # Yahoo sudah tidak membuka api currency converter. yql_base_url = "https://query.yahooapis.com/v1/public/yql" yql_query = 'select%20*%20from%20yahoo.finance.xchange%20where%20pair' \ '%20in%20("'+currency_from+currency_to+'")' yql_query_url = yql_base_url + "?q=" + yql_query + "&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys" try: yql_response = urllib.request.urlopen(yql_query_url) try: json_string = str(yql_response.read()) json_string = json_string[2:] json_string = json_string[:-1] print(json_string) yql_json = json.loads(json_string) last_rate = yql_json['query']['results']['rate']['Rate'] currency_output = currency_input * float(last_rate) return currency_output except (ValueError, KeyError, TypeError): print(yql_query_url) return "JSON format error" except IOError as e: print(str(e))currency_input = 1currency_from = "USD"currency_to = "IDR"rate = currency_converter(currency_from, currency_to, currency_input)print(rate)
Kesimpulan
Itulah contoh-contoh program python sederhana yang dapat Anda coba untuk meningkatkan pemahaman dalam menggunakan bahasa pemrograman Python. Semoga latihan membuat program tersebut dapat membantu Anda dalam menyelesaikan masalah-masalah yang sedang di hadapi.
Artikel lain mengenai Python:
Visualisasi Data
Tensorflow Object Detection
Comments
Post a Comment