Showing posts with label PPL. Show all posts
Showing posts with label PPL. Show all posts

Sunday, December 18, 2016

Perancangan Perangkat Lunak - Weather-O-Rama

Perangkat lunak yang akan dibahas kami bahasa adalah Aplikasi Pemantau Cuaca berbasis java, Weather-O-Rama. Aplikasi ini memiliki 3 elemen display, yakni kondisi saat ini (suhu, kelembaban, tekanan udara), statistik cuaca dan perkiran sederhana, semua diperbaharui secara real time sebagai objek data cuaca (WeaherData) untuk pengukuran terbaru.
















Tiga hal yang penting dalam apikasi ini adalah stasiun cuaca (perangkat fisik berupada sensor kelembaban, suhu, dan tekanan udara), objek WeatherData (mendapatkan data yang berasal dari stasiun cuaca dan meng-update tampilan) dan tampilan yang menunjukan  ke user kondisi saat ini.

Design pattern yang digunakan pada aplikasi ini adalah Observe Design Pattern. Observe Design Pattern adalah pola hubungan one -to-many antara suatu kumpulan objek, apabila terdapat salah satu objek yang berubah, maka semua objek yang berhubungan akan diberitahu dan akan diperbarui secara otomatis.

Implementasi Observe Design Pattern pada class diagram

pada observe design pattern dibagi menjadi 4 bagian, subject, observer, concrete subject
 dan concrete observer

SUBJECT
berisi class Subject, yakni interface dari aplikasi ini.

OBSERVER
berisi class Observer, yakni semua komponen cuaca akan diimplementasikan dengan observe interface. Hal ini memberikan subjek sebuah interface umum untuk terhubung ketika update observer.

CONCRETE SUBJECT
berisi class WearherData, yakni berisi informasi cuaca saat ini dan untuk mengimplementasikan subjek antarmuka aplikasi ini.

CONCRETE OBSERVER
berisi class CurrentCondititionDisplay, StatisticDisplay, ForecastDisplay dan HeatIndexDisplay, yakni bertugas untuk mendapatkan data akurat cuaca. terdapat fungsi update() yang akan otomatis berjalan ketika update() pada  class observer berfungsi.



Prototype Implementasi System

1. Use Case Diagram
2. CRC-card

3. Class Diagram

4. Sequence Diagram
  • Set measurements

  • Register Observer
5. Component Diagram
6. Deployment Diagram

7. Activity Diagram
  • Set measurements

  • Register Observer

8. Screenshot Program


9. Source Code program

https://github.com/salmanrameli/weather-station-design-pattern


referensi :
rpl.if.its.ac.id/design-pattern-observer/
Head First Design Pattern, Eric Freeman & Elisabeth Freeman





Sunday, November 27, 2016

Proxy Design Pattern

Pola desain atau pola rancangan adalah sebuah istilah di dalam rekayasa perangkat lunak yang mengacu pada solusi umum yang bisa dipergunakan kembali atau berulang-ulang untuk menyelesaikan masalah-masalah yang umum terjadi dalam konteks tertentu atau khusus yang ditemui pada desain perangkat lunak. Sebuah pola desain yang sudah terbentuk bukan berarti desain tersebu


Dalam pemrograman komputer, pola proxy adalah pola desain perangkat lunak. Proxy dalam bentuk yang paling umum adalah fungsi kelas sebagai sebuah antarmuka untuk sesuatu yang lain. Proxy bisa antarmuka untuk apa saja: koneksi jaringan, sebuah objek besar di memori, file, atau beberapa sumber daya lain yang mahal atau tidak mungkin untuk menduplikasi.
Contoh implementasi

Step 1
membuat antarmuka

public interface Image {
   void display();
}

Step 2
membuat kelas konkrit 


RealImage.java
public class RealImage implements Image {

   private String fileName;

   public RealImage(String fileName){
      this.fileName = fileName;
      loadFromDisk(fileName);
   }

   @Override
   public void display() {
      System.out.println("Displaying " + fileName);
   }

   private void loadFromDisk(String fileName){
      System.out.println("Loading " + fileName);
   }
}
ProxyImage.java
public class ProxyImage implements Image{

   private RealImage realImage;
   private String fileName;

   public ProxyImage(String fileName){
      this.fileName = fileName;
   }

   @Override
   public void display() {
      if(realImage == null){
         realImage = new RealImage(fileName);
      }
      realImage.display();
   }
}

Step 3
menggunakan Proxyimage untuk mendapatkan objek dar kelas realimage ketika dbutuhkan

ProxyPatternDemo.java
public class ProxyPatternDemo {
 
   public static void main(String[] args) {
      Image image = new ProxyImage("test_10mb.jpg");

      //image will be loaded from disk
      image.display(); 
      System.out.println("");
      
      //image will not be loaded from disk
      image.display();  
   }
}
Step 4
Output
Loading test_10mb.jpg
Displaying test_10mb.jpg

Displaying test_10mb.jpg

sumber
https://id.wikipedia.org/wiki/Pola_desain
https://nchy22.wordpress.com/2012/05/14/abstract-factor/
https://www.tutorialspoint.com/design_pattern/proxy_pattern.htm

Friday, September 30, 2016

Kulkas Pintar - CRC & Class Dagram


CRC CARD







Class diagram adalah model statis yang menggambarkan struktur dan deskripsi class serta hubungannya antara class.  Class diagram mirip ER-Diagram pada perancangan database, bedanya pada ER-diagram tdk terdapat operasi/methode tapi hanya atribut. Class  terdiri dari nama kelas, atribut dan operasi/methode.

berikut adalah class diagram dari kulkas pintar



Check Realization

Saturday, September 24, 2016

Kulkas Pintar - Use Case Diagram

Use case diagram adalah suatu model yang dangat fungsional dalam sebuah sistem yang menggunakan actor dan use case. Sedangkan pengertian dari use case sendiri adalah layanan atau fungsi-fungsi yang tersedia pada sistem untuk penggunannya.
Use case diagram menggambarkan efek fungsionalitas yang telah diharapkan oleh sistem.  Use case diagram dapat sangat membantu bila kita sedang menyusun requitment sebuah sistem, mengkomunikasikan sebuah rancangan aplikasi dengan konsumen, serta merancang test case untuk semua feature yang ada pada sistem. aturannya, sebuah use case dapat di masukan lebih dari use case lain, sehingga duplikasi fungsionalitas dapat dihindaro dengan cara menarik keluar fungsional yang common.
berikut use case diagram dari sistem kulkas pintar berbasis rfid dan web :


Use case untuk menambah produk ke dalam kulkas




Use case diagram diatas mendemontrasikan proses kerja untuk menambah produk / barang baru ke dalam kulkas, hal ini berhubungan antara user dan pekerja maintenance. Pertama tama, ketika user membawa produk mendekati ke antena pembaca pertama, maka produk tersebut dimasukan ke dalam database. Setelah itu, jika produk sudah di masukan ke dalam kulkas, antena pembaca kedua yang ada di dalam kulkas membaca dan memasukan produk tersebut ke dalam database lain. Pekerja maintenance dibutuhkan untuk memperbaiki sistem ketika database, antena, atau alat pembaca tidak berkerja.
Usecase untuk mengambil produk dari dalam kulkas
Use case diagram diatas menggambarkan proses mengambil produk dari dalam kulkas. ketika produk di ambil, database akan update dengan menghapus id produk atau merubah status : inside or outside the fridge. Layar akan terupdate terus dengan informasi baru. Pekerja maintenance bekerja menjaga dan mengatasi gangguan pada sistem.

Use case untuk mengedit produk
Use case diagram diatas menampilkan proses untuk mengedit produk. Pertama, user memilih id produk yang akan diedit pada layar, user dapat menambahkan, mengedit atau menghapus data produk. Setelah disimpan, maka akan muncul pemberitahuan pada layar

Use case untuk menambah makanan favorit
Use case diagram diatas menggambarkan proses untuk menambah makanan favorit. Pertama, user menekan tombol "add favourite button" pada layar utama, setelah itu user menambahkan informasi berisi unit, nama dan jumlah makanan ke dalam database. Data yang terupdate akan muncul pada layar.

Use case untuk menambah hidangan favorit
use case diaram diatas merupakan proses menambah hidangan favorit ke dalam sistem. Seorang pengguna memilih tombol "menambahkan hidangan favorit" untuk mengaktifkan proses penambahan hidangan favorit. Informasi dari hidangan seperti "nama", "daging", "seafood", "sayur", "rempah-rempah", dan "bahan tambahan" dapat ditambahkan melalui kotak. Jika hidangan tertentu tidak memiliki daging atau sayuran, kotak-kotak ini bisa kosong. Selain itu, pengguna dapat meng-upload gambar untuk hidangan ke dalam database. Jika pengguna tidak menyukai resep direkomendasikan, ia / dia bisa menggunakan "mencari lain resep" tombol yang membuka tab baru di browser dan menampilkan informasi tentang resep lain yang diambil dari situs-situs lain memasak dengan ribuan resep.

Use case untuk menghapus database
use case diagram diatas menunjukkan proses menghapus informasi database dalam sistem. Informasi yang berbeda dihapus tergantung pada tombol yang diaktifkan. Seorang pengguna dapat menggunakan tombol untuk menghapus informasi dari makanan favorit, hidangan favorit, dan bahan-bahan yang hilang. Selain itu, ketika pengguna menggunakan semua tombol membersihkan, ia / dia membersihkan semua informasi database. Akibatnya, sistem mulai pada tahap awal ketika menggunakan waktu berikutnya.



sumber : https://www.theseus.fi/xmlui/bitstream/handle/10024/52215/tuan-%20thesis-%20accepted%20version.pdf?sequence=1