Anda di halaman 1dari 111

LAPORAN KERJA PRAKTEK

PERANCANGAN SISTEM INFOMASI PENGELOLAAN

ASSET BERBASIS JAVA PADA PT. TUNAS RIDEAN, TBK

Laporan Kerja Praktek


Diajukan untuk melengkapi
Persyaratan Mata Kuliah
Kerja Praktek 201843502306
M. Sandy Rizki Irmawan

Hengky Apriyanto 201843502328

Aulia Aziz Ardina 201843502168

Fachri 201843502125

Jama Risma 201843501829

Carla Alvira Sari 201843502140

Andriansya Ramdhany 201843501837

PROGRAM STUDI INFORMATIKA

FAKULTAS TEKNIK & ILMU KOMPUTER

UNIVERSITAS INDRAPRASTA PGRI

JAKARTA

2022

Jl. Nangka No. 58 C Tanjung Barat, Jagakarsa, Jakarta Selatan Telp. (021) 78835283-7818718 Fax. :

1
UNIVERSITAS INDRAPRASTA PGRI
FAKULTAS TEKNIK DAN ILMU KOMPUTER
PROGRAM STUDI TEKNIK INFORMATIKA

(021)78835283.Jl. Raya Tengah, Kelurahan Gedong, Pasar Rebo, Jakarta Timur. Telp. : (021) 87797409

Website : http://www.unindra.ac.id Email : university@unindra.ac.id

LEMBAR PENGESAHAN

LAPORAN KERJA PRAKTEK

PERANCANGAN SISTEM APLIKASI PENGELOLAAN ASET

DI PT. TUNAS RIDEAN, TBK

Pada 1 April – 20 Juli 2022

Disusun oleh:
M. Sandy Rizki Irmawan 201843502306

Hengky Apriyanto 201843502328

Aulia Aziz Ardina 201843502168

Fachri 201843502125

Jama Risma 201843501829

Carla Alvira Sari 201843502140

Andriansya Ramdhany 201843501837

Mengetahui, Menyetujui,
Ketua Program Studi Teknik Informatika Dosen Pembimbing

Mei Lestari, M.Kom Saputra Dwi Nurcahya, Mkom


ii

KATA PENGANTAR

Segala puji bagi Allah SWT, yang telah memberikan rahmat dan hidayah-Nya

kepada penulis, sehingga penulis dapat melaksanakan kegiatan Kuliah Kerja Praktek

(KKP) beserta pembuatan Laporan KKP ini dapat diselesaikan sesuai dengan yang

penulis harapkan.

Penulis juga menyadari bahwa di dalam pelaksanaan KKP maupun penyusunan

laporan ini terdapat banyak kekurangan dan kesalahan. Oleh karena itu penulis

mengharapkan kritik dan saran yang bersifat membangun, sehingga laporan penulis

selanjutnya dapat menjadi lebih baik.

Pada kesempatan ini penulis ingin mengucapkan terima kasih kepada seluruh

pihak yang telah memberikan bantuan secara materil maupun moril dalam menyelesaikan

kuliah kerja praktek ini, terutama:

1. Bapak Saputra Dwi Nurcahya, M.Kom, selaku Dosen Pembimbing KKP di Fakultas

Teknik dan Ilmu Komputer Universitas Indraprasta PGRI yang telah memberikan

bimbingan dan arahan yang mendukung penulis dalam menyelesaikan laporan KKP

ini.

2. Bapak Prof. Dr. H. Sumaryoto selaku Rektor Universitas Indraprasta PGRI.

3. Bapak Ir. H. Soepardi Harris, M.T selaku Dekan Fakultas Teknik dan Ilmu Komputer

Universitas Indraprasta PGRI.

4. Ibu Mei Lestari, M.Kom selaku Ketua Program Studi Informatika Fakultas Teknik

dan Ilmu Komputer Universitas Indraprasta PGRI.

5. Bapak Indra Dermawan selaku General Manager PT Tunas Ridean, Tbk

6. Ibu Andini Wulandari selaku Pembimbing di PT Tunas Ridean, Tbk..


iii

Akhir kata semoga laporan ini dapat memberi manfaat bagi pembaca umumnya

dan bagi penulis pada khususnya.

Jakarta, 2022

Penulis
iv

Daftar Isi

KATA PENGANTAR............................................................................................

Daftar Isi................................................................................................................

Daftar Gambar.......................................................................................................

BAB I.......................................................................................................................

A. Latar Belakang....................................................................................1

B. Perumusan Masalah............................................................................3

C. Tujuan Penulisan................................................................................3

D. Batasan Permasalahaan.......................................................................3

E. Metodologi Penelitian.........................................................................4

F. Sistematika Penulisan.........................................................................5

BAB II.....................................................................................................................

A. Sejarah Singkat Organisasi...............................................................7

B. Struktur Organisasi PT. Tunas Ridean Tbk.....................................8


v

C. Tugas Jabatan PT. Tunas Ridean Tbk..............................................11

D. Kegiatan Perusahaan........................................................................13

BAB III..................................................................................................................

A. Spesifikasi Hardware........................................................................14

1. Teori Singkat Tentang Hardware............................................14

2. Hardware yang ada di Instansi Kerja Praktek.........................18

B. Spesifikasi Software.........................................................................19

1. Spesifikasi Singkat tentang Software.......................19

2. Software yang dipakai oleh instansi Kerja Praktek..............21

BAB IV..................................................................................................................

A. Proses Bisnis.......................................................................................

B. Aturan Bisnis......................................................................................

C. Dekomposisi Fungsi...........................................................................

D. Analisa Masukkan (Input), Proses dan Keluaran(Output)..................

E. Diagram Alur Data (DAD) Konteks, Nol dan Rinci..........................

1. Diagram Alur Data (DAD) Sistem Berjalan......................


vi

2. Diagram Alur Data (DAD) Sistem yang Diusulkan..........

F. Kamus Data........................................................................................

G. Spesifikasi Proses...............................................................................

H. Bagan Terstruktur...............................................................................

1. Bagan Terstruktur Proses 1.0.............................................

2. Bagan Terstruktur Proses 2.0.............................................

3. Bagan Terstruktur Proses 3.0.............................................

4. Bagan Terstruktur Proses 4.0.............................................

I. Spesifikasi Proses...............................................................................

J. Analisa Basis Data..............................................................................

K. Spesifikasi Basis Data.........................................................................

L. Rancangan Layer, Form Masukkan dan Form Keluaran....................

BAB V....................................................................................................................

A. Kesimpulan.........................................................................................

B. Saran...................................................................................................

Daftar Pustaka......................................................................................................
vii

Lampiran.....................................................................................................

Listing Program.......................................................................................
x

Daftar Gambar

Gambar 2.1 Struktur Organisasi...................................................................

Gambar 2.2 Struktur Organisasi...................................................................

Gambar 3.1 Tampilan Login Aplikasi..........................................................

Gambar 3.2 Tampilan Login Success..........................................................

Gambar 3.3 Tampilan Login Salah..............................................................

Gambar 4.1 Diagram Konteks Sistem Berjalan...........................................

Gambar 4.2 Diagram Nol Sistem Berjalan...................................................

Gambar 4.3 Diagram Rinci Level 1 Sistem Berjalan...................................

Gambar 4.4 Diagram Rinci Level 2 Sistem Berjalan...................................

Gambar 4.5 Diagram Rinci Level 3 Sistem Berjalan...................................

Gambar 4.6 Diagram Konteks Sistem yang Diusulkan................................

Gambar 4.7 Diagram Nol Sistem yang Diusulkan......................................36

Gambar 4.9 Diagram Rinci Level 2 Sistem yang Diusulkan.......................37

Gambar 4.10 Diagram Rinci Level 3 Sistem yang Diusulkan.....................38

Gambar 4.11 Diagram Rinci Level 4 Sistem yang Diusulkan.....................39

Gambar 4.12 Bagan Terstruktur Proses 1.0.................................................46


xi

Gambar 4.13 Bagan Terstruktur Proses 2.0.................................................47

Gambar 4.14 Bagan Terstruktur Proses 3.0.................................................48

Gambar 4.15 Bagan Terstruktur Proses 4.0.................................................49

Gambar 4.16 Entity Relationship Diagram (ERD)......................................51

Gambar 4.17 Tampilan Login......................................................................55

Gambar 4.18 Tampilan Dashboard..............................................................55

Gambar 4.19 Tampilan Tambah Asset........................................................56

Gambar 4.20 Tampilan Form Tambah Vendor...........................................56


xii

Gambar 4.21 Bagian Tampilan Form Tambah Buget............................................

Gambar 4.22 Bagian Tampilan Form Mutasi Asset..............................................

Gambar 4.23 Bagian Tampilan form verifikasi tambah asset................................

Gambar 4.24 Bagian Tampilan berhasil verifikasi tambah asset...........................

Gambar 4.25 Bagian Tampilan output data pembelian asset.................................

Gambar 4.26 Bagian Tampilan output data asset seluruh cabang.........................

Gambar 4.27 Bagian Tampilan output pengajuan asset.........................................

Gambar 4.28 Bagian Tampilan output data vendor...............................................

Gambar 4.29 Bagian Tampilan output data vendor...............................................

Gambar 4.30 Bagian Tampilan output data pembelian asset.................................

Gambar 4.31 Laporan Data Barang.......................................................................

Gambar 4.32 Laporan Data Vendor.......................................................................

Gambar 4.33 Laporan Data Barang.......................................................................

Gambar 4.34 Laporan mutasi buget.......................................................................

Gambar 4.35 Laporan history mutasi buget...........................................................


BAB I

PENDAHULUAN

A. Latar Belakang

Didalam dunia manajemen teknologi informasi tentunya memiliki peran

yang sangat penting. Pada saat ini, teknologi informasi sangatlah dibutuhkan

di berbagai bidang ilmu pengetahuan yang dapat menunjang dalam

pengambilan keputusan sebuah organisasi baik itu organisasi pemerintah

maupun swasta.

Penelitian ini bertujuan untuk membuat suatu sistem informasi

pengelolaan aset perusahaan pada PT Tunas Ridean, Tbk. serta

mendeskripsikan hasil uji coba sistem aplikasi pengelolaan aset Perancangan

Sistem Informasi Pengelolaan Asset Berbasis Java pada PT. Tunas Ridean,

Tbk Perancangan menggambarkan secara umum suatu kegiatan rancangan

proyek dan aktivitas-aktivitas khusus yaitu teknik atau metode-metode dalam

merancang sesuatu. Adapun tujuan dari strategi perancangan adalah

memberikan kepastian apakah aktivitas-aktivitas tersebut benar-benar realistik

dengan batasan waktu dan sumber-sumber yang telah ditetapkan.

Sistem adalah suatu jaringan kerja dari prosedur-prosedur yang saling

berhubungan, terkumpul bersama-sama untuk melakukan suatu kegiatan atau

untuk tujuan tertentu dan dapat disimpulkan dari pengertian di atas bahwa

Sistem adalah sekelompok elemen atau komponen yang digabungkan menjadi


2

satu untuk mencapai tujuan tertentu.UKGUI

Informasi merupakan pengolahan data, sehingga menjadi bentuk yang

penting bagi penerimanya dan mempunyai kegunaan sebagai dasar dalam

pengambilan keputusan yang dapat dirasakan akibatnya secara langsung saat

itu juga atau secara tidak langsung pada saat mendatang.

Sistem informasi adalah suatu sistem didalam suatu organisasi yang

mempertemukan kebutuhan pengolahan transaksi harian yang medukung

fungsi operasi organiasi yang bersifat manajerial dengan secara cepat dan

akurat. Salah satu peran teknologi informasi saat ini adalah mempermudah

pekerjaan terkait perancangan pengelolaan aset di dalam suatu perusahaan.

Aset merupakan komponen yang nilainya paling besar dan kekayaan

yang paling viral bagi berjalannya kegiatan strategi dari suatu organisasi untuk

dapat menyediakan laporan-laporan yang diperlukan oleh pihak luar tertentu.

Penelitian sebelumnya dengan judul Perancangan Sistem Informasi

Pengelolaan Asset Berbasis Java pada PT. Tunas Ridean, Tbk, melakukan

pengelolaan data aset dan barang inventaris dengan aplikasi ini, petugas tidak

akan mengalami banyak kesukaran seperti mengitung keselurhan aset yang ada

dan tracking barang inventaris yang membuat petugas lebih mudah dalam

pengontrolan asset dan barang inventaris yang mutasi sementara (waktu

tertentu). Melakukan pencatatan atau perubahan dan pengajuan pada data aset

dan barang inventaris yang ada akan menjadi lebih terstruktur karena adanya

form-form yang sesuai kebutuhan.


3

Untuk itu, penulis berinisiatif membuat sistem yang memudahkan

pendataan aset, agar lebih termenajemen dan termonitoring secara efisien.

Sistem pengelolaan asset ini diharapkan mampu memberikan solusi di PT

Tunas Ridean, Tbk dalam mendata asset perusahaan.

B. Perumusan Masalah

1. Bagaimana membuat Aplikasi perancangan sistem informasi pengelolaan

aset berbasis java yang dapat mempermudah setiap karyawan pada PT

Tunas Ridean, Tbk, dalam melakukan pekerjaan yang baik dan tertata

rapih?

2. Bagaimana membuat sistem ini dapat meningkatkan Proses pembuatan

laporan agar menjadi efektif karena adanya sistem yang terkomputerisasi?

C. Tujuan Penulisan

1. Merancang sistem aplikasi informasi kepada setiap karyawan yang belum

memahami pengelolaan aset dengan mudah dan terkomputerisasi.

2. Membuat sistem aplikasi untuk mempermudah antara admin dan karyawan

untuk dapat mengecek dan mengelola barang-barang asset perusahaan.

D. Batasan Permasalahaan

1. Aplikasi pengelolaan aset ini hanya diperuntukan untuk para pekerja

terutama pada bagian pengelola asset di PT. Tunas Ridean, Tbk.

2. Aplikasi Pengelolaan aset dapat menampilkan segala informasi data-data


4

atau aset-aset perusahaan yang dibutuhkan dalam proses kerja.

3. Penulis tidak membahas mengenai performa data base dan kemanan

jaringan.

E. Metodologi Penelitian

1. Metode Pengumpulan Data

Metode pengumpulan data yang akan digunakan dalam pembuatan laporan

KKP adalah sebagai berikut :

a. Observasi

Metode pengumpulan data dengan melakukan pengamatan langsung

terhadap objek yang akan kita teliti. Metode ini berguna untuk

memperoleh data primer dan gambaran yang menyeluruh secara relevan.

Observasi di lakukan di PT. Tunas Ridean, Tbk.

b. Wawancara

Metode pengumpulan data atau fakta penting yang dilakukan dengan

cara memberikan pertanyaan secara langsung (tatap muka) kepada pihak-

pihak yang terkait dengan data yang diperlukan oleh aplikasi yang akan

dibangun.

c. Studi Pustaka

Metode ini dilakukan dengan cara membaca dan memahami buku-

buku referensi, dan media lain yang berkaitan dengan pemrograman

berbasis java dan literatur-literatur mengenai pembuatan Aplikasi

Pengelolaan Asset.
5

d. Analisi kebutuhan perangkat lunak

Metode ini dilakukan dengan cara menganalisis data dan informasi

yang di peroleh untuk merancang perangkat lunak yang menghasilkan

spesifikasi yang dibutuhkan

e. Desain

Mendesain atau merancang tampilan aplkasi berserta konten.

Implementasi, Menerapkan hasil perancangan menjadi suatu aplikasi

perusahaan internal.

f. Pengujian

Menguji coba perangkat lunak yang telah dibuat.

g. Metode Perancangan

Dalam pembuatan aplikasi ini dalam perancangan data, penulis

menggunakan Microsoft Visio.

h. Metode Pembuatan

Aplikasi ini dibuat menggunakan Netbeans, dan MySQL untuk

menyimpan database.

F. Sistematika Penulisan

Sistematika penulisan yang digunakan dalam penyusunan laporan

KKP ini sebagai berikut :

BAB I PENDAHULUAN

Memuat latar belakang, perumusan masalah, tujuan penulisan,

Batasan permasalahan, metodologi dan sistematika penulisan.


6

BAB II ORGANISASI

Bab ini berisikan teori yang berupa sejarah perusahaan, struktur

organisasi PT. Dan penjelasan unit kegiatan PT. Tunas Ridean Tbk.

BAB III INFRASTRUKTUR

Bab ini menjelaskan hal-hal yang berkaitan dengan spesifikasi

perangkat keras dan perangkat lunak komputer atau yang relevan.

BAB IV PEMBAHASAN

Berisikan penjelasan tentang proses bisnis; aturan bisnis;

dekomposisi fungsi; analisa masukan (Input), proses (Process), dan

keluaran (Output); Diagram aliran data (DAD) Konteks, Nol, dan

Rinci; Kamus data; Spesifikasi proses; Bagan terstrukur,

Spesifikasi modul, Analisa Basis Data dengan ERD dan Spesifikasi

File Basis Data; Rancangan layer, Rancangan form masukan, dan

Rancangan form pengeluaran.

BAB V PENUTUP

memuat tentang simpulan dan saran, simpulan bertumpu pada isi

Daftar Pustaka.
7
8

BAB II

ORGANISASI

1. Sejarah Singkat Organisasi

PT Tunas Ridean Tbk “Perseroan” didirikan berdasarkan Akta Notaris

Winanto Wiryomartani, S.H., No. 102 tertanggal 24 Juli 1980. Akta pendirian

ini disahkan oleh Menteri Kehakiman Republik Indonesia dalam Surat

Keputusan No. Y.A.51401 tertanggal 7 April 1981 dan diumumkan dalam 81

Lembaran Berita Negara No. 935, Tambahan No. 84 tertanggal 21 Oktober

1983. Perseroan dan anak perusahaan bersama-sama disebut “Grup” terbagi

dalam dua divisi sesuai dengan kegiatan utamanya: - Keagenan penjualan

kendaraan bermotor, yang berkedudukan di Jakarta dan Lampung. Keagenan

yang berkedudukan di Jakarta dilaksanakan oleh PT Tunas Ridean Tbk induk

perusahaan, PT Tunas Mobilindo Parama ”TMP”, PT Tunas Mobilindo

Perkasa ”TMP2”, PT Surya Mobil Megahtama ”SMM”, PT Tunas Asset

Sarana ’’TAS’’, dan yang berkedudukan di Lampung dilaksanakan oleh PT

Tunas Dwipa Matra ”TDM”. - Jasa keuangan dan sewa, yang berkedudukan

di Jakarta, dilaksanakan oleh PT Tunas Financindo Sarana “TFS” dan PT

Surya Sudeco ”SS”. Perseroan memulai kegiatan komersilnya pada tahun

1981. Perseroan merupakan perusahaan yang bergerak dalam bidang dealer

resmi.

Perdagangan mobil bekas, jasa perbengkelan dan jasa-jasa lain yang

berhubungan dengan kendaraan bermotor. Perubahan terakhir dibuat dengan


9

Akta Notaris Ny. Poerbaningsih Adi Warsito, S.H., No. 43 tanggal 08

Agustus 2008 untuk memenuhi ketentuan Undang-Undang No. 402007

tentang Perseroan Terbatas. Perubahan Anggaran Dasar ini disetujui oleh

Menteri Hukum dan Hak Asasi Manusia Republik Indonesia berdasarkan

Surat Keputusan No. AHU-73009.AH.01.02 tahun 2008 tanggal 13 Oktober

2008. 82PT United Tractors Tbk “Perusahaan” didirikan di Indonesia pada

tanggal 13 Oktober 1972 dengan nama PT Inter Astra Motor Works,

berdasarkan Akta Pendirian No. 69, oleh Notaris Djojo Muljadi, S.H.

Akta.Pendirian tersebut telah disahkan oleh Menteri Kehakiman Republik

Indonesia dalam Surat Keputusan No. Y.A.5348 tanggal 6 Pebruari 1973 dan

telah diumumkan dalam Lembaran Berita Negara No. 31, Tambahan No. 281

tanggal 17 April 1973. Perusahaan berkedudukan di Jakarta dan mempunyai

18 cabang, 15 kantor lokasi site offices dan 12 kantor perwakilan yang

tersebar di seluruh Indonesia. Kantor pusat berlokasi di Jalan Raya Bekasi

Km. 22, Cakung, Jakarta.

Ruang lingkup kegiatan Perusahaan dan anak perusahaan bersama-sama

disebut “Grup” meliputi penjualan dan penyewaan alat berat beserta

pelayanan purna jual, penambangan dan kontraktor penambangan. Perubahan

terakhir Anggaran Dasar Perseroan termuat dalam Akta Pernyataan

Keputusan Rapat No. 54, tanggal 13 Juni 2008, yang dibuat dihadapan Benny

Kristianto, SH, Notaris di Jakarta untuk disesuaikan dengan Peraturan No. 40

tahun 2007 tentang Perusahaan Terbatas. Akta Perubahan tersebut telah

disetujui oleh Menteri Hukum dan Hak Asasi Manusia Republik Indonesia
10

dalam Surat Keputusan No. AHU-38129.AH.01.02 Tahun 2008, tertanggal 3

Juli 2008. 83 Tahun 1989, Perusahaan melakukan Penawaran Umum Perdana

pada Bursa Efek Jakarta dan Bursa Efek Surabaya dengan menawarkan

sejumlah 2,7 juta lembar saham dengan nilai nominal Rp 1.000 Rupiah penuh

per lembar.

2. Struktur Organisasi PT. Tunas Ridean Tbk.

Struktur Organisasi adalah susunan yang terdiri dari sekelompok orang

yang bekerjasama untuk mencapai tujuan bersama. Suatu organisasi baik

organisasi pemerintah maupun swasta atau badan usaha lain merasa perlu

adanya struktur organisasi, karena adanya struktur organisasi dapat dilihat

hubungan satu sama lainnya dari keseluruhan fungsi, tugas, dan wewenang

serta tanggung jawab yang harus dijalankan oleh karyawan atau satuan-satuan

yang ada di perusahaan.

Gambar 2.1 Struktur Organisasi Sales


11

Gambar 2.2 Struktur Organisasi Service

3. Tugas Jabatan PT. Tunas Ridean Tbk.

1. CEO ( chief excecutive officer )

CEO bertanggung jawab atas pengelolaan secara mikro sehingga

semua kegiatan baik internal maupun eksternal harus selalu terintegrasi

dengan baik pada setiap departemen yang ada. Selain itu, CEO juga

harus mampu untuk menjaga dan memantau setiap aktifitas dan proses

kerja dalam lingkungan perusahaan agar tercipta suasana yang

harmonis dan kondusif.

2. General manager

General Manager bertanggung jawab atasa semua bagian fungsi

perusahaan , mengarahkan beberapa unit fungsional kerja yang


12

mengelola semua fungsi manajamen.

3. Head Office ( Kepala cabang )

Bertugas untuk mengatur dan mengkoordinasi administrasi dan

prosedur kerja dikantor, memastikan efeksifitas, efesiensi dan

keselamatan para staff. Head office juga bertanggung jawab terhadap

kinerja staffnya, sehingga akan mengurusi mulai dari laporan, pelatihan,

target, delegasi tugas hingga mengavaluasi kinerja para staff kantor

setiap bulan nya.

4. Sales Manager

Mengatur para sales untuk mencapai target penjualan tertentu dan

memimpin tim penjualan suatu departemen perusahaan.

5. Supervisor Keuangan

Melakukan pengecekan dan mengontrol data-data pendukung

transaksi akutansi di perusahaan untuk memastikan data-data tersebut

sudah disusun berdasarkan data dan fakta yang ada.

6. Supervisor Administrasi Sales

Memiliki tugas untuk mengontrol proses pemesanan, memeriksa

keakuratan data, menjaga komunikasi baik kepada pelanggan,

memelihara dan memperbaharui catatan penjualan, menyusun laporan

penjualan, bertanggung jawab untuk mengelola semua tugas

administrasi penjualan, bertanggung jawab atas tindak lanjut dari

beberapa kontrak, mengawasi dan memimpin staf admin,

menindaklanjuti faktur pelanggan, dan membuat laporan ke manajer


13

keuangan.

7. Service Advisor

Bertanggung jawab melayani kebutuhan pelanggan yang datang

dan keluar bengkel dengan mendengarkan, menganalisa, dan

menjelaskan tentang kerusakan kendaraan, membuat estimasi waktu

serta biaya untuk mencapai kepuasan pelanggan, serta menjaga

kerapian data-data kendaraan pelanggan.

8. Supervisor Inventory

Mengelola kebijakan dan prosedur implementasi, audit, pelaporan

dan tindakan pencegahan lainnya dari aktivitas stock control dan

Memastikan dan menjaga stock accuracy sesuai dengan standar spesifik

yang ditetapkan.

9. Leader Mekanik

Mengawasi kinerja mekanik sehari-hari dibandingkan terhadap

prosedur keja yang ada. Melakukan pembinaan terhadap kualitas

mekanik (coaching). Mengusulkan nama mekanik yang akan ditraining

dan kebutuhannya.

10. Mekanik

Bertugas untuk melakukan pengecekan kondisi mesin secara

menyeluruh. Mereka juga bertugas melakukan perbaikan atau

penggantian jika terdapat komponen yang rusak.


14

4. Kegiatan Perusahaan

Berikut ini adalah mengenai aktivitas operasional PT. Tunas

Ridean Tbk di Jl. Raya Pasar Minggu No 7 Jakarta diantaranya sebagai

berikut :

Sebagai dealer resmi Toyota, perusahaan melakukan penjualan

mobil baru merek Toyota secara kredit/lising dan cash.

Memberikan fasilitas service mobil khusus Toyota (bengkel

resmi) Menyediakan beberapa barang pendukung seperti persediaan

sparepart dimana barangnya dikirim langsung dari PT. Toyota astra

motor Indonesia agar terjamin keaslian dan kualitasnya Sebagai Head

Office PT.Tunas ridean Tbk.


15

BAB III

INFRASTRUKTUR SISTEM

A. Spesifikasi Hardware

1. Teori Singkat Tentang Hardware

Hardware itu dalam bahasa Indonesia-nya disebut sebagai perangkat

keras adalah salah satu komponen dari sebuah komputer yang sifat alatnya

bisa dilihat dan diraba secara langsung atau yang bebentuk nyata. Yang

memiliki fungsi untuk mendukung proses komputerisasi.

Hardware dapat bekerja berdasarkan perintah yang telah ditentukan ada

padanya, atau yang juga disebut dengan istilah instructuion set. Dengan

adanya perintah yang dapat dimengerti oleh hardware tersebut, maka

hardware tersebut dapat melakukan berbagai kegiatan yang telah ditentukan

oleh pemberi perintah.

Secara fisik komputer terdiri dari beberapa komponen yang merupakan

suatu sistem. Sistem adalah komponen-komponen yang saling bekerjasama

membentuk suatu kesatuan. Apabila salah satu komponen tidak berfungsi,

akan mengakibatkan tidak berfungsinya proses-proses yang ada pada

komputer secara baik. Komponen komputer dalam katagori elemen perangkat

keras (hardware). Berasarkan fungsinya,perangkat keras dibagi menjadi 5

bagian yaitu :

a. Input device (unit masukan)


16

Unit ini berfungsi sebagai media untuk memasukkan data dari

luar ke dalam suatu memeori dan processor untuk diolah guna

menghasilkan informasi yang diperlukan. Input devices atau unit

masukkan yang umumnya digunakan personal komputer (PC) adalah

keyboard dan mouse. Data yang dimasukkan dapat berupa signal input

dam maintenance input. Signal input berupa data yang dimasukkan

kedalam sistem komputer, sedangkan maintenance input berbentuk

program yang digunakan untuk mengolah data yang dimasukkan. Jadi

input device selain digunakan untuk memasukkan data dapat juga

digunakan untuk memasukkan sebuah program.

a. Proses device (unit proses)

Berikut adalah contoh unit proses dalam sebuah komputer yaitu :

1) Power Supply

Power supply menyediakan arus listrik untuk berbagai

peralatan CPU. power supply mengkonversi listrik dan

menyediakan aliran listrik tetap untuk digunakan oleh

komputer. kualitas power supply menentukan kinerja dari

komputer.

2) RAM (Random Access Memory)

RAM merupakan sebuah perangkat keras komputer yang

berfungsi sebagai tempat penyimpanan data sementara.

Memori bekerja dengan menyimpan data dan menyuplai

data-data penting yang dibutuhkan prossesor dengan cepat


17

untuk diolah menjadi informasi.

3) Kartu grafis

Kartu grafis atau kartu video adalah kartu ekspansi yang

berfungsi untuk menciptakan dan menampilkan tampilan-

tampilan layar. kartu grafis ini terdiri dari rangkaian

komponen elektronika dan biasanya tertancap pada slot di

papan utama CPU.

4) Processor

Processor adalah komponen yang mengeksekusi perhitungan

kompleks yang memungkinkan komputer untuk bisa

digunakan untuk menjalankan sistem dalam sebuah

komputer.

5) Motherboard

Motherboard atau papan induk adalah papan sirkuit tempat

berbagai komponen elektronik saling tehubung, motherboard

bisa disingkat dengan kata mobo, pada mobo inilah seluruh

perangkat keras lain dihubungkanOutput device (Unit K)

Berikut adalah contoh dari perangkat keras yang berfungsi

sebagai unit keluaran yaitu :

6) Monitor

Monitor adalah salah satu jenis soft-copy devices, karena

keluarannya adalah berupa signal elektronik, dalam hal ini


18

berupa gambar yang tampil di layar monitor. Gambar yang

tampil adalah hasil dari pemrosesan data ataupun informasi

masukkan.

7) Printer

Printer merupakan sebuah perangkat keras yang

dihubungkan pada komputer yang berfungsi untuk

menghasilkan cetakan balik berupa tulisan ataupun gambar

dari komputer pada media kertas atau sejenisnya.

b. Backing storage (unit penyimpanan)

Berikut ini adalah berbagai contoh dari perangkat keras yang

berfungsi sebagai unit penyimpanan yaitu:

1) Hardisk (HDD)

Hardisk bisa disebut juga hardisk driver (HDD) atau hard

drive (HD) adalah sebuah perangkat keras komputer yang

berfungsi sebagai tempat penyimpanan data sekunder,

didalam hardisk berisi piring magnetis.

Data yang disimpan dalam hardisk tidak akan hilang ketika

tidak diberi tegangan listrik. Dalam sebuah hardisk, bisanya

terdapat lebih dari satu piringan untuk memperbesar

kapasitas data yang dapat ditampung. Preferal (unit

tambahan)

Contoh perangkat keras komputer yang termasuk dalam unit

tambahan atau perferal antara lain :


19

2) Modular

Modular adalah suatu rangakaian yang berfungsi melakukan

proses modulasi,yaitu proses data pada frekuensi gelombang

pembawa (carrier signal) ke sinyal informasi/pesan agar bisa

dikirim melalui media tertentu (seperti kabel atau udara),

biasanya berupa gelombang sinus. Dalam hal ini sinyal pesan

disebut pemodulasi. Data dari komputer yang bebentuk

sinyal digital dirubah menjadi sinyal analog.

3) Kartu Suara

Kartu suara adalah suatu perangkat keras komputer yang

digunakan untuk mengeluarkan suara dan merekam suara.

2. Hardware yang ada di Instansi Kerja Praktek

Dalam pelaksanaan kerja praktek yang kelompok kami lakukan pada

instansi yang bersangkutan menggunakan bebarapa perangkat keras yang

terhubung melalui topologi star atau topologi bintang. Perangkat keras yang

digunakan antara lain :

- Personal computer yang digunakan ada 6 unit PC

- Printer yang dimiliki sebanyak 3 unit

B. 1 unit cloud server, danSpesifikasi Software

1. Spesifikasi Singkat tentang Software

Software komputer adalah sekumpulan data elektronik yang disimpan

dan diatur oleh komputer ,data elektronik yang disimpan itu dapat berupa
20

program atau instruksi yang akan menjalankan suatu perintah. Melalui

software atau perangkat lunak inilah suatu komputer dapat menjalankan suatu

perintah. Dengan kata lain software merupakan data yang diformat dan

disimpan secara digital, termasuk program komputer, dokumentasinya,dan

berbagai informasi yang bisa dibaca dan ditulis oleh komputer.

Dengan menggunakan berbagai macam bahasa pemrograman tersebut,

kemudian dibuat berbagai jenis software, jumlah software saat ini banyak

sekali dan berdasarkan penggunaannya software tersebut dapat

dikelompokkan sebagai berikut :

a. System Software

Menjalankan tugas tertentu yang dibutuhkan untuk

mengendalikan berbagai peralatan yang terdapat pada sistem

komputer, serta menjalankan beberapa perintah yang berkaitan dengan

pemrosesan data di dalam komputer.

b. Operating system

Merupakan perangkat lunak yang mengoperaikan komputer

serta menyediakan antar muka dengan perangkat lain atau dengan

pengguna.

c. device driver

Digunakan untuk mengedalikan peralatan yang tersambung ke

unit utama komputer.

d. system utility
21

Merupakan program yang berfungsi sebagai perangkat

pemelihara komputer seperti antivirus,partisi hardisk,manajemen

hardisk dan lain- lain.

e. Application Software

Application software merupakan software yang dibuat untuk

tujuan tertentu. Software ini digunakan untuk mengelola data milik

user, dibutuhkan oleh user dan penggunaanya dikendalikan oleh user.

Apliction software ini terbagi lagi menjadi beberapa katagori misalnya

Commercial software atau package software yaitu software yang

digunakan untuk dijual dalam bentuk paket,misalnya Microsoft office,

Adobe Photoshop dan lain-lain. Untuk menggunakan software ini kita

harus membayar lisensi kepada perusahaan pembuat software tersebut.

f. Public domain software

Merupakan software-software yang tidak dilindungi oleh hak

cipta dan boleh diguakan oleh siapa saja.

g. Shareware

Merupakan software yang dapat di download dan digunakan

secara gratis dengan fitur yang terbatas atau waktu pakai yang

terbatas.

h. Freeware

Freeware adalah software yang memiliki hak cipta tetapi di

distribusikan secara bebas tanpa biaya.


22

i. Rentalware

Rentalware adalah software yang disewa oleh user dengan biaya

tertentu dan dapat diunduh kapan dibutuhkan.

j. Pirated software

Merupakan software yang digunakan secra tidak legal

2. Software yang dipakai oleh instansi Kerja Praktek

a. Database (MySQL)

Suatu sistem tidak akan lepas dari penggunaan penyimpanan

data. Database adalah sebuah bentuk media yang digunakan untuk

menyimpan data. Dimana penyimpanan data dapat diilustrasikan

sebagai sebuah gudang yang dapat dijadikan tempat menyimpan

berbagai macam barang yang terdapat dalam suatu database, barang

adalah data. Dalam sebuah database terdiri dari dua bagian dasar yang

membangun sebuah database yaitu tabel dan kolom.

1) Tabel

Tabel dalam sebuah database dikenal dengan istilah yang

sering juga disebut entitas atau entity, dimana tabel

digunakan untuk menyimpan sebuah kelompok data.

Fungsi tabel ini adalah menyimpan data yang sifatnya

khusus. Sehingga turunan dari sebuah database dapat lebih

dari satu buah (Nugroho, 2005:75).

2) Kolom
23

Kolom adalah bentuk terkecil dari sebuah database setelah

tabel, dimana kolom berfungsi untuk memisahkan jenis data

dalam cakupan yang lebih khusus. Kolom juga dapat dikenal

dengan field atau atribut (Nugroho, 2005:76).

MySQL merupakan salah satu perangkat lunak sistem

manajemen berbasis data yang menggunakan perintah standar SQL

(Structured Query Languange). Dimana SQL mampu untuk

melakukan banyak eksekusi perintah Query dalam satu permintaan,

baik itu menerima dalam mengirimkan data. MySQL juga multi user

dalam arti dapat digunakan oleh banyak penggunaan dalam waktu

bersamaan. Dengan sekitar enam juta instalasi diseluruh dunia

(Wikipedia, 2007).

Penggunaan MySQL yang merupakan salah satu database server

sekaligus dapat berjalan multi-OS (Operating System) memiliki

keunggulan lainnya seperti open source sehingga penggunaannya

tidak perlu membayar lisensi kepada pembuatnya. Dapat mendukung

database dengan kapasitas yang sangat besar. Merupakan database

management system yang mudah digunakan untuk mengakses

MySQL diantaranya adalah C,C++, Java, PHP, dll (Mysql Internals

Manual, 2007).

MySQL adalah salah satu server database SQL multi user dan

multi threaded yang didukung oleh PHP untuk melakukan koneksi dan

query pada database ini.


24

b. Netbeans

Netbeans adalah suatu serambi pengembangan perangkat lunak

yang ditulis dalam bahasa pemrograman Java. Serambi Pada

NetBeans, pengembangan suatu aplikasi dapat dilakukan dimulai dari

setelan perangkat lunak modular bernama modules.

Semula, aplikasi NetBeans IDE ini diperuntukkan bagi

pengembangan dalam Java. Namun, aplikasi ini juga mendukung

program-program pembuatan bahasa lain secara khusus seperti PHP,

C/C++ dan HTML5.

NetBeans adalah alat lintas serambi serta penerapannya

dijalankan pada Microsoft Windows, Mac OS X, Linux, Solaris dan

serambi-serambi lainnya yang mendukung JVM yang sepadan.

c. Java

Mengutip Wikipedia, Bahasa pemrograman Java adalah “bahasa

pemrograman umum (general-purpose) yang konkuren (menjalankan

banyak hal secara bersamaan), berbasis class, berorientasi objek dan

dirancang secara khusus agar tidak bergantung pada sistem tertentu.

Dari pengertian ini kita bisa melihat fitur-fitur terpenting dalam

bahasa Java :

1) General-purpose computer programming language

Java dirancang sebagai bahasa pemrograman umum yang

bisa di pakai untuk membuat aplikasi, mulai untuk aplikasi

desktop website, aplikasi mobile hingga embedded device


25

seperti microprocessor atau perangkat pintar.

Ini berbeda dengan bahasa pemrograman yang secara khusus

dipakai untuk pembuatan aplikasi tertentu. Sebagai contoh,

bahasa pemrograman PHP secara khusus dipakai untuk

membuat website saja.

2) Concurrent

Dalam teori komputasi, concurrent programming adalah fitur

di sebuah bahasa pemrograman yang bisa menjalankan

banyak hal dalam satu waktu. Lawan dari kata concurrent

adalah sequential programming, dimana alur pemrograman

di proses secaraberurutan dari awal hingga akhir.

Secara umum, concurrent programming akan meningkatkan

performa dari aplikasi yang dibuat.

3) Class-based object oriented

Mungkin inilah fitur paling terkenal di bahasa Java, yakni

pemrograman berbasis object. Berbeda dengan kebanyakan

bahasa pemrograman yang mendukung pemrograman

prosedural dan object.

sekaligus (seperti C++, PHP, atau Python), bahasa Java

hanya menyediakan konsep object saja.

Fitur pemrograman object ini memang akan memudahkan

dalam pembuatan aplikasi yang kompleks, namun di sisi lain


26

ini juga membuat bahasa Java relatif lebih susah dipelajari

terutama bagi pemula.

Saya sendiri menyarankan tidak menjadikan bahasa Java

sebagai bahasa pemrograman pertama. Konsep pemrograman

object baru pas dipelajari jika sebelumnya anda sudah pernah

belajar bahasa pemrograman procedural, seperti bahasa

Pascal, C, atau C+.


27
28

BAB IV

PEMBAHASAN

A. Proses Bisnis

Sistem ini bekerja dengan saling terhubung dan dapat dengan mudah

untuk membantu mencari informasi tentang sebuah asset, mencantumkan

asset baru dan juga dapat menghapus asset atau menghapus asset (scraping).

Proses ini berawal dari modul team purchasing, dimana asset akan di create

oleh team purchasing dan akan otomatis pula ter create nomor Assetnya

ketika sudah memasuki data yang harus di isi, sehingga kita dapat mengetahui

asset apa yang di pesan, dan siapa pemesannya, dan juga per untukan ruangan

mana yang akan di adakan asset tersebut. Lalu terdapat team Fixed Asset

yang akan di beri modul Fixed Asset dimana bertugas untuk memberikan

Label asset pada fisik asset tersebut agak mudah untuk di tracking nantinya.

Setelah asset tersebut di berikan label, maka asset tersebut siap untuk di

antarkan ke ruangan yang telah di peruntukan, lalu team Fixed Asset akan

mengupdate status, foto asset dan lokasi asset tersebut melalui via aplikasi

android yang telah di buatkan. Dan segala informasi asset tersebut akan

terdata di Database yang telah di siapkan. Dan saat semua data telah

terupdate, maka akan di berikan laporan ke pihak accounting, untuk validasi

data dan laporan yang telah di berikan oleh team Fixed Asset, setelah di

validasi, maka Laporan tersebut dapat di serahkan ke Direksi.


29

B. Aturan Bisnis

Dalam suatu sistem pastinya ada kebijakan atau aturan-aturan yang

harus di taati bagi seluruh pengguna/user nya, agar sistem ini dapat menjadi

suatu solusi terbaik untuk memudahkan suatu aktivitas yang dilakukan setiap

saat. Berikut aturan dan kebijakan untuk menjalankan sistem informasi ini :

1. Account

Dalam sistem ini, seluruh karyawan yang berhubungan langsung

dengan asset perusahaan akan di berikan account dengan email masing-

masing, dalam account itu karyawan harus bertanggung jawab penuh

atas apapun yang terjadi pada Asset yang terekap dengan account setiap

karyawan.

2. Alur data yang di lakukan

Alur data yang harus dilakukan haruslah sesuai dengan SOP yang telah

di buat dan telah di setujui, dan setiap karyawan hanya di bolehkan

mempunyai 1 modul, sesuai dengan jabatannya masing-masing, kecuali

direksi.

3. Operation

Operation atau pengoperasian terhadap langkah atau masukan yang

telah di operasikan terhadap Asset perusahaan maka di sistem ini dapat

melihat account masing-masing yang telah mengoperasikannya, jika

terjadi kesalahan dalam pengoperasian sistem ini, maka karyawan harus

bertanggung jawab penuh.


30

C. Dekomposisi Fungsi

Dalam suatu sistem informasi tentulah harus mempunyai input, prosses

dan output yang sebagai mana ketiga komponen ini harus terwujud agar

berjalannya suatu sistem informasi, berikut contoh dari Sistem Informasi

yang sedang di buat:

Gambar 3.1 Tampilan Login Aplikasi

Pada menu ini, user akan di arahkan untuk mengisi account yang sudah di daftarkan atau

belum ke dalam FMS/Sistem Informasi ini, proses yang di lakukan yaitu dengan

mencocokan data dari username dan password, dengan database pada akun yang telah di

daftarkan, bila proses itu sudah selesai, maka akan terjadi 2 output yang akan di

tampilkan seperti gambar berikut:


31

Gambar 3.2 Tampilan Login Success

Bila login berhasil, makan akan menampilkan alert success yang dapat

dilihat setelah login. Di dalam alert ini akan menampilkan alert success ketika

password dan username yang di masukkan adalah account yang sudah di

daftarkan.

Gambar 3.3 Tampilan Login Salah.


32

Pada page ini, bila keadaan yang terjadi username ataupun password

yang belum di daftarkan salah, akan terdapat alert login failed apabila

username dan password account belum di daftarkan..

D. Analisa Masukkan (Input), Proses dan Keluaran(Output)

Dalam aplikasi pengolahan data Asset TI yaitu memiliki sistem

masukan(input), proses dan keluaran(output).

1. Analisa Masukan (input)

Dokumen masukan akan diolah sesuai dengan maksud dan tujuan

sistem. Bentuk data dokumen tersebut adalah :

a. Login Account

Nama masukkan : tbLogin

Sumber : Admin

Pengguna : Pengguna

Fungsi : Sebagai data account pegawai

Media : Soft File

Rangkap : 1 Lembar Register Asset

b. Penambahan Barang

Nama masukkan : tbBarang

Sumber : General Affair

Distribusi : General Affair

Fungsi : Sebagai data penambahan


33

Asset Media : Soft File

Rangkap : 1 Lembar

c. Approval

Nama masukkan : tbTransaksi

Sumber : General Affair

Distribusi : Pengguna dan General Affair

Fungsi : Sebagai data Approval antara user dengan

General Affair

Media : Soft File

Rangkap : 1 Lembar

2. Analisa Keluaran (output)

a. Laporan Data Asset

Nama masukkan : Data_Asset

Sumber : General Affair

Distribusi : General Affair & Manager

Fungsi : Menampilkan Data Asset Perusahaan Media :

Soft File & Kertas

Rangkap : 4 Lembar

b. Laporan Data Transaksi

Nama masukkan : Data_Transaksi

Sumber : General Affair

Distribusi : General Affair & Manager

Fungs : Menampilkan Data Transaksi Antara User


34

dengan General Affair

Media : Soft File & Kertas Rangkap : 4 Lembar

E. Diagram Alur Data (DAD) Konteks, Nol dan Rinci

Data flow diagram menggambarkan komponen-komponen dan alir data

antar komponen yang terdapat pada sistem. Berikut merupakan desain data

flow diagram dari sistem ini yang digambarkan mulai dari diagram konteks

hingga menjadi data flow diagram level 1.

1. Diagram Alur Data (DAD) Sistem Berjalan

a. Diagram Konteks Sistem Berjalan


35

Gambar 4.1 Diagram Konteks Sistem Berjala


36

b. Diagram Nol Sistem Berjalan

Gambar 4.2 Diagram Nol Sistem Berjalan.


37

c. Diagram Rinci Level 1 Sistem Berjalan

Gambar 4.3 Diagram Rinci Level 1 Sistem Berjalan.


38

d. Diagram Rinci Level 2 Sistem Berjalan

Gambar 4.4 Diagram Rinci Level 2 Sistem Berjalan


39

e. Diagram Rinci Level 3 Sistem Berjalan

Gambar 4.5 Diagram Rinci Level 3 Sistem Berjalan.


40

2. Diagram Alur Data (DAD) Sistem yang Diusulkan

a. Diagram Konteks Sistem yang Diusulkan

Gambar 4.6 Diagram Konteks Sistem yang Diusulkan.


41

b. Diagram Nol Sistem yang Diusulkan

Gambar 4.7 Diagram Nol Sistem yang Diusulkan


42

c. Diagram Rinci Level 1 Sistem yang Diusulkan

Gambar 4.8 Diagram Rinci Level 1 Sistem yang Diusulkan

d. Diagram Rinci Level 2 Sistem yang Diusulkan

Gambar 4.9 Diagram Rinci Level 2 Sistem yang Diusulkan


43

e. Diagram Rinci Level 3 Sistem yang Diusulkan

Gambar 4.10 Diagram Rinci Level 3 Sistem yang Diusulkan


44

f. Diagram Rinci Level 4 Sistem yang Diusulkan

Gambar 4.11 Diagram Rinci Level 4 Sistem yang Diusulkan

F. Kamus Data

1. Kamus Data Masukan

a. Data Karyawan

Nama Arus : Data karyawan


Alias : - Data Karyawan
- View Data Karyawan
Bentuk : Form/Dokumen
data Arus : 1.1 Admin
data 1.2 Admin
Penjelasan : Inputan data master karyawan
Periode : Setiap ada karayawan baru
sebagai GA
Strukur dat : @IdKar+IdJabatan+No_identitas
+Nama+Gender+NoTlp
a
+Tgl Lahir+Alamat
No_identitas = *No KTP*
*Merubah dan menghapus data
mengakibatkan perubahan pada
data lain* 45

b. Data Login

Nama Arus : Data user pass


Alias : View data user pass
Bentuk : Form/Dokumen
data Arus : 1.2 - Admin
data : Inputan data master login
Penjelasan : Setiap ada karayawan baru
Periode
sebagai GA dat :
@IdLogin+IdKar+username+password
a
Strukur
Komentar: -

c. Data Divisi

Nama Arus : Data Divisi


Alias : View Divisi
Bentuk : Form/Dokumen
data Arus : 1.3 - Admin
data : Inputan data master divisi
Penjelasan : Setiap ada divisi baru
Periode data: @IdDivisi+Nm_Divisi+Ket
Strukur : ket = *Keterangan*
Komentar

d. Data Barang
46

Nama Arus : Data Barang


Alias :-
Bentuk : Form/Dokumen
data Arus : 2.1 Staff GA
data 3.0 Staff GA
Penjelasan: Berisi data data barang Periode: Setiap ada
pengajuan barang
baru,maintenace, lelang
Strukurdata: @IdBarang+IdApproval+Nm_Brg
+Hrg_Brg+Unit+Status+Nm_Pengguna
+Lokasi_Aset+Thn_Beli+Keterangan Komentar:
Status=*[Baru|Maintenance|Lelang]*
Keterangan=*keterangan barang*

e. Form Pengajuan Barang

Nama Arus : Pengajuan Barang


Alias : - View Pengajuan
- Confirm
Bentuk : Form/Dokumen
data Arus : 3.0 Staff GA
data 3.1 Pemimpin GA
Penjelasa : Berisi data data barang, konfirmasi
n Approval
: Setiap pembuatan Approval
Periode dat : @IdApproval+IdDivisi
+IdKar+Nm_Pembuat_Approve
Strukur a
+Status+Tgl_Approve+Keterangan Komentar:
Status=*[Approve|Reject|Reviewing]*
Keterangan=*keterangan Status* Tgl_Approve =
*datetime format(yyyy-DD-mm HH:mm)*
47

2. Kamus Data Keluaran

a. Laporan

Nama Arus : Laporan


Alias :-
Bentuk :
data Arus :Form/Dokumen/Print
4.0 - Manager
data : Berisi data data barang, konfirmasi
Penjelasan Approval
Periode : Laporan Setiap bulan
Strukur dat : @IdApproval+IdDivisi+IdKar
+Nm_Pembuat_Approve+Status
a
+Tgl_Approve+Keterangan
+IdBarang+IdApproval+Nm_Brg
+Hrg_Brg+Unit+Status+Nm_Pengguna
+Lokasi_Aset+Thn_Beli+Keterangan

Komentar :-

G. Spesifikasi Proses

Spesifikasi sistem berjalan dibutuhkan dalam

memproses suatu data. Adapun dokumen yang ada

dalam penggunaan sistem ini adalah sebagai berikut:

1. Proses 1.1

Nama Proses :input username dan password

Masukkan :data Login


48

Keluaran :Masuk ke Form Selanajutnya / Tetap di Form Login

Uraian :proses ini adalah input username dan password yang


penjelasan sudah di daftarkan untuk masuk kedalam aplikasi

2. Proses 2.1

: Nama Proses input view data barang

Masukkan data view barang

Keluaran :
Penyimpanan pada Tabel TbBarang

Uraian proses ini adalah input data barang yang ingin di view,
penjelasan dan setelah
: itu terdapat output data barang pada
TbBarang

3. Proses 3.1

Nama Proses : input Request Asset

Masukkan : data Request Asset

Keluaran : Penyimpanan data pada TbTransaksi

Uraian : proses ini adalah input Request Asset ke General


penjelasan Affair
49

4. Proses 3.2

: Nama Proses Input Konfirmasi Request Asset

Masukkan Data Approval ke TbTransaksi

Keluaran Info :Approval ke User

Uraian proses ini adalah menkonfirmasi Request Asset yang di


penjelasan : masukkan
: datanya ke TbTransaksi dan memberikan
info approval ke user
50

5. Proses 4.1

: Nama Proses Laporan

Masukkan input tanggal, divisi, status, nama

Keluaran : , dan Print


Data file

Uraian proses ini adalah proses Laporan semua barang , dan


penjelasan menghasilkan
: document file dan juga print dari
document

H. Bagan Terstruktur

1. Bagan Terstruktur Proses 1.0

Proses Login

Isi form Simpan Sessio n Login

Gambar 4.12 Bagan Struktur Proses 1.0


51

2. Bagan Terstruktur Proses 2.0

Proses View Data Barang

Filter Pencarian Tampilkan data

Gambar 4.13 Bagan Terstruktur Proses 2.0


52

3. Bagan Terstruktur Proses 3.0

Proses Request Aset

Pengkonfirmasian
Isi form request
Request

Gambar 4.14 Bagan Terstruktur Proses 3.0


53

4. Bagan Terstruktur Proses 4.0

Proses Pencetakan
Laporan

Filter laporan Cetak Laporan

Gambar 4.15 Bagan Terstruktur Proses 4.0

I. Spesifikasi Proses

Modul input data barang :

 Mulai

 Baca data barang pada database tbbarang

 Input data barang


54

 Selesai

Modul Form pimpinan GA :

1. Form approval

 Mulai

 Baca approval dari tbapproval

 Selesai

2. Form confirm approval

 Mulai

 Baca approval dari tbapproval

 Input confirm pada database tbapproval

 Selesai

Modul Manager

 Mulai

 Baca data barang pada database tbbarang

 Selesai

J. Analisa Basis Data

Gambar 4.16 Entity Relationship Diagram (ERD).


55

K. Spesifikasi Basis Data

1. Tabel karyawan

No. Nama Field Tipe Data Keterangan

1. id INT Id dari karyawan dan termasuk

primary key dari tabel

karyawan

2. id_login INT Id yang merujuk ke tabel login

3. id_role INT Id yang merujuk ke tabel role

4. id_divisi INT Id yang merujuk tabel divisi

5. nama Varchar(50) Nama Karyawan

6. email Varchar(30) Email karyawan

7. gender Enum(‘Laki- Jenis Kelamin Karyawan

Laki’,’Perempuan’)

8. no_telp Varchar(20) Nomor Telepon Karyawan

9. tanggal_lahir DATE Tanggal Lahir Karyawan

10. alamat Text Alamat tempat tinggal

karyawan

Tabel 4.1 Tabel Karyawan

2. Tabel Login
56

No. Nama Field Tipe Data Keterangan

1. id INT Id login dan primary key dari tabel login

2. username Varchar(60) Username yang digunakan untuk login

3. password Varchar(60) Password untuk login

Tabel 4.3 Tabel Login

3. Tabel Divisi

No. Nama Field Tipe Data Keterangan

1. id INT Id sebuah divisi dan primary key dari tabel

divisi

2. nama Varchar(30) Nama divisi

3. keterangan Text Keterangan dari divisi

Tabel 4.4 Tabel Divisi

4. Tabel Role

No. Nama Field Tipe Data Keterangan

1. id INT Id role dan primary key dari tabel role

2. nama Varchar(20) Nama role

3. keterangan text Keterangan role

Tabel 4.5 Tabel Role

5. Tabel Barang
57

No. Nama Field Tipe Data Keterangan

1. id INT Id dari barang dan primary key tabel

barang

2. nama_barang Varchar(50) Nama barang

3. harga_barang double Harga barang

4. status INT Status dari barang, 1 (aktif) dan 0 (non-

aktif)

5. tanggal_beli DATETIME Waktu dan tanggal beli barang

6. keterangan text Keterangan tentang baran

Tabel 4.6 Tabel Barang

1. Tabel Transaksi

No. Nama Field Tipe Data Keterangan

1. id INT Id transaksi dan primary key dari tabel

transaksi

2. Id_barang INT Id barang yang merujuk dari tabel

barang

3. Id_karyawan INT Id karyawan yang melakukan

transaksi, merujuk dari tabel karyawan

4. Tanggal_transaksi DATETIME Tanggal dilakukan transaksi

5. Status Varchar(25) Status transaksi

6. keterangan Text Keterangan transaski yang dilakukan

Tabel 4.6 Tabel Transaksi


58

L. Rancangan Layer, Form Masukkan dan Form Keluaran

1. Form Login

Gambar 4.17 Tampilan Login

2. Tampilan Dashboard
59

Gambar 4.18 Tampilan Dashboard


60

3. Tampilan Form Tambah Aset

Gambar 4.19 Tampilan Tambah Aset

4. Tampilan Form Tambah Vendor


61

Gambar 4.20 Tampilan Form Tambah Vendor


62

5. Tampilan form tambah buget

Gambar 4.21 Bagian Tampilan form tambah buget

6. Tampilan form mutasi asset

Gambar 4.22 Bagian Tampilan form mutase asset

7. Tampilan form verifikasi tambah asset


63

Gambar 4.23 Bagian Tampilan form verifikasi tambah asset

8. Tampilan form berhasil verifikasi tambah asset

Gambar 4.24 Bagian Tampilan berhasil verifikasi tambah asset

9. Tampilan output data pembelian asset

Gambar 4.25 Bagian Tampilan output data pembelian asset


64

10. Tampilan output data asset seluruh cabang

Gambar 4.26 Bagian Tampilan output data asset seluruh cabang

11. Tampilan output pengajuan asset


65

Gambar 4.27 Bagian Tampilan output pengajuan asset

12. Tampilan output data vendor

Gambar 4.28 Bagian Tampilan output data vendor

13. Tamplian output mutasi buget


66

Gambar 4.29 Bagian Tampilan output mutasi buget

14. Tampilan output histori mutasi

Gambar 4.30 Bagian Tampilan output data pembelian asset

13. Laporan data barang


67

Gambar 4.31 Laporan Data Barang

14. Laporan data vendor

Gambar 4.32 Laporan Data Barang

15. Laporan data pembelian asset


68

Gambar 4.33 Laporan Data Barang

16. Laporan mutasi buget

Gambar 4.34 Laporan mutasi buget

17. Laporan history mutasi buget


69

Gambar 4.35 Laporan mutasi buget


64

BAB V

PENUTUP

A. Kesimpulan

Berdasarkan permasalahan, tujuan penelitian, hasil analisis dan

pembahasan yang telah dipaparkan, maka dapat disimpulkan bahwa hasil

penelitian dan pembahasan yang dilakukan pada penelitian yang bertujuan

untuk mecancang suatu sistem pada PT. Tunas Ridean Tbk tentang

Perancangan Sistem Informasi Pengelolaan Asset Berbasis Java, didapat

suatu kesimpulan sebagai berikut yaitu :

1. Sistem ini dapat memudahkan dalam penginputan,

pencarian, penyimpanan dan pengelolaan data-data dan

Asset pada perusahaan.

2. Sistem ini dapat membuat laporan dengan format .pdf

yang berisikan keseluruhan data Asset.

3. Sistem ini dapat diakses tanpa menggunakan koneksi

internet atau secara offline.

4. Dalam sistem ini banyak fitur yang memadai, seperti :

sorting data berdasarkan barang lama, barang reject,

asset yang sudah tidak terpakai, kondisi aset yang

dimiliki, aset yang sedang digunakan, aset yang dipinjam

dan aset yang dikembalikan oleh karyawan.


65

5. Dalam sistem ini dapat memantau Asset perusahaan

yang berjenis Asset bergerak maupun tidak bergerak.

Sistem ini dapat meningkatakan proses pembuatan laporan agar

menjadi efektif karena adanya sistem yang terkomputerisasi ,

Mendeskripsikan hasil uji coba sistem aplikasi pengelolahan asset

perancangan Sistem Informasi pengelolahan asset berbasis Java ,

Menggambarkan secara umum suatu kegiatan rancangan proyek dan aktifitas

– aktifitas khusus yaitu Teknik atau Metode – metode dalam merancang

sesuatu tujuan dari strategi perancangan adalah memberikan kepastian apakah

aktifitas aktifitas tersebut benar benar

Realistik dengan batasan waktu dan sumber-sumber yang telah

ditetapkan, Contohnya:

a. Merancang sistem aplikasi informasi kepada setiap karyawan yang belum

memahami pengelolahan asset dengan mudah dan terkomputerasi.

b. Membuat sistem aplikasi untuk mempermudah antara admin dan

karyawan untuk dapat mengecek ( Monitoring ) dan dapat mengelolah

barang barang asset perusahaan.

B. Saran

Adapun saran yang dapat diberikan penulis agar Perancangan Sistem

Informasi Pengelolaan Asset Berbasis Java pada PT. Tunas Ridean Tbk

ini menjadi lebih baik di masa yang akan datang, agar dalam pengembangan

kedepannya sistem informasi ini juga dapat diperbaharui lagi dalam hal
66

tampilan dan terutama fitur atau fungsinya agar bisa ditambahkan lagi.

Kekurangan dari sistem ini yaitu perlunya penambahan fitur untuk

proses penyewaan dan pegembalian data aset barang, jika sewaktu-waktu ada

karyawan yang ingin menyewa aset perusahaan.

1. Gunakan Sistem yang berisikan list semua stok dari program.

2. Hasil dari print ini kemudian akan dibagikan kepada pihak accounting di

tiap tiap bagian tim stock opname. Usahakan yang menerima hasil print

bukanlah orang gudang, karena orang gudang tidak boleh tahu stok versi

program pada saat melakukan penghitungan.

3. Lakukan pengecekan ulang atas stok yang selisih. Jika terjadi kekurangan

cari penyebabnya apakah karena salah hitung atau memang terjadi selisih

atas stok.

4. Lakukan pengecekan stok dan beri tag/ stiker agar tidak terjadi double

penghitungan.

Setelah semua proses selesai, maka hasil stock opname tersebut diserahkan ke

bagian accounting untuk dilakukan adjustment stock atau penyesuaian.


67

DAFTAR PUSTAKA

Koher, L.A. Eric. 2007. Inventory dan Gudang Terkomputerisasi. Bandung:

Offset. Herlambang, Soendoro, dan Tanuwijaya, Haryanto. 2005. Sistem

Informasi:

Nugroho, Eko. 2010. Sistem Informasi Manajemen: Konsep Aplikasi dan

Perkembangannya. Yogyakarta: Penerbit ANDI

I Putu Agus Eka Pramata, 2014. Sistem Informasi dan Implementasinya.

Bandung: Informatika.

McLeod, Raymon. 2001. Sistem Informasi Manajemen. Edisi 9. Jakarta: PT

Index.

Wahyudi, Bambang. 2010. Konsep Sistem Informasi dari BIT sampai ke

Database. Yogyakarta: Andi.

Fitri, R. 2020. Pemrograman Basis Data Menggunakan MySQL (R. Fauzan

(ed.)). Banjarmasin: Poliban Press.

Kadir, A. 2017. Dasar Logika Pemrograman Komputer. Jakarta: Elex Media

Komputindo.

Octaviana, S. D. 2020. Komputer. Medan: Ilmu Komputer.


68

LISTING PROGRAM

1. LoginFrame.java

2. package asetku.frames;

3. import asetku.databases.ConnectionManager;

4. import asetku.databases.UserSession;

5. import asetku.models.User;

6. import java.awt.Dimension;

7. import java.awt.Toolkit;

8. import java.awt.event.KeyEvent;

9. import java.sql.Connection;

10. import java.sql.PreparedStatement;

11. import java.sql.ResultSet;

12. import java.sql.SQLException;

13. import javax.swing.JOptionPane;

14. public class LoginFrame extends javax.swing.JFrame {

15. Connection conn = ConnectionManager.getInstance().getConnection();

16. public LoginFrame() {

17. initComponents();

18. Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();

19. setLocation(dim.width / 2 - getSize().width / 2, dim.height / 2 - getSize().height / 2);

20. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

21.

22. final String nip = nipTextField.getText();

23. final String password = String.valueOf(passwordTextField.getPassword());

24.

25. final String query = "SELECT users.*, divisi.cabang_id\n"

26. + "FROM users JOIN divisi ON users.divisi_id=divisi.id\n"

27. + "WHERE users.nip=?";

28.

29. try {

30. PreparedStatement stmt = conn.prepareStatement(query);

31. stmt.setInt(1, Integer.parseInt(nip));


69

32.

33. ResultSet result = stmt.executeQuery();

34. if(!result.next()) {

35. JOptionPane.showMessageDialog(this, "NIP not found");

36. return;

37. }

38. String passwordCol = result.getString("password");

39. System.out.println(passwordCol);

40.

41. System.out.println(result.toString());

42.

43. if(!password.equals(passwordCol)) {

44. JOptionPane.showMessageDialog(this, "Password not equals");

45. return;

46. }

47.

48. setVisible(false);

49. User user = new User();

50.

51. user.setUser(

52. result.getString("id"),

53. result.getString("nip"),

54. result.getString("nama"),

55. result.getString("role_id"),

56. result.getString("cabang_id"),

57. result.getString("divisi_id")

58. );

59.

60. UserSession.setUser(user);

61.

62. new MainFrame().setVisible(true);

63.

64. } catch (SQLException e) {

65. System.err.println("Error Code : " + e.getErrorCode());

66. System.err.println("Message : " + e.getMessage());


70

67. }

68.

69. }

70.

71. private void nipTextFieldKeyPressed(java.awt.event.KeyEvent evt) {

72. char c = evt.getKeyChar();

73.

74. if(!Character.isDigit(c) && c != KeyEvent.VK_BACK_SPACE) {

75. evt.consume();

76. }

77. }

78.

79. private void nipTextFieldKeyTyped(java.awt.event.KeyEvent evt) {

80. char c = evt.getKeyChar();

81.

82. if(!Character.isDigit(c)) {

83. evt.consume();

84. }

85. }

86. public static void main(String args[]) {

87. java.awt.EventQueue.invokeLater(() -> {

88. new LoginFrame().setVisible(true);

89. });

90. }

91. private asetku.palettes.BackgroundJPanel backgroundJPanel1;

92. private javax.swing.JButton jButton1;

93. private javax.swing.JLabel jLabel1;

94. private javax.swing.JLabel jLabel2;

95. private asetku.palettes.RoundedJTextField nipTextField;

96. private asetku.palettes.RoundedJPasswordField passwordTextField;

97. HistoryPanel.Java

98. package asetku.panels;

99. import asetku.databases.ConnectionManager;

100. import asetku.models.Month;

101. import asetku.utils.Utilities;


71

102. import java.awt.event.ItemEvent;

103. import java.io.File;

104. import java.sql.Connection;

105. import java.sql.PreparedStatement;

106. import java.sql.ResultSet;

107. import java.sql.SQLException;

108. import java.util.Calendar;

109. import javax.swing.JOptionPane;

110. import javax.swing.table.DefaultTableModel;

111. import net.sf.jasperreports.engine.JRException;

112. import net.sf.jasperreports.engine.JasperFillManager;

113. import net.sf.jasperreports.engine.JasperPrint;

114. import net.sf.jasperreports.engine.JasperReport;

115. import net.sf.jasperreports.engine.util.JRLoader;

116. import net.sf.jasperreports.view.JasperViewer;

117. public class HistoryPanel extends javax.swing.JPanel {

118. Connection connection = ConnectionManager.getInstance().getConnection();

119. public HistoryPanel() {

120. initComponents();

121.

122.

123. Calendar calendar = Calendar.getInstance();

124. jComboBox1.setSelectedIndex(calendar.get(Calendar.MONTH));

125.

126. jComboBox1.addItemListener((ItemEvent e) -> {

127. if(e.getStateChange() == ItemEvent.SELECTED) {

128. Month month = (Month) e.getItem();

129. initHistoryTable(month.getId());

130. }

131. });

132. Month month = (Month) jComboBox1.getSelectedItem();

133. initHistoryTable(month.getId());

134. }

135.

136. private void initHistoryTable(String month) {


72

137. Object[] header = new Object[]{"No.", "Kode Aset", "Nama Aset", "Branch Sebelum", "Divisi Sebelum",

"Branch Sesudah", "Divisi Sesudah", "Tanggal Mutasi"};

138. DefaultTableModel tableModel = new DefaultTableModel(null, header);

139. tabelHistory.setModel(tableModel);

140. String query = "SELECT *\n" +

141. "FROM history_aset\n" +

142. " JOIN aset ON history_aset.aset_id=aset.id\n" +

143. " JOIN divisi AS d1 ON history_aset.divisi_lama_id=d1.id\n" +

144. " JOIN divisi AS d2 ON history_aset.divisi_baru_id=d2.id\n" +

145. " JOIN cabang AS c1 ON d1.cabang_id=c1.id\n" +

146. " JOIN cabang AS c2 ON d2.cabang_id=c2.id\n" +

147. "WHERE MONTH(history_aset.created_at)=?";

148. System.out.println(month);

149.

150. try {

151. PreparedStatement stmt = connection.prepareStatement(query);

152. stmt.setString(1, month);

153. ResultSet result = stmt.executeQuery();

154.

155. int i = 1;

156. while(result.next()) {

157.

158. String a = result.getString("aset.kode_aset");

159. String b = result.getString("aset.nama_aset");

160. String c = result.getString("c1.nama");

161. String d = result.getString("d1.nama");

162. String e = result.getString("c2.nama");

163. String f = result.getString("d2.nama");

164. String g = result.getString("history_aset.created_at");

165.

166. Object[] row = new Object[]{i, a, b, c, d, e, f, g};

167. tableModel.addRow(row);

168. i++;

169. }

170. } catch (SQLException e) {


73

171. System.err.println(e.getMessage());

172. }

173. }

174. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

175. String fileName = "src\\report\\report_mutasi.jasper";

176. File file = new File(fileName);

177.

178. try {

179. JasperReport reportReimburse = (JasperReport) JRLoader.loadObject(file);

180. JasperPrint jasperPrint = JasperFillManager.fillReport(reportReimburse, null, connection);

181. JasperViewer.viewReport(jasperPrint, false);

182. } catch(JRException e) {

183.

184. JOptionPane.showMessageDialog(this, e.getMessage());

185. }

186. }

187. private javax.swing.JButton jButton1;

188. private javax.swing.JComboBox<Month> jComboBox1;

189. private javax.swing.JScrollPane jScrollPane1;

190. private javax.swing.JTable tabelHistory;

191. BudgetPanel.java

192. package asetku.panels;

193. import asetku.databases.ConnectionManager;

194. import asetku.databases.DatabaseServices;

195. import asetku.databases.UserSession;

196. import asetku.models.Divisi;

197. import asetku.models.User;

198. import asetku.utils.Utilities;

199. import java.sql.Connection;

200. import java.sql.PreparedStatement;

201. import java.sql.ResultSet;

202. import java.sql.SQLException;

203. import java.sql.Timestamp;

204. import javax.swing.JComboBox;

205. import javax.swing.JComponent;


74

206. import javax.swing.JLabel;

207. import javax.swing.JOptionPane;

208. import javax.swing.JTextField;

209. import javax.swing.table.DefaultTableModel;

210. public class BudgetPanel extends javax.swing.JPanel {

211. Connection connection = ConnectionManager.getInstance().getConnection();

212. DatabaseServices services = null;

213. public BudgetPanel() {

214. initComponents();

215. services = new DatabaseServices(connection);

216. initBudgetTable();

217. }

218. private void initBudgetTable() {

219. Object[] header = new Object[]{"No.", "Divisi", "Saldo Sebelum", "Penambahan", "Saldo Sesudah",

"Tanggal"};

220. DefaultTableModel tableModel = new DefaultTableModel(null, header);

221. budgetTable.setModel(tableModel);

222.

223. String query = "SELECT * FROM history_budget\n"

224. + "JOIN divisi ON history_budget.divisi_id=divisi.id\n"

225. + "ORDER BY history_budget.created_at DESC";

226.

227. try {

228. PreparedStatement stmt = connection.prepareStatement(query);

229. ResultSet result = stmt.executeQuery();

230.

231. int i = 1;

232. while(result.next()) {

233.

234. String nama = result.getString("divisi.nama");

235. String a = Utilities.getFormatCurrency().format(result.getDouble("old_budget"));

236. String b = Utilities.getFormatCurrency().format(result.getDouble("nominal"));

237. String c = Utilities.getFormatCurrency().format(result.getDouble("new_budget"));

238. String d = result.getString("created_at");

239.
75

240. Object[] row = new Object[]{i, nama, a, b, c, d};

241.

242. tableModel.addRow(row);

243. i++;

244. }

245.

246.

247. } catch (SQLException e) {

248. System.err.println(e.getMessage());

249. }

250. }

251. private void addBudgetButtonActionPerformed(java.awt.event.ActionEvent evt) {

252. User currentUser = UserSession.getCurrentUser();

253. JTextField budgetField = new JTextField();

254. JComboBox<Divisi> divisiComboBox = new

JComboBox<>(services.getDivisions(currentUser.getBranchId()));

255. JComponent[] inputs = new JComponent[]{

256. new JLabel("Divisi"),

257. divisiComboBox,

258. new JLabel("Masukkan Budget"),

259. budgetField

260. };

261.

262. int result = JOptionPane.showConfirmDialog(this, inputs, "Masukkan Budget",

JOptionPane.PLAIN_MESSAGE);

263. if(result == JOptionPane.OK_OPTION) {

264. Divisi divisi = (Divisi) divisiComboBox.getSelectedItem();

265. String selectQuery = "SELECT * FROM divisi WHERE divisi.id=?";

266. String updateQuery = "UPDATE divisi SET budget=?\n"

267. + "WHERE divisi.id=?";

268. String insertQuery = "INSERT INTO history_budget(divisi_id, old_budget, nominal, new_budget,

created_at)\n"

269. + "VALUES (?, ?, ?, ?, ?)";

270.

271. try {
76

272. // Fetch data divisions

273. PreparedStatement selectStmt = connection.prepareStatement(selectQuery);

274. selectStmt.setString(1, divisi.getId());

275. ResultSet resultSet = selectStmt.executeQuery();

276. double oldBudget = 0;

277. double addition = Double.parseDouble(budgetField.getText());

278. while(resultSet.next()) {

279. oldBudget+= resultSet.getDouble("budget");

280. }

281.

282. // Update statement

283. PreparedStatement updateStmt = connection.prepareStatement(updateQuery);

284. updateStmt.setDouble(1, oldBudget + addition);

285. updateStmt.setString(2, divisi.getId());

286. updateStmt.execute();

287.

288. // Insert statement

289. PreparedStatement insertStmt = connection.prepareStatement(insertQuery);

290. insertStmt.setString(1, divisi.getId());

291. insertStmt.setDouble(2, oldBudget);

292. insertStmt.setDouble(3, Double.parseDouble(budgetField.getText()));

293. insertStmt.setDouble(4, oldBudget + addition);

294. insertStmt.setTimestamp(5, new Timestamp(new java.util.Date().getTime()));

295.

296. insertStmt.execute();

297. JOptionPane.showMessageDialog(this, "Berhasil");

298. initBudgetTable();

299. } catch (SQLException e) {

300. System.err.println(e.getMessage());

301. }

302. }

303.

304.

305. }

306. private void budgetTableMouseClicked(java.awt.event.MouseEvent evt) {


77

307.

308. }

309. private javax.swing.JButton addBudgetButton;

310. private javax.swing.JTable budgetTable;

311. private javax.swing.JComboBox<String> jComboBox2;

312. private javax.swing.JLabel jLabel3;

313. private javax.swing.JLabel jLabel4;

314. private javax.swing.JScrollPane jScrollPane2;

315. }

316. AsetPanel.java

317. package asetku.panels;

318. import asetku.databases.ConnectionManager;

319. import asetku.databases.DatabaseServices;

320. import asetku.databases.UserSession;

321. import asetku.models.Branch;

322. import asetku.models.Divisi;

323. import asetku.utils.Utilities;

324. import java.awt.HeadlessException;

325. import java.awt.event.ItemEvent;

326. import java.sql.Connection;

327. import java.sql.PreparedStatement;

328. import java.sql.ResultSet;

329. import java.sql.SQLException;

330. import javax.swing.DefaultComboBoxModel;

331. import javax.swing.JComboBox;

332. import javax.swing.JComponent;

333. import javax.swing.JLabel;

334. import javax.swing.JOptionPane;

335. import javax.swing.JPasswordField;

336. import javax.swing.event.DocumentEvent;

337. import javax.swing.event.DocumentListener;

338. import javax.swing.table.DefaultTableModel;

339. public class AsetPanel extends javax.swing.JPanel {

340. Connection connection = ConnectionManager.getInstance().getConnection();

341. DatabaseServices services;


78

342. String branchId = "";

343. Divisi[] divisions;

344. public AsetPanel() {

345. initComponents();

346. restrictAccess();

347. services = new DatabaseServices(connection);

348.

349. initAssetsTable("");

350.

351. searchField.getDocument().addDocumentListener(new DocumentListener() {

352. @Override

353. public void insertUpdate(DocumentEvent e) {

354. initAssetsTable(searchField.getText());

355. }

356.

357. @Override

358. public void removeUpdate(DocumentEvent e) {

359. initAssetsTable(searchField.getText());

360. }

361.

362. @Override

363. public void changedUpdate(DocumentEvent e) {

364. initAssetsTable(searchField.getText());

365. }

366. });

367. }

368.

369. private void restrictAccess() {

370. if(UserSession.getCurrentUser() == null) {

371. return;

372. }

373. String roleId = UserSession.getCurrentUser().getRoleId() != null ?

UserSession.getCurrentUser().getRoleId() : "";

374.

375. if(roleId.equals("2")) {
79

376. addAsetButton.setEnabled(false);

377. }

378. }

379.

380. private void initAssetsTable(String search) {

381. if(UserSession.getCurrentUser() == null) {

382. return;

383. }

384. Object[] header = new Object[]{"No.", "Kode Aset", "Nama Aset", "Harga Aset", "Divisi", "Status"};

385. DefaultTableModel tableModel = new DefaultTableModel(null, header) {

386. @Override

387. public boolean isCellEditable(int row, int column) {

388. return false;

389. }

390. };

391. asetTable.setModel(tableModel);

392.

393. String query = "SELECT * FROM aset\n"

394. + "JOIN divisi ON divisi.id=aset.divisi_id\n"

395. + "JOIN cabang ON divisi.cabang_id=cabang.id\n"

396. + "WHERE cabang.id=?\n"

397. + "AND aset.nama_aset LIKE ?";

398.

399. try {

400. PreparedStatement stmt = connection.prepareStatement(query);

401. stmt.setString(1, UserSession.getCurrentUser().getBranchId());

402. stmt.setString(2, '%' + search + '%');

403.

404. ResultSet result = stmt.executeQuery();

405. int i = 1;

406. while(result.next()) {

407.

408. String a = result.getString("kode_aset");

409. String b = result.getString("nama_aset");

410. String c = Utilities.getFormatCurrency().format(result.getDouble("harga_aset"));


80

411. String d = result.getString("divisi.nama");

412. String e = "";

413. if("0".equals(result.getString("verify"))) {

414. e = "Belum diverifikasi";

415. } else {

416. e = "Terverifikasi";

417. }

418.

419. Object[] row = new Object[]{i, a, b, c, d, e};

420. tableModel.addRow(row);

421. i++;

422. }

423. } catch (SQLException e) {

424. System.err.println(e.getMessage());

425. }

426. }

427. private void addAsetButtonActionPerformed(java.awt.event.ActionEvent evt) {

428.

429. }

430.

431. private void approveButtonActionPerformed(java.awt.event.ActionEvent evt) {

432.

433. JPasswordField passwordField = new JPasswordField();

434. JComponent[] inputs = new JComponent[]{

435. new JLabel("Kata sandi"),

436. passwordField

437. };

438. int result = JOptionPane.showConfirmDialog(this, inputs, "Masukkan kata sandi untuk melanjutkan",

JOptionPane.OK_CANCEL_OPTION);

439.

440. if(result == JOptionPane.OK_OPTION) {

441.

442. // Verify user

443. String query = "SELECT * FROM users\n"

444. + "WHERE users.nip=?";


81

445. try {

446. PreparedStatement stmt = connection.prepareStatement(query);

447. stmt.setString(1, UserSession.getCurrentUser().getNip());

448.

449. ResultSet resultSet = stmt.executeQuery();

450.

451. if(resultSet.next()) {

452. if(!resultSet.getString("password").equals(passwordField.getText())) {

453. JOptionPane.showMessageDialog(this, "Password salah");

454. return;

455. }

456. }

457. } catch (SQLException e) {

458. System.err.println(e.getMessage());

459. }

460.

461. // Update assets verify

462. int selectedIndex = asetTable.getSelectedRow();

463. Object selectedValue = asetTable.getValueAt(selectedIndex, 1);

464. query = "UPDATE aset SET verify=1\n"

465. + "WHERE kode_aset=?";

466.

467. try {

468. PreparedStatement stmt = connection.prepareStatement(query);

469. stmt.setObject(1, selectedValue);

470.

471. stmt.execute();

472. JOptionPane.showMessageDialog(this, "Berhasil!");

473. initAssetsTable("");

474. } catch (SQLException e) {

475. System.err.println(e.getMessage());

476. }

477.

478. }

479. }
82

480. private void mutasiButtonActionPerformed(java.awt.event.ActionEvent evt) {

481. int selectedRow = asetTable.getSelectedRow();

482. JComboBox<Branch> comboCabang = new JComboBox<>(services.getBranches());

483. branchId = ((Branch) comboCabang.getSelectedItem()).getId();

484. divisions = services.getDivisions(branchId);

485. JComboBox<Divisi> comboDivisi = new JComboBox<>(divisions);

486.

487. comboCabang.addItemListener((ItemEvent e) -> {

488. if(e.getStateChange() == ItemEvent.SELECTED) {

489. branchId = ((Branch) e.getItem()).getId();

490. divisions = services.getDivisions(branchId);

491. DefaultComboBoxModel<Divisi> defaultComboBoxModel = new

DefaultComboBoxModel<>(divisions);

492. comboDivisi.setModel(defaultComboBoxModel);

493. System.out.println("Branch ID : " + branchId);

494. for (Divisi division : divisions) {

495. System.out.println("Divisi ID : " + division.getId());

496. }

497. }

498. });

499.

500. comboDivisi.addItemListener((e) -> {

501. if(e.getStateChange() == ItemEvent.SELECTED) {

502. Divisi divisi = (Divisi) e.getItem();

503. System.out.println(divisi.getId());

504. }

505. });

506.

507. JComponent[] inputs = new JComponent[]{

508. comboCabang,

509. comboDivisi

510. };

511.

512. int result = JOptionPane.showConfirmDialog(this, inputs, "Mutasi", JOptionPane.PLAIN_MESSAGE);

513.
83

514. if(result == JOptionPane.OK_OPTION) {

515. String selectQuery = "SELECT * FROM aset\n"

516. + "WHERE kode_aset=?";

517. String updateQuery = "UPDATE aset SET divisi_id=?\n"

518. + "WHERE kode_aset=?";

519.

520. String insertQuery = "INSERT INTO history_aset(aset_id, divisi_lama_id, divisi_baru_id, created_at)\

n"

521. + "VALUES (?, ?, ?, ?)";

522.

523. try {

524. PreparedStatement selectStmt = connection.prepareStatement(selectQuery);

525. selectStmt.setString(1, asetTable.getValueAt(selectedRow, 1).toString());

526. ResultSet resultSet = selectStmt.executeQuery();

527. if(!resultSet.next()) {

528. throw new SQLException();

529. }

530.

531. PreparedStatement updateStmt = connection.prepareStatement(updateQuery);

532. updateStmt.setString(1, ((Divisi) comboDivisi.getSelectedItem()).getId());

533. updateStmt.setString(2, asetTable.getValueAt(selectedRow, 1).toString());

534. updateStmt.execute();

535.

536. PreparedStatement insertStmt = connection.prepareStatement(insertQuery);

537. insertStmt.setString(1, resultSet.getString("id"));

538. insertStmt.setString(2, resultSet.getString("divisi_id"));

539. insertStmt.setString(3, ((Divisi) comboDivisi.getSelectedItem()).getId());

540. insertStmt.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime()));

541. insertStmt.execute();

542.

543. JOptionPane.showMessageDialog(this, "Berhasil");

544.

545. initAssetsTable("");

546. } catch (SQLException e) {

547. System.err.println(e.getErrorCode());
84

548. System.err.println(e.getMessage());

549. } catch (HeadlessException ex) {

550. System.err.println(ex.getMessage());

551. }

552. }

553. }

554. private void asetTableMouseClicked(java.awt.event.MouseEvent evt) {

555. int selectedIndex = asetTable.getSelectedRow();

556.

557. if(asetTable.getValueAt(selectedIndex, 5).equals("Belum diverifikasi")) {

558. approveButton.setEnabled(true);

559. } else {

560. approveButton.setEnabled(false);

561. }

562.

563. if(asetTable.getValueAt(selectedIndex, 5).equals("Terverifikasi")) {

564. mutasiButton.setEnabled(true);

565. } else {

566. mutasiButton.setEnabled(false);

567. }

568. }

569. private javax.swing.JButton addAsetButton;

570. private javax.swing.JButton approveButton;

571. private javax.swing.JTable asetTable;

572. private javax.swing.JButton jButton2;

573. private javax.swing.JComboBox<String> jComboBox1;

574. private javax.swing.JLabel jLabel1;

575. private javax.swing.JLabel jLabel2;

576. private javax.swing.JScrollPane jScrollPane1;

577. private javax.swing.JButton mutasiButton;

578. private javax.swing.JTextField searchField;

579. }

580. AllAsetPanel.java

581. package asetku.panels;

582. import asetku.databases.ConnectionManager;


85

583. import asetku.databases.DatabaseServices;

584. import asetku.utils.Utilities;

585. import java.sql.Connection;

586. import java.sql.PreparedStatement;

587. import java.sql.ResultSet;

588. import java.sql.SQLException;

589. import javax.swing.event.DocumentEvent;

590. import javax.swing.event.DocumentListener;

591. import javax.swing.table.DefaultTableModel;

592. public class AllAsetPanel extends javax.swing.JPanel {

593. Connection connection = ConnectionManager.getInstance().getConnection();

594. DatabaseServices services;

595. public AllAsetPanel() {

596. initComponents();

597. services = new DatabaseServices(connection);

598. initAssetsTable("");

599.

600. searchField.getDocument().addDocumentListener(new DocumentListener() {

601. @Override

602. public void insertUpdate(DocumentEvent e) {

603. initAssetsTable(searchField.getText());

604. }

605.

606. @Override

607. public void removeUpdate(DocumentEvent e) {

608. initAssetsTable(searchField.getText());

609. }

610.

611. @Override

612. public void changedUpdate(DocumentEvent e) {

613. initAssetsTable(searchField.getText());

614. }

615. });

616.

617. }
86

618. private void initAssetsTable(String search) {

619. Object[] header = new Object[]{"No.", "Kode Aset", "Nama Aset", "Harga Aset", "Cabang", "Divisi"};

620. DefaultTableModel tableModel = new DefaultTableModel(null, header) {

621. @Override

622. public boolean isCellEditable(int row, int column) {

623. return false;

624. }

625. };

626. asetTable.setModel(tableModel);

627.

628. String query = "SELECT * FROM aset\n"

629. + "JOIN divisi ON aset.divisi_id=divisi.id\n"

630. + "JOIN cabang ON divisi.cabang_id=cabang.id\n"

631. + "WHERE aset.nama_aset LIKE ?";

632.

633. try {

634. PreparedStatement stmt = connection.prepareStatement(query);

635. stmt.setString(1, "%" + search + "%");

636. ResultSet result = stmt.executeQuery();

637. int i = 1;

638. while(result.next()) {

639.

640. String a = result.getString("kode_aset");

641. String b = result.getString("nama_aset");

642. String c = Utilities.getFormatCurrency().format(result.getDouble("harga_aset"));

643. String d = result.getString("cabang.nama");

644. String e = result.getString("divisi.nama");

645.

646. Object[] row = new Object[]{i, a, b, c, d, e};

647.

648. tableModel.addRow(row);

649.

650. i++;

651. }

652. } catch (SQLException e) {


87

653. System.err.println(e.getMessage());

654. }

655. }

656. private void asetTableMouseClicked(java.awt.event.MouseEvent evt) {

657.

658. }

659. private javax.swing.JTable asetTable;

660. private javax.swing.JComboBox<String> jComboBox1;

661. private javax.swing.JLabel jLabel1;

662. private javax.swing.JLabel jLabel2;

663. private javax.swing.JScrollPane jScrollPane1;

664. private javax.swing.JTextField searchField;

665. }

666. PembelianPanel.java

667. package asetku.panels;

668. import asetku.databases.ConnectionManager;

669. import asetku.databases.DatabaseServices;

670. import asetku.databases.UserSession;

671. import asetku.models.Category;

672. import asetku.models.Divisi;

673. import asetku.models.Vendor;

674. import java.sql.Connection;

675. import java.sql.PreparedStatement;

676. import java.sql.ResultSet;

677. import java.sql.SQLException;

678. import java.sql.Statement;

679. import java.util.UUID;

680. import javax.swing.JComboBox;

681. import javax.swing.JComponent;

682. import javax.swing.JLabel;

683. import javax.swing.JOptionPane;

684. import javax.swing.JTextArea;

685. import javax.swing.JTextField;

686. import javax.swing.table.DefaultTableModel;

687. public class PembelianPanel extends javax.swing.JPanel {


88

688. Connection connection = ConnectionManager.getInstance().getConnection();

689. DatabaseServices services;

690. public PembelianPanel() {

691. initComponents();

692. services = new DatabaseServices(connection);

693.

694. initTabelPembelian();

695. }

696.

697. private void initTabelPembelian() {

698. Object[] header = new Object[]{"No.","Nama", "Keterangan", "Harga", "Tanggal Pembelian"};

699. DefaultTableModel tableModel = new DefaultTableModel(null, header);

700. jTable1.setModel(tableModel);

701.

702. String query = "SELECT * FROM pembelian_aset\n"

703. + "JOIN aset ON pembelian_aset.aset_id=aset.id";

704.

705. try {

706. PreparedStatement stmt = connection.prepareStatement(query);

707.

708. ResultSet resultSet = stmt.executeQuery();

709.

710. int i = 1;

711. while(resultSet.next()) {

712. String a = resultSet.getString("aset.nama_aset");

713. String b = resultSet.getString("pembelian_aset.keterangan");

714. String c = resultSet.getString("aset.harga_aset");

715. String d = resultSet.getString("pembelian_aset.created_at");

716.

717. Object[] row = new Object[]{i, a, b, c, d};

718. tableModel.addRow(row);

719.

720. i++;

721. }

722. } catch (SQLException e) {


89

723. }

724. }

725. private void pembelianButtonActionPerformed(java.awt.event.ActionEvent evt) {

726. JTextArea keteranganField = new JTextArea(10, 5);

727. JTextField hargaField = new JTextField();

728. JTextField namaField = new JTextField();

729. JComboBox<Category> comboKategori = new JComboBox<>(services.getCategories());

730. JComboBox<Divisi> comboDivisi = new

JComboBox<>(services.getDivisions(UserSession.getCurrentUser().getBranchId()));

731. JComboBox<Vendor> comboVendor = new JComboBox<>(services.getVendors());

732. JComponent[] inputs = {

733. new JLabel("Nama Aset"),

734. namaField,

735. new JLabel("Keterangan Aset"),

736. keteranganField,

737. new JLabel("Vendor"),

738. comboVendor,

739. new JLabel("Jumlah (Rp.)"),

740. hargaField,

741. new JLabel("Nama Akun"),

742. comboKategori,

743. new JLabel("Departemen"),

744. comboDivisi

745. };

746.

747. int result = JOptionPane.showConfirmDialog(this, inputs, "Tambah Aset",

JOptionPane.PLAIN_MESSAGE);

748.

749. if(result == JOptionPane.OK_OPTION) {

750. String query1 = "INSERT INTO aset (nama_aset, harga_aset, kategori_id, divisi_id, vendor_id,

kode_aset, created_at, updated_at)\n"

751. + "VALUES (?, ?, ?, ?, ?, ?, ?, ?)";

752. String query2 = "INSERT INTO pembelian_aset(aset_id, keterangan, created_at, updated_at) VALUES

(?, ?, ?, ?)";

753.
90

754. try {

755. PreparedStatement stmt1 = connection.prepareStatement(query1,

Statement.RETURN_GENERATED_KEYS);

756. stmt1.setString(1, namaField.getText());

757. stmt1.setString(2, hargaField.getText());

758. stmt1.setString(3, ((Category)comboKategori.getSelectedItem()).getId());

759. stmt1.setString(4, ((Divisi)comboDivisi.getSelectedItem()).getId());

760. stmt1.setString(5, ((Vendor) comboVendor.getSelectedItem()).getId());

761. stmt1.setString(6, UUID.randomUUID().toString().substring(0, 8).toUpperCase());

762. stmt1.setTimestamp(7, new java.sql.Timestamp(new java.util.Date().getTime()));

763. stmt1.setTimestamp(8, new java.sql.Timestamp(new java.util.Date().getTime()));

764. int affectedRow = stmt1.executeUpdate();

765.

766. if(affectedRow == 0) {

767. throw new SQLException();

768. }

769.

770. ResultSet generatedKeys = stmt1.getGeneratedKeys();

771. generatedKeys.first();

772. int asetId = generatedKeys.getInt(1);

773.

774.

775. PreparedStatement stmt2 = connection.prepareStatement(query2);

776. stmt2.setInt(1, asetId);

777. stmt2.setString(2, keteranganField.getText());

778. stmt2.setTimestamp(3, new java.sql.Timestamp(new java.util.Date().getTime()));

779. stmt2.setTimestamp(4, new java.sql.Timestamp(new java.util.Date().getTime()));

780. stmt2.execute();

781.

782. JOptionPane.showMessageDialog(this, "Berhasil menambah aset");

783. initTabelPembelian();

784.

785. } catch (SQLException e) {

786. System.err.println(e.getMessage());

787. }
91

788. }

789. }

790. private javax.swing.JScrollPane jScrollPane1;

791. private javax.swing.JTable jTable1;

792. private javax.swing.JButton pembelianButton;

793. }

794. VendorPanel.java

795. package asetku.panels;

796. import asetku.databases.ConnectionManager;

797. import java.sql.Connection;

798. import java.sql.PreparedStatement;

799. import java.sql.ResultSet;

800. import java.sql.SQLException;

801. import javax.swing.JComponent;

802. import javax.swing.JLabel;

803. import javax.swing.JOptionPane;

804. import javax.swing.JTextArea;

805. import javax.swing.JTextField;

806. import javax.swing.table.DefaultTableModel;

807. public class VendorPanel extends javax.swing.JPanel {

808. Connection connection = ConnectionManager.getInstance().getConnection();

809. public VendorPanel() {

810. initComponents();

811. initTabelVendor();

812. }

813.

814. private void initTabelVendor() {

815. Object[] header = new Object[]{"No.", "Nama Vendor", "Nomor Telepon", "Alamat Vendor"};

816. DefaultTableModel tableModel = new DefaultTableModel(null, header);

817. tabelVendor.setModel(tableModel);

818. String query = "SELECT * FROM vendor";

819.

820. try {

821. PreparedStatement stmt = connection.prepareStatement(query);

822. ResultSet result = stmt.executeQuery();


92

823.

824. int no = 1;

825. while(result.next()) {

826. String a = result.getString("nama");

827. String b = result.getString("no_telepon");

828. String c = result.getString("alamat");

829.

830. Object[] row = new Object[]{no, a, b, c};

831. tableModel.addRow(row);

832. no++;

833. }

834. } catch (SQLException e) {

835. }

836. }

837. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {

838. JTextField namaVendor = new JTextField();

839. JTextField nomorTelepon = new JTextField();

840. JTextArea alamatVendor = new JTextArea(5, 5);

841. alamatVendor.setLineWrap(true);

842. alamatVendor.setWrapStyleWord(true);

843.

844. JComponent[] inputs = new JComponent[]{

845. new JLabel("Nama Vendor"),

846. namaVendor,

847. new JLabel("Nomor Telepon Vendor"),

848. nomorTelepon,

849. new JLabel("Alamat Vendor"),

850. alamatVendor

851. };

852. int ok = JOptionPane.showConfirmDialog(this, inputs, "Tambah Data Vendor",

JOptionPane.PLAIN_MESSAGE);

853.

854. if(ok == JOptionPane.OK_OPTION) {

855. String query = "INSERT INTO vendor (nama, no_telepon, alamat) VALUES\n"

856. + "(?, ?, ?)";


93

857.

858. try {

859. PreparedStatement stmt = connection.prepareStatement(query);

860. stmt.setString(1, namaVendor.getText());

861. stmt.setString(2, nomorTelepon.getText());

862. stmt.setString(3, alamatVendor.getText());

863.

864. stmt.execute();

865.

866. JOptionPane.showMessageDialog(this, "Berhasil menambah data vendor");

867. initTabelVendor();

868. } catch(SQLException e) {

869. System.err.println(e.getMessage());

870. }

871. }

872. }

873. private javax.swing.JButton jButton1;

874. private javax.swing.JButton jButton2;

875. private javax.swing.JScrollPane jScrollPane1;

876. private javax.swing.JTable tabelVendor;


82

877. }

Anda mungkin juga menyukai