• Tidak ada hasil yang ditemukan

BAB 4 IMPLEMENTASI DAN PENGUJIAN

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 4 IMPLEMENTASI DAN PENGUJIAN"

Copied!
42
0
0

Teks penuh

(1)

189 4.1 Implementasi Sistem

Tahapan implementasi sistem adalah tahap menerjemahkan kebutuhan dalam pembangunan perangkat lunak ke dalam representasi aplikasi sesuai dengan hasil analisis dan perancangan sistem. Setelah implementasi sistem dilakukan maka sistem telah dapat dioperasikan dan selanjutnya dapat dilakukan pengujian.

4.1.1 Implementasi Perangkat Lunak Pembangun

Perangkat lunak yang dipakai dalam pembangunan aplikasi pada penelitian ini adalah sebagai berikut.

Tabel 4.1 Implementasi Perangkat Lunak Pembangun

No Perangkat Lunak Spesifikasi

1 Sistem Operasi Windows 10 Home 64Bit

2 Tool Pembangun Perangkat Lunak Android

Android Studio versi 3.1.3

3 Tool Pembangun Perangkat Lunak Web

Sublime Text versi 3

4.1.2 Implementasi Perangkat Keras Pembangun

Perangkat keras yang dipakai dalam pembangunan aplikasi pada penelitian ini adalah sebagai berikut.

Tabel 4.2 Implementasi Perangkat Keras Pembangun

No Perangkat Keras Spesifikasi

1 Processor Intel(R) Core(TM) i5-3317U CPU @ 1.70GHz (4 CPUs), ~1.7GHz

2 Memory 8192 MB RAM

3 Harddisk 500 GB

(2)

4.1.3 Implementasi Perangkat Lunak Pengujian

Perangkat lunak pengujian merupakan perangkat lunak yang dipakai pada saat pengujian sistem. Adapun perangkat lunak yang digunakan pada pembangunan aplikasi pada penelitian ini adalah sebagai berikut.

Tabel 4.3 Implementasi Perangkat Lunak Pengujian

No Perangkat Lunak Spesifikasi

1 Sistem Operasi Android Marshmallow 6.01

4.1.4 Implementasi Perangkat Keras Pengujian

Perangkat keras pengujian merupakan perangkat keras yang dipakai pada saat pengujian sistem. Adapun perangkat keras yang digunakan pada pembangunan aplikasi pada penelitian ini adalah sebagai berikut.

Tabel 4.4 Implementasi Perangkat Keras Pengujian

No Perangkat Keras Spesifikasi

1 Processor Octa-core 1.4 Ghz

2 RAM 2 GB

3 Internal Storage 16 GB

4 Layar 5 inch

4.1.5 Implementasi Basis Data

Implementasi basis data merupakan gambaran pembuatan basis data pembangunan aplikasi pada penelitian ini. Basis data yang diterapkan pada penelitian ini menggunakan bahasa SQL. Berikut pada tabel 4.5 adalah implemtasi basis data pada penelitian ini.

Tabel 4.5 Implementasi Basis Data

No Nama Tabel Perintah

1 Tabel Akun CREATE TABLE `akun` ( `pk_akun` int(8) NOT NULL, `nama` varchar(60) NOT NULL, `alamat` varchar(255) NOT NULL, `telepon` varchar(16) NOT NULL, `username` varchar(60) NOT NULL, `password`

(3)

No Nama Tabel Perintah

varchar(60) NOT NULL, `akses` varchar(16) NOT NULL, `lat_terkini` double NOT NULL, `lng_terkini` double NOT NULL, `fcm` varchar(255) NOT NULL )

2 Tabel Anggota

CREATE TABLE `anggota` ( `pk_anggota` int(11) NOT NULL, `nama` varchar(100) NOT NULL, `telepon` varchar(16) NOT NULL, `alamat` varchar(255) NOT NULL )

3 Tabel Kendaraan

CREATE TABLE `kendaraan` ( `pk_kendaraan` int(8) NOT NULL, `merk` varchar(60) NOT NULL, `tipe` varchar(60) NOT NULL, `no` varchar(16) NOT NULL ) 4 Tabel spj CREATE TABLE `spj` ( `pk_spj` int(11) NOT NULL,

`fk_akun_kbo` int(11) NOT NULL, `fk_akun_drv` int(11) NOT NULL, `fk_tps` int(11) NOT NULL, `fk_tpa` int(11) NOT NULL, `fk_kendaraan` int(11) NOT NULL, `waktu_berangkat` time NOT NULL, `waktu_sampai` time NOT NULL, `tanggal` date NOT NULL, `timbangan_sampah` varchar(16) NOT NULL, `bukti_tps` varchar(255) NOT NULL, `status_sampah_tps` varchar(60) NOT NULL, `keterangan_tps` varchar(255) NOT NULL, `status` int(4) NOT NULL, `radius_tps` int(2) NOT NULL, `radius_tpa` int(2) NOT NULL ) 5 Tabel

spj_anggota

CREATE TABLE `spj_anggota` ( `pk_spj_anggota` int(11) NOT NULL, `fk_spj` int(11) NOT NULL, `fk_anggota` int(11) NOT NULL )

6 Tabel TPA CREATE TABLE `tpa` ( `pk_tpa` int(11) NOT NULL, `fk_akun` int(11) NOT NULL, `nama` varchar(120) NOT NULL, `alamat` varchar(255) NOT NULL, `lat` double NOT NULL, `lng` double NOT NULL )

(4)

No Nama Tabel Perintah

7 Tabel TPS CREATE TABLE `tps` ( `pk_tps` int(11) NOT NULL, `fk_akun` int(8) NOT NULL, `nama` varchar(60) NOT NULL, `alamat` varchar(255) NOT NULL, `wilayah` varchar(255) NOT NULL, `kecamatan` varchar(120) NOT NULL, `lat` double NOT NULL, `lng` double NOT NULL )

4.1.6 Implementasi Antarmuka

Implementasi antarmuka mempunyai tujuan untuk mengubah hasil analisis menjadi bentuk nyata. Antarmuka adalah bagian penting dari pembangunan aplikasi mobile android. Berikut pada tabel 4.6 merupakan daftar implementasi antarmuka dari system mobile penelitian ini.

Tabel 4.6 Implementasi Antarmuka Sistem Mobile

No Nama Antarmuka Deskripsi Nama File

1 Halaman Login Menampilkan halaman login pengguna.

FragmentFront.java

2 Halaman Utama Menampilkan halaman utama aplikasi.

ActivityMain.java

3 Halaman Daftar Penugasan

Menampilkan halaman yang menampilkan daftar penugasan driver.

FragmentMainSub1.java

4 Halaman Navigasi Driver

Menampilkan halaman yang menampilkan menu navigasi driver.

FragmentB.java

5 Halaman

Pelacakan Driver

Menampilkan halaman yang menampilkan menu pelacakan driver.

FragmentC.java

6 Halaman

Konfirmasi TPS

Menampilkan halaman yang menampilkan menu

(5)

No Nama Antarmuka Deskripsi Nama File untuk konfirmasi pengangkutan di TPS 7 Halaman Konfirmasi TPA Menampilkan halaman yang menampilkan menu untuk konfirmasi pengangkutan sampah ke TPA.

FragmentD.java

Berikut pada tabel 4.7 adalah implementasi antarmuka system web dari penelitian ini.

Tabel 4.7 Implementasi Antarmuka Sistem Web

No Nama Antarmuka Deskripsi Nama File

1 Halaman Login Menampilkan halaman

login pengguna. Front.php 2 Halaman Dashboard Menampilkan halaman utama web. Dashboard.php

3 Halaman Akun Menampilkan halaman akun.

Akun.php

4 Halaman TPS Menampilkan halaman TPS.

TPS.php

5 Halaman TPA Menampilkan halaman TPA. TPA.php 6 Halaman Kendaraan Menampilkan halaman Kendaraan. Kendaraan.php

7 Halaman Crew Menampilkan halaman Crew.

Anggota.php

8 Halaman SPJ Menampilkan halaman SPJ.

(6)

4.1.7 Implementasi Teknologi

Implementasi teknologi mempunyai tujuan untuk menerapkan teknologi-teknologi untuk membantu pengguna dalam pengunaan aplikasi. Teknologi berperan penting untuk mempermudah pengguna serta menginkatkan keamanan pada aplikasi. Berikut merupakan implementasi teknologi dari penelitian ini.

1. Google Maps API

Berikut adalah implementasi Google Maps API pada aplikasi.

1. public AssistantMapsLocation(Context context, MapFragment mapFragment) {

2. this.context = context;

3.

4. //google map request

5. mapFragment.getMapAsync(this);

6. mGoogleApiClient = new GoogleApiClient.Builder(context)

7. .addApi(LocationServices.API) 8. .addConnectionCallbacks(this) 9. .addOnConnectionFailedListener(this) 10. .build(); 11. mGoogleApiClient.connect(); 12.

13. mLocationManager = (LocationManager) context.getSystemService(Co ntext.LOCATION_SERVICE);

14.

15.

16. Criteria criteria = new Criteria();

17. provider = mLocationManager.getBestProvider(criteria, false);

18.

19.

20. if (ActivityCompat.checkSelfPermission(context, Manifest.permiss ion.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && Activi tyCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_ LOCATION) != PackageManager.PERMISSION_GRANTED) { 21. return; 22. } 23. locationCache = mLocationManager.getLastKnownLocation(provider); 24.

25. //builder alert dialog

26. AlertDialog.Builder builder = new AlertDialog.Builder(context);

27. builder.setCancelable(false);

28. builder.setMessage("GPS tidak tersedia, silahkan aktifkan GPS.") ;

29. builder.setPositiveButton("Aktifkan",null);

30.

31. }

32.

33. //location request

34. @Override

35. public void onConnected(@Nullable Bundle bundle) {

(7)

37. mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCUR ACY);

38. mLocationRequest.setInterval(2000 * 10);

39.

40. if (ActivityCompat.checkSelfPermission(context, Manifest.permiss ion.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && Activi tyCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_ LOCATION) != PackageManager.PERMISSION_GRANTED) {

41. return;

42. }

43. LocationServices.FusedLocationApi.requestLocationUpdates(mGoogle ApiClient, mLocationRequest, this);

(8)
(9)

2. Google Maps Direction API

Berikut adalah implementasi Google Maps Direction API pada aplikasi.

1. //direction api request

2. public interface AssitantGoogleDirectionInterface{

3. @GET("/maps/api/directions/json")

4. Call<ResponseBody> draw(@Query("origin") String origin,

5. @Query("destination") String dest ination,

6. @Query("waypoints") String waypoi nts,

7. @Query("mode") String mode,

8. @Query("key") String key);

9. }

10.

11.

12. Callback callback;

13. public interface Callback{

14. void polyline(List<LatLng> line);

15. void distance(double distance,String textDistance);

16. }

17.

18. public void draw(LatLng a, LatLng b, List<LatLng> waypoints, Callback ca llback){

19. this.callback = callback;

20. String start = a.latitude+","+a.longitude;

21. String finish = b.latitude+","+b.longitude;

22. get().draw(start,finish,waypontToString(waypoints),"driving","AIzaSy DZ1o0dmokmzcROPZ7ciNO8PsfI0Zv_vPI")

23. .enqueue(new CloudNetwork.CallbackProgress<ResponseBody>(con text, new retrofit2.Callback<ResponseBody>() {

24. @Override

25. public void onResponse(Call<ResponseBody> call, Response <ResponseBody> response) { 26. try { 27. responseBody = response.body().string(); 28. buildDistance(); 29. buildPolyline(); 30. } catch (IOException e) { 31. e.printStackTrace(); 32. } 33. 34. 35. } 36. 37. @Override

38. public void onFailure(Call<ResponseBody> call, Throwable t) { 39. 40. } 41. })); 42. } 43.

44. //convert waypoint to latlong

45. private String waypontToString(List<LatLng> list ){

46. if(list== null) new ArrayList<LatLng>();

47. StringBuilder str = new StringBuilder();

(10)

49. for (int i=0;i<list.size();i++){ 50. str.append(list.get(i).latitude); 51. str.append(","); 52. str.append(list.get(i).longitude); 53. if(i != list.size()-1) str.append("|"); 54. } 55. } 56. return str.toString(); 57. } 58.

59. private List<LatLng> decodePoly(String encoded) {

60.

61. List<LatLng> poly = new ArrayList<LatLng>();

62. int index = 0, len = encoded.length();

63. int lat = 0, lng = 0;

64.

65. while (index < len) {

66. int b, shift = 0, result = 0;

67. do {

68. b = encoded.charAt(index++) - 63;

69. result |= (b & 0x1f) << shift;

70. shift += 5;

71. } while (b >= 0x20);

72. int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));

73. lat += dlat; 74. 75. shift = 0; 76. result = 0; 77. do { 78. b = encoded.charAt(index++) - 63;

79. result |= (b & 0x1f) << shift;

80. shift += 5;

81. } while (b >= 0x20);

82. int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));

83. lng += dlng;

84.

85. LatLng p = new LatLng( (((double) lat / 1E5)),

86. (((double) lng / 1E5) )); 87. poly.add(p); 88. } 89. 90. return poly; 91. } 92. 93. //build polyline

94. private void buildPolyline(){

95. try {

96.

97. JSONObject jsonObject = new JSONObject(responseBody);

98. JSONArray routeArray = jsonObject.getJSONArray("routes");

99. JSONObject routes = routeArray.getJSONObject(0);

100. JSONObject overviewPolylines = routes.getJSONObject("over view_polyline");

101. String encodedString = overviewPolylines.getString("point s");

102. List<LatLng> list = decodePoly(encodedString);

103.

(11)
(12)

3. Firebase Cloud Messaging

Berikut adalah implementasi Firebase Cloud Messaging pada aplikasi.

1. public class AssistantFCM {

2.

3. //fcm request

4. public static final String AUTHORIZATION ="key=AAAAKJ7oeyE:APA91bElW

JI-FjbgJaDQviNOfBj68I2-2veOrEF-2Tx4dQoEwetiC7g0vLtZy1ieqbxjwKFhV-M41w1D6KK4PM14m7vX1S7jMjVy9gwmx4e05_uiQipGEw3l1nPYHCHnoYX3ZTO2Uugj";

5. public static final String CONTENT_TYPE = "application/json";

6.

7. public final static String BASE_URL = "https://fcm.googleapis.com";

8.

9.

10.

11. String responseBody;

12.

13. private static Retrofit retrofit = null;

14.

15.

16. public AssistantFCM(){

17.

18. }

19. public AssistantFCMInterface get() {

20.

21. retrofit = new Retrofit.Builder()

22. .baseUrl(BASE_URL)

23. .addConverterFactory(ScalarsConverterFactory.create())

24. .addConverterFactory(GsonConverterFactory.create())

25. .build();

26.

27. return retrofit.create(AssistantFCMInterface.class);

28. }

29.

30.

31. public interface AssistantFCMInterface{

32. @POST("/fcm/send")

33. Call<Void> serviceSend(@Header("Authorization") String auth,

34. @Header( "Content-Type") String ct,

35. @Body String json);

36.

37.

38. }

39.

40. //build message

41. public static String buildMessage(String token, String stringTitle, String stringBody) throws JSONException {

42. JSONObject object = new JSONObject();

43. object.put("body",stringBody);

44. object.put("title",stringTitle);

45.

46.

47. JSONObject objectContainer = new JSONObject();

48. objectContainer.put("to",""+token);

49. objectContainer.put("notification",object);

(13)

51. return objectContainer.toString();

52.

53. }

54. }

55. public class MyFirebaseMessagingService extends FirebaseMessagingService {

56. private static final String TAG = "MyFirebaseMsgService";

57. @Override

58. public void onMessageReceived(RemoteMessage remoteMessage) {

59. Log.d(TAG, "From: " + remoteMessage.getFrom());

60. 61. 62. if(new SessionAccount(getApplicationContext()).isThere()){ 63. if(new SessionAccount(getApplicationContext()).getTypeAccoun t().contentEquals(remoteMessage.getNotification().getTitle())){ 64. showNotification(remoteMessage.getNotification().getBody ()); 65. } 66. } 67. } 68. 69. //notification sending

70. private void showNotification(String messageBody) {

71. Intent intent = new Intent(this, ActivityMain.class);

72. intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

73. PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent,

74. PendingIntent.FLAG_ONE_SHOT);

75. String channelId = "fcm_default_channel";

76.

77. NotificationCompat.Builder notificationBuilder =

78. new NotificationCompat.Builder(this, channelId)

79. .setSmallIcon(R.drawable.ic_notif_br)

80. .setColor(Color.parseColor("#4285F4"))

81. .setContentTitle("Bandung Resik")

82. .setContentText(messageBody)

83. .setStyle(new NotificationCompat.BigTextStyle(). bigText("Bandung Resik"))

84. .setStyle(new NotificationCompat.BigTextStyle(). bigText(messageBody)) 85. .setAutoCancel(false) 86. .setDefaults(DEFAULT_ALL) 87. .setDefaults(DEFAULT_SOUND) 88. .setPriority(NotificationManager.IMPORTANCE_HIGH ) 89. .setContentIntent(pendingIntent); 90. 91. NotificationManager notificationManager = 92. (NotificationManager) getSystemService(Context.NOTIFICAT ION_SERVICE); 93.

94. notificationManager.notify(0 /* ID of notification */, notificat ionBuilder.build());

95. }

(14)

4. Geofence

Berikut adalah implementasi Geofence pada aplikasi.

1. public class AssistantGeofenceService extends IntentService{

2. final static String TAG = "AssistantGeofenceService";

3. public AssistantGeofenceService() { 4. super("AssistantGeofenceService"); 5. } 6. 7. 8. @SuppressLint("LongLogTag") 9. @Override

10. protected void onHandleIntent(@Nullable Intent intent) {

11. GeofencingEvent event = GeofencingEvent.fromIntent(intent);

12.

13. //geofence setup

14. if (event != null) {

15. if (event.hasError()) {

16. Log.i(TAG,"ERROR :"+event.getErrorCode());

17. } else {

18. int transition = event.getGeofenceTransition();

19. if (transition == Geofence.GEOFENCE_TRANSITION_ENTER || 20. transition == Geofence.GEOFENCE_TRANSITION_DWELL || 21. transition == Geofence.GEOFENCE_TRANSITION_EXIT) { 22.

23. for (Geofence geofence : event.getTriggeringGeofence s()) { 24. onEnteredGeofences(geofence.getRequestId(),trans ition); 25. } 26. 27. } 28. } 29. } 30. } 31. 32. //geofence event

33. private void onEnteredGeofences(String requestId, int transition) {

34. EventBus.getDefault().post(new MessageEvent(requestId,transition ));

35. Log.i(TAG,"onEnteredGeofences "+requestId);

36. }

37.

38. public class MessageEvent {

39.

40. public String requestId;

41. public int transition;

42.

43.

44. public MessageEvent(String requestId,int transition) {

45. this.requestId = requestId;

46. this.transition = transition;

47. }

(15)

49.

50. }

51. }

5. QR Code

Berikut adalah implementasi QR Code pada aplikasi.

1. @Override

2. protected void onCreate(@Nullable Bundle savedInstanceState) {

3. super.onCreate(savedInstanceState);

4.

5. //declar typeface

6. typefaceRegular = Typeface.createFromAsset(getAssets(), "roboto_ regular.ttf");

7. typefaceBold = Typeface.createFromAsset(getAssets(), "roboto_bol d.ttf");

8.

9.

10. //declar canvas

11. canvasCoordinator = new CanvasCoordinator(this);

12. canvasAppBar = new CanvasAppBar(this);

13. canvasToolbar = new CanvasToolbar(this);

14. canvasWall = new CanvasWall(this);

15. 16. //order canvas 17. canvasAppBar.addView(canvasToolbar); 18. canvasCoordinator.addView(canvasAppBar); 19. canvasCoordinator.addView(canvasWall); 20. 21. //QRCode setup 22. buildCanvas(); 23. 24. Bundle b = getIntent().getExtras(); 25. if(b!=null){ 26. PK_SPJ = b.getInt("pk_spj"); 27. FCM = b.getString("fcm");

28. NO_SPJ = b.getString("no_spj");

29. FROM = b.getString("from");

30.

31. }

32. mScannerView = new ZXingScannerView(this);

33. mScannerView.setLayoutParams(new RelativeLayout.LayoutParams(Rel ativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_ PARENT));

34.

35. List<BarcodeFormat> barcodeFormats = new ArrayList<BarcodeFormat >(); 36. barcodeFormats.add(BarcodeFormat.QR_CODE); 37. mScannerView.setFormats(barcodeFormats); 38. canvasWall.addView(mScannerView); 39. 40. 41. } 42.

43. private void buildCanvas() {

(16)

45. canvasToolbar.setTitle("Verifikasi Kode"); 46. 47. canvasToolbar.setTypeface(typefaceRegular); 48. canvasToolbar.setContentInsetStartWithNavigation(0); 49. canvasToolbar.setContentInsetsAbsolute(0,0); 50. canvasToolbar.setContentInsetsRelative(0,0); 51. 52. canvasWall.setId(R.id.fragment);

53. CoordinatorLayout.LayoutParams canvasWallLayout = new Coordinato rLayout.LayoutParams(CoordinatorLayout.LayoutParams.MATCH_PARENT,

54. CoordinatorLayout.LayoutParams.MATCH_PARENT);

55. canvasWallLayout.setBehavior(new AppBarLayout.ScrollingViewBehav ior()); 56. 57. canvasWall.setLayoutParams(canvasWallLayout); 58. 59. 60. canvasToolbar.setTypeface(typefaceBold); 61. 62. setSupportActionBar(canvasToolbar); 63. getSupportActionBar().setDisplayShowHomeEnabled(true); 64. getSupportActionBar().setDisplayHomeAsUpEnabled(true); 65. 66. 67. setContentView(canvasCoordinator); 68. 69. 70. 71. } 72. 73. 74. @Override

75. public boolean onOptionsItemSelected(MenuItem item) {

76. if (item.getItemId() == android.R.id.home) {

77. finish();

78. }

79. return super.onOptionsItemSelected(item);

80. }

81.

82. @Override

83. public void onResume() {

84. super.onResume();

85. mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.

86. mScannerView.startCamera(); // Start camera on resume

87. }

88.

89. @Override

90. public void onPause() {

91. super.onPause();

92. mScannerView.stopCamera(); // Stop camera on pause

93. }

94.

95. public void theFinish(){

96. Intent intent = new Intent();

97. intent.putExtra("pk_spj",PK_SPJ);

98. intent.putExtra("fcm",FCM);

99. intent.putExtra("no_spj",NO_SPJ);

100. intent.putExtra("from",FROM);

101. setResult(RESULT_OK,intent);

(17)

103. }

104. public void theFinishFail(){

105. setResult(3);

106. finish();

107. }

108. @Override

109. public void handleResult(Result rawResult) {

110. // Do something with the result here

111. 112. 113. if(md5(NO_SPJ).toUpperCase().contentEquals(rawResult.getTe xt().toString().toUpperCase())){ 114. theFinish(); 115. }else{ 116. theFinishFail(); 117. } 118. 119. 120.

121. // If you would like to resume scanning, call this method below:

122. // mScannerView.resumeCameraPreview(this);

123. }

124. Toast toast = null;

125. public void showToast(String text){

126. if(toast!=null){

127. toast.cancel();

128. }

129. toast = Toast.makeText(ActivityF.this,text,Toast.LENGTH_L ONG);

130. toast.show();

131. }

132.

133. public static final String md5(final String s) {

134. final String MD5 = "MD5";

135. try {

136. // Create MD5 Hash

137. MessageDigest digest = java.security.MessageDigest

138. .getInstance(MD5);

139. digest.update(s.getBytes());

140. byte messageDigest[] = digest.digest();

141.

142. // Create Hex String

143. StringBuilder hexString = new StringBuilder();

144. for (byte aMessageDigest : messageDigest) {

145. String h = Integer.toHexString(0xFF & aMessageDig est); 146. while (h.length() < 2) 147. h = "0" + h; 148. hexString.append(h); 149. } 150. return hexString.toString(); 151. 152. } catch (NoSuchAlgorithmException e) { 153. e.printStackTrace(); 154. } 155. return ""; 156. } 157. }

(18)
(19)

4.2 Pengujian Sistem

Pengujian merupakan upaya mencari kesalahan atau kekurangan pada perangkat lunak yang lunak yang akan diuji. Pengujian digunakan untuk mengetahui apakah perangkat lunak yang dibangun sudah memenuhi kriteria sesuai dengan tujuan perancangan perangkat lunak tersebut. Metode pengujian ini terdiri dari dua tahap yaitu pengujian alpha dan beta.

4.2.1 Pengujian Alpha

Pengujian Alpha merupakan pengujian fungsional diadakan di lingkungan pembangun oleh sekumpulan pengguna yang akan menggunakan perangkat lunaknya. Pihak pembangun mendampingi serta mencatat kesalahan-kesalahan maupun permasalahan yang dirasakan oleh pengguna. Pengujian alpha yang dilakukan pada perangkat lunak dibagi menjadi beberapa bagian, yaitu skenario pengujian, kasus, hasil pengujian, dan kesimpulan pengujian.

4.2.1.1 Skenario Pengujian

Skenario pengujian memaparkan fungsional-fungsional perangkat lunak yang akan diuji. Adapun skenario pengujian fungsional yang dilakukan terdiri dari dua buah sistem yaitu web dan mobile.

1. Skenario Pengujian Sistem Web

Pada pengujian ini semua fitur pada sistem web yang dibangun akan diuji menggunakan metode black box. Berikut pada tabel 4.8 adalah skenario pengujian sistem web yang akan diuji.

Tabel 4.8 Skenario Pengujian Sistem Web

Nama Fungsional Poin Pengujian Jenis Pengujian Login Admin Input data login Blackbox

Validasi data login Blackbox

Tambah Akun Input data user Blackbox

Validasi data input Blackbox

(20)

Nama Fungsional Poin Pengujian Jenis Pengujian Validasi data input Blackbox

Tambah TPS Input data TPS Blackbox

Validasi data input Blackbox

Ubah TPS Input data TPS Blackbox

Validasi data input Blackbox

Tambah TPA Input data TPA Blackbox

Validasi data input Blackbox

Ubah TPA Input data TPA Blackbox

Validasi data input Blackbox

Tambah Kru Input data Kru Blackbox

Validasi data input Blackbox

Ubah Kru Input data Kru Blackbox

Validasi data input Blackbox

Tambah Kendaraan Input data Kendaraan Blackbox

Validasi data input Blackbox

Ubah Kendaraan Input data Kendaraan Blackbox

Validasi data input Blackbox

2. Skenario Pengujian Sistem Mobile

Pada pengujian ini semua fitur pada perangkat lunak mobile yang dibangun akan diuji menggunakan metode black box. Berikut pada tabel 4.9 adalah skenario pengujian sistem mobile yang akan diuji.

Tabel 4.9 Skenario Pengujian Sistem Mobile

Nama Fungsional Poin Pengujian Jenis Pengujian Login KBO Input data login KBO Blackbox

Validasi data login KBO Blackbox

Tambah SPJ Input data SPJ Blackbox

(21)

Nama Fungsional Poin Pengujian Jenis Pengujian Login Driver Input data login Driver Blackbox

Validasi data login

Driver

Blackbox

Login Petugas TPS Input data login Petugas TPS

Blackbox

Validasi data login

Petugas TPS

Blackbox

Konfirmasi

Pengangkutan di TPS

Input data pengakutan di TPS

Blackbox

Konfirmasi data pengangkutan di TPS

Blackbox

Login Petugas TPA Input data login Petugas TPS

Blackbox

Validasi data login

Petugas TPS

Blackbox

Konfirmasi

Pengangkutan ke TPA

Input data pengakutan ke TPA

Blackbox

Konfirmasi data pengangkutan ke TPA

Blackbox

4.2.1.2 Kasus dan Hasil Pengujian

Kasus dan hasil pengujian berisi kasus-kasus yang dapat ditemui dalam penggunaan setiap fungsional sistem serta hasil pengujian dari kasus-kasus tersebut. Pengujian ini dilakukan secara black box dengan hanya memperhatikan masukan ke dalam sistem dan keluaran dari sistem tersebut. Berikut adalah pemaparan dari setiap poin pengujian yang terdapat pada skenario pengujian sistem

(22)

a. Kasus dan Hasil Pengujian Sistem Web

Pengujian ini berisi kasus dan hasil pengujian dari scenario pengujian pada sistem web. Berikut adalah pemaparan setiap poin pengujian fungsional sistem

web.

1. Pengujian Login Admin

Berikut pada Tabel 4.10 adalah hasil pengujian fungsionalitas login admin pada kasus data benar, data salah, dan data kosong.

Tabel 4.10 Pengujian Login Admin Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Username: admin Password: 12345 Masuk ke halaman utama Berhasil masuk ke halaman utama ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Salah)

Data Masukan Harapan Pengamatan Kesimpulan Username: admin

Password: 123

Gagal masuk ke halaman utama

Login gagal dan

tetap di halaman

login

( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Username: admin

Password:

Gagal masuk ke halaman utama

Login gagal dan

tetap di halaman

login

( ) Diterima ( ) Ditolak

(23)

2. Pengujian Tambah Akun

Berikut pada Tabel 4.11 adalah hasil pengujian fungsionalitas tambah akun pada kasus data benar, dan data kosong.

Tabel 4.11 Pengujian Tambah Akun Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Nama: Hangga Saputra Alamat : Bandung Telepon: 089699490069 Username: hangga Password: 12345 Berhasil menambahkah akun Berhasil menambahkan akun, data baru muncul

( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Nama: Hangga Saputra Alamat : Bandung Telepon: 089699490069 Username: hangga Password: Gagal menambahkan akun Penambahan gagal, tidak muncul data baru

( ) Diterima ( ) Ditolak

(24)

3. Pengujian Ubah Akun

Berikut pada Tabel 4.12 adalah hasil pengujian fungsionalitas ubah akun pada kasus data benar, dan data kosong.

Tabel 4.12 Pengujian Ubah Akun Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Nama: Hangga Saputra Alamat : Bandung Telepon: 089699490069 Username: hangga Password: 12346 Berhasil mengubah data akun Data akun berubah sesuai masukan ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Nama: Hangga Saputra Alamat : Bandung Telepon: 089699490069 Username: hangga Password: Gagal mengubah akun

Data akun tidak berubah

( ) Diterima ( ) Ditolak

(25)

4. Pengujian Tambah TPS

Berikut pada Tabel 4.13 adalah hasil pengujian fungsionalitas tambah TPS pada kasus data benar, dan data kosong.

Tabel 4.13 Pengujian Tambah TPS Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Nama TPS: Orari Alamat : Leumah Neundeut Wilayah: Bandung Utara Kecamatan: Sukasari Latitude: -6.88077 Longitude: 107.579187 Berhasil menambahkah TPS Berhasil menambahkan TPS, data baru muncul ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Nama TPS: Orari Alamat : Leumah Neundeut Wilayah: Bandung Utara Kecamatan: Sukasari Latitude: -6.88077 Longitude: Gagal menambahkan TPS Penambahan gagal, tidak muncul data baru

( ) Diterima ( ) Ditolak

(26)

5. Pengujian Ubah TPS

Berikut pada Tabel 4.14 adalah hasil pengujian fungsionalitas ubah TPS pada kasus data benar, dan data kosong.

Tabel 4.14 Pengujian Ubah TPS Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Nama TPS: Orari Alamat : Leumah Neundeut Wilayah: Bandung Utara Kecamatan: Sukasari Latitude: -6.88078 Longitude: 107.579187 Berhasil mengubah TPS Data berubah sesuai data masukan ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Nama TPS: Orari Alamat : Leumah Neundeut Wilayah: Bandung Utara Kecamatan: Sukasari Latitude: -6.88077 Longitude: Gagal mengubah data TPS Penambahan gagal, tidak muncul data baru

( ) Diterima ( ) Ditolak

(27)

6. Pengujian Tambah TPA

Berikut pada Tabel 4.15 adalah hasil pengujian fungsionalitas tambah TPA pada kasus data benar, dan data kosong.

Tabel 4.15 Pengujian Tambah TPA Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Nama TPA: Orari

Alamat : Sarimukti, Cipatat, Kab. Bandung Barat Latitude: -6.80039 Longitude: 107.348716 Berhasil menambahkah TPA Berhasil menambahkan TPA, data baru muncul

( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Nama TPA: Orari

Alamat : Sarimukti, Cipatat, Kab. Bandung Barat Latitude: -6.80039 Longitude: Gagal menambahkan TPA Penambahan gagal, tidak muncul data baru

( ) Diterima ( ) Ditolak

(28)

7. Pengujian Ubah TPA

Berikut pada Tabel 4.16 adalah hasil pengujian fungsionalitas ubah TPA pada kasus data benar, dan data kosong.

Tabel 4.16 Pengujian Ubah TPA Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Nama TPA: Orari

Alamat : Sarimukti, Cipatat, Kab. Bandung Barat Latitude: -6.80039 Longitude: 107.348714 Berhasil mengubah TPA Data berubah sesuai inputan ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Nama TPA: Orari

Alamat : Sarimukti, Cipatat, Kab. Bandung Barat Latitude: -6.80039 Longitude: Gagal mengubah TPA

Data TPA tidak berubah

( ) Diterima ( ) Ditolak

(29)

8. Pengujian Tambah Kru

Berikut pada Tabel 4.17 adalah hasil pengujian fungsionalitas tambah kru pada kasus data benar, dan data kosong.

Tabel 4.17 Pengujian Tambah Kru Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Nama: Agus Alamat : Bandung Telepon : 085221434323 Berhasil menambahkah Kru Berhasil menambahkan Kru, data baru muncul

( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Nama: Agus Alamat : Telepon : Gagal menambahkan Kru Penambahan gagal, tidak muncul data baru

( ) Diterima ( ) Ditolak

(30)

9. Pengujian Ubah Kru

Berikut pada Tabel 4.18 adalah hasil pengujian fungsionalitas ubah kru pada kasus data benar, dan data kosong.

Tabel 4.18 Pengujian Ubah Kru Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Nama: Agus Alamat : Bandung Telepon : 085221434323 Berhasil menambahkah Kru Berhasil menambahkan Kru, data baru muncul

( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Nama:

Alamat : Telepon :

Gagal mengubah Kru

Data Kru tidak brubah

( ) Diterima ( ) Ditolak

(31)

10. Pengujian Tambah Kendaraan

Berikut pada Tabel 4.19 adalah hasil pengujian fungsionalitas tambah kendaraan pada kasus data benar, dan data kosong.

Tabel 4.19 Pengujian Tambah Kendaraan Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Merk: Hino Tipe: LH No TNKB: D8242C Berhasil menambahkah Kendaraan Berhasil menambahkan Kendaraan, data baru muncul ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Merk: Hino Tipe: LH No TNKB: Gagal menambahkan Kendaraan Penambahan gagal, tidak muncul data baru

( ) Diterima ( ) Ditolak

(32)

11. Pengujian Ubah Kendaraan

Berikut pada Tabel 4.20 adalah hasil pengujian fungsionalitas ubah kendaraan pada kasus data benar, dan data kosong.

Tabel 4.20 Pengujian Ubah Kendaraan Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Merk: Hino Tipe: LH No TNKB: D8242B Berhasil mengubah Kendaraan Data berubah sesuai masukan ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Merk: Hino Tipe: LH No TNKB: Gagal mengubah Kendaraan Data tidak berubah ( ) Diterima ( ) Ditolak

(33)

b. Kasus dan Hasil Pengujian Sistem Mobile

Pengujian ini berisi kasus dan hasil pengujian dari scenario pengujian pada sistem mobile. Berikut adalah pemaparan setiap poin pengujian fungsional sistem

mobile.

1. Pengujian Login KBO

Berikut pada Tabel 4.21 adalah hasil pengujian fungsionalitas login KBO pada kasus data benar, data salah, dan data kosong.

Tabel 4.21 Pengujian Login KBO Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Username: hangga Password: 12345 Masuk ke halaman utama Berhasil masuk ke halaman utama ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Salah)

Data Masukan Harapan Pengamatan Kesimpulan Username:

hangga

Password: 1234

Gagal masuk ke halaman utama

Login gagal dan

tetap di halaman

login

( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Username:

hangga Password:

Gagal masuk ke halaman utama

Login gagal dan tetap di halaman login

( ) Diterima ( ) Ditolak

(34)

2. Pengujian Tambah SPJ

Berikut pada Tabel 4.22 adalah hasil pengujian fungsionalitas tambah SPJ pada kasus data benar, dan data kosong.

Tabel 4.22 Pengujian Tambah SPJ Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan TPS: Leumah Neundeut TPA: Sarimukti Driver: Andik Kru: Agus, Ahmad, Asep Kendaraan: D8242C Berhasil tambah SPJ SPJ baru berhasil dibuat dan muncul di daftar SPJ

( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan TPS: Leumah Neundeut TPA: Sarimukti Driver: Andik Kru: Agus, Ahmad, Asep Kendaraan:

Gagal tambah SPJ Muncul pesan data tidak lengkap, SPJ gagal dibuat

( ) Diterima ( ) Ditolak

(35)

3. Pengujian Login Driver

Berikut pada Tabel 4.23 adalah hasil pengujian fungsionalitas login driver pada kasus data benar, data salah, dan data kosong.

Tabel 4.23 Pengujian Login Driver Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Username: andik Password: 12345 Masuk ke halaman utama Berhasil masuk ke halaman utama ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Salah)

Data Masukan Harapan Pengamatan Kesimpulan Username: andik

Password: 1234

Gagal masuk ke halaman utama

Login gagal dan

tetap di halaman

login

( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Username:

hangga Password:

Gagal masuk ke halaman utama

Login gagal dan

tetap di halaman

login

( ) Diterima ( ) Ditolak

(36)

4. Pengujian Login Petugas TPS

Berikut pada Tabel 4.24 adalah hasil pengujian fungsionalitas login petugas TPS pada kasus data benar, data salah, dan data kosong.

Tabel 4.24 Pengujian Login Petugas TPS Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Username: aan Password: 12345 Masuk ke halaman utama Berhasil masuk ke halaman utama ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Salah)

Data Masukan Harapan Pengamatan Kesimpulan Username: aan

Password: 1234

Gagal masuk ke halaman utama

Login gagal dan

tetap di halaman

login

( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Username:

hangga Password:

Gagal masuk ke halaman utama

Login gagal dan

tetap di halaman

login

( ) Diterima ( ) Ditolak

(37)

5. Pengujian Konfirmasi Pengangkutan di TPS

Berikut pada Tabel 4.25 adalah hasil pengujian fungsionalitas konfirmasi pengangkutan di TPS pada kasus data benar, dan data kosong.

Tabel 4.25 Pengujian Konfirmasi Pengangkutan di TPS Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Status: Sisa Keterangan: 1 rit Konfirmasi berhasil Konfirmasi berhasil, staus diteruskan ke TPA ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Status:

Keterangan:

Konfirmasi gagal Muncul pesan data tidak lengkap

( ) Diterima ( ) Ditolak

(38)

6. Pengujian Login Petugas TPA

Berikut pada Tabel 4.26 adalah hasil pengujian fungsionalitas login petugas TPA pada kasus data benar, data salah, dan data kosong.

Tabel 4.26 Pengujian Login Petugas TPA Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Username: sulaeman Password: 12345 Masuk ke halaman utama Berhasil masuk ke halaman utama ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Salah)

Data Masukan Harapan Pengamatan Kesimpulan Username:

sulaeman Password: 1234

Gagal masuk ke halaman utama

Login gagal dan

tetap di halaman

login

( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Username:

hangga Password:

Gagal masuk ke halaman utama

Login gagal dan

tetap di halaman

login

( ) Diterima ( ) Ditolak

(39)

7. Pengujian Konfirmasi Pengangkutan ke TPA

Berikut pada Tabel 4.27 adalah hasil pengujian fungsionalitas konfirmasi penangkutan ke TPA pada kasus data benar, dan data kosong.

Tabel 4.27 Pengujian Konfirmasi Pengangkutan ke TPA Kasus dan Hasil Uji (Data Benar)

Data Masukan Harapan Pengamatan Kesimpulan Berat: 10 ton Konfirmasi

berhasil Konfirmasi berhasil, status pengangkutan selesai ( ) Diterima ( ) Ditolak

Kasus dan Hasil Uji (Data Kosong)

Data Masukan Harapan Pengamatan Kesimpulan Berat: Konfirmasi gagal Muncul pesan

data tidak lengkap

( ) Diterima ( ) Ditolak

4.2.1.3 Kesimpulan Pengujian Alpha

Berdasarkan hasil pengujian perangkat lunak yang dilakukan, maka dapat disimpulkan bahwa aplikasi yang telah dibangun sudah baik. Aplikasi dapat berjalan sesuai harapan baik dari segi validasi maupun proses penanganan kesalahan.

(40)

4.2.2 Pengujian Beta

Pengujian beta merupakan pengujian yang dilaksanakan oleh pengguna yang nantinya akan menggunakan sistem. Hal ini dilaksanakan untuk bisa mengetahui sampai mana aplikasi yang dibangun bisa meringankan dan menyelesaikan masalah yang telah dijelaskan pada identifikasi masalah.

4.2.2.1 Skenario Pengujian Beta

Pada pengujian beta dilakukan wawancara kepada pengguna pada saat pengguna menguji aplikasi yang telah dibuat. Adapun pertanyaan-pertanyaan yang akan diajukan pada wawancara adalah sebagi berikut.

Tabel 4.28 Pertanyaan KBO

No Pertanyaan

1 Apakah dengan adanya aplikasi ini dapat memudahkan anda dalam pembuatan surat tugas pengangkutan sampah?

2 Apakah dengan adanya aplikasi ini dapat meningkatkan pengawasan terhadap driver saat pengangkutan sampah?

3 Apakah dengan adanya aplikasi ini dapat mempermudah penentuan penjadwalan pengangkutan sampah?

4 Apakah penggunaan aplikasi ini mudah dipahami?

4.2.2.2 Hasil Pengujian Beta

Wawancara dilakukan kepada Kepala Bagian Operasional PD. Kebersihan Kota Bandung. Berikut adalah jawaban dari hasil wawancara tersebut.

1. Apakah dengan adanya aplikasi ini dapat memudahkan anda dalam pembuatan surat tugas pengangkutan sampah?

Berdasarkan hasil wawancara kepada Kepala Bagian Operasional PD. Kebersihan Kota Bandung, beliau berpendapat bahwa dengan adanya aplikasi ini pembuatan surat tugas menjadi lebih mudah dan juga memudahkan stakeholder dalam memonitoring kinerja pengangkutan.

(41)

2. Apakah dengan adanya aplikasi ini dapat meningkatkan pengawasan terhadap driver saat pengangkutan sampah?

Berdasarkan hasil wawancara kepada Kepala Bagian Operasional PD. Kebersihan Kota Bandung, pengawasan driver menjadi lebih mudah karena dengan adanya fitur pelacakan, lokasi driver dapat dipantau secara langsung.

3. Apakah dengan adanya aplikasi ini dapat mempermudah penentuan penjadwalan pengangkutan sampah?

Berdasarkan hasil wawancara kepada Kepala Bagian Operasional PD. Kebersihan Kota Bandung, dengan adanya laporan pengangkutan maka dapat dilakukan penadwalan kembali sisa sampah yang belum terangkut. Hanya saja diharapkan pengolahan data kembali untuk penjadwalan otomatis.

4. Apakah penggunaan aplikasi ini mudah dipahami?

Berdasarkan wawancara kepada Kepala Bagian Operasional PD. Kebersihan Kota Bandung, beliau berpendapat bahwa penggunaan aplikasi sudah sangat mudah dipahami. Hanya saja beliau menambahkan saran untuk menambahkan fitur penambahan rute terbaik dan juga fitur fingerprint agar proses pengangkutan tidak mudah dicurangi.

4.2.2.3 Kesimpulan Pengujian Beta

Berdasarkan hasil wawancara pada pengujian beta, maka dapat disimpulkan bahwa aplikasi ini telah berhasil mempermudah pembuatan surat tugas pengangkutan sampah serta meningkatkan pengawasan terhadap driver. Selain itu aplikasi ini juga sudah cukup membantu dalam penjadwalan pengangkutan sampah, akan tetapi masih kurang dari yang diharapkan yaitu berupa pemantauan dan notifikasi real-time sampah yang sudah penuh.

(42)

Referensi

Dokumen terkait

memberikan penilaian tentang Buku Pedoman Kisi – Kisi Kompetensi Profesional Calon Sarjana Pendidikan Matematika FITK UIN Sumatera Utara Medan yang akan digunakan

Pada kultur dengan penambahan limbah cair tahu 15% dan 20% terlihat kandungan gula total semakin meningkat dari awal pertumbuhan hingga hari ke-45, namun diperlihatkan

lapisan masyarakat, maka yang menjadi sasaran utama sebagai tujuan akhir adalah. menusia atau masyarakat yang terpenuhi kebutuhannya (Hartoyo

Dalam konteks ini, pendidikan (baik agama maupun umum) sebagai mana dinyatakan Amir Faisal, harus mampu menyiapkan sumber daya manusia yang tidak sekadar sebagai penerima

Empat formula transfersom dibuat dengan konsentrasi kofein yang berbeda (1; 2; 3; 5%) menggunakan metode hidrasi lapis tipis. Suspensi formula 4 dengan ukuran partikel 202,35

Bantuan 28 kaki palsu ini merupakan bagian dari kegiatan Corporate Social Responsibility (CSR) Sequislife didukung oleh Yayasan Peduli Tuna Daksa yaitu mendonasikan lebih dari

Fokus utama penelitian ini adalah mengenai kemampuan pemahaman matematis siswa Sekolah Menengah Pertama (SMP). Rendahnya kemampuan ini disinyalir terjadi antara

Pada pembuatan Proyek Akhir ini untuk memompa air dari tandon air ke alat penyiram digunakan pompa sekala kecil dengan tegangan 220 Volt, karena semua system pada Alat Peyiram