Fakultas Ilmu Komputer UI
Skip to content
GitLab
Menu
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
1c24aeff
Commit
1c24aeff
authored
Apr 24, 2020
by
Ahmad Dzikrul Fikri
Browse files
Tugas Pemrograman 9 - Soal 3
parent
d39a3db1
Changes
2
Expand all
Show whitespace changes
Inline
Side-by-side
TP9_1806196806.py
View file @
1c24aeff
def
simpan_file
():
import
urllib.request
def
simpan_db
():
try
:
result_f
=
open
(
"pembeli.txt"
)
data_baru
=
open
(
'
TP9_2_1806196806.txt
'
,
'w'
)
import
kvdb
#library kvdb di import di dalam fungsi karena library ini membutuhkan koneksi internet dan saat koneksi internet terputus, akan muncul pesan "koneksi internet terputus"
result_f
=
open
(
"
TP9_2_1806196806.txt
"
)
for
line
in
result_f
:
s
=
{}
line
=
line
.
replace
(
'
\n
'
,
''
)
(
id_pelanggan
,
s
[
'nama_depan'
],
s
[
'nama_belakang'
],
s
[
'tempat_tinggal'
],
s
[
'jumlah_pembelian'
],
s
[
'level_keanggotaan'
])
=
line
.
split
()
for
keys
in
s
:
data_baru
.
write
(
'pembeli:'
+
id_pelanggan
+
':'
+
keys
+
'='
+
s
[
keys
]
+
'
\n
'
)
data_baru
.
close
()
except
TypeError
:
print
(
'input ke dalam file harus berupa string'
)
key
,
value
=
line
.
split
(
'='
)
kvdb
.
db_set
(
'UhHzASg8tRdxHtYqiQxrQ3'
,
key
,
value
)
result_f
.
close
()
except
FileNotFoundError
:
print
(
'
\n
File tidak ditemukan'
)
print
(
'Pastikan file pembeli.txt berada dalam folder yang sama dengan script ini'
)
print
(
'Pastikan juga terminal anda terhubung dengan folder ini
\n
'
)
print
(
'keluar dari program'
)
except
:
print
(
'koneksi internet terputus'
)
def
select_data
(
nama_atribut
,
nama_tabel
,
token
=
'UhHzASg8tRdxHtYqiQxrQ3'
):
try
:
import
kvdb
list_id
=
[]
id_fix
=
[]
data
=
kvdb
.
db_get_key_list
(
token
)
for
item
in
range
(
len
(
data
)):
if
data
[
item
].
startswith
(
nama_tabel
):
id_data
=
data
[
item
].
split
(
':'
)
list_id
.
append
(
id_data
[
1
])
simpan_file
()
\ No newline at end of file
for
i
in
range
(
len
(
list_id
)):
if
list_id
[
i
]
!=
list_id
[
i
-
1
]:
id_fix
.
append
(
int
(
list_id
[
i
]))
id_fix
.
sort
()
hash_file
=
kvdb
.
db_get
(
token
)
keluaran
=
''
for
id_input
in
id_fix
:
key
=
nama_tabel
+
':'
+
str
(
id_input
)
+
':'
+
nama_atribut
result
=
hash_file
[
key
]
keluaran
=
keluaran
+
str
(
result
)
+
'
\n
'
return
keluaran
except
KeyError
:
print
(
'data tidak ditemukan'
)
except
:
print
(
'Koneksi internet terputus'
)
def
select_top
(
jumlah
,
nama_tabel
):
data
=
select_data
(
'jumlah_pembelian'
,
nama_tabel
)
data
=
data
.
split
(
'
\n
'
)
data
[
-
1
:]
=
[]
for
index
in
range
(
len
(
data
)):
data
[
index
]
=
int
(
data
[
index
])
data
.
sort
(
reverse
=
True
)
for
i
in
range
(
jumlah
):
print
(
data
[
i
])
atribut
=
[
'nama_depan'
,
'nama_belakang'
,
'tempat_tinggal'
,
'jumlah_pembelian'
,
'level_keanggotaan'
]
print
(
'pilihan atribut: '
)
print
(
atribut
)
print
(
'
\n
format input:
\n
SELECT [nama_atribut] FROM [nama_tabel]
\n
SELECT TOP [n_atribut_teratas] jumlah pembelian from [nama_tabel]
\n
'
)
pilihan
=
input
(
'masukkan input (jika ingin keluar dari program, ketik
\'
keluar
\'
):'
).
lower
()
input_eror
=
True
while
input_eror
==
True
:
try
:
if
pilihan
.
startswith
(
'select top'
):
pilihan
=
pilihan
.
split
()
if
pilihan
[
2
].
isdecimal
()
==
True
and
\
pilihan
[
3
]
==
'jumlah'
and
\
pilihan
[
4
]
==
'pembelian'
and
\
pilihan
[
5
]
==
'from'
and
\
pilihan
[
-
1
]
==
'pembeli'
:
select_top
(
int
(
pilihan
[
2
]),
pilihan
[
-
1
])
input_eror
=
False
else
:
print
(
'input anda salah
\n
'
)
pilihan
=
input
(
'masukkan input:'
).
lower
()
elif
pilihan
.
startswith
(
'select'
):
pilihan
=
pilihan
.
split
()
atribut_ditemukan
=
pilihan
[
1
]
in
atribut
if
atribut_ditemukan
==
True
and
pilihan
[
2
]
==
'from'
and
pilihan
[
-
1
]
==
'pembeli'
:
print
(
select_data
(
pilihan
[
1
],
pilihan
[
3
]))
input_eror
=
False
else
:
print
(
'input anda salah
\n
'
)
pilihan
=
input
(
'masukkan input:'
).
lower
()
elif
pilihan
==
'keluar'
:
print
(
'Terimakasih'
)
input_eror
=
False
else
:
print
(
'input anda salah
\n
'
)
pilihan
=
input
(
'masukkan input:'
).
lower
()
except
:
print
(
'input anda salah
\n
'
)
pilihan
=
input
(
'masukkan input:'
).
lower
()
\ No newline at end of file
TP9_2_1806196806.txt
deleted
100644 → 0
View file @
d39a3db1
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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