Post on 08-Sep-2019
37
BAB IV
RANCANGAN SISTEM DAN PROGRAM USULAN
4.1 Analisis Kebutuhan Software
A. Tahapan Analisis
Sistem informasi yang berjalan pada suatu perusahaan jika dikerjakan
secara manual akan menghambat beberapa proses, hal yang paling terasa
adalah proses laporan dan proses penyimpanan data, data double dan sistem
laporan yang lambat akan mempengaruhi produktifitas perusahaan, oleh
karena itu PT. Visionet Data Internasional membutuhkan sistem informasi
yang berguna untuk mempercepat proses-proses yang menghambat sistem
operasional. Berikut ini adalah beberapa spesifikasi kebutuhan (system
requirement) dari operation system yang dibutuhkan PT. Visionet Data
Internasional.
A1. Admin dapat mengelola seluruh data merchant (toko pengguna mesin
edc).
A2. Admin dapat mengelola seluruh data service point.
A3. Admin dapat mengelola data seluruh teknisi dan service point leader.
A4. Admin dapat mengelola data pelaporan dari pihak mandiri.
A.5. Service point leader dapat mengelola pekerjaan.
A.6 Service point leader dapat mengelola laporan secara langsung.
A.7 Teknisi dapat mengelola pekerjaan secara langsung.
38
B. Use Case Diagram
1. Use Case Diagram Admin Monitoring
Gambar IV.1 : Use Case Diagram Admin Monitoring
Tabel IV.1 : Deskripsi use case diagram halaman admin monitoring
Use Case Name Admin Monitoring
Requirements A1, A2, A3, A4
Goal Admin monitoring dapat mengelola data merchant, service point, user, services, dan mencetak laporan hasil services.
Pre-conditions User telah terdaftar.
Post-conditions -
Failed end condition User tidak terdaftar sebagai admin monitoring.
Primary Actors Admin monitoring
39
Main Flow / Basic Path 1. User login sebagai admin monitoring.
2. System menampilkan menu untuk mengelola data merchant, service point, user, service, dan report
3. User dapat melakukan penambahan perubahan, dan menghapus data merchant, service point, user, services, dan report.
4. User dapat mencetak laporan hasil pekerjaan engineer.
5. User memberikan pekerjaan sesuai dengan service point area.
Invariant A: A8. User melakukan pencarian data.
2. Use Case Diagram Service Point Leader
Gambar IV.2 : Use Case Diagram Service Point Leader
40
Tabel IV.2 : Deskripsi use case diagram halaman service point leader
Use Case Name Service Point Leader
Requirements A5, A6
Goal Service point leader dapat memberikan pekerjaan kepada engineer, mengecek hasil kunjungan engineer.
Pre-conditions User telah terdaftar sebagai service point leader
Post-conditions -
Failed end condition User tidak terdaftar sebagai service point leader.
Primary Actors4. Service Point Leader
Main Flow / Basic Path 1. User login sebagai service point leader.
2. System menampilkan data merchant yang melaporkan kerusakan mesin, dan dapat memberikan pekerjaan kepada engineer yang akan melakukan kunjungan kemerchant. .
3. User mengecek dan mencetak work order¸.
Invariant A: A8. User melakukan pencarian data.
3. Use Case Diagram Service Point Engineer
Gambar IV.3 : Use Case Diagram Engineer
41
Tabel IV.3 : Deskripsi use case diagram halaman engineer
Use Case Name Engineer
Requirements A7
Goal Engineer dapat melaporkan work order hasil perbaikan mesin edc sercara langsung.
Pre-conditions User telah terdaftar sebagai engineer
Post-conditions -
Failed end condition User tidak terdaftar sebagai engineer.
Primary Actors Engineer
Main Flow / Basic Path 1. User login sebagai engineer. 2. System menampilkan data
merchant yang harus dikunjungi untuk melakukan perbaikan mesin edc. .
3. User dapat membuat laporan hasil perbaikan mesin.
Invariant A: A8. User melakukan pencarian
data.
42
C. Activity Diagram
1. Activity Diagram Merngelola Data Merchant
Gambar IV.4 : Activity Diagram Mengelola Data Merchant
43
2. Activity Diagram Mengelola Data Service
Gambar IV.5 : Activity Diagram Mengelola Data Service
44
3. Activity Diagram Mengelola Data User
Gambar IV.6 : Activity Diagram Mengelola Data User
45
4. Activity Diagram Mengelola Data Service
Gambar IV.7 : Activity Diagram Mengelola Data Service
46
5. Activity Diagram Assign To Engineer
Gambar IV.8 : Activity Diagram Assign To Engineer
f
47
6. Activity Diagram Engineer
Gambar IV.9 : Activity Diagram Engineer
48
7. Activity Diagram Completed Work Order Or Re-assign
Gambar IV.10 : Activity Diagram Completed Work Order Or Re-Assign
49
8. Activity Diagram Report
Gambar IV.11 : Activity Diagram Report
50
4.2. Desain
Pada tahapan ini akan dijelaskan desain database, desain software architecture
dan desain interface sistem informasi yang dibuat.
4.2.1. Database
Berikut adalah desain database dari sistem informasi yang dibuat
menggunakan Entity Relationship Diagram.
A. Entity Relationship Diagram
1. Entity Relationship Diagram.
Gambar IV.12 : Entity Relationship Diagram
51
B. Logical Record Structure
1. Logical Record Structure
Gambar IV.13 : Logical Record Structure
52
C. Spesifikasi File
1. Spesifikasi File Tabel User
Nama Database : Visionet
Nama File : Tabel Users
Akronim : users
Tipe File : File Transaksi
Akses File : Random
Panjang Record : 16K
Kunci Field : id
Tabel IV.4 : Spesifikasi File Tabel Users
No Elemen Data
Akronim Type Width Keterangan
1 Id User id Int 10 Primary Key
2 Nama name Varchar 191 3 Email email Varchar 191 4 Password password Varchar 191 5 Token remember_token Varchar 100 6 Telepon telepon Varchar 191 7 Service
point id Service_point_id Int 11 Foreign
Key 8 Level Level Int 11 9 Createt
At created_at Timestamp -
10 Updated At
updated_at Timestamp -
53
2. Spesifikasi Tabel Merchant
Nama Database : Visionet
Nama File : Tabel Merchants
Akronim : merchants
Tipe File : File Master
Akses File : Random
Panjang Record : 16K
Kunci Field : id
Tabel IV.5 : Spesifikasi File Tabel Merchant
No Elemen Data
Akronim Type Width Keterangan
1 Id merchant
id Int 10 Primary Key
2 Mid mid Varchar 191 3 Tid tid Varchar 191 4 Csi csi Varchar 191 5 Nama
merchant nama_merchant Varchar 191
6 Alamat merchant
alamat_merchant Varchar 191
7 Serial number
serial_number Varchar 191
8 Type edc type_edc Varchar 191 9 Telepon telepon Varchar 191 10 Pic
merchant pic_merchant Varchar 191
11 Created at
created_at Timestamp
12 Updated at
updated_at Timestamp
54
3. Spesifikasi Tabel Service Point
Nama Database : visionet
Nama File : Tabel Service Point
Akronim : service_points
Tipe File : File Master
Akses File : Random
Panjang Record : 16K
Kunci Field : id
Tabel IV.6 : Spesifikasi File Tabel Service Point
No Elemen Data
Akronim Type Width Keterangan
1 Id service point
id Int 10 Primary Key
2 Name name Varchar 191 3 Alamat alamat Varchar 191 4 Telepon telepon Bigint 20 5 Zipcode zipcode Int 11 6 Created
at created_at Timestamp
7 Updated at
updated_at Timestamp
55
4. Spesifikasi Tabel Admin Service
Nama Database : visionet
Nama File : Tabel Admin Services
Akronim : admin_services
Tipe File : File Transaksi
Akses File : Random
Panjang Record : 16K
Kunci Field : id
Tabel IV.7 : Spesifikasi File Tabel Admin Service
No Elemen Data
Akronim Type Width Keterangan
1 Id services id Int 10 Primary Key
2 Id service point
services_point_id Int 10 Foreign key
3 Id work order
work_order_id Int 10 Foreign key
4 Id merchant
merchant_id Int 10 Foreign key
5 Id users user_id Int 10 Foreign key
6 Nomor laporan
nomor_laporan Varchar 191
7 Status status Int 11 8 Description Description text 9 Created at created_at Timestamp 10 Updated at updated_at Timestamp
56
5. Spesifikasi Tabel Work Order
Nama Database : visionet
Nama File : Tabel Work Order
Akronim : work_orders
Tipe File : File Master
Akses File : Random
Panjang Record : 16K
Kunci Field : id
Tabel IV.8 : Spesifikasi File Tabel Work Order
No Elemen Data Akronim Type Width Keterangan 1 Id work order id Int 10 Primary
Key 3 Id admin service admin_service_id Int 11 Foreign
key 4 Description description Text - 5 Type komunikasi type_komunikasi Varchar 191 6 Supply thermal supply_thermal Varchar 191 7 Response time
kredit response_time_kredit Int 11
8 Response time debit
response_time_debit Int 11
9 Response time prepaid
response_time_prepaid Int 11
10 Response time loyalty
response_time_debit Int 11
11 Nomor direct line nomor_direct_line Varchar 191 12 Mobile operator mobile_operator Varchar 191 13 Jam mulai jam_mulai Varchar 191 14 Jam selesai jam_selesai Varchar 191 15 Tanggal tanggal Date 16 Kelengkapan_edc kelengkapan_edc Varchar 191 17 Kelengkapan
dongle kelengkapan_dongle Varchar 191
57
18 Foto struk photo_struk Varchar 191 19 Foto toko photo_toko Varchar 191 20 Nama pic nama_pic Varchar 191 18 No telepon no_telepon Varchar 191 19 Created at created_at Datetime 20 Updated at updated_at Datetime
4.2.2. Software Architecture
Penggambaran software architecture berikut akan
menggambarkan class diagram, sequence diagram, component diagram
dan deployment diagram.
A. Class Diagram
Berikut adalah objek – objek yang teridentifikasi dari sistem ini.
1. Merchant
2. Services
3. Service Point
4. User
5. Work Order
58
Gambar IV.14 : Class Diagram
59
B. Sequence Diagram
1. Sequence Diagram Admin
Gambar IV.15 : Sequence Diagram Admin
60
2. Sequence Diagram Service Point Leader
Gambar IV.16 : Sequence Diagram
61
1. Sequence Diagram Engineer
Gambar IV.17 : Sequence Diagram
62
C. Component Diagram
Gambar IV.18 : Component Diagram
63
D. Deployment Diagram
Gambar IV.19 : Deployment Diagram
64
4.2.3. User Interface
A. Menu Admin Services (Monitoring)
B. Form Login
Gambar IV.20 : Form Login
C. Dashboard Monitoring
Gambar IV.21 : Dashboard Monitoring
65
D. Menu List Data Merchant
Gambar IV.22 : Menu List Data Merchant
E. Menu Tambah Data Merchant
Gambar IV.23 : Menu Tambah Data Merchant
66
F. Menu Ubah Data Merchant
Gambar IV.24 : Menu Ubah Data Merchant
G. Menu Hapus Data Merchant
Gambar IV.25 : Menu Hapus Data Merchant
67
H. Menu List Data Service Point
Gambar IV.26 : Menu List Data Service Point
I. Menu Tambah Data Service Point
Gambar IV.27 : Menu Tambah Data Service Point
68
J. Menu Ubah Data Service Point
Gambar IV.28 : Menu Ubah Data Service Point
K. Menu Hapus Data Service Point
Gambar IV.29 : Menu Hapus Data Service Point
69
L. Menu List Data User
Gambar IV.30 : Menu List Data User
M. Menu Tambah Data User
Gambar IV.31 : Menu Tambah Data User
70
N. Menu Ubah Data User
Gambar IV.32 : Menu Ubah Data User
O. Menu Hapus Data User
Gambar IV.33 : Menu Hapus Data User
71
P. Menu List Data Services
Gambar IV.34 : Menu List Data Services
Q. Menu Ubah Data Services
Gambar IV.35 : Menu Ubah Data Services
72
R. Menu Hapus Data Services
Gambar IV.36 : Menu Hapus Data Services
S. Menu List Data Services Schedule
Gambar IV.37 : Menu List Data Services Schedule
73
T. Menu List Data Services Completed
Gambar IV.38 : Menu List Data Services Completed
U. Menu Detail Data Services
Gambar IV.39 : Menu Detail Data Services
74
V. Menu Data Report
Gambar IV.40 : Menu Data Report
W. Menu Print Data Report
Gambar IV.41 : Menu Print Data Report
75
X. Menu Dashboard Service Point Leader
Gambar IV.42 : Menu Dashboard Service Point Leader
Y. Menu List Data New Services
Gambar IV.43 : Menu List Data New Services
76
Z. Menu Assign Services & Ubah Data Assign Services
Gambar IV.44 : Menu Assign Services & Ubah Data Assign
Services
AA. Menu List Data Services Scheduled
Gambar IV.45 : Menu List Data Services Scheduled
77
BB. Menu List Data Service Done
Gambar IV.46 : Menu List Data Service Done
CC. Menu Data Check Services
Gambar IV.47 : Menu List Data Check Service
78
DD. Menu List Data Services Completed
Gambar IV.48 : Menu List Data Services Completed
EE. Menu Data Detail Completed
Gambar IV.49 : Menu Data Detail Completed
79
FF. Menu Print Work Order
Gambar IV.50 : Menu Print Work Order
80
GG. Menu Dashboard Engineer
Gambar IV.51 : Menu Dashboard Engineer
HH. Menu Services Engineer
Gambar IV.52 : Menu Services Engineer
81
II. Menu Work Order Engineer
Gambar IV.53 : Menu Work Order Engineer
JJ. Menu Services Done Engineer
Gambar IV.54 : Menu Services Done Engineer
82
KK. Menu Detail Done Services Engineer
Gambar IV.55 : Menu Detail Done Services Engineer
LL. Menu Services Completed Engineer
Gambar IV.56 : Menu Services Completed Engineer
83
MM. Menu Detail Services Completed Engineer
Gambar IV.57 : Menu Detail Services Completed Engineer
4.3. Code Generation
A. Class User
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\User;
use App\ServicePoint;
use App\AdminService;
84
class UserController extends Controller
{
public function index(ServicePoint $servicepoint)
{
$data_user = Auth::user();
$users = User::all();
return
view('data_master.user.list_user',compact('data_user','users','servicepoint')
);
}
public function edit(User $user)
{
$service_points = ServicePoint::all();
$data_user = Auth::user();
return
view('data_master.user.edit_user',compact('user','data_user','service_points
'));
}
public function update ($id)
{
User::where('id',$id)->update([
85
'name' =>request('name'),
'email' =>request('email'),
'telepon' =>request('telepon'),
'password' => bcrypt(request('password')),
'service_point_id' =>request('service_point_id'),
'level' =>request('level')
]);
flash()->overlay('Data User Berhasil Diperbarui');
return redirect("/user");
}
public function delete(Request $request)
{
$user = User::find($request->id);
$user->delete();
return redirect("/user");
}
}
B. Class Merchant
<?php
namespace App\Http\Controllers;
86
use Illuminate\Http\Request;
use App\Merchant;
use App\Http\Requests;
use App\Http\Requests\Merchant\StoreRequest;
use App\Http\Requests\Merchant\UpdateRequest;
use Validator, Response;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Auth;
class MerchantController extends Controller
{
public function index ()
{
$data_user = Auth::user();
$merchants = Merchant::all();
return view('data_master.merchant.list_merchant',
compact('merchants','data_user'));
}
public function store (StoreRequest $request)
{
$merchants = new Merchant;
$merchants->tid = $request->tid;
87
$merchants->mid = $request->mid;
$merchants->csi = $request->csi;
$merchants->type_edc = $request->type_edc;
$merchants->serial_number = $request->serial_number;
$merchants->nama_merchant = $request->nama_merchant;
$merchants->alamat_merchant = $request->alamat_merchant;
$merchants->pic_merchant = $request->pic_merchant;
$merchants->telepon = $request->telepon;
$merchants->save();
return response ()->json ($merchants);
}
public function update (Request $request)
{
$merchants = Merchant::findOrFail($request->id);
$merchants->tid = $request->tid;
$merchants->mid = $request->mid;
$merchants->csi = $request->csi;
$merchants->type_edc = $request->type_edc;
$merchants->serial_number = $request->serial_number;
$merchants->nama_merchant = $request->nama_merchant;
$merchants->alamat_merchant = $request->alamat_merchant;
$merchants->pic_merchant = $request->pic_merchant;
88
$merchants->telepon = $request->telepon;
$merchants->save();
return response()->json($merchants);
}
public function delete (Request $request)
{
$merchants = Merchant::find($request->id);
$merchants->delete();
return response()->json($merchants);
}
}
C. Class Service Point
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Merchant;
use App\ServicePoint;
use App\Http\Requests;
use App\Http\Requests\servicePoint\ServicePointRequest;
89
use Illuminate\Support\Facades\Auth;
use App\AdminService;
class ServicePointController extends Controller
{
public function index (AdminService $adminservice)
{
$data_user = Auth::user();
$servicePoint = ServicePoint::all();
return view('data_master.service_point.list_service_point',
compact('servicePoint','data_user','adminservice'));
}
public function create ()
{
$data_user = Auth::user();
return
view('data_master.service_point.create_service_points',compact('data_use
r'));
}
public function store ()
{
90
$this->validate(request(),[
'nama' => 'required|min:3|max:191',
'alamat' => 'required',
'telepon' => 'required',
'zipcode' => 'required'
]);
ServicePoint::create([
'nama' => request('nama'),
'alamat' => request('alamat'),
'telepon' => request('telepon'),
'zipcode' => request('zipcode')
]);
flash()->overlay("Service Point is Created", 'Greet');
return redirect("/service-point");
}
public function edit (ServicePoint $servicePoint)
{
$data_user = Auth::user();
return
view('data_master.service_point.edit_service_points',compact('servicePoin
t','data_user'));
}
91
public function update ($id)
{
$this->validate(request(),[
'nama' => 'required|min:3|max:191',
'alamat' => 'required',
'telepon' => 'required',
'zipcode' => 'required'
]);
servicePoint::where('id',$id)->update([
'nama' => request('nama'),
'alamat' => request('alamat'),
'telepon' => request('telepon'),
'zipcode' => request('zipcode')
]);
flash()->overlay('Service Point Berhasil Diperbarui');
return redirect("/service-point");
}
public function delete(Request $request)
{
$service_point = ServicePoint::find($request->id);
$service_point->delete();
92
return redirect("/service-point");
}
}
D. Class Admin Service
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\User;
use App\Merchant;
use App\ServicePoint;
use App\AdminService;
use DB;
use Charts;
class AdminServiceController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
93
*/
public function index(Merchant $merchant)
{
$data_user = Auth::user();
$admin_services = AdminService::orderBy('id')-
>with('merchant','service_point')->get();
return
view('service_admin.list_admin_service',compact('data_user','admin_servi
ces','service_point'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$data_user = Auth::user();
$merchants = Merchant::all();
$service_points = ServicePoint::all();
94
return
view('service_admin.create_admin_service',compact('data_user','merchant
s','service_points'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
AdminService::create([
'nomor_laporan' => request('nomor_laporan'),
'merchant_id' => request('merchant_id'),
'service_point_id' => request('service_point_id'),
'description' => request('description'),
'status' => 1,
]);
flash()->overlay("Service is Created", 'Greet');
return redirect("/admin-services");
}
95
/**
* Display the specified resource.
*
* @param \App\AdminService $adminService
* @return \Illuminate\Http\Response
*/
public function show(AdminService $adminService)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\AdminService $adminService
* @return \Illuminate\Http\Response
*/
public function edit(AdminService $adminService)
{
$data_user = Auth::user();
$merchants = Merchant::all();
$service_points = ServicePoint::all();
96
$admin_services = AdminService::find('id');
$nama_merchant =
Merchant::whereId($adminService['merchant_id'])->get();
$nama_service_point =
ServicePoint::whereId($adminService['service_point_id'])->get();
// print($nama_merchant[0]['id']);exit;
//
print_r(json_decode(json_encode($nama_service_point[0]['nama'])));exit;
return
view('service_admin.edit_admin_service',compact('adminService','data_us
er','merchants','service_points','nama_merchant','nama_service_point'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\AdminService $adminService
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
AdminService::where('id',$id)->update([
97
'nomor_laporan' => request('nomor_laporan'),
'merchant_id' => request('merchant_id'),
'service_point_id' => request('service_point_id'),
'description' => request('description'),
'status' => 1,
]);
flash()->overlay("Service is Updated", 'Greet');
return redirect("/admin-services");
}
/**
* Remove the specified resource from storage.
*
* @param \App\AdminService $adminService
* @return \Illuminate\Http\Response
*/
public function destroy(AdminService $adminService)
{
$admin_service = AdminService::find($request->id);
$admin_service->delete();
return redirect("/admin-services");
}
98
public function delete(Request $request)
{
$admin_service = AdminService::find($request->id);
$admin_service->delete();
return redirect("/admin-services");
}
public function report()
{
$data_user = Auth::user();
$services_completed = AdminService::where('status',4)-
>whereMonth('created_at',date('m'))->orderBy('id')-
>with('merchant','service_point')->get();
return
view('service_admin.report',compact('data_user','services_completed'));
}
public function postRepost(Request $request)
{
$data_user = Auth::user();
$date_from = $request['date_from'];
$date_to = $request['date_to'];
$mulai = date('d F Y', strtotime($date_from));
99
$selesai = date('d F Y', strtotime($date_to));
$services_completed = AdminService::where('status',4)-
>whereDate('created_at','>=',$date_from)-
>whereDate('created_at','<=',$date_to)-
>with('merchant','service_point','user','work_order')->get();
return
view('print',compact('data_user','services_completed','mulai','selesai'));
}
public function dashboard ()
{
$data_user = Auth::user();
$total_service_point = ServicePoint::count();
$total_merchant = Merchant::count();
$total_service_completed = AdminService::where('status',4)-
>whereMonth('created_at',date('m'))->count();
$total_service_active = AdminService::where('status','!=',4)->count();
$total_engineer = User::where('level',3)->count();
$total_case = DB::table('admin_services')
-
>leftjoin('service_points','service_points.id','=','admin_services.service_po
int_id')
100
->leftjoin('users','users.id','=','admin_services.user_id')
-
>select('admin_services.service_point_id','service_points.nama',
DB::raw('count(admin_services.service_point_id) as total_service'))
->where('admin_services.status',4)
->groupBy('service_point_id')
->get();
// print_r($total_case);exit;
$total_case_engineer = DB::table('admin_services')
->leftjoin('users','users.id','=','admin_services.user_id')
-
>leftjoin('service_points','service_points.id','=','admin_services.service_po
int_id')
->select('service_points.nama','users.name',
DB::raw('count(admin_services.user_id) as total_service'))
->where('admin_services.status',4)
->groupBy('user_id')
->get();
$chart = Charts::database(AdminService::where('status',4)->get(),
'bar', 'highcharts')
->elementLabel("Total Services")
->dimensions(500, 320)
101
->responsive(false)
->groupByMonth(date('Y'), true);
return
view('dashboard',compact('data_user','total_service_point','total_merchant'
,'total_service','total_service_active','total_engineer','total_service_complet
ed','total_case','total_case_engineer','chart'));
}
public function schedule()
{
$data_user = Auth::user();
$engineer_services = AdminService::where('status',2)->orderBy('id')-
>with('merchant','service_point','user')->get();
return
view('service_admin.list_schedule_services',compact('data_user','engineer
_services'));
}
public function completed()
{
$data_user = Auth::user();
102
$services_completed = AdminService::where('status',4)-
>whereMonth('created_at',date('m'))->orderBy('id')-
>with('merchant','service_point')->get();
// print_r(json_decode(json_encode($data_user)));exit;
return
view('service_admin.list_completed_services',compact('data_user','service
s_completed'));
}
public function detailServicesCompleted($id)
{
$data_user = Auth::user();
$detail_services =
AdminService::with('merchant','service_point','user','work_order')-
>find($id);
// print_r(json_decode(json_encode($detail_services)));exit;
return
view('service_admin.detail_services_completed',compact('detail_services',
'data_user'));
}
public function test ()
{
103
return view('print');
}
}
E. Class Engineer
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\User;
use App\Merchant;
use App\ServicePoint;
use App\AdminService;
use DB;
use Charts;
class AdminServiceController extends Controller
{
/**
* Display a listing of the resource.
*
104
* @return \Illuminate\Http\Response
*/
public function index(Merchant $merchant)
{
$data_user = Auth::user();
$admin_services = AdminService::orderBy('id')-
>with('merchant','service_point')->get();
return
view('service_admin.list_admin_service',compact('data_user','admin_servi
ces','service_point'));
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$data_user = Auth::user();
$merchants = Merchant::all();
$service_points = ServicePoint::all();
105
return
view('service_admin.create_admin_service',compact('data_user','merchant
s','service_points'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
AdminService::create([
'nomor_laporan' => request('nomor_laporan'),
'merchant_id' => request('merchant_id'),
'service_point_id' => request('service_point_id'),
'description' => request('description'),
'status' => 1,
]);
flash()->overlay("Service is Created", 'Greet');
return redirect("/admin-services");
}
106
/**
* Display the specified resource.
*
* @param \App\AdminService $adminService
* @return \Illuminate\Http\Response
*/
public function show(AdminService $adminService)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param \App\AdminService $adminService
* @return \Illuminate\Http\Response
*/
public function edit(AdminService $adminService)
{
$data_user = Auth::user();
$merchants = Merchant::all();
$service_points = ServicePoint::all();
107
$admin_services = AdminService::find('id');
$nama_merchant =
Merchant::whereId($adminService['merchant_id'])->get();
$nama_service_point =
ServicePoint::whereId($adminService['service_point_id'])->get();
// print($nama_merchant[0]['id']);exit;
//
print_r(json_decode(json_encode($nama_service_point[0]['nama'])));exit;
return
view('service_admin.edit_admin_service',compact('adminService','data_us
er','merchants','service_points','nama_merchant','nama_service_point'));
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\AdminService $adminService
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
AdminService::where('id',$id)->update([
108
'nomor_laporan' => request('nomor_laporan'),
'merchant_id' => request('merchant_id'),
'service_point_id' => request('service_point_id'),
'description' => request('description'),
'status' => 1,
]);
flash()->overlay("Service is Updated", 'Greet');
return redirect("/admin-services");
}
/**
* Remove the specified resource from storage.
*
* @param \App\AdminService $adminService
* @return \Illuminate\Http\Response
*/
public function destroy(AdminService $adminService)
{
$admin_service = AdminService::find($request->id);
$admin_service->delete();
return redirect("/admin-services");
}
109
public function delete(Request $request)
{
$admin_service = AdminService::find($request->id);
$admin_service->delete();
return redirect("/admin-services");
}
public function report()
{
$data_user = Auth::user();
$services_completed = AdminService::where('status',4)-
>whereMonth('created_at',date('m'))->orderBy('id')-
>with('merchant','service_point')->get();
return
view('service_admin.report',compact('data_user','services_completed'));
}
public function postRepost(Request $request)
{
$data_user = Auth::user();
$date_from = $request['date_from'];
$date_to = $request['date_to'];
$mulai = date('d F Y', strtotime($date_from));
110
$selesai = date('d F Y', strtotime($date_to));
$services_completed = AdminService::where('status',4)-
>whereDate('created_at','>=',$date_from)-
>whereDate('created_at','<=',$date_to)-
>with('merchant','service_point','user','work_order')->get();
return
view('print',compact('data_user','services_completed','mulai','selesai'));
}
public function dashboard ()
{
$data_user = Auth::user();
$total_service_point = ServicePoint::count();
$total_merchant = Merchant::count();
$total_service_completed = AdminService::where('status',4)-
>whereMonth('created_at',date('m'))->count();
$total_service_active = AdminService::where('status','!=',4)->count();
$total_engineer = User::where('level',3)->count();
$total_case = DB::table('admin_services')
-
>leftjoin('service_points','service_points.id','=','admin_services.service_po
int_id')
111
->leftjoin('users','users.id','=','admin_services.user_id')
-
>select('admin_services.service_point_id','service_points.nama',
DB::raw('count(admin_services.service_point_id) as total_service'))
->where('admin_services.status',4)
->groupBy('service_point_id')
->get();
// print_r($total_case);exit;
$total_case_engineer = DB::table('admin_services')
->leftjoin('users','users.id','=','admin_services.user_id')
-
>leftjoin('service_points','service_points.id','=','admin_services.service_po
int_id')
->select('service_points.nama','users.name',
DB::raw('count(admin_services.user_id) as total_service'))
->where('admin_services.status',4)
->groupBy('user_id')
->get();
$chart = Charts::database(AdminService::where('status',4)->get(),
'bar', 'highcharts')
->elementLabel("Total Services")
->dimensions(500, 320)
112
->responsive(false)
->groupByMonth(date('Y'), true);
return
view('dashboard',compact('data_user','total_service_point','total_merchant'
,'total_service','total_service_active','total_engineer','total_service_complet
ed','total_case','total_case_engineer','chart'));
}
public function schedule()
{
$data_user = Auth::user();
$engineer_services = AdminService::where('status',2)->orderBy('id')-
>with('merchant','service_point','user')->get();
return
view('service_admin.list_schedule_services',compact('data_user','engineer
_services'));
}
public function completed()
{
$data_user = Auth::user();
113
$services_completed = AdminService::where('status',4)-
>whereMonth('created_at',date('m'))->orderBy('id')-
>with('merchant','service_point')->get();
// print_r(json_decode(json_encode($data_user)));exit;
return
view('service_admin.list_completed_services',compact('data_user','service
s_completed'));
}
public function detailServicesCompleted($id)
{
$data_user = Auth::user();
$detail_services =
AdminService::with('merchant','service_point','user','work_order')-
>find($id);
// print_r(json_decode(json_encode($detail_services)));exit;
return
view('service_admin.detail_services_completed',compact('detail_services',
'data_user'));
}
public function test ()
{
114
return view('print');
}
}
4.4. Testing
Pengujian unit menggunakan black box testing untuk pengujian
proses input dan output, menguji form yang berhubungan dengan proses bisnis
utama.
Tabel IV.9 : Tabel Pengujian Unit
No. Skenario pengujian
Test case Hasil yang diharapkan
Hasil pengujian
Kesimpulan
1. Email
address dan password tidak diisi kemudian klik tombol login
address : (kosong) Password: (kosong)
Sistem akan menolak akses user dan menampilkan “ Please Fill Out This Field”
Sesuai harapan
Valid
2. Mengetikkan email
address dan password tidak diisi atau kosong kemudian klik tombol login
address: a@gmail.com Password : (kosong)
Sistem akan menolak akses user dan menampilkan “ Please Fill Out This Field”
Sesuai harapan
Valid
3. email
address tidak diisi (kosong) dan password diisi kemudian
address: (kosong) Password: 123456
Sistem akan menolak akses user dan menampilkan “ Please Fill Out This
Sesuai harapan
Valid
115
klik tombol login
Field”
4. Mengetikkan salah satu kondisi salah pada email
address atau password kemudian klik tombol login
Address: a@gmail.com (benar) Password: test (salah)
Sistem akan menolak akses user dan menampilkan “Username dan Password tidak sesuai !”.
Sesuai harapan
Valid
5. Mengetikkan email
address dan password dengan data yang benar kemudian klik tombol login
email: a@gmail.com (benar) Password: 123456 (benar)
Sistem menerima akses login dan kemudian langsung menampilkan menu utama.
Sesuai harapan
Valid
6 Tidak mengisi satu data pada form create dan edit
Sistem akan menolak akses dan menampilkan “ Please Fill Out This Field”
Sesuai harapan
Valid
7 Mengakses halaman monitoring dengan login sebagai user
Login sebagai user dan mengakses halaman create service
point
Sistem akan menolak akses dan menampilkan “ Halaman Dashboard user”
Sesuai harapan
Valid
8 Mengakses halaman service point leader dengan login sebagai user
Login sebagai user dan mengakses halaman service point
leader
Sistem akan menolak akses dan menampilkan “ Halaman Dashboard user”
Sesuai harapan
Valid
9 Mengakses halaman user
Login sebagai user dan
Sistem akan menolak
Sesuai harapan
Valid
116
dengan login sebagai service point leader
mengakses halaman work order
akses dan menampilkan “ Halaman Dashboard user”
9 Mengakses halaman user dengan login sebagai service point leader
Login sebagai user dan mengakses halaman work order
Sistem akan menolak akses dan menampilkan “ Halaman Dashboard user”
Sesuai harapan
Valid
4.5. Support
Aplikasi yang sudah dibuat membutuhkan support agar website dapat diakses
oleh pengguna, support yang dibutuhkan yaitu server sebagai media menyimpan
aplikasi (source code) dan database, membutuhkan domain sebagai alamat yang
akan dituju oleh client. Berikut penulis akan menjelaskan detail support yang
dibutuhkan.
4.5.1. Publikasi Web
Untuk melakukan publikasi dari web yang dibuat membutuhkan
domain, domain adalah alamat yang akan dituju oleh pengguna yang
ingin mengakses website, Indonesia banyak memiliki banyak
perusahaan yang menjual jasa penjualan domain yaitu idcloudhost,
niagahost, jogja web, dll.
Berikut adalah langkah-langkah untuk melakukan pembelian
domain.
117
1. Mengunjungi salah satu website penyedia jasa domain.
2. Pilih domain yang kita inginkan.
3. Jika tersedia, kita dapat melakukan pembelian.
4. Lakukan pembayaran dengan metode yang diberikan oleh
penyedia jasa.
Selain domain, hosting juga dibutuhkan untuk melakukan
penyimpanan source code dan database, selanjutnya penulis akan
memberikan detail spesifikasi minimum server dan client (user) untuk
menyimpan database dan source code dari aplikasi yang telah dibuat.
4.5.2. Spesifikasi Hardware dan Software
1. Spesifikasi Perangkat Keras
a. Server
1) CPU
(a) Processor Intel® Pentium® Core 2 Duo
(b) RAM 5.00 GB
(c) Hard Disk 78.03 GB
2) Mouse
3) Keyboard
4) Monitor dengan resolusi layar minimum 1366 x 768
5) Koneksi Internet dengan kecepatan 2 Mbps
b. Client
1) CPU
118
(a) Processor Intel(R) Core 2 Duo
(b) RAM 1.00 GB
(c) HardDisk 160 GB
2) Mouse
3) Keyboard
4) Monitor dengan resolusi layar minimum 1366 x 768
5) Koneksi Internet dengan kecepatan 2 Mbps
2. Spesifikasi Perangkat Lunak
a. Server
1. Sistem operasi yang umum digunakan seperti: Microsoft
Windows atau Linux (Ubuntu, Centos, dll).
2. Aplikasi Bundle web server seperti: Xampp, phpmyadmin yang
terdiri dari beberapa komponen, diantaranya:
a. Aplikasi PHP Server versi 5.6.31
b. Aplikasi Mysql
c. Aplikasi phpMyadmin 4.6.5.2
3. Aplikasi Web yang digunakan Seperti Mozilla Firefox, Internet
Explorer, Google Chrome.
b. Client
1. Sistem operasi yang umum digunakan seperti: Microsoft
Windows, Linux (Ubuntu, fedora, dll) atau Mac Os
2. Aplikasi Web browser seperti Mozilla Firefox, Internet
Explorer, Google Chrome dan safari.
119
4.6. Spesifikasi Dokumen Sistem Usulan
Dalam proses bisnis yang dibuat dibutuhkan dokumen sebagai alat
atau media yang digunakan sebagai arsip, berfungsi untuk mencegah suatu hal
yang tidak diinginkan terjadi pada server ataupun database, baik hardware
maupun software seperti serangan virus, malware, ataupun bencana alam.
A. Dokumen Masukan
1. Nama Dokumen : Bukti kunjungan
Fungsi : Sebagai bukti hasil kunjungan perbaikan mesin
Sumber : Service Point Leader
Tujuan : Customer
Media : Kertas
Frekuensi : Setiap kunjungan perbaikan mesin.
Format : Lampiran B-1
B. Dokumen Keluaran
1. Nama Dokumen : Laporan
Fungsi : Sebagai bukti total perbaikan mesin
Sumber : Admin Monitoring
Tujuan : Mandiri
Media : Kertas
Frekuensi : Setiap Laporan Diinginkan.
Format : Lampiran B-2