Anda di halaman 1dari 13

KU 1102 / 25

TUGAS BESAR PENGENALAN KOMPUTASI


PROGRAM PINTU TOL

Disusun oleh :
Habsyi Assegaf-16619023
Putri Oktaviani-16619191
Rafi Ahmad Salim-16619209
Rusdianto Effendi-16619137
Samuel Christopel Silaban-16619119

Dosen : Eddy Rachman Gandanegara ST,MT

Fakultas Teknik Sipil dan Lingkungan

2019
DAFTAR ISI

DAFTAR ISI ……………………………………………………………………………… 1

BAB I PENDAHULUAN

1.1 Latar Belakang ……………………………………………………………….. 2


1.2 Rumusan Masalah ……………………………………………………………. 2
1.3 Maksud dan Tujuan ………………………………………………………….. 2
1.4 Batasan Masalah …………………………………………………………….... 2

BAB II PEMBAHASAN

2.1 Landasan Teori …………………………………………………………………3


2.1.1 If ……………………………………………………………………..3
2.1.2 If-Else ………………………………………………………………. 3
2.1.3 Array …………………………………………………………………3
2.1.4 Fungsi ………………………………………………………………..3
2.2 Dekomposisi Masalah …………………………………………………………. 4
2.3 Flowchart ………………………………………………………………………. 5
2.4 Algoritma ………………………………………………………………………. 7
2.5 Tampilan Program …………………………………………….………………. 8

BAB III PENUTUP

3.1 Kesimpulan ……………………………,,,,,…………………………………….11

3.2 Saran ………………………………...…………………………………………. 11

DAFTAR PUSTAKA ………………………………………………………………………………………………………………. 12

1
BAB I
PENDAHULUAN

1.1 Latar belakang


Jalan tol merupakan salah satu alternative yang digunakan untuk mengatasi
kemacetan yang semakin meningkat di Indonesia. Proyek pembangunan jalan tol semakin
ditingkatkan guna mengimbangi pergerakan masyarakat yang selalu mengalami perpindahan
dari satu tempat ke tempat lain. Salah satu langkah nyata yang dilakukan pemerintah saat ini
adalah dengan membangun tol Trans Jawa. Tol Trans Jawa ini menghubungkan Merak dan
Banyuwangi, berikut ini adalah ruas jalan tol yang menghubungkan, Tol Merak-Jakarta, tol
Tangerang-Jakarta, tol Jakarta outer ring road, tol Jakarta-Cikampek, tol Cikopo-Palimanan,
tol Palimanan-Kanci, tol Kanco-Pejagan, tol Pejagan-Pemalang, tol Pemalang-Batang, tol
Batang-Semarang, tol Semarang ABC, tol Semarang-Solo, tol Solo-Ngawi, tol Ngawi-
Kertosono, tol Kertosono-Mojokerto,tol Mojokerto-Surabaya, tol Surabaya-Gempol, Segmen
porong-Gempol, tol Gempol-Pasuruan(Grati),tol Gempol-Pandaan.
Di setiap batas antara dua ruas tol dipisahkan oleh gerbang tol, gerbang tol sendiri
merupakan bagian penting dari sistem jalan tol, yang berfungsi sebagai tempat
pembayaran tol bagi kendaraan yang akan menggunakan fasilitas jalan. 
Di sini kami akan membuat program pintu tol dalam rute yang mencakup kota-kota
besar seperti Kota Malang, Jakarta, Bandung, Jogja, serta Surabaya. Program ini akan
mengklasifiksikan kendaraan ke dalam tiga golongan, lalu akan ditentukan tarif tol nya.

1.2 Rumusan Masalah


1. Bagaimana cara merancang dan membuat progam pembayaran jalan tol dengan
python?
2. Bagaimana cara menjalankan progam pembayaran jalan tol?

1.3 Tujuan
1. Mempermudah proses pembayaran tol
2. Agar tidak sembarang kendaraan bisa masuk tol
1.4 Batasan Masalah
Batasan masalah yang kami buat dalam tugas ini adalah :
1. Program ini dibuat dengan menggunakan Python
2. Program ini menggunakan kondisi
3. Program ini menggunakan perulangan
4. Program ini menggunakan array
5. Program ini menggunakan subprogram fungsi

2
BAB II
PEMBAHASAN

2.1 Landasan Teori


Python adalah bahasa pemrograman interpretatif multiguna. Tidak seperti bahasa lain yang
susah untuk dibaca dan dipahami, python lebih menekankan pada keterbacaan kode agar
lebih mudah untuk memahami sintaks. Program ini menggunakan beberapa metode yang
diterapkan saat pengerjaannya. Berikut penjelasan metode atau statement-statement yang
digunakan dalam program ini.
2.1.1 If
Kondisi if digunakan untuk mengantisipasi kondisi yang terjadi saat jalannya program dan
menentukan tindakan apa yang akan diambil sesuai kondisi. Pada python ada beberapa
statement/kondisi diantaranya adalah if, else dan elif . Kondisi if digunakan untuk
mengeksekusi kode jika kondisi bernilai benar (true). Jika kondisi bernilai salah (false) maka
statement/kondisi if tidak akan di-eksekusi.
2.1.2 Looping
Di dalam bahasa pemrograman Python pengulangan dibagi menjadi 3 bagian, yaitu :

 While Loop
 For Loop
 Nested Loop

While Loop
Pengulangan While Loop di dalam bahasa pemrograman Python dieksesusi statement berkali-
kali selama kondisi bernilai benar atau true.
For Loop
Pengulangan for pada Python memiliki kemampuan untuk mengulangi item dari urutan
apapun, seperti list atau string.
Nested Loop
Bahasa pemrograman Python memungkinkan penggunaan satu lingkaran di dalam loop lain.
Bagian berikut menunjukkan beberapa contoh untuk menggambarkan konsep tersebut.
2.1.3 Array
Array mendefinisikan sekumpulan (satu atau lebih) elemen bertype sama. Setiap elemen
tersusun secara terurut (kontigu) dan dapat diakses dengan menggunakan indeks. Dalam
Python, ada beberapa cara mendeklarasikan array, salah satunya dengan mendeklarasikan
array dan mengisi dengan nilai default :
<nama-var> = [<default-val> for i in range (<n>)]
• Deklarasi array dengan nama <nama-var> dengan ukuran <n> dengan nilai setiap elemen
<default-val>. i adalah variabel untuk loop pengisian nilai default ke tiap elemen array.
• Type elemen tergantung pada type nilai <default-val>
• Elemen terurut berdasarkan indeks dari 0 s.d. n-1.
2.1.4 Fungsi
Fungsi merupakan salah satu subprogram dimana fungsi sendiri adalah pemetaan suatu nilai
domain (input) ke range (output). Hasil dari fungsi dinyatakan dalam sebuah type data yang
eksplisit. Setiap elemen pada himpunan domain dipetakan tepat satu ke sebuah elemen pada
himpunan range. Konsep fungsi di pemrograman didasari oleh konsep pemetaan dan fungsi

3
di matematika. Fungsi didefinisikan sebagai bagian terpisah dari program dan dipanggil
dalam program utama.

2.2 Dekomposisi Masalah

Tarif Pintu Tol

Menentukan Menentukan Menentukan


Golongan Perjalanan Kendaraan kecukupan saldo
Kendaraan

Penggolongan Penggolongan Menentukan Menentukan


Penggolongan
Berdasarkan Berdasarkan Berdasarkan saldo kurang saldo lebih
Panjang lebar tinggi
Kendaraan Kendaraan Kendaraan

Menentukan Menentukan
Kota Masuk Kota Keluar

Golo Golo Golo


ngan ngan ngan
Golongan 1 Golongan 2 Golongan 3 2 3
1
Golongan 1 Golongan 2 Golongan 3 0 < L <= 1.5 1.5< L<=2.5 2.5<L<=3.5 1<T 2<T
0<T
0 < P < 2.5 2.5 <= P < 4 4 <= P < 8 <= 1 <= 2 <= 5

4
2.3 Flowchart
Mulai

Input P, L, T, KM,
KL.

Tarif 0<P<2.5 | 0<L<1.5 | 0<T<1 4<=P<8 | 2.5<=L<3.5 |2<=T<5


Tarif
golongan 1 Golongan?
golongan 3
Tidak memenuhi
klasifikasi golongan
2.5<=T<4 | 1.5<=L<2.5 | 1<=T<2

Print “Anda salah jalur”


Tarif “Maaf Anda tidak dapat
golongan 3 mmelanjutkan perjalanan silahkan
rekam ulang kendaraan”
“Silahkan keluar pintu tol sebelah
kanan”

Output
Harga

Harga = 0 Harga != 0
Harga

Print “Silahkan
keluar pintu tol Input Saldo
sebelah kanan”
5
Saldo >= Harga Saldo < Harga
Saldo

Function sisa saldo


Print “Maaf saldo anda
Sisa saldo Sisa uang = return (saldo kurang”
– harga) Print”Silahkan isi ulang
saldo Anda”
Print”Silahkan keluar
melalui pintu tol
sebelah kanan”

Print “Sisa
saldo,
,hasil(saldo,harga) Print “Terima kasih
” dan selamat
melanjutkan
perjalanan”

Selesai

6
2.4 Algoritma
#menentukan sisa uang pengguna jalan tol setelah membayar tarif tol
#mendefinisikan fungsi
def hasil(saldo,harga):
sisauang = saldo - harga
return sisauang
#Menginput matriks tarif tol berdasarkan tiga golongan
tarifgol1=[[0, 300000, 275000, 150000, 50000],
[300000,0,75000,200000,250000], [275000,75000,0,175000,225000],
[150000,200000,175000,0,75000], [50000,250000,225000,75000,0]]
tarifgol2=[[0,325000,300000,175000,75000], [325000,0,100000,225000,275000],
[300000,100000,0,200000,250000], [175000,225000,200000,0,100000],
[75000,275000,250000,100000,0]]
tarifgol3=[[0,350000,325000,200000,100000],
[350000,0,125000,250000,300000], [325000,125000,0,225000,275000],
[200000,250000,225000,0,125000], [100000,300000,275000,125000,0]]

#mengeluarkan kode kota sebagai referensi bagi pengendara


print("Nomor Kota Malang 0")
print("Nomor Kota Jakarta 1")
print("Nomor Kota Bandung 2")
print("Nomor Kota Jogja 3")
print("Nomor Kota Surabaya 4")
print(" ") #Menunjukkan spasi

#mengeluarkan spesifikasi golongan sebagai referensi


print("Golongan satu 0< panjang kendaraan <2.5 ,0< lebar kendaraan <1.5 dan
0< tinggi kendaraan <1")
print("Golongan dua 2.5<= panjang kendaraan <4 ,1.5<= lebar kendaraan <2.5
dan 1<= tinggi kendaraan <2")
print("Golongan tiga 4<= panjang kendaraan <8 ,2.5<= lebar kendaraan <3.5
dan 2<= tinggi kendaraan <5")
print(" ")

#menginput spesifikasi dan kota masuk serta kota keluar


p=float(input("Masukkan panjang kendaraan: "))
l=float(input("Masukkan lebar kendaraan: "))
t=float(input("Masukkan tinggi kendaraan: "))
x=int(input("Masukkan nomor kota masuk: "))
y=int(input("Masukkan nomor kota keluar: "))

#menentukan tarif dari input yang dimasukkan


jenis=[[ 0 for j in range(5)] for i in range(5)] #inisiasi jenis
harga=0
if(0<p<2.5 and 0<l<1.5 and 0<t<1):
harga=harga+tarifgol1[x][y]

elif(2.5<=p<4 and 1.5<=l<2.5 and 1<=t<2):


harga=harga+tarifgol2[x][y]
elif(4<=p<8 and 2.5<=l<3.5 and 2<=t<5):
harga=harga+tarifgol3[x][y]
else:
print("anda salah jalur")
print(" ") #menunjukkan spasi

#mengeluarkan tarif atau harga yang harus dibayar


if(harga==0):
print("Maaf anda tidak dapat melanjutkan perjalanan silahkan rekam
ulang kendaaraan")
else:
print("Anda harus membayar: ",harga)

7
print(" ")

#menginput saldo agar tagihan bisa dibayar


if(harga==0):
print("Silahkan keluar pintu tol sebelah kanan")
else:
saldo=int(input("Silahkan masukkan saldo: "))
if(saldo>harga):
print("Sisa saldo anda: ",hasil(saldo,harga))
else:
print("Maaf saldo Anda kurang: ",str((-1)*hasil(saldo,harga)))
print("Silahkan isi ulang saldo Anda")
print("Silahkan keluar pintu tol sebelah kanan")
print(" ") #menunjukkan spasi

#mengeluarkan sisa uang dari hasil operasi saldo dan tarif/harga

print("Terima kasih dan selamat melanjutkan perjalanan")

2.5 Tampilan Program

Golongan I dengan saldo yang mencukupi

Golongan II dengan saldo yang mencukupi

8
Golongan III dengan saldo yang mencukupi

Golongan yang diinput tidak termasuk ke dalam golongan manapun

Golongan I dengan saldo yang sama dengan harga tarif tol

9
Golongan II dengan saldo yang tidak mencukupi

10
BAB III
PENUTUP
3.1 Kesimpulan
Kesimpulan setelah mengerjakan laporan ini adalah :
1. Dengan adanya progam ini proses pembayaran jalan tol lebih efisien dan teliti.
2.  Lalu progam ini mudah untuk dipahami.
3. Progam ini adalah progam yang mudah untuk digunakan

3.2 Saran
Berdasarkan kesimpulan diatas, adapun saran yang mungkin akan bermanfaat bagi
pembaca terutama bagi kami. Sehingga laporan ini bisa menambah wawasan atau referensi
pembaca tentang program yang penulis buat. Kedepannya, diharapkan program pintu tol ini
dapat dikembangkan menjadi program yang lebih besar. Dengan sistem yang dapat mengisi
saldo e-toll di tempat, serta diharapkan system dapat menampilkan waktu serta tanggal
pengguna jalan tol transaksi.

11
DAFTAR PUSTAKA

https://belajarpython.com/tutorial/kondisi-if-else-python. (6 November 2019)


https://www.petanikode.com/python-list/. (6 November 2019)
https://www.python-course.eu/python3_functions.php. (6 November 2019)

12

Anda mungkin juga menyukai