You are on page 1of 8

Project Perpustakaan

VLP4
1. Variabel pada Python
2. Operator pada Python
3. Tipe Data pada Python
In [1]:
#Inisialisasi
Nama_buku_1="Fisika"
Nama_buku_2="Kimia"
Nama_buku_3="Biologi"
durasi=3
In [2]:
1_Nama_buku="Indonesia"
File "<ipython-input-2-a5cb5089b85f>", line 1
1_Nama_buku="Indonesia"
^
SyntaxError: invalid decimal literal

Error VLP4

Nama variabel tidak boleh menggunakan awalan angka dan simbol.\ Problem solving=Gunakan angka pada akhir nama variabel
In [3]:
type(Nama_buku_1),type(Nama_buku_2),type(Nama_buku_3), type(durasi)

Out[3]:
(str, str, str, int)
In [4]:
kode_buku_1="PS_001"
kode_buku_2="PS_002"
kode_buku_3="PS_003"
In [5]:
N_buku_1=N_buku_2=N_buku_3=10
In [6]:
type(N_buku_1)

Out[6]:
int

VLP6
1. list
2. tuple
3. dictionary
In [7]:
Nama_buku=(Nama_buku_1,Nama_buku_2,Nama_buku_3)
Kode_buku=[kode_buku_1,kode_buku_2,kode_buku_3]
N_buku=[N_buku_1, N_buku_2, N_buku_3]
In [8]:
type(Nama_buku), type(Kode_buku), type(N_buku)

Out[8]:
(tuple, list, list)
In [9]:
pustaka={"Nama":Nama_buku,
"Kode":Kode_buku,
"Jumlah":N_buku}
In [10]:
type(pustaka)

Out[10]:
dict
In [11]:
pustaka
Out[11]:
{'Nama': ('Fisika', 'Kimia', 'Biologi'),
'Kode': ['PS_001', 'PS_002', 'PS_003'],
'Jumlah': [10, 10, 10]}

Penambahan buku
In [12]:
pustaka['Nama'].append('Seni')
pustaka['Kode'].append('PS_004')
pustaka['Jumlah'].append(15)
print("Buku {} dengan jumlah {}".format(pustaka["Nama"][-1],
pustaka['Jumlah'][-1]))
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-12-36a9839f8003> in <module>
----> 1 pustaka['Nama'].append('Seni')
2 pustaka['Kode'].append('PS_004')
3 pustaka['Jumlah'].append(15)
4 print("Buku {} dengan jumlah {}".format(pustaka["Nama"][-1],
5 pustaka['Jumlah'][-1]))

AttributeError: 'tuple' object has no attribute 'append'

Error: VLP6

Tuple tidak bisa dimodifikasi, ditambah atau dikurangi. Sehingga harus hati-hati dalam memilih tipe data array. \ Problem Solving=Memilih
tipe data list, serta kita bisa pastikan tipe data yang telah kita pilih dengan instruksi type()
In [13]:
Nama_buku=[Nama_buku_1,Nama_buku_2,Nama_buku_3]
pustaka={"Nama":Nama_buku,
"Kode":Kode_buku,
"Jumlah":N_buku}
pustaka

Out[13]:
{'Nama': ['Fisika', 'Kimia', 'Biologi'],
'Kode': ['PS_001', 'PS_002', 'PS_003'],
'Jumlah': [10, 10, 10]}
In [14]:
pustaka['Nama'].append('Seni')
pustaka['Kode'].append('PS_004')
pustaka['Jumlah'].append(15)
print("Buku {} dengan jumlah {}".format(pustaka["Nama"][-1],
pustaka['Jumlah'][-1]))
Buku Seni dengan jumlah 15
In [15]:
pustaka

Out[15]:
{'Nama': ['Fisika', 'Kimia', 'Biologi', 'Seni'],
'Kode': ['PS_001', 'PS_002', 'PS_003', 'PS_004'],
'Jumlah': [10, 10, 10, 15]}

VLP8
1. Denda harga sewa perhari
2. Bila tersedia >1, boleh pinjam; else tidak boleh
In [16]:
print("Buku yang tersedia:")
print("Nama Buku\t Kode Buku\t Jumlah")
for i in range(len(pustaka['Nama'])):
print("Buku {}\t kode {}\t {}".format(
pustaka['Nama'][i],
pustaka['Kode'][i],
pustaka['Jumlah'][i]))
Buku yang tersedia:
Nama Buku Kode Buku Jumlah
Buku Fisika kode PS_001 10
Buku Kimia kode PS_002 10
Buku Biologi kode PS_003 10
Buku Seni kode PS_004 15
In [17]:
print("Form Peminjaman")
varNama=str(input("Nama Peminjam ="))
varBuku=str(input("Kode Buku= "))
for i in range(len(pustaka['Kode'])):
if varBuku==pustaka['Kode'][i] and pustaka['Jumlah'][i]>1:
print("Bisa pinjam".format(varNama))
print("Durasi waktu pinjam {} hari".format(durasi))
pustaka['Jumlah'][i]-=1
elif i==len(pustaka['Kode'])-1:
print("Tidak bisa dipinjam")
Form Peminjaman
Nama Peminjam =Brian
Kode Buku= PS_004
Bisa pinjam
Durasi waktu pinjam 3 hari

Error VLP4

Meskipun program tidak menunjukan eror, tapi progam yang dihasilkan tidak sesuai dengan yang diharapkan. Program mengeluarkan
keterangan Bisa dipinjam dan Tidak bisa dipinjam\ Problem Solving=Berikan break untuk mengeluarkan variabel yang if-kondisionalnya
sudah True. Sehingga, setelah if-kondisional bernilai True, sistem akan keluar dari proses for-loop.
In [18]:
print("Form Peminjaman")
varNama=str(input("Nama Peminjam ="))
varBuku=str(input("Kode Buku= "))
for i in range(len(pustaka['Kode'])):
if varBuku==pustaka['Kode'][i] and pustaka['Jumlah'][i]>1:
print("Bisa pinjam".format(varNama))
print("Durasi waktu pinjam {} hari".format(durasi))
pustaka['Jumlah'][i]-=1
break
elif i==len(pustaka['Kode'])-1:
print("Tidak bisa dipinjam")
Form Peminjaman
Nama Peminjam =Brian
Kode Buku= PS_004
Bisa pinjam
Durasi waktu pinjam 3 hari
In [19]:
pustaka

Out[19]:
{'Nama': ['Fisika', 'Kimia', 'Biologi', 'Seni'],
'Kode': ['PS_001', 'PS_002', 'PS_003', 'PS_004'],
'Jumlah': [10, 10, 10, 13]}
In [20]:
print("Form Pengembalian")
varNama=str(input("Nama Peminjam\t="))
varBuku=str(input("Kode Buku\t="))
varHari=int(input("Jumlah Hari\t="))
for i in range(len(pustaka['Kode'])):
if varBuku==pustaka['Kode'][i]:
if varHari>=durasi:
denda=(varHari-durasi)*1000
print("Terima kasih, {}\nDenda sebesar Rp.{}".format(varNama,denda))
pustaka['Jumlah'][i]+=1
break
else:
print("Terima kasih,{}".format(varNama))
pustaka['Jumlah'][i]+=1
break
elif i==len(pustaka['Kode'])-1:
print("Salah kode")
Form Pengembalian
Nama Peminjam =Brian
Kode Buku =PS_004
Jumlah Hari =4
Terima kasih, Brian
Denda sebesar Rp.1000
In [21]:
pustaka

Out[21]:
{'Nama': ['Fisika', 'Kimia', 'Biologi', 'Seni'],
'Kode': ['PS_001', 'PS_002', 'PS_003', 'PS_004'],
'Jumlah': [10, 10, 10, 14]}

VLP 10
1. Fungsi Peminjaman
2. Fungsi Pengembalian
3. Fungsi Data Terakhir
In [22]:
def Data_terakhir():
print("Buku yang tersedia:")
print("Nama Buku\t Kode Buku\t Jumlah")
for i in range(len(pustaka['Nama'])):
print("Buku {}\t kode {}\t {}".format(
pustaka['Nama'][i],
pustaka['Kode'][i],
pustaka['Jumlah'][i]))
In [23]:
Data_terakhir()
Buku yang tersedia:
Nama Buku Kode Buku Jumlah
Buku Fisika kode PS_001 10
Buku Kimia kode PS_002 10
Buku Biologi kode PS_003 10
Buku Seni kode PS_004 14
In [24]:
def peminjaman():
print("Form Peminjaman")
varNama=str(input("Nama Peminjam ="))
varBuku=str(input("Kode Buku= "))
for i in range(len(pustaka['Kode'])):
if varBuku==pustaka['Kode'][i] and pustaka['Jumlah'][i]>1:
print("Bisa pinjam".format(varNama))
print("Durasi waktu pinjam {} hari".format(durasi))
pustaka['Jumlah'][i]-=1
break
elif i==len(pustaka['Kode'])-1:
print("Tidak bisa dipinjam")
In [25]:
peminjaman()
Form Peminjaman
Nama Peminjam =Brian
Kode Buku= PS_003
Bisa pinjam
Durasi waktu pinjam 3 hari
In [30]:
def pengembalian(pustaka=pustaka):
print("Form Pengembalian")
varNama=str(input("Nama Peminjam\t="))
varBuku=str(input("Kode Buku\t="))
varHari=int(input("Jumlah Hari\t="))
for i in range(len(pustaka['Kode'])):
if varBuku==pustaka['Kode'][i]:
if varHari>=durasi:
denda=(varHari-durasi)*1000
print("Terima kasih, {}\nDenda sebesar Rp.{}".format(varNama,denda))
pustaka['Jumlah'][i]+=1
break
else:
print("Terima kasih,{}".format(varNama,denda))
pustaka['Jumlah'][i]+=1
break
elif i==len(pustaka['Kode'])-1:
print("Salah kode")
In [31]:
pengembalian()
Form Pengembalian
Nama Peminjam =Brian
Kode Buku =PS_001
Jumlah Hari =3
Terima kasih, Brian
Denda sebesar Rp.0
In [32]:
def tambah_buku(varBuku,varKode,varJumlah):
for i in range(len(pustaka['Kode'])):
if varKode==pustaka['Kode'][i]:
pustaka['Jumlah'][i]+=varJumlah
print("Buku {} dengan Jumlah {}".format(pustaka["Nama"][i],
pustaka['Jumlah'][i]))
break
else:
pustaka['Nama'].append(varBuku)
pustaka['Kode'].append(varKode)
pustaka['Jumlah'].append(varJumlah)

print("Buku Baru {} dengan Jumlah {}".format(pustaka["Nama"][-1],


pustaka['Jumlah'][-1]))
In [33]:
Judul="Seni"
Kode="PS_004"
Jumlah='7'

tambah_buku(Judul,Kode,Jumlah)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-33-024c20a9ad80> in <module>
3 Jumlah='7'
4
----> 5 tambah_buku(Judul,Kode,Jumlah)

<ipython-input-32-b10412b3da11> in tambah_buku(varBuku, varKode, varJumlah)


2 for i in range(len(pustaka['Kode'])):
3 if varKode==pustaka['Kode'][i]:
----> 4 pustaka['Jumlah'][i]+=varJumlah
5 print("Buku {} dengan Jumlah {}".format(pustaka["Nama"][i],
6 pustaka['Jumlah'][i]))

TypeError: unsupported operand type(s) for +=: 'int' and 'str'

Error VLP10

Error terjadi karena tipe data yang dijumlahkan tidak sesuai. Tipe data yang dimasukan adalah string.\ Problem Solving=Untuk semua variabel
yang memiliki ciri jumlah atau angka, selalu gunakan tipe data angka seperti integer atau float
In [34]:
Data_terakhir()
Buku yang tersedia:
Nama Buku Kode Buku Jumlah
Buku Fisika kode PS_001 11
Buku Kimia kode PS_002 10
Buku Biologi kode PS_003 9
Buku Seni kode PS_004 14
In [35]:
Judul="Seni"
Kode="PS_004"
Jumlah=7

tambah_buku(Judul,Kode,Jumlah)
Buku Seni dengan Jumlah 21
In [36]:
Data_terakhir()
Buku yang tersedia:
Nama Buku Kode Buku Jumlah
Buku Fisika kode PS_001 11
Buku Kimia kode PS_002 10
Buku Biologi kode PS_003 9
Buku Seni kode PS_004 21
In [37]:
Judul="Sastra"
Kode="PS_005"
Jumlah=5

tambah_buku(Judul,Kode,Jumlah)
Buku Baru Sastra dengan Jumlah 5
In [38]:
Data_terakhir()
Buku yang tersedia:
Nama Buku Kode Buku Jumlah
Buku Fisika kode PS_001 11
Buku Kimia kode PS_002 10
Buku Biologi kode PS_003 9
Buku Seni kode PS_004 21
Buku Sastra kode PS_005 5

VLP12
In [39]:
import pandas as pd
In [40]:
df=pd.DataFrame(pustaka)
In [41]:
df

Out[41]:
Nama Kode Jumlah

0 Fisika PS_001 11

1 Kimia PS_002 10

2 Biologi PS_003 9

3 Seni PS_004 21

4 Sastra PS_005 5

In [42]:
len(df)

Out[42]:
5
In [43]:
def peminjaman_df(durasi=durasi):
print("Form Peminjaman")
varNama=str(input("Nama Peminjam ="))
varBuku=str(input("Kode Buku= "))
for i in range(len(df)):
if (varBuku==df['Kode'].iloc[i] and df['Jumlah'].iloc[i]>1):
print("Bisa pinjam {}".format(varNama))
print("Durasi waktu pinjam {} hari".format(durasi))
df.at[i,'Jumlah']-=1
return df
break
elif i==len(df):
print("Tidak bisa dipinjam")
In [44]:
def pengembalian_df(durasi=durasi):
print("Form Pengembalian")
varNama=str(input("Nama Peminjam\t="))
varBuku=str(input("Kode Buku\t="))
varHari=int(input("Jumlah Hari\t="))
for i in range(len(df)):
if varBuku==df['Kode'].iloc[i]:
if varHari>=durasi:
denda=(varHari-durasi)*1000
print("Terima kasih, {}\nDenda sebesar Rp.{}".format(varNama,denda))
df.at[i,'Jumlah']+=1
return df
break
else:
print("Terima kasih,{}".format(varNama))
varBar=df['Jumlah'].iloc[i]
df.at[i,'Jumlah']+=1
return df
break
elif i==len(df)-1:
print("Salah kode")
In [45]:
def tambah_buku_df(varBuku,varKode,varJumlah):
for i in range(len(df)):
if varKode==df['Kode'].iloc[i]:
df.at[i,'Jumlah']+=varJumlah
return df
print("Buku {} dengan Jumlah {}".format(df["Nama"].iloc[i],
df['Jumlah'].iloc[i]))
break
else:
var1={"Nama":varBuku,
"Kode":varKode,
"Jumlah":varJumlah}
df=df.append(var1, ignore_index=True)
print("Buku Baru {} dengan Jumlah {}".format(df["Nama"].iloc[-1],
df['Jumlah'].iloc[-1]))
return df
In [46]:
df

Out[46]:
Nama Kode Jumlah

0 Fisika PS_001 11

1 Kimia PS_002 10

2 Biologi PS_003 9

3 Seni PS_004 21

4 Sastra PS_005 5

In [47]:
df=peminjaman_df()
Form Peminjaman
Nama Peminjam =Brian
Kode Buku= PS_004
Bisa pinjam Brian
Durasi waktu pinjam 3 hari
In [48]:
df

Out[48]:
Nama Kode Jumlah

0 Fisika PS_001 11

1 Kimia PS_002 10

2 Biologi PS_003 9

3 Seni PS_004 20

4 Sastra PS_005 5

In [49]:
Judul="Astronomi"
Kode="PS_006"
Jumlah=5

df=tambah_buku_df(Judul,Kode,Jumlah)
---------------------------------------------------------------------------
UnboundLocalError Traceback (most recent call last)
<ipython-input-49-2902473ddb1b> in <module>
3 Jumlah=5
4
----> 5 df=tambah_buku_df(Judul,Kode,Jumlah)

<ipython-input-45-96d98275c913> in tambah_buku_df(varBuku, varKode, varJumlah)


1 def tambah_buku_df(varBuku,varKode,varJumlah):
----> 2 for i in range(len(df)):
3 if varKode==df['Kode'].iloc[i]:
4 df.at[i,'Jumlah']+=varJumlah
5 return df

UnboundLocalError: local variable 'df' referenced before assignment

Error VLP12

Error terjadi karena tidak menemukan nama variabel df pada fungsi tambah_buku_df. Berbeda dengan fungsi sebelumnya, fungsi
tambah_buku_df melibatkan proses dataframe yang lebih kompleks karena ada penambahan data buku untuk kolom Nama, Kode dan Jumlah.\
Problem solving=Berikan parameter masukan berupa df, agar df bisa dikenali dan dimodifikasi oleh fungsi tamba_buku_df
In [50]:
def tambah_buku_df(varBuku,varKode,varJumlah,df=df):
for i in range(len(df)):
if varKode==df['Kode'].iloc[i]:
df.at[i,'Jumlah']+=varJumlah
return df
print("Buku {} dengan Jumlah {}".format(df["Nama"].iloc[i],
df['Jumlah'].iloc[i]))
break
else:
var1={"Nama":varBuku,
"Kode":varKode,
"Jumlah":varJumlah}
df=df.append(var1, ignore_index=True)
print("Buku Baru {} dengan Jumlah {}".format(df["Nama"].iloc[-1],
df['Jumlah'].iloc[-1]))
return df
In [51]:
Judul="Astronomi"
Kode="PS_006"
Jumlah=5

df=tambah_buku_df(Judul,Kode,Jumlah)
Buku Baru Astronomi dengan Jumlah 5
In [52]:
df

Out[52]:
Nama Kode Jumlah

0 Fisika PS_001 11

1 Kimia PS_002 10

2 Biologi PS_003 9

3 Seni PS_004 20

4 Sastra PS_005 5

5 Astronomi PS_006 5

You might also like