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 konkri


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

Sunday, October 16, 2016

Struktur kerja jakartanotebook.com


JakartaNotebook.com merupakan salah satu perusahaan Online Store Terbesar yang berdiri sejak tahun 1999 dan telah melayani pembelian secara online sejak 8 Januari 2003 hingga saat ini.

A. Visi Misi Jakartanotebook.com
Berdasarkan website resmi jakartanotebokk ( www.jakartanotebook.com ), visi Jakartanotebook adalah:"Untuk menjadi perusahaan online store terbesar di bidang penjualan barang barang it" Sementara misinya adalah:"Untuk memberi pengalaman belanja online yang murah dan nyaman bagi masyarakat indonesia baik di kota maupun pelosok."

B. Struktur Organisasi Jakartanotebook.com

C. SOP Jakartanotebook.com
  • Pembelian Offline
Pada store offline jakartanotebook.com memiliki alur pembelian sebagai berikut
  • pembeli mendaftar kan email ke tempat pendaftaran untuk menjadi user jakartanotebook.com
  • bila sudah mendaftar, user harap menunggu hingga namanya dipanggil oleh pegawai
  • user memberi tahu barang yang akan dia beli, melalui cek website jakartanotebook.com
  • user menunggu barang datang dan mencoba barang terlebih dahulu
  • user membayar ke kasir
  • Pembelan Online
Pembelian online dapat langsung dilakukan dengan mengikuti prosedur yang tersedia di halaman transaksi jakartanotebook.com
  • Pilih produk-produk yang akan dibeli untuk dimasukkan ke dalam Cart (keranjang belanja)
  • Lanjutkan proses pembelian dengan melakukan Checkout Now melalui halaman My Cart
  • Lengkapi data pengiriman dan jenis ekspedisi yang diinginkan, lalu klik lanjutkan pembayaran
  • Cetak invoice sebagai bukti bahwa Anda telah melakukan transaksi dengan kami, atau cek email anda untuk mendapatkan rekap transaksi
  • Lakukan pembayaran sesuai prosedur yang ada di halaman terakhir dari My Cart Anda

Sistem Informasi Bus

Sistem Informasi Bus

Perancangan perangkat lunak adalah disiplin manajerial dan teknis yang berkaitan dengan pembuatan dan pemeliharan produk perangkat lunak secara sistematis, termasuk pengembangan dan modifikasinya, yang dilakukan pada waktu yang tepat dan dengan mempertimbangkan faktor biaya.
Pada blog ini saya akan menjelaskan salah satu contoh perancangan perangkat lunak yaitu mengenai System Informasi Bus. Sistem Informasi Bus adalah sebuah system informasi yang memudahkan pengguna untuk melihat rute bus yang akan ditempuh, melakukan pencarian rute sesuai dengan halte keberangkatan dan juga halte tujuan yang diinginkan oleh pengguna.

a.       Use Case Diagram
Use-case Diagram adalah deskripsi dari fungsionality pada sistem. Penjelasan dari use case biasanya dibuat dalam teks sederhana sebagai pendokumentasian pada simbol use case, tetapi dapat juga digambarkan menggunakan activity diagram.
Use case digambarkan sebagai cara pandang terhadap sistem dari luar oleh actor. Use case mempertegas fungsionality requirement sistem. Use case adalah deskripsi dari sekumpulan aksi yang berurutan sebagai akibat dari interaksinya dengan actor. Actor adalah representasi dari pengguna sistem yang berinteraksi dengan use case tetapi tidak memiliki control terhadap use case tersebut dan diluar sistem.
Dibawah ini adalah use case diagram dari system informasi bus

Seperti yang dapat kita lihat pada use case diagram diatas. Pengguna dapat melakukan empat hal dalam system informasi ini. Yang pertama adalah melihat rute dan halte secara keseluruhan, pengguna juga dapat melilhat rute dan halte per koridor, pengguna juga dapat mencari rute berdasarkan halte keberangkatan dan halte tujuan, dan yang terakhir pengguna dapat mengelola data yang digunakan pada sistem yang meliputi menambah, menyunting dan menghapus data.

Activity diagram
Activity Diagram adalah diagram yang menggambarkan worlflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Yang perlu diperhatikan adalah bahwa diagram aktivitas menggambarkan aktivitas sistem bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem.
Untuk system informasi bus activity diagramnya adalah yang ada dibawah ini
1.    Untuk kasus Melihat Rute dan Halte secara Keseluruhan


Pengguna dapat melihat seluruh rute dan halteLayanan ini menyediakan dan menampilkan informasi semua koridor. Adapun untuk detail setiap koridor dijelaskan pada kasus penggunaan yang berbeda.

2.    Kasus Penggunaan Melihat Rute dan Halte Perkoridor


Pada kasus penggunaan ini, dijelaskan secara detail data halte dan rute untuk setiap koridornya.

3.    Kasus Penggunaan Mencari Rute


Pada kasus penggunaan ini, pengguna dapat mencari rute sesuai keinginan.

4.    Kasus pengelolaan data


Pada kasus penggunaan ini, dijelaskan cara pengelolaan data yang digunakan sistem.

c.       Sequence diagram
Sequence diagram adalah suatu diagram yang menggambarkan interaksi antar obyek dan mengindikasikan komunikasi diantara obyek-obyek tersebut. Diagram ini juga menunjukkan serangkaian pesan yang dipertukarkan oleh obyek-obyek yang melakukan suatu tugas atau aksi tertentu. Obyek-obyek tersebut kemudian diurutkan dari kiri ke kanan, aktor yang menginisiasi interaksi biasanya ditaruh di paling kiri dari diagram. Pada diagram ini, dimensi vertikal merepresentasikan waktu. Bagian paling atas dari diagram menjadi titik awal dan waktu berjalan ke bawah sampai dengan bagian dasar dari diagram. Garis Vertical, disebut lifeline, dilekatkan pada setiap obyek atau aktor. Kemudian, lifeline tersebut digambarkan menjadi kotak ketika obyek melakukan suatu operasi , kotak tersebut disebut activation box. Obyek dikatakan mempunyai live activation pada saat tersebut. Pesan yang dipertukarkan antar obyek digambarkan sebagai sebuah anakpanah antara activation box pengirim dan penerima. Kemudian diatasnya diberikan label pesan.

Tujuan penggunaan sequence diagram :
1. Mengkomunikasikan requirement kepada tim teknis karena diagram ini dapat lebih mudah untuk dielaborasi menjadi model design.
2. Merupakan diagram yang paling cocok untuk mengembangkan model deskripsi use-case menjadi spesifikasi design.



d.      Class diagram
Class diagram mendeskripsikan jenis-jenis object dalam system dan berbagai macam hubungan statis yang terjadi. Class diagram juga menunjukkan property dan operasi sebuah class dan batasan yang terdapat dalam hubungan dengan object . Class diagram merupakan alat terbaik dalam perancangan perangkat lunak. Class Diagram membantu pengembang mendapatkan struktur system dan menghasilkan rancangan system yang baik.
Class diagram menggambarkan struktur dan deskripsi class , package dan object beserta hubungan satu sama lain seperti containment , pewarisan , asosiasi dan lain lain Class memiliki 3 area pokok yaitu : Nama , Atribut dan method.



Component Diagram
Component diagram adalah diagram UML yang menampilkan komponen dalam system dan hubungan antara mereka. Pada component View, akan difokuskan pada organisasi fisik system. Pertama, diputuskan bagaimana kelas-kelas akan diorganisasikan menjadi kode pustaka. Kemudia akan dilihat bagaimana perbedaan antara berkas eksekusi, berkas dynamic link library (DDL), dan berkas runtime lainnya dalam system.

Tipe – tipe komponen
Komponen adalah modul fisik dari kode. Komponen dapat mencantumkan pustaka kode program dan berkas-berkas runtime sekaligus. Misalnya,
jika kita menggunakan C++, setiap berkas .cpp dan .h adalah komoponen berbeda. Berkas-berkas .exe yang anda ciptakan setelah kode program di-compile juga termasuk komponen.


Deployment Diagram


source :
https://www.academia.edu/11862734/Sistem_Informasi_Jadwal_Keberangkatan_Bus_dan_Retribusi_Terminal_Kabupaten_Pacitan

Monday, October 3, 2016

SWOT jakartanotebook.com

Streangth
jakartanotebook.com memiliki strength dalam harga yang kompetitif, variasi vendor, kemudahan transaksi, kemudahan pembayaran, informasi lengkap dan pengiriman tepat waktu.

Weakness
tampilan situs yang terlalu ramai sehingga membingungkan pemilihan produk, email costumer tidak segera dibalas, tracking barang masih lambat.

Opportunity 
tracking barang bisa bekerjasama dengan jasa kurir, kemudahan pembayaran bisa diperluas dengan bekerjasama dengan bank lain, dapat membuka store offline baru, banyak digemari karena harga yang diberikan murah dengan kualitas yang bagus

Treatment
Ancaman yang harus menjadi perhatian dari jakartanotebook.com adalah budaya masyarakat yang berbelanja secara fisik, adanya kemungkinan gangguan dari hacker dan penipuan online transaction

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

Sunday, September 25, 2016

Analisis Perancangan Sistem Informasi jakartanotebook.com



Executive Information System
Executive Information System (EIS) adalah sistem computer-based yang membantu executive dalam mengakses data dan informasi untuk mengetahui suatu permasalahan, meneliti solusi yang akan diberikan, dan menunjukkan proses strategic planning.
DataYang Dibutuhkan Dalam EIS

  1. Data terintegrasi dari berbagai database, student, finance, personnel, dibutuhkan untuk menganalisa dari berbagai sudut pandang.

  2. Kadang-kadang, executive membutuhkan data dari database on-line (ex. Kurs mata uang).

  3. Data lengkap yang berisi rangkuman data secara keseluruhan.

  4. Data eksternal (informasi umum).

  5. Record data sebelumnya.
Dalam studi kasus store jakartanotebook.com, EIS dipegang oleh pemilik perusahaan dan pemilik saham dari jakartanotebook.com
Decision Support System sistem penghasil informasi yang ditujukan pada suatu masalah tertentu yang harus dipecahkan oleh manajer dan keputusan yang harus dibuat manajer.
Manajer tsb. Berada di bagian manapun dalam organisasi pada tingkat manapun dan dalam area bisnis apapun. DSS dimaksudkan untuk mendukung kerja satu manajer secara khusus.
Dalam studi kasus store jakartanotebook.com, DSS dipegang oleh manajer pemasaran store jakartanotebook.com yang memberikan promo diskon di brang yang dijual

Management Information System
MIS mendukung spektrum tugas-tugas organisasional yang lebih luas dari TPS, termasuk analisis keputusan dan pembuat keputusan. MIS menghasilkan informasi yang digunakan untuk membuat keputusan, dan juga dapat membantu menyatukan beberapa fungsi informasi bisnis yang sudah terkomputerisasi (basis data).
Dalam studi kasus store jakartanotebook.com, MIS dipegang oleh manager toko jakartanotebook.com yang dapat mengatur stok barang pada store masing masing.

Transaction Processing System
Sistem informasi yang terkomputerisasi yang dikembangkan untuk memproses data dalam jumlah besar untuk transaksi bisnis rutin seperti daftar gaji dan inventarisasi. TPS berfungsi pada level organisasi yang memungkinkan organisasi bisa berinteraksi dengan lingkungan eksternal. Data yang dihasilkan oleh TPS dapat dilihat atau digunakanoleh manajer. Sistem ini bekerja pada level operasional. Input pada level ini adalah transaksi dan kejadian. Proses dalam sistem ini meliputi pengurutan data, melihat data, memperbaharui data. Sedangkan outputnya adalah laporan yang detail, daftar lengkap dan ringkasan.
Pada store offline jakartanotebook.com memiliki alur pembelian sebagai berikut
  • pembeli mendaftar kan email ke tempat pendaftaran untuk menjadi user jakartanotebook.com
  • bila sudah mendaftar, user harap menunggu hingga namanya dipanggil oleh pegawai
  • user memberi tahu barang yang akan dia beli, melalui cek website jakartanotebook.com
  • user menunggu barang datang dan mencoba barang terlebih dahulu
  • user membayar ke kasir
jadi pada studi kasus jakartanotebook.com, TPS dipegang oleh user, pegawai dan kasir.

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