Minggu, 18 Desember 2016

Analisis Sistem Informasi Jasa Laundry Gabungan - BO Laundry

Deskripsi Sistem




BO Laundry merupakan sebuah prototype sebuah aplikasi yang berfungsi sebagai penghubung antara peimilik laundry dengan customer.

Analisis Sistem


Analisis Kebutuhan Perangkat Lunak


Kebutuhan Fungsional:
1. Sistem dapat memberikan informasi beberapa laundry yang terdaftar
2. Sistem dapat memberikan informasi daftar biaya
3. Admin (laundry) dapat login ke sistem
4. User dapat mengecek status laundry

Kebutuhan Non Fungsional:
1. Operasional
1. Digunakan pada platform yang mendukung Java Runtime Environment
2. Keamanan
1. Admin mendapatkan username dan password untuk login

Analisis PIECES


Analisa PIECES meliputi Performance, Information, Economy, Control, Efficiency, Services. Berikut penjelasan masing-masing :


Performance :

- Dengan adanya aplikasi ini maka user tidak perlu mendatangi tempat laundry
- Pemilik laundry yang terdaftar pada sistem dapat mengambil laundry oleh user yang memesan

Information :

Dalam proses pengolahan informasi, aplikasi mengirimkan pemesanan user ke server dimana data tersebut dikirimkan ke server untuk ditindaklanjuti oleh pemilik laundry yang bersangkutan.

Economy :

Para pemilik laundry yang terdaftar dapat menarik tarif untuk pengambilan pakaian yang dilaundrykan sehingga dapat menambah pendapatan.

Control :

Para admin laundry yang bersangkutan diberikan username dan password untuk login.

Efficiency :

Dengan adanya aplikasi ini maka user tidak perlu mendatangi tempat laundry sehingga meningkatkan user experience

Services :

User dapat mengecek apakah laundy pesanannya telah selesai apa belum.

Desain Sistem

Flow Diagram



Use Case



Context Diagram



Class Diagram



Prototype Implementasi Sistem


Laundry.java

 import java.util.ArrayList;  
 public class Laundry {  
   String name;  
   int hargaPerKg = 3000;  
   ArrayList<Cucian> cucians = new ArrayList<Cucian>();  
   public Laundry(String name){  
     this.name = name;  
   }  
   public int hitungHarga(int berat){  
     if (berat < 5) return 5 * this.hargaPerKg;  
     else return berat * this.hargaPerKg;  
   }  
   public void setHarga(int hargaPerKg){  
     this.hargaPerKg = hargaPerKg;  
   }  
   public void tampilkanHarga(){  
     System.out.println("Harga per kilo = " + hargaPerKg);  
   }  
   public void terimaCucian(String nama, int berat, int tanggal){  
     int harga = hitungHarga(berat);  
     Cucian cucian = new Cucian(nama, berat, tanggal, harga);  
     cucians.add(cucian);  
     cucian.printStatus();  
   }  
   public void cekStatusCucian(){  
     boolean ada = false;  
     for(Cucian cucian:cucians){  
       cucian.printStatus();  
       ada = true;  
     }  
     if(!ada){  
       System.out.println("Tidak ada cucian!");  
     }   
   }  
   public void setStatus(int id){  
     for(Cucian cucian:cucians){  
       if(cucian.id == id){  
         if(cucian.status){  
           System.out.println("Cucian sudah selesai dicuci!");  
         }  
         else{  
           cucian.setStatus();  
         }  
         return;  
       }  
     }  
     System.out.println("Cucian tidak ditemukan!");  
   }  
   public void ambilCucian(int id){  
     for(Cucian cucian:cucians){  
       if(cucian.id == id){  
         if(cucian.status){  
           System.out.println("Cucian dengan id " + cucian.id + " milik " + cucian.customer.nama + " berhasil diambil!");  
           cucians.remove(cucian);  
         }  
         else {  
           System.out.println("Belum selesai");  
         }  
         return;  
       }  
     }  
     System.out.println("Cucian tidak ditemukan!");  
   }  
 }  

Customer.java

 public class Customer {  
   public String nama;  
   public Customer(String nama){  
     this.nama = nama;  
   }  
 }  

Cucian.java

 class Tanggal{  
   public int tanggal;  
   public int bulan;  
   public int tahun;  
   public Tanggal(int tanggal){  
     this.tanggal = tanggal/10000;  
     tanggal %= 10000;  
     this.bulan = tanggal/100;  
     this.tahun = tanggal%100;  
   }  
   public Tanggal(Tanggal masuk, int berat){  
     this.tanggal = masuk.tanggal + ((berat / 6) + 1 );  
     this.bulan = masuk.bulan;  
     this.tahun = masuk.tahun;  
     if(this.tanggal > 30) {  
       this.tanggal -= 30;  
       this.bulan++;  
     }  
     if(this.bulan > 12) {  
       this.bulan -= 12;  
       this.tahun++;  
     }  
   }  
 }  
 public class Cucian {  
   public static int count = 1;  
   public int id;  
   public Customer customer;  
   public int berat;  
   public Tanggal masuk;  
   public Tanggal selesai;  
   public int harga;  
   public boolean status;  
   public Cucian(String nama, int berat, int tanggal, int harga){  
     this.customer = new Customer(nama);  
     this.berat = berat;  
     this.harga = harga;  
     this.masuk = new Tanggal(tanggal);  
     this.selesai = new Tanggal(this.masuk, berat);  
     this.status = false;  
     this.id = count;  
     count++;  
   }  
   public void setStatus(){  
     System.out.println("Cucian dengan id " + this.id + " milik " + this.customer.nama + " selesai di cuci!");  
     this.status = true;  
   }  
   public void printStatus(){  
     System.out.println("ID : " + id);  
     System.out.println("Nama : " + customer.nama);  
     System.out.println("Berat : " + berat);  
     System.out.println("Tanggal masuk : " + masuk.tanggal + "/" + masuk.bulan + "/" + masuk.tahun);  
     System.out.println("Perkiraan selesai : " + selesai.tanggal + "/" + selesai.bulan + "/" + selesai.tahun);  
     System.out.println("Harga : " + harga);  
     String stat = "Belum Selesai";  
     if(status) stat = "Sudah Selesai";  
     System.out.println("Status : " + stat);  
   }  
 }  

SILaundry.java

 import java.util.ArrayList;  
 import java.util.Scanner;  
 public class SILaundry {  
   static ArrayList<Laundry> laundries = new ArrayList<Laundry>();  
   public static void main(String[] args) {  
     Laundry laundry1 = new Laundry("ABC Laundry");  
     laundries.add(laundry1);  
     Scanner scanner = new Scanner(System.in);  
     while(true) {  
       System.out.println();  
       System.out.println("=============");  
       System.out.println();  
       System.out.println("1. Terima Cucian");  
       System.out.println("2. Set Harga");  
       System.out.println("3. Set Status");  
       System.out.println("4. Tampilkan Harga");  
       System.out.println("5. Tampilkan Cucian");  
       System.out.println("6. Ambil Cucian");  
       System.out.println("0. Keluar");  
       System.out.print("Masukkan pilihan : ");  
       int inp = scanner.nextInt();  
       System.out.println();  
       if(inp==0) break;  
       else if(inp==1) {  
         System.out.print("Masukkan nama : ");  
         String nama = scanner.next();  
         System.out.print("Masukkan berat (Kg) : ");  
         int berat = scanner.nextInt();  
         System.out.print("Masukkan tanggal (ddmmyy) : ");  
         int tanggal = scanner.nextInt();  
         laundry1.terimaCucian(nama, berat, tanggal);  
       }  
       else if(inp==2) {  
         System.out.print("Masukkan harga per kilo : ");  
         int harga = scanner.nextInt();  
         laundry1.setHarga(harga);  
       }  
       else if(inp==3) {  
         System.out.print("Masukkan id cucian : ");  
         int id = scanner.nextInt();  
         laundry1.setStatus(id);  
       }  
       else if(inp==4) {  
         laundry1.tampilkanHarga();  
       }  
       else if(inp==5) {  
         laundry1.cekStatusCucian();  
       }  
       else if(inp==6){  
         System.out.print("Masukkan id cucian : ");  
         int id = scanner.nextInt();  
         laundry1.ambilCucian(id);  
       }  
       else {  
         System.out.print("Masukan salah.");  
       }  
     }  
   }  
 }  



APSI - C
Dwiyan Satria Utama 5114100045
Ahmad Bilal 5114100121
Ilham Aulia Majid 5114100144

Referensi :





Selasa, 13 Desember 2016

Analisis Sistem Informasi Gramedia



Flow Diagram

Use Case Diagram

Context Diagram

Kebutuhan Aplikasi
1. Fungsional
• Pengolahan data buku


2. Non-Fungsional
• Operasional
o Dapat digunakan pada website dan aplikasi android



APSI C
Dwiyan Satria Utama | 5114100045
Ahmad Bilal | 5114100121
Ilham Aulia Majid | 5114100144