Waktu semester 3 kemarin, saya mendapat tugas membuat program showroom mobil dari mata kuliah OOP. Program yang saya buat menggunakan bahasa ruby, dan programnya sangat sangat sederhana gan, soalnya ane juga belum bisa coding tingkat tinggi. tapi ya lumayan gan. sedangkan untuk menyimpan data. ane menggunakan SQL Database. ini program sederhana ane gan. (terlalu simple)
require 'mysql'
$con=Mysql.new '127.0.0.1', 'root', ''
$con.query 'use gejeee'
class DataMobil
def input
print "Banyak Data : "
@banyak=gets.to_i
puts":::::::::::::::::::::::::"
for i in 1..@banyak
puts ""
puts "Data ke-"+i.to_s
puts "========================= "
print "Nama mobil : "; @nama=gets.chomp
print "Kapasitas Mesin : "; @kpst=gets.chomp
print "Tipe Mesin : "; @tpmsn=gets.chomp
print "Transmisi : "; @trs=gets.chomp
print "Berat Kosong : "; @brt=gets.chomp
print "Tahun Pembuatan : "; @thun=gets.to_i
print "Harga mobil : "; @harga=gets.chomp
$con.query "insert into showroom(Nama,Kapasitas,Tipe,Transmisi,Berat,Tahun,Harga)
values ('#{@nama}','#{@tpmsn}','#{@trs}','#{@brt}','#{@thun}','#{@harga}')"
puts"========================= "
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return main
else
break
end
end
def output
rs=$con.query "select * from showroom"
while row=rs.fetch_row do
puts "No : "+row[0]
puts "Nama Mobil : "+row[1]
puts "Kapasitas Mesin : "+row[2]
puts "Tipe : "+row[3]
puts "Transmisi : "+row[4]
puts "Berat Kosong : "+row[5]
puts "Tahun Pembuatan : "+row[6]
puts "Harga : "+row[7]
puts "===================================="
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return main
else
break
end
end
def update
puts "
::::::::::::::::::::::::::"
print ":: Pilih menu : "; @menu=gets.to_i
puts "::::::::::::::::::::::::::"
if @menu==1
print "Nomor Data : "; @no=gets.to_i
print "Nama : "; @nama=gets.chomp
rs=$con.query "update showroom set nama='#{@nama}' where No ='#{@no}'"
elsif @menu==2
print "Nomor Data : "; @no=gets.to_i
print "Kapasitas Mesin : "; @kpst=gets.chomp
rs=$con.query "update showroom set kapasitas='#{@kpst}' where No ='#{@no}'"
elsif @menu==3
print "Nomor Data : "; @no=gets.to_i
print "Tipe Mesin : "; @tpmsn=gets.chomp
rs=$con.query "update showroom set tipe='#{@tpmsn}' where No ='#{@no}'"
elsif @menu==4
print "Nomor Data : "; @no=gets.to_i
print "Transmisi : "; @trs=gets.chomp
rs=$con.query "update showroom set transmisi='#{@trs}' where No ='#{@no}'"
elsif @menu==5
print "Nomor Data : "; @no=gets.to_i
print "Berat Kosong : "; @brt=gets.chomp
rs=$con.query "update showroom set berat='#{@brt}' where No ='#{@no}'"
else
return update
end
puts "Tekan [ENTER] untuk pilih menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return update
else
break
end
end
def delete
puts"
::::::::::::::::::::
:: Menu ::
::::::::::::::::::::
:: ::
:: 1. Hapus ::
:: 2. Keluar ::
::::::::::::::::::::"
print ":: Pilih : "; @hapus=gets.to_i
puts"::::::::::::::::::::"
if @hapus==1
print"Nomor Data ke-"; @no=gets.chomp
rs=$con.query "delete from showroom where No ='#{@no}'"
puts "
Ket : Data ke-"+@no+" Terhapus"
puts""
puts "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return delete
else
break
end
elsif @hapus==2
system("cls")
return main
else
return delete
end
end
def search
puts"
::::::::::::::::::::
:: Menu ::
::::::::::::::::::::
:: ::
:: 1. Nama ::
:: 2. Harga ::
:: 3. Kapasitas ::
:: 4. Tahun ::
:: 5. Keluar ::
::::::::::::::::::::"
print "Cari Sesuai : "; @cari=gets.to_i
if @cari==1
print "Nama : "; @nama=gets.chomp
rs=$con.query "select * from showroom where Nama = '#{@nama}'"
while row=rs.fetch_row do
puts "No : "+row[0]
puts "Nama Mobi : "+row[1]
puts "Kapasitas Mesin : "+row[2]
puts "Tipe : "+row[3]
puts "Transmisi : "+row[4]
puts "Berat Kosong : "+row[5]
puts "Tahun Pembuatan : "+row[6]
puts "Harga : "+row[7]
puts "===================================="
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return search
else
break
end
elsif @cari==2
print "Harga : "; @Harga=gets.chomp
rs=$con.query "select * from showroom where Harga = '#{@harga}'"
while row=rs.fetch_row do
puts row[0]
puts row[1]
puts row[2]
puts row[3]
puts row[4]
puts row[5]
puts row[6]
puts row[7]
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return search
else
break
end
elsif @cari==3
print "Kapasitas : "; @kpst=gets.chomp
rs=$con.query "select * from showroom where Kapasitas = '#{@kpst}'"
while row=rs.fetch_row do
puts row[0]
puts row[1]
puts row[2]
puts row[3]
puts row[4]
puts row[5]
puts row[6]
puts row[7]
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return search
else
break
end
elsif @cari==4
print "Tahun : "; @thun=gets.to_i
rs=$con.query "select * from showroom where Tahun = '#{@thun}'"
while row=rs.fetch_row do
puts row[0]
puts row[1]
puts row[2]
puts row[3]
puts row[4]
puts row[5]
puts row[6]
puts row[7]
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return search
else
break
end
elsif @cari==5
system("cls")
return main
else
return search
end
end
end
class Pembeli
def caridata
puts"
::::::::::::::::::::
:: Menu ::
::::::::::::::::::::
:: ::
:: 1. Nama ::
:: 2. Harga ::
:: 3. Kapasitas ::
:: 4. Tahun ::
:: 5. Keluar ::
::::::::::::::::::::"
print "Cari Sesuai : "; @cari=gets.to_i
if @cari==1
print "Nama : "; @nama=gets.chomp
rs=$con.query "select * from showroom where Nama = '#{@nama}'"
while row=rs.fetch_row do
puts "No : "+row[0]
puts "Nama Mobi : "+row[1]
puts "Kapasitas Mesin : "+row[2]
puts "Tipe : "+row[3]
puts "Transmisi : "+row[4]
puts "Berat Kosong : "+row[5]
puts "Tahun Pembuatan : "+row[6]
puts "Harga : "+row[7]
puts "===================================="
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return caridata
else
break
end
elsif @cari==2
print "Harga : "; @Harga=gets.chomp
rs=$con.query "select * from showroom where Harga = '#{@harga}'"
while row=rs.fetch_row do
puts "No : "+row[0]
puts "Nama Mobi : "+row[1]
puts "Kapasitas Mesin : "+row[2]
puts "Tipe : "+row[3]
puts "Transmisi : "+row[4]
puts "Berat Kosong : "+row[5]
puts "Tahun Pembuatan : "+row[6]
puts "Harga : "+row[7]
puts "===================================="
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return caridata
else
break
end
elsif @cari==3
print "Kapasitas : "; @kpst=gets.chomp
rs=$con.query "select * from showroom where Kapasitas = '#{@kpst}'"
while row=rs.fetch_row do
puts "No : "+row[0]
puts "Nama Mobi : "+row[1]
puts "Kapasitas Mesin : "+row[2]
puts "Tipe : "+row[3]
puts "Transmisi : "+row[4]
puts "Berat Kosong : "+row[5]
puts "Tahun Pembuatan : "+row[6]
puts "Harga : "+row[7]
puts "===================================="
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return caridata
else
break
end
elsif @cari==4
print "Tahun : "; @thun=gets.to_i
rs=$con.query "select * from showroom where Tahun = '#{@thun}'"
while row=rs.fetch_row do
puts "No : "+row[0]
puts "Nama Mobi : "+row[1]
puts "Kapasitas Mesin : "+row[2]
puts "Tipe : "+row[3]
puts "Transmisi : "+row[4]
puts "Berat Kosong : "+row[5]
puts "Tahun Pembuatan : "+row[6]
puts "Harga : "+row[7]
puts "===================================="
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return caridata
else
break
end
elsif @cari==5
system("cls")
return menupembeli
else
return caridata
end
end
def pilihmobil
print "Pilih Mobil (nomor data) : "; @no=gets.chomp
puts "Detail Mobil Yang dipilih : "
rs=$con.query "select * from showroom where No ='#{@no}'"
while row=rs.fetch_row do
puts "No : "+row[0]
puts "Nama Mobi : "+row[1]
puts "Kapasitas Mesin : "+row[2]
puts "Tipe : "+row[3]
puts "Transmisi : "+row[4]
puts "Berat Kosong : "+row[5]
puts "Tahun Pembuatan : "+row[6]
puts "Harga : "+row[7]
puts "===================================="
@nam=row[1]
@har=row[7]
end
print "Anda yakin membeli ini ? [y/n] : "; @yakin=gets.chomp
if @yakin=="y"
time=Time.new
@tangg=time.strftime("%d-%m-%Y")
@untung=2000000
rs=$con.query "insert into terjual(Nama,Harga,Tanggal) values ('#{@nam}','#{@har}','#{@tangg}')"
rs=$con.query "insert into pemasukkan(Tanggal,Pemasukkan) values ('#{@tangg}','#{@untung}')"
return menupembeli
else
system("cls")
return pilihmobil
end
puts "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return menupembeli
else
break
end
end
def datapembeli
puts "
::::::::::::::::::::
:: Pembayaran ::
::::::::::::::::::::
:: ::
:: 1. Tunai ::
:: 2. Angsuran ::
:: 3. Keluar ::
::::::::::::::::::::"
print "Pilih Jenis Pembayaran : "; @jenpem=gets.to_i
if @jenpem==1
puts "
::::::::::::::::
::DATA PEMBELI::
::::::::::::::::"
print "Nama Pembeli : "; @nape=gets.chomp
print "Alamat : "; @almt=gets.chomp
print "Nama Mobil : "; @nmmobil=gets.chomp
@pembyrn="Tunai"
@uangmk="0"
@angsrn="0"
@kekurangan="0"
$con.query "insert into dapem(Nama,Alamat,Mobil,Pembayaran,Uang_Muka,Angsuran,Kekurangan)
values ('#{@nape}','#{@almt}','#{@nmmobil}','#{@pembyrn}','#{@uangmk}','#{@angsrn}','#{@kekurangan}')"
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return menupembeli
else
break
end
elsif @jenpem==2
puts "
::::::::::::::::
::DATA PEMBELI::
::::::::::::::::"
print "Nama Pembeli : "; @nape=gets.chomp
print "Alamat : "; @almt=gets.chomp
print "Nama Mobil : "; @nmmobil=gets.chomp
print "Uang Muka : "; @uangmk=gets.to_i
print "Angsuran : "; @angsrn=gets.chomp
print "Harga Mobil : "; @hrgambl=gets.to_i
@pembyrn="Kredit"
@kekurangan=@hrgambl-@uangmk
$con.query "insert into dapem(Nama,Alamat,Mobil,Pembayaran,Uang_Muka,Angsuran,Kekurangan)
values ('#{@nape}','#{@almt}','#{@nmmobil}','#{@pembyrn}','#{@uangmk}','#{@angsrn}','#{@kekurangan}')"
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return menupembeli
else
break
end
elsif @jenpem==3
system("cls")
return menupembeli
else
system("cls")
return datapembeli
end
end
def cetaknota
print "Masukkan Nomor ID Pembeli : "; @noid=gets.chomp
rs=$con.query "select * from dapem where No ='#{@noid}'"
while row=rs.fetch_row do
time=Time.new
print "Uang sebesar : "; @kalim=gets.chomp
puts "
¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶
¶ ¶
¶ No. Nota : 03457"+row[0]+" ¶
¶ Tanggal : "+time.strftime("%d-%m-%Y")+" ¶
¶ ¶
¶ ¶
¶ ¶
¶ Telah menerima uang sejumlah Rp. "+row[5]+" (Terbilang "+@kalim+")
¶ Dari ¶
¶ No. ID : "+row[0]+"
¶ Nama : "+row[1]+"
¶ Alamat : "+row[2]+"
¶ Guna pembelian : 1 unit mobil "+row[3]+"
¶ ¶
¶ ¶
¶ Penerima Pembayaran : ¶
¶ ¶
¶ /-|-----| ¶
¶ / | | |_| ¶
¶ |___| | |_| ¶
¶ ¶
¶ Andryzka ¶
¶ (..................) ¶
¶ ¶
¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶"
puts ""
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return menupembeli
else
break
end
end
end
def main
nnn=DataMobil.new
puts "
:::::::::::::::::::::::::
:: |MENU| ::
:::::::::::::::::::::::::
[ ]
[ 1. Input Data Mobil ]
[ 2. Lihat Data Mobil ]
[ 3. Update Data Mobil ]
[ 4. Hapus Data Mobil ]
[ 5. Cari Data Mobil ]
[ 6. Laporan ]
[ 7. Keluar ]
:::::::::::::::::::::::::"
print "Pilih menu : "; @menu=gets.to_i
puts":::::::::::::::::::::::::"
if @menu==1
nnn.input
elsif @menu==2
system("cls")
nnn.output
elsif @menu==3
system("cls")
nnn.update
elsif @menu==4
system("cls")
nnn.delete
elsif @menu==5
system("cls")
nnn.search
elsif @menu==6
system("cls")
return laporan
elsif @menu==7
system("cls")
return menuutama
else
system("cls")
return main
end
end
def password
print "Masukkan Password : "; @pass=gets.to_i
if @pass==123456
system("cls")
main
else
puts "Password yang anda masukkan salah"
return password
end
end
def menuutama
nnnn=Pembeli.new
puts "
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
¶¶¶¶¶¶¶¶¶
¶¶ ¶¶
¶¶¶¶¶ ¶¶ ¶¶
¶ ¶ ¶¶ ¶¶ ¶¶ ¶¶
SELAMAT DATANG DI ¶ ¶ ¶¶ ¶¶ ¶¶ ¶¶
^MACAN PUTIH MOBIL KEDIRI^ ¶ ¶ ¶¶ ¶¶ ¶¶ ¶¶
jl. Brawijaya no. 40 b, Kota Kediri ¶ ¶ ¶ ¶¶
¶¶¶¶¶¶¶¶¶¶¶¶ ¶¶
¶ ¶ ¶¶ ¶¶ ¶¶
¶¶ ¶ ¶¶ ¶¶ ¶¶
¶¶ ¶¶¶¶¶¶¶¶¶¶¶ ¶¶ ¶¶ ¶¶
¶ ¶ ¶¶¶¶¶¶¶¶ ¶¶
¶¶ ¶ ¶¶
¶ ¶¶¶¶¶¶¶¶¶¶¶¶ ¶¶
¶¶ ¶ ¶¶ ¶¶
¶¶¶¶¶¶¶¶¶¶¶¶ ¶¶ ¶¶
¶¶¶¶¶¶¶¶¶¶¶
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶+++++++++++++++++
++++++++++++++++++¶¶ ¶¶+++++++++++++++++
++++++++++++++++++¶¶ MENU ¶¶+++++++++++++++++
++++++++++++++++++¶¶ ¶¶+++++++++++++++++
++++++++++++++++++¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶+++++++++++++++++
++++++++++++++++++¶¶ ¶¶+++++++++++++++++
++++++++++++++++++¶¶ 1. Masuk sebagai pemilik showroom ¶¶+++++++++++++++++
++++++++++++++++++¶¶ 2. Masuk sebagai pembeli ¶¶+++++++++++++++++
++++++++++++++++++¶¶ 3. Keluar ¶¶+++++++++++++++++
++++++++++++++++++¶¶ ¶¶+++++++++++++++++
++++++++++++++++++¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶+++++++++++++++++"
print "
++++++++++++++++++| Pilih : "; @plh=gets.to_i
if @plh==1
system("cls")
password
elsif @plh==2
system("cls")
nnnn.menupembeli
elsif @plh==3
break
else
return menuutama
end
end
def laporan
puts "
::::::::::::::::::::::::
:: Menu ::
::::::::::::::::::::::::
:: 1. Terjual ::
:: 2. Pemasukkan ::
:: 3. Keluar ::
::::::::::::::::::::::::"
print "Pilih menu : "; @mn=gets.to_i
if @mn==1
system("cls")
puts"
Unit yang Terjual
-------------------"
rs=$con.query "select * from terjual"
while row=rs.fetch_row do
puts "No : "+row[0]
puts "Nama Mobil : "+row[1]
puts "Harga : "+row[2]
puts "Tanggal : "+row[3]
puts "===================================="
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return laporan
else
break
end
elsif @mn==2
system("cls")
puts "
Pemasukkan
--------------------"
rs=$con.query "select * from pemasukkan"
while row=rs.fetch_row do
puts "No : "+row[0]
puts "Tanggal : "+row[1]
puts "Pemasukkan : "+row[2]
puts "===================================="
end
print "Tekan [ENTER] untuk kembali ke menu"
tekan=gets.chomp
tekan="y"
if tekan=="y"
system("cls")
return laporan
else
break
end
elsif @mn==3
system("cls")
return main
else
system("cls")
return laporan
end
end
menuutama
Program buatan ane diatas memiliki 4 table untuk menyimpan data. Tabel dapem (data pembeli), tabel pemasukkan, table showroom (data mobil yang di jual), tabel terjual. ketika menjalankan program dari coding di atas. akan tambil 3 pilihan menu seperti gambar di bawah ini.
Tampilan Home Program |
jika kita memilih menu 1, maka kita akan masuk ke menu untuk mengakses data showroom mobil (input, view, delete). tp sebelumnya kita akan ditanya paswordnya terlebih dahulu.
menu kedua diperuntukkan untuk pembeli yang ingin membeli mobil. dan terdapat fasilitas cicilan atau tunai.
menu ketiga di gunakan untuk keluar dari program.nah, itulah program yang ane buat dengan keringetan sehari penuh. walaupun sangat sederhana dan masih banyak sekali kelemahan atau kekurangannya. tapi yang penting ane udah berusaha semaksimal mungkin. hehehehe..... dan semoga bisa jadi referensi agan2 yang masih baru masuk kuliah. :D