Sunday, October 30, 2016

Component Diagram dan Deployment Diagram dar Video Game "Tetris"

Pada post saya kali, saya akan membahas tentang Component Diagram dan Deployment Diagram. Component Diagram adalah diagram yang mendeskripsikan interaksi antar component (program executables, database, file .dll, dan lainnya)  dalam sebuah sistem software. Deploymen Diagram adalah diagram yang menggambarkan interaksi antara software dan hardware ketika software dijalankan. Untuk contoh, saya akan menggunakan software dari post saya yang sebelumnya.

A. Component Diagram


B. Deployment Diagram 

Sunday, October 16, 2016

Sequence Diagram, Class Diagram, CRC Card, Use Case Diagram, dan Activity Diagram dari Video Game "Tetris"

Tetris merupakan salah satu video game yang sudah sangat dikenal baik oleh masyarakat dunia. Game yang membutuhkan taktik dan koordinasi ini sangat sederhana namun merupakan salah satu batu loncatan dalam perkembangan dunia game. Dalam post saya kali ini, saya akan membedah source code dari salah satu versi Tetris yang ada (Sumber: zetcode.com/gui/wxwidgets/thetetrisgame) untuk membuat Activity Diagram, Use Case Diagram, CRC Card, Class Diagram, dan Sequence Diagram dari source code tersebut. Hal baru yang akan kita bahas di sini adalah Sequence Diagram dan Activity Diagram. Sequence Diagram adalah diagram yang menunjukan alur berjalannya sebuah fungsi dari sebuah kelas dari awal hingga akhir serta hubungan kerjanya dengan objek-objek atau fungsi-fungsi lainnya. Sementara Activity Diagram adalah diagram yang menunjukan alur kerja suatu program secara garis besar.

Dalam kasus ini, kode yang digunakan menggunakan library wxWidget. Pembuatan diagram di bawah tidak akan melibatkan fungsi-fungsi wxWidget yang digunakan.

A. Source Code

Source code yang akan digunakan terbagi menjadi delapan bagian:
1. Pengatur rancangan bentuk:

  • Shape.h
  • Shape.cpp
2. Pengaturan game logic pada Tetris dan mekanisme lainnya: 
  • Board.h
  • Board.cpp
3. Inisiator program Tetris:
  • Tetris.h
  • Tetris.cpp
4. Kelas main program Tetris:
  • main.h
  • main.cpp

Source code dapat dilihat di website sumber (zetcode.com/gui/wxwidgets/thetetrisgame) atau di github.com/antoniuskevin/pplkelasc

Contoh hasil:


B. Sequence Diagram

Pembuatan Sequence Diagram tidak akan terlalu rumit karena sebagian besar dari isi kode di atas adalah fungsi yang tidak berhubungan dengan objek lainnya.

C. Class Diagram

Dari source code di atas, dapat dibuat class diagram-nya sebagai berikut:


D. CRC Card

Dari class diagram di atas, dapat kita buat kumpulan CRC Card yang menggambarkan kelas-kelas di atas sebagai berikut:


E. Use Case Diagram

Dari CRC Card yang ada dapat kita buat Use Case Diagram dari program Tetris ini. Di Use Case Diagram ini, akan terdapat dua aktor, yaitu Player dan Computer/CPU 


F. Activity Diagram

Untuk yang terakhir, dari data yang ada kita dapat membuat Activity Diagram yang menggambarkan alur kerja dari game Tetris sebagai berikut:
Gambar full size dapat dilihat di github.com/antoniuskevin/pplkelasc


Catatan:
- Pembuatan diagram menggunakan software "Star UML", Microsoft Excel, Paint, dan situs web draw.io

Stuktur Kerja JNE Express



Pada post saya kali ini, saya akan memaparkan secara singkat struktur kerja dari perusahaan yang sudah tidak asing lagi bagi kita, yaitu JNE Express. Bagi yang belum tahu, JNE Express adalah salah satu perusahaan jasa pengiriman paket yang cukup besar di Indonesia. Perusahaan yang memiliki kantor pusat di Tomang, Jakarta ini sudah melayani masyarakat Indonesia sejak tahun 1990. Hingga kini, jasa JNE sudah banyak sekali digunakan masyarakat dalam proses pengiriman barang. Di era perdangan online yang semakin berkembang, jasa JNE juga seringkali digunakan untuk mengirimkan barang jualan ke tangan konsumen.

A. Visi dan Misi JNE Express

Berdasarkan website resmi JNE Express ( www.jne.co.id ), visi JNE Express adalah:"Untuk menjadi perusahaan rantai pasok global terdepan di dunia." Sementara misinya adalah:"Untuk memberi pengalaman terbaik kepada pelanggan secara konsisten."

B. Struktur Organisasi JNE Express

Karena JNE merupakan perusahaan jasa pengiriman barang, maka struktur organisasinya secara garis besar dapat dibagi menjadi dua, yaitu struktur di kantor pusat dan struktur di kantor cabang.

a. Struktur Organisasi Kantor Pusat
Berdasarkan blog resmi JNE cabang Bogor ( https://infoagenjne.wordpress.com/pengetahuan-jne/struktur-organisasi ), kantor pusat JNE memiliki struktur organisasi sebagai berikut:

Bagan Struktur Organisasi Kantor Pusat JNE


  • Komisaris: terdiri dari komisaris utama dan sebuah tim komisaris beranggotakan tiga orang
  • Direksi: terdiri dari seorang direktur utama dan empat direktur lainnya yang memimpin beberapa bidang kerja, yaitu direktur keuangan, direktur pelaksanaan, direktur operasional, dan direktur sales dan marketing
  • Direktur akan membawahi beberapa senior manager. Senior manager akan membawahi beberapa manager, dan manager akan membawahi beberapa supervisor


b. Struktur Organisasi Kantor Cabang
,Berdasarkan blog resmi JNE cabang Bogor ( https://infoagenjne.wordpress.com/pengetahuan-jne/struktur-organisasi ), sebuah kantor cabang terdiri dari seorang kepala cabang yang membawahi beberapa departemen, yaitu:

Bagan Struktur Organisasi Kantor Cabang JNE


  • Departemen Keuangan: bertugas mengatur keuangan di kantor cabang
  • Departemen Operasional Inbound: bertugas mengatur proses pengiriman paket dengan alamat tujuan di daerah tempat kantor cabang tersebut berada
  • Departemen Operasional Outbound: bertugas mengatur proses pengiriman paket dengan alamat tujuan di luar daerah tempat kantor cabang tersebut berada 
  •  Departemen Customer Service: bertanggung jawab dalam pelayanan pengaduan pelanggan
  • Departemen Sales dan Marketing Retail : bertanggungjawab terhadap penjualan yang bersifat retail, termasuk didalamnya counter, kantor perwakilan, dan agen, serta melakukan sosialisasi, market, dan branding
  • Departemen Sales Coorporate :bertanggungjawab terhadap penjualan bersifat korporat dan kredit serta melakukan sosialisasi, market dan branding
  • Departemen Information Technology (IT) : bertanggungjawab terhadap kelengkapan dan pemeliharaan teknologi informasi hardware dan software
  • Departemen General Affair dan Purchasing bertanggungjawab melakukan pengadaan, kontrol dan pemeliharaan kelengkapan kantor
  • Departemen Human Resource Development /HRD: bertanggungjawab terhadap administrasi personalia dan pengembangan personalia

C. Standar Operasional Prosedur (SOP) JNE Express

JNE Express memiliki sebuah sistem SOP  pelayanan pelanggan yang dinamakan "Standar Pelaksanaan Layanan Sepenuh Hati". SOP ini terdiri dari tiga tahapan besar yang mencakup pemberian informasi kepada calon pelanggan hingga layanan purna jual/aftersales

a, Tahap 1: Ketika pelanggan bertanya dahulu dan memastikan pilihannya kepada JNE

  • Menyediakan kontak layanan informasi yang terbuka dan mudah dalam akses (nomor handphone, email, dll) 
  • Menyediakan ruang/meja khusus layanan informasi produk JNE dan umum perusahaan, buku informasi/panduan counter/tarif
  •  Memastikan pengetahuan seluruh staf tentang perusahaan dan produk sangat baik 
  • Komunikasi dalam memberikan keterangan informasi kepada pelanggan sangat meyakinkan 
  • Standar komunikasi : SMS, mengangkat telepon, email dll diseragamkan
b. Tahap 2: Ketika pelanggan mengirim atau melaksanakan transaksi
  • Memastikan tampilan bangunan yang standard dan memberikan keyakinan pada pelanggan 
  • Memastikan kemudahan akses pelanggan untuk menuju tempat transaksi (petunjuk dll) 
  • Memastikan pelanggan mudah dan aman dalam memarkir kendaraan 
  • Memastikan kenyamanan pelanggan dalam mengantri (kursi, kartu antrian, hiburan televisi/radio/music, permen, minuman, pengatur udara, bahan bacaan, dll)
  •  Melayani transaksi dengan standar pelayanan transaksi JNE (dari greeting sampai akhir) 
  • Melakukan transaksi sesuai SOP
  •  Memastikan pengembalian uang dengan cepat dan tepat, hindari uang-uang yang tidak baik/rusak 
  • Sediakan layanan lebih (bungkus kiriman, pastikan alat bungkus tersedia baik, dan petugas membantu membungkuskan jika perlu, penyediaan pembungkus (bayar/gratis), form alamat, dll)
  •  Memastikan performa petugas cash sales counter dan staf kantor yang baik dan mengesankan 
  • Memastikan layanan pickup sesuai SOP dan sesuai kebutuhan pelanggan (ketepatan waktu) 
  • Menyediakan payung JNE di counter untuk kemudian staf 
  • Counter membantu pelanggan yang kehujanan ketika akan mengirim atau setelah mengirim, untuk memberikan pengalaman pelanggan yang mengesankan
c. Tahap 3: Ketika pelanggan telah setelah selesai bertransaksi dan produk dieksekusi) 
  • Memastikan SOP penyimpanan dan serah terima dengan baik 
  • Menyimpan paket di counter dengan baik dan aman dan memberi keyakinan kepada pelanggan bahwa paket titipannya berada dalam kondisi aman
  •  Melakukan kontrol kiriman-kiriman strategis untuk memastikan kiriman dieksekusi dengan baik oleh operasional (jadi tidak putus setelah transaksi)   
d. Tahap 4: Purna Jual
  • Memberikan layanan berita kiriman bagi kiriman premium : SS, YES 
  • Memberikan layanan berita pengiriman bagi kiriman strategis (apapun service nya) 
  • Memberikan berita pengiriman secara bertahap (sebelum sampai pun) bagi kiriman-kiriman strategis atau pelanggan yang strategis, artinya harus melakukan kontrol status kiriman. Jangan sampai pelanggan komplain/bertanya duluan pada injure time / batas ETD, karena ini akan membuat tidak puas pelanggan 
  • Menyediakan layanan komplain, klaim dan informasi status kiriman dengan mudah dan cepat (telepon, email, meja informasi langsung, dll)
  •  Memastikan setiap komplain terselesaikan dan dikontrol. Tidak ada yang tertunda 
  • Mengunjungi pelanggan (urutan besar dan strategis) ke rumah/kantor untuk mendengar evaluasi atau memberikan gift 
  • Menghampiri pelanggan yang sedang mengantri, mengajak bicara, meminta evaluasi layanan, atau memberikan gift
  •  Memberikan ucapan selamat (HUT, Hari besar, dll) kepada pelanggan baik untuk pelanggannya, atau sanak keluarganya (akan menjadi merasa sangat terhormat jika kita tau tanggal lahir anak, istrinya), melalui Facebook atau data lain 
  • Memberikan ruang yang mudah untuk pelanggan menyampaikan aspirasi, saran dan kritik (memalui Kotak Saran, SMS, telepon, meja informasi, dll)  

Sumber lain yang digunakan:
http://dionbarus.com/wp-content/uploads/2014/04/SOP-JNE.pdf

Sunday, October 2, 2016

CRC Card, Class Diagram dan Tabel Class Realization untuk Menu Management System

Dalam perancangan sebuah perangkat lunak, salah satu tahap yang paling penting adalah membuat CRC Card dan Class Diagram. CRC Card berguna untuk mendeskripsikan kelas apa saja yanng akan dipakai beserta fungsionalitas yang dibutuhkan dan hubungannya dengan kelas lain. Class Diagram tidak jauh berbeda dengan CRC Card, hanya saja terdapat penjelasan-penjelasan lebih detail seperti tipe data dan enkapsulasi fungsi serta atribut dari suatu kelas.

Berdasarkan post saya yang sebelumnya (di sini), kali ini kita akan membuat CRC Card dan Class Diagram untuk Menu Management System. Pertama kita akan mendefinisikan kelas-kelas yang akan digunakan. Berdasarkan Use Case Diagram pada post sebelumnya, dapat didefinisikan beberapa kelas. yaitu: Food, Menu, Table, Order, OrderQueue, Payment, dan Language.

1. Kelas Food

Kelas Food akan berhubungan dengan beberapa kelas, yaitu Order (karena Order (pesanan) terdiri dari makanan) dan Menu (karena sebuah menu berisikan daftar makanan. Sebuah objek Food memiliki beberapa atribut, yaitu name(nama), price(harga), explanation(penjelasan makanan), picture(gambar makanan) dan availability(ketersediannya untuk konsumen). Sementara untuk fungsinya, kelas Food terdiri dari fungsi konstruktor (membuat makanan baru), fungsi modifier atribut, dan fungsi display value atribut.

2. Kelas Menu

Kelas Menu akan berhubungan dengan kelas Food dan kelas Language untuk pengaturan bahasanya.. Kelas Menu terdiri dari atribut MenuItem yang bertipe data Food yang berupa array berisikan daftar makanan yang dapat dipesan dan Language untuk . Untuk fungsinya, Menu dapat terdiri dari fungsi konstruktor, addFood, deleteFood, dan displayMenu.

3. Kelas Table

Kelas Table adalah kelas yang akan menyimpan informasi pesanan suatu meja. Maka dari itu, kelas ini hanya akan berhubungan dengan kelas Order (untuk pemesanan makanan) dan kelas Payment (untuk pembayaran pesanan). Untuk atribut, kelas Table akan terdiri dari atribut TableNumber, OrderList dan PaymentStatus. Untuk fungsi, kelas Table akan terdiri dari fungsi konstruktor, addOrder, deleteOrder, dan changePaymentStatus.

4. Kelas Order

Seperti yang sudah dijelaskan sebelumnya, kelas Order akan berhubungan dengan kelas Table, Food, OrderQueue dan Payment. Namun kelas Order akan berhubungan juga dengan kelas Payment untuk pembayaran pesanan. Kelas Order akan terdiri dari atribut FoodList, TotalPrice, dan TableNumber, dan paymentStatus. Kelas Order akan terdiri dari fungsi konstruktor, dan atribute modifier saja.

5. Kelas OrderQueue

Kelas OrderQueue akan berhubungan dengan kelas Order karena hanya berupa antrian Order yang masuk. Kelas Order akan memiliki atribut OrderList dan memiliki fungsi konstruktor serta display OrderQueue

6. Kelas Payment

Kelas Payment akan berhubungan dengan kelas Order dan Table. Kelas Payment akan memiliki atribut grandTotal untuk total harga pesanan dan tableNumber. Kelas payment akan memiliki fungsi konstruktor dan displayPayment.

7. Kelas Language

Kelas Language akan mengatur penggunaan bahasa dalam sistem. Kelas ini akan  berhubungan dengan kelas Menu karena Language di sini hanya digunakan untuk bahasa dalam sistem interface dengan konsumen. Kelas language memiliki atribut LanguageData untuk menyimpan data bahasa. Untuk fungsinya, kelas Language memiliki fungsi changeLanguage, displayText (untuk menampilkan teks dalam bahasa tertentu), addLanguage dan deleteLanguage.

Untuk tahap selanjutnya, kita dapat langsung membuat CRC card dan Class Diagram berdasarkan definisi kelas-kelas di atas.

CRC Card:


Class Diagram + Relationship:
Selanjutnya dapat dibuat tabel Class Realization. Tabel ini berfungsi untuk memastikan apakah setiap use case sudah ditangani suatu kelas atau belum. Dari use case diagram dan class diagram yang ada, dapat dibuat tabel sebagai berikut:






  

Analisis SWOT untuk Sistem Konsulatsi Desain Bangunan

Kali ini, berdasarkan post saya sebelumnya, saya akan membuat analisis SWOT untuk sistem konsultasi desain bangunan. SWOT adalah singkatan dari Strength (kekuatan), Weakness(kelemahan), Opportunity(keuntungan), Threat (ancaman). Analisis ini berguna untuk melihat kelebihan dan kekurangan dari sistem informasi yang akan kita buat. Dari rancangan yang sudah ada, dapat dibuat analisis singkatnya sebagai berikut:

Strength

- Memudahkan interaksi antara konsultan desain bangunan dan konsumen, sehingga konsumen tidak perlu bertemu secara fisik.

-Memudahkan pengelolaan data dalam jumlah banyak. Sehingga banyaknya konsumen tidak akan mengganggu aktivitas konsultan secara signifikan.

-Kelebihan database secara umum juga akan memudahkan proses kerja sehari-hari, seperti misalnya data yang selalu up to date, tidak mudah rusak, tidak memakan banyak tempat, dan keamanannya terjamin.

Weakness

- SIstem yang akan dibuat bisa jadi sangat kompleks karena banyaknya data dengan berbagai jenis yang akan digunakan atau diolah, seperti misalnya parameter-parameter desain rumah yang diinginkan.


Opportunity

-Pada masa kini, sudah banyak orang yang memiliki gadget yang tersambung dengan layanan Internet, sehingga mudah untuk diakses.

- Tingkat kesadaran akan seni masyarakat modern semakin meningkat, sehingga kebutuhan akan desain rumah yang baik ikut naik.

Threat

- Masih mungkin terdapat calon konsumen atau konsultan yang memiliki pemahaman yang rendah dalam penggunaan gadget, sehingga sulit untuk dapat menggunakan sistem ini.

- Biaya untuk pembuatan dan penggunaannya bisa jadi lebih tinggi dari pada menggunakan metode tatap muka langsung.