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.
Membangun proyek Python dapat membantu Anda dalam berbagai hal, beberapa di antaranya tercantum pada poin-poin di bawah ini:
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.
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.
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.
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).
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:
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.
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).
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.
Ini adalah list untuk proyek pemrograman python sederhana yang cocok untuk pemula ataupun menengah.
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 random
attempts_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()
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.
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 options
t = ["Batu", "Kertas", "Gunting"]
#assign a random play to the computer
computer = t[randint(0,2)]
#set player to False
player = False
while 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)]
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 time
from datetime import datetime as dt
#r adalah raw untuk string
hosts_path = r"C://Windows//System32//drivers//etc"
hosts_temp = "hosts"
redirect = "127.0.0.1"
#User dapat memilih website yang akan di blok
web_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)
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 Python
def 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 Python
def 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)
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
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 datetime
import os
import time
import random
import webbrowser
# Jika video URL tidak ada, maka buatlah yang baru dengan script di bawah ini
if 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 alarm
print("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 detik
seconds_hms = [3600, 60, 1] # Jumlah detik dalam jam, menit dan detik
alarm_seconds = sum([a*b for a,b in zip(seconds_hms[:len(alarm_time)], alarm_time)])
#Waktu hari ini dalam detik
now = 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 berhenti
time_diff_seconds = alarm_seconds - current_time_seconds
# Jika perbedaan waktunya adalah negatif, set alarm untuk hari selanjutnya
if time_diff_seconds < 0:
time_diff_seconds += 86400 # jumlah detik dalam satu hari
# Tampilkan jumlah waktu hingga alarm berbunyi
print("Alarm akan berbunyi dalam %s" % datetime.timedelta(seconds=time_diff_seconds))
# Sleep mode hingga alarm berbunyi
time.sleep(time_diff_seconds)
# Waktu alarm berbunyi
print("Ayo bangun!")
# Load daftar video URL
with open("youtube_alarm_videos.txt", "r") as alarm_file:
videos = alarm_file.readlines()
# Buka random video dari list
webbrowser.open(random.choice(videos))
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 random
import sys
board=[i for i in range(0,9)]
player, computer = '',''
# Pojok, tengah dan lokasi lainnya, berturut-turut
moves=((1,7,3,9),(5,),(2,4,6,8))
# Kombinasi pemenang
winners=((0,1,2),(3,4,5),(6,7,8),(0,3,6),(1,4,7),(2,5,8),(0,4,8),(2,4,6))
# Tabel
tab=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 chars
def can_move(brd, player, move):
if move in tab and brd[move-1] == move-1:
return True
return False
def 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 win
def 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 ini
def 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') != 9
player, 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)
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.request
import json
def 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 = 1
currency_from = "USD"
currency_to = "IDR"
rate = currency_converter(currency_from, currency_to, currency_input)
print(rate)
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