Fakultas Ilmu Komputer UI
Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Ahmad Dzikrul Fikri
1806196806-DDP1
Commits
98ca2590
Commit
98ca2590
authored
Apr 16, 2020
by
Ahmad Dzikrul Fikri
Browse files
Tugas Pemrograman 8 - Soal 2 Tahap 1
parent
8a35df6a
Changes
2
Hide whitespace changes
Inline
Side-by-side
TP8_1_1806196806.py
deleted
100644 → 0
View file @
8a35df6a
def
beli_gas
(
nama_pembeli
,
jumlah_pembelian
,
alamat
):
try
:
data
=
open
(
alamat
)
data_input
=
[]
ditemukan
=
False
for
line
in
data
:
nama
,
jumlah
=
line
.
split
()
if
nama
.
lower
()
==
nama_pembeli
:
ditemukan
=
True
jumlah
=
int
(
jumlah
)
+
jumlah_pembelian
print
(
'Total pembelian'
,
nama
,
'adalah'
,
jumlah
)
data_input
.
append
(
nama
+
' '
+
str
(
jumlah
))
if
ditemukan
==
False
:
data_input
.
append
(
nama_pembeli
+
' '
+
str
(
jumlah_pembelian
))
print
(
'Total pembelian'
,
nama_pembeli
,
'adalah'
,
jumlah_pembelian
)
data
.
close
()
data_baru
=
open
(
'TP8_1_1806196806.txt'
,
'w'
)
for
i
in
range
(
len
(
data_input
)):
data_baru
.
write
(
data_input
[
i
]
+
'
\n
'
)
data_baru
.
close
()
except
TypeError
:
print
(
'input ke dalam file harus berupa string'
)
except
FileNotFoundError
:
print
(
'
\n
File tidak ditemukan'
)
print
(
'Pastikan file input_order2.txt berada dalam folder yang sama dengan script ini'
)
print
(
'Pastikan juga terminal anda terhubung dengan folder ini
\n
'
)
print
(
'Silahkan keluar dulu dari program'
)
def
refund_gas
(
nama_pembeli
,
jumlah_refund
,
alamat
):
try
:
data
=
open
(
alamat
)
data_input
=
[]
ditemukan
=
False
for
line
in
data
:
nama
,
jumlah
=
line
.
split
()
if
nama
.
lower
()
==
nama_pembeli
:
jumlah
=
int
(
jumlah
)
-
jumlah_refund
print
(
'Total pembelian'
,
nama
,
'adalah'
,
jumlah
)
ditemukan
=
True
if
int
(
jumlah
)
>
0
:
data_input
.
append
(
nama
+
' '
+
str
(
jumlah
))
if
ditemukan
==
False
:
print
(
nama_pembeli
,
'belum membeli apapun'
)
data
.
close
()
data_baru
=
open
(
'TP8_1_1806196806.txt'
,
'w'
)
for
i
in
range
(
len
(
data_input
)):
data_baru
.
write
(
data_input
[
i
]
+
'
\n
'
)
data_baru
.
close
()
except
TypeError
:
print
(
'input ke dalam file harus berupa string'
)
except
FileNotFoundError
:
print
(
'
\n
File tidak ditemukan'
)
print
(
'Pastikan file input_order2.txt berada dalam folder yang sama dengan script ini'
)
print
(
'Pastikan juga terminal anda terhubung dengan folder ini
\n
'
)
print
(
'Silahkan keluar dulu dari program'
)
def
input_awal
():
print
(
"
\n
pilihan :
\n\t
beli
\n\t
refund
\n\t
keluar"
)
pilihan
=
input
(
"Masukkan pilihan :"
).
lower
()
return
pilihan
def
cek_nama_eror
():
input_nama_eror
=
True
while
input_nama_eror
==
True
:
nama_input
=
input
(
'masukkan nama anda:'
).
lower
()
if
nama_input
.
isalpha
()
==
True
:
input_nama_eror
=
False
else
:
print
(
'
\n
nama harus berupa huruf tanpa angka
\n
'
)
return
nama_input
def
cek_input_angka_eror
():
input_pembelian_eror
=
True
while
input_pembelian_eror
==
True
:
try
:
angka
=
int
(
input
(
'masukkan jumlah:'
))
input_pembelian_eror
=
False
except
:
print
(
'input harus berupa angka tanpa huruf'
)
return
angka
pilihan
=
input_awal
()
alamat_file
=
'input_order2.txt'
while
pilihan
!=
'keluar'
:
if
pilihan
==
'beli'
:
nama_input
=
cek_nama_eror
()
pembelian
=
cek_input_angka_eror
()
while
pembelian
<=
0
:
print
(
'
\n
Permintaan harus lebih besar dari 0
\n
'
)
pembelian
=
cek_input_angka_eror
()
beli_gas
(
nama_input
,
pembelian
,
alamat_file
)
pilihan
=
input_awal
()
elif
pilihan
==
'refund'
:
nama_input
=
cek_nama_eror
()
permintaan_refund
=
cek_input_angka_eror
()
while
permintaan_refund
<=
0
:
print
(
'
\n
Permintaan harus lebih besar dari 0
\n
'
)
permintaan_refund
=
cek_input_angka_eror
()
refund_gas
(
nama_input
,
permintaan_refund
,
alamat_file
)
pilihan
=
input_awal
()
else
:
print
(
"Input anda salah, silahkan masukkan pilihan sesuai pilihan"
)
pilihan
=
input_awal
()
alamat_file
=
'TP8_1_1806196806.txt'
\ No newline at end of file
TP8_2_1806196806.py
0 → 100644
View file @
98ca2590
def
sorting
(
data
):
return
data
[
1
]
def
get_koperasi
(
minimal_pesan
,
huruf_beruntung
):
# TODO
hash_result
=
{}
try
:
result_f
=
open
(
'TP8_1_1806196806.txt'
)
jumlah_cashback
=
0
for
line
in
result_f
:
(
nama
,
jumlah
)
=
line
.
split
()
lower_nama
=
nama
.
lower
()
if
lower_nama
.
startswith
(
huruf_beruntung
)
==
True
and
int
(
jumlah
)
>
minimal_pesan
:
diskon_pelanggan_setia
=
16000
*
int
(
jumlah
)
*
0.2
diskon_huruf_beruntung
=
(
16000
*
int
(
jumlah
)
-
diskon_pelanggan_setia
)
*
0.1
cashback
=
diskon_pelanggan_setia
+
diskon_huruf_beruntung
harga
=
16000
*
int
(
jumlah
)
-
cashback
elif
lower_nama
.
startswith
(
huruf_beruntung
)
==
True
:
cashback
=
16000
*
int
(
jumlah
)
*
0.1
harga
=
16000
*
int
(
jumlah
)
-
cashback
elif
int
(
jumlah
)
>
minimal_pesan
:
cashback
=
16000
*
int
(
jumlah
)
*
0.2
harga
=
16000
*
int
(
jumlah
)
-
cashback
else
:
harga
=
int
(
jumlah
)
*
16000
hash_result
[
nama
+
' '
+
jumlah
]
=
int
(
harga
)
result_f
.
close
()
sorted_items
=
sorted
(
hash_result
.
items
(),
key
=
sorting
,
reverse
=
True
)
hash_result
=
dict
(
sorted_items
)
data_baru
=
open
(
'TP8_2_1806196806.txt'
,
'w'
)
for
keys
in
hash_result
.
keys
():
data_baru
.
write
(
keys
+
' '
+
str
(
hash_result
[
keys
])
+
'
\n
'
)
data_baru
.
close
()
except
TypeError
:
print
(
'input ke dalam file harus berupa string'
)
except
FileNotFoundError
:
print
(
'
\n
File tidak ditemukan'
)
print
(
'Pastikan file input_order2.txt berada dalam folder yang sama dengan script ini'
)
print
(
'Pastikan juga terminal anda terhubung dengan folder ini
\n
'
)
print
(
'keluar dari program'
)
def
cek_huruf_eror
():
input_huruf_eror
=
True
while
input_huruf_eror
==
True
:
huruf_input
=
input
(
'masukkan huruf depan dari nama pelanggan yang beruntung: '
).
lower
()
if
huruf_input
.
isalpha
()
==
True
:
input_huruf_eror
=
False
else
:
print
(
'
\n
input huruf harus berupa huruf tanpa angka
\n
'
)
return
huruf_input
def
cek_input_angka_eror
():
input_pembelian_eror
=
True
while
input_pembelian_eror
==
True
:
try
:
angka
=
int
(
input
(
'masukkan minimal pembelian untuk menjadi pelanggan tetap: '
))
input_pembelian_eror
=
False
except
:
print
(
'
\n
input harus berupa angka tanpa huruf
\n
'
)
return
angka
batas_pelanggan_tetap
=
cek_input_angka_eror
()
pelanggan_beruntung
=
cek_huruf_eror
()
get_koperasi
(
batas_pelanggan_tetap
,
pelanggan_beruntung
)
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment