PROGRAM PYTHON SEDERHANA MENGGUNAKAN STRUKTUR DATA
Nama : Sevira Topiti
NIM : 412424026
Kelas : B
Tugas : Algoritma Dan Pemrograman
Pengertian Struktur Data
Struktur data adalah cara khusus untuk mengorganisir dan menyimpan data yang memberikan kerangka kerja dalam menyimpan data secara terstruktur, memungkinkan data akan disimpan dan diakses dengan cara yang logis dan teratur. Struktur data juga dapat diakses dan digunakan secara efisien yaitu ketika struktur data sudah tepat maka dapat meningkatkan efisiensi program. Contohnya, ketika sturuktur data tertentu dirancang untuk pencarian data yang cepat, sementara yang lain dioptimalkan untuk penyisipan atau penghapusan data yang efisien.
Terdapat berbagai jenis struktur data, masing-masing dengan kelebihan dan kekurangannya sendiri. Beberapa jenis yang umum termasuk array, linked list, stack, queue, tre, dan graph. Kemudian memilih struktur data yang tepat bergantung pada jenis data yang akan disimpan dan dioperasi yang akan dilakukan pada data tersebut. Lalu abstraksi yaitu struktur data yang menyediakan tingkat abstraksi dan memungkinkan programmer untuk bekerja dengan data tanpa harus khawatir tentang detail implementasi penyimpanan data di memori.
Contoh Kode Program Sederhana
1. Kode Program Sederhana untuk Permainan Car Dealer
mobil = ["Honda Civic", "Toyota Camry", "Ford Mustang", "BMW X5", "Tesla Model S"]
: Baris ini mendefinisikan variabelmobil
sebagai sebuah list yang berisi nama-nama mobil yang tersedia di dealer. List ini digunakan untuk menyimpan data mobil yang dapat dibeli oleh pemain.def tampilkan_mobil()
: Fungsi ini bertanggung jawab untuk menampilkan daftar mobil yang tersedia kepada pemainprint("Mobil yang tersedia:")
: Mencetak judul"Mobil yang tersedia:"
ke layar.for i, mobil in enumerate(mobil):
: Melakukan loop melalui setiap elemen dalam list mobil menggunakanenumerate()
.enumerate()
memberikan indeks (mulai dari 0) dan nilai setiap elemen dalam list. Indeks disimpan dalam variabeli
dan nilai elemen disimpan dalam variabelmobil
.print(f"{i + 1}. {mobil}")
: Mencetak nomor urut (indeks + 1) dan nama mobil ke layar. Formatf-string
digunakan untuk menyisipkan nilai variabel ke dalam string.def jual_mobil()
: Fungsi ini digunakan untuk proses penjualan mobil.tampilkan_mobil()
: Menggunakan fungsitampilkan_mobil()
untuk menampilkan daftar mobil kepada pemain.pilihan = int(input("Pilih mobil yang ingin Anda beli (1-5): ")) - 1
: Memintainput
dari pemain untuk memilih mobil.Input
dikonversi ke tipe datainteger
menggunakanint()
dan dikurangi 1 untuk menyesuaikan dengan indeks listmobil
(yang dimulai dari 0).if 0 <= pilihan < len(mobil)
: : Memeriksa apakah pilihan pemain valid, yaitu berada dalam rentang indeks listmobil
.
Jika if 0 <= pilihan < len(mobil):
pilihan valid :
mobil_terpilih = mobil[pilihan]
: Mendapatkan nama mobil yang dipilih dari listmobil
menggunakan indeks pilihan.print(f"Anda telah membeli {mobil_terpilih}!")
: Mencetak pesan pembelian ke layar, memberitahu pemain mobil apa saja yang telah mereka beli.mobil.pop(pilihan)
: Menghapus mobil yang telah dibeli dari listmobil
menggunakanpop()
. Ini memastikan bahwa mobil yang sama tidak dapat dibeli dua kali.
else:
: Jika pilihan tidak valid :
print("Pilihan tidak valid.")
: Mencetak pesan kesalahan ke layar.
Loop utama
: Loop utama ini berguna untuk mengontrol alur permainan.
while len(mobil) > 0:
: Loop akan terus berjalan selama masih ada mobil di dalam list mobil.jual_mobil()
: Menggunakan fungsijual_mobil()
untuk memulai proses penjualan.if len(mobil) > 0:
: Memeriksa apakah masih ada mobil yang tersedia setelah penjualan.
input("Ingin membeli mobil lagi? (ya/tidak): ")
:
- Fungsi
input()
menampilkan pesan"Ingin membeli mobil lagi? (ya/tidak):"
ke layar, meminta pemain untuk memberikaninput
. - Pemain diharapkan untuk mengetik
"ya"
jika ingin membeli mobil lagi, atau"tidak"
jika ingin berhenti. Input
dari pemain (dalam bentuk string) akan dikembalikan oleh fungsiinput()
.
Jika masih ada mobil :
lanjut = input("Ingin membeli mobil lagi? (ya/tidak): ")
: Memintainput
dari pemain apakah mereka ingin membeli mobilelse: print("Semua mobil telah terjual!")
: Berfungsi sebagai penanda akhir permainan. Ini memberi tahu pemain bahwa semua mobil telah terjual dan tidak ada lagi yang bisa dibeli. Pesan ini ditampilkan ketika kondisiif
dalamloop
utama bernilaiFalse
, yang menandakan bahwa tidak ada lagi mobil yang tersedia dalam listmobil
.
2. Kode Program Sederhana untuk Mengelola Produk Katalog
def tampilkan_katalog(katalog):
: Mendefinisikan fungsitampilkan_katalog
yang menerima satu argumenkatalog
(dictionary)."""Menampilkan katalog produk."""
: Docstring yang menjelaskan fungsitampilkan_katalog
.if not katalog:
: Memeriksa apakah dictionarykatalog
kosong.print("Katalog kosong.")
: Jikakatalog
kosong, cetak pesan"Katalog kosong."
return
: Jikakatalog
kosong, maka akan keluar dari fungsi.print("Katalog Produk:")
: Jikakatalog
tidak kosong, maka akan di cetak judul"Katalog Produk:".
for kode, produk in katalog.items():
:Loop
melalui setiap pasangan kunci-nilai (kode produk dan detail produk) dalam dictionarykatalog
menggunakanitems()
.print(f"{kode}: {produk['nama']} - Harga: {produk['harga']}")
: Cetak informasi produk (kode, nama, dan harga) menggunakanf-string.
def tambah_produk(katalog):
: Mendefinisikan fungsitambah_produk
yang menerima satu argumenkatalog
."""Menambahkan produk baru ke katalog."""
: Docstring yang menjelaskan fungsitambah_produk
kode = input("Masukkan kode produk: ")
: Memintainput
kode produk dari pengguna dan menyimpannya dalamvariabel
kode
.nama = input("Masukkan nama produk: ")
: Memintainput
nama produk dari pengguna dan menyimpannya dalamvariabel nama
.harga = float(input("Masukkan harga produk: "))
: Memintainput
harga produk dari pengguna, mengonversinya ke tipe datafloat
, dan menyimpannya dalamvariabel harga
.katalog[kode] = {"nama": nama, "harga": harga}
: Menambahkan produk baru ke dictionarykatalog
dengankode
sebagai kunci dan dictionary berisinama
dan harga sebagainilai
.print(f"Produk {nama} telah ditambahkan.")
: Cetak pesan konfirmasi bahwa produk telah ditambahkan.def hapus_produk(katalog):
: Mendefinisikan fungsihapus_produk
yang menerima satu argumenkatalog
."""Menghapus produk dari katalog."""
: Docstring yang menjelaskan fungsihapus_produk
.kode = input("Masukkan kode produk yang ingin dihapus: ")
: Memintainput kode
produk yang ingin dihapus dari pengguna dan menyimpannya dalamvariabel kode
.