Selasa, 13 Maret 2018

KERANGKA ACUAN KERJA OTORITAS JASA KEUANGAN (OJK)


LATAR BELAKANG

Direktorat Komunikasi (DKIN) merupakan salah satu unit kerja (uker) yang berada pada kompartemen Manajemen Strategis I di Otoritas Jasa Keuangan (OJK). DKIN yang menangani strategi komunikasi dan layanan informasi, manajemen opini publik, dan publikasi media maupun komunitas terhadap keseluruhan kegiatan di sektor jasa keuangan.
Dalam mendukung fungsi tersebut, DKIN memiliki beberapa aplikasi untuk mengelola informasi, salah satunya adalah aplikasi Website OJK yang digunakan sebagai sarana untuk keterbukaan informasi terkait Industri Jasa Keuangan. Namun, penggunaan website tersebut belum maksimal karena adanya beberapa yang perlu dikembangkan berdasarkan kebutuhan stakeholder dan pengembangan yang diusulkan oleh beberapa satuan kerja antara lain Sistem Informasi Jaring (SI Jaring), Keuangan Berkelanjutan, Waspada Investasi, APU-PPT dan FSAP.
SI Jaring merupakan kebutuhan stakeholder terhadap informasi kelautan dan perikanan termasuk pembiayaan dari Lembaga Jasa Keuangan (LJK) untuk sektor keluatan dan perikanan, yang bersumber dari OJK sebagai institusi pengawas LJK dan Kementrian Kelautan dan Perikanan (KKP).
Pengembangan modul Keuangan Berkelanjutan merupakan sarana edukasi dan meningkatkan kesadaran masyarakat umum mengenai topik Keuangan Berkelanjutan; dan sebagai sarana bagi para alumni peserta pelatihan dan workshop Keuangan Berkelanjutan untuk saling berkomunikasi.
Modul Waspada Investasi sebagai modul informasi dan edukasi cara berinvestasi yang benar; modul APU-PPT informasi dan edukasi topik pencucian uang dan kejahatan keuangan; serta modul FSAP dikembankan untuk memenuhi kebutuhan dari misi asesmen Financial Sector Asessment Program (FSAP) ke Indonesia pada tahun 2016.


MAKSUD DAN TUJUAN
Tujuan pengembangan Aplikasi Website OJK adalah membangun pusat informasi industri jasa keuangan berbasis teknologi informasi yang lengkap, sehinga informasi mengenai OJK dan industri jasa keuangan, baik ketentuan perundang-undangan, profil pelaku industri dan produk jasa keuangan, data dan statistik, informasi terkait perlindungan konsumen, layanan elektronik maupun program-program kerja OJK yang dapat diakses oleh publik dan pemangku kepentingan yang terkait dengan cepat dan mudah.


RUANG LINGKUP

Ruang lingkup Pengembangan Aplikasi Website OJK adalah sebagai berikut:

A. Hasil kerja (deliverables)

Penyedia jasa wajib untuk menyampaikan hasil kerja/deliverables dengan spesifikasi dan target waktu yang telah disepakati, yang diantaranya berupa:
1) Aplikasi dengan spesifikasi teknis sebagaimana terlampir. Aplikasi dapat beroperasi dengan baik, benar, terintegrasi dengan tingkat kinerja yang diharapkan dan diselesaikan dalam kurun waktu dan jadwal yang telah ditetapkan
2) Seluruh source code aplikasi yang dikembangkan akan menjadi hak intelektual dari OJK
3) Dokumentasi Sistem meliputi:
     a. Laporan Pendahuluan, terdiri dari:
          i. Project Management Plan, yang berisi jadwal rencana pelaksanaan proyek
          ii. Dokumen Spesifikasi Desain sesuai dengan Template T.2.2 tentang Spesifikasi Desain
     b. Laporan Akhir, terdiri dari:
          i. Dokumen Spesifikasi Program sesuai dengan Template T.3.1 tentang Spesifikasi Program
          ii. Dokumen Paket Pengujian sesuai dengan Template T.S.1 tentang Paket Pengujian yang          terdiri dari Skenario Unit Test (UT), Skenario System Integration Test (SIT) dan Skenario User Acceptance Test (UAT)
          iii. Dokumen Petunjuk Instalasi sesuai dengan Template T.5.2 tentang Petunjuk Instalasi
          iv. Dokumen Petunjuk Penggunaan Aplikasi baik untuk administrator maupun pengguna (user) sesuai dengan Template T.S.2 tentang Petunjuk Penggunaan dengan FAQ sebagai lampiran
          v. Dokumen Pengoperasian Sistem sesuai dengan Template T.S.3 tentang Petunjuk Pengoperasian
          vi. Berita Acara deployment
     c. Laporan Lain-lain berupa daftar kehadiran dan aktivitas terkait selama pengembangan aplikasi berlangsung (bila dibutuhkan) misalnya progress report, change request, risalah rapat (minutes of meeting), dll

B. Pengujian Aplikasi
Penyedia jasa wajib melakukan uji coba aplikasi sebelum digunakan oleh pengguna. Uji coba dilakukan secara berkesinambungan berupa Unit Test, System Integration Test (SIT), dan User Acceptance Test (UAT)

C. Log dan monitoring
Aktivitas pengguna dapat direkam untuk kebutuhan audit trail. Aktivitas yang direkam adalah:
1) Pencatatan aktivitas user saat login pada aplikasi antara lain berkaitan dengan aktivitas penambahan, pengurangan, perubahan, verifikasi dan approval
2) Pencatatan jumlah kunjungan pada aplikasi

D. Alih Pengetahuan (Knowledge Transfer)

Penyedia jasa wajib mengadakan alih pengetahuan teknis terhadap pegawai di OJK, terdiri dari pengguna akhir dan pengguna di satuan kerja yang mengelola sistem informasi sebagai pihak yang mengoperasikan, mengelola dan memelihara aplikasi yang telah dikembangkan. Penyedia wajib melakukan pelatihan kepada satuan kerja dimaksud terkait hal-hal teknis yang diperlukan dalam melakukan pengembangan sistem lebih lanjut.

E. Pemeliharaan Aplikasi
Penyedia jasa wajib memberikan dukungan pemeliharaan untuk mendukung OJK dalam menjalankan sistem dengan lancar dan tanpa gangguan. Apabila ditemukan bugs atau ketidaksesuaian aplikasi dengan kebutuhan atau permasalahan kinerja dari solusi yang dibangun selama masa pemeliharaan aplikasi, maka akan diselesaikan oleh penyedia jasa aplikasi.

F. Metodologi dan Pendekatan Pembangunan aplikasi wajib memenuhi:

1) Penomoran versi sistem dan dokumentasi perubahan sistem pada tiap versi pengembangannya
2) Penyimpanan aplikasi selama pembangunan pada repository yang bisa diakses kapan saja oleh pihak OJK
3) Pengaturan sistem aplikasi yang dirancang secara parameterized (non hard code)


JADWAL DAN TEMPAT PELAKSANAAN


Jadwal Pelaksanaan pekerjaan sebagai berikut:
1. Jangka waktu pelaksanaan pekerjaan ditetapkan selama 3,5 (tiga koma lima) bulan
2. Pemeliharaan aplikasi ditetapkan selama 1 (satu) tahun terhitung sejak penandatanganan Berita Acara Serah Terima Pekerjaan
Jadwal secara lebih detil wajib disusun oleh penyedia jasa dan disetujui oleh OJK. Penyedia jasa juga wajib melaporkan secara lisan maupun tertulis atas perkembangan pekerjaan pembangunan yang dilaksanakan terkait dengan jadwal yang telah ditetapkan.
Apabila dibutuhkan, OJK dapat meminta pelaksanaan pengembangan aplikasi dilaksanakan di kantor OJK.


ANGGARAN PEKERJAAN

Anggaran pelaksanaan pekerjaan ini dibebankan pada anggaran OJK tahun 2016.


PELAKSANA PEKERJAAN
Penyedia jasa yang ditunjuk harus memenuhi persyaratan sebagai berikut:
A. Persyaratan Perusahaan:
1) Memiliki SIUP di bidang jasa konsultansi bidang Sistem Informasi
2) Memiliki tenaga ahli di bidang teknologi informasi
B. Tenaga Ahli dan Pembantu Tenaga Ahli
Tenaga Ahli yang ditugaskan dalam pekerjaan ini harus memenuhi persyaratan umum
dan administratif berikut ini:
1) Memiliki NPWP dan bukti penyelesaian kewajiban pajak
2) Lulusan perguruan tinggi negeri/swasta yang terakreditasi, atau perguruan tinggi
luar negeri yang mendapat pengakuan dari instansi pemerintah yang berwenang
3) Memiliki dokumen/sertifikat/bukti pendukung yang secara formal dapat
menunjukkan kualifikasi teknis tenaga ahli ataupun pengalaman yang dimilikinya
Kualifikasi dan persyaratan teknis yang lebih spesifik bagi Tenaga Ahli yang ditugaskan
untuk melaksanakan lingkup pekerjaan adalah sebagaimana terlampir.



SPESIFIKASI TEKNIS

A. Infrastruktur Teknologi Informasi
Infrastruktur Teknologi Informasi memenuhi kriteria sebagai berikut:
a. Mempunyai ketersediaan yang tinggi (high availability)
b. Mempunyai kinerja yang tinggi (high performance)
c. Mendukung akses multi-user (minimal dapat diakses 100 concurrent user) tanpa
timbul gangguan
d. Memiliki tingkat keamanan yang tinggi

B. Sistem Aplikasi
Sistem Aplikasi dibangun dengan spesifikasi sebagai berikut:
a. Mendukung browser utama yang digunakan oleh Otoritas Jasa Keuangan yaitu
Internet Explorer versi 8 ke atas, Mozilla Firefox serta Google Chrome
b. Sistem operasi server aplikasi dan server database menggunakan Windows Server
2012 R2
c. Database menggunakan SQL Server 2012 yang dimiliki OJK
d. Platform pemrograman yang digunakan adalah sharepoint 2013


SPESIFIKASI TENAGA AHLI 
No
Spesifikasi Pekerjaan
Jumlah Personil (Min)
Persyaratan (Min Pengalaman)
1
Project Manager
1
1.    Memiliki pengalaman sebagai Project Manager dalam pembangunan/pengembangan aplikasi minimal 5 (lima) tahun
2.    Memiliki sertifikasi dalam bidang Project Management, diutamakan
3.    Memiliki latar belakang pendidikan formal minimal S1, wajib ada
2
Sistem/Bisnis Analis
2
1.    Memiliki pengalaman sebagai sistem dan bisnis analis dalam pengembangan aplikasi minimal 4 (empat) tahun
2.    Memiliki pengalaman dalam pengembangan aplikasi berbasis .Net dan Sharepoint 2013
3.    Memiliki pengalaman dalam pengembangan aplikasi berbasis SQL Server/Oracle
4.    Memiliki latar belakang pendidikan formal minimal S1, waijb ada
3
Database Programmer
2
1.    Memiliki pengalaman sebagai database programmer SQL Server, minimal 3 (tiga) tahun.
2.    Memiliki sertifikasi SQL Server, diutamakan
3.    Memiliki latar belakang pendidikan formal minimal S1, wajib ada
4
Web Programmer
6
1.    Memiliki pengalaman sebagai programmer pembangunan/pengembangan aplikasi berbasis Sharepoint 2013, minimal 3 (tiga) tahun.
2.    Memiliki sertifikasi .Net, diutamakan
3.    Memiliki latar belakang pendidikan formal minimal S1, wajib ada
5
Quality Assurance (QA)
2
1.        Memiliki pengalaman sebagai QA dalam pemeriksaan aplikasi dan/atau ujicoba.
2.        Memiliki latar belakang pendidikan formal minimal S1, wajib ada
6
Technical Writer
1
1.        Memiliki pengalaman sebagai penulis dokumentasi teknis ataupun non teknis
2.        Memiliki latar belakang pendidikan formal minimal D3/S0, wajib ada

Pelaporan
Laporan kegiatan merupakan bagian penting untuk menyampaikan hasil yang sudah dilakukan
Laporan secara lisat saat rapat koordinasi bersama Project Manager
Laporan keseluruhan system dan dokumentasi aplikasi


Selasa, 13 Februari 2018

Menentukan harga pembuatan software dalam proyek TI

Begini, akhir-akhir ini saya sering ditanya mahasiswa : “mas, bagaimana cara menentukan harga desain saya? saya ragu mau pasang harga”
Kalau menghendaki harga yang pantas dan ideal, itu subjektif, silahkan tentukan berdasarkan usaha yang akan dikeluarkan dan alokasi waktunya. Dan pasang harganya. Yang penting berani dan sudah mengukur sendiri harga yang pantas. Jangan sampai, kamu pasang harga 3 juta rupiah, namun, ternyata uang yang dikeluarkan untuk usaha begadang, internet dan ngemil serta ngopi sambil bekerja itu ngepas 3jt, atau mepet 3juta, alhasil tekor dan gak ada untungnya.
Namun, beberapa programmer/desainer software junior, masih bingung, harga jasa saya berapa?
Mari kita perhatikan 5 hal yang mempengaruhi harga jasa kamu di dunia software engineering sebagai berikut :
  1. Scope pekerjaan.
    Scope adalah segala hal yang ada di dalam produk software/produk dari project TI dan segala proses di dalamnya.
    Mendefinisikan apa yang diminta, apa yang mesti dikerjakan, dibagi step-stepnya (rencana->rancangan) sampe menjadi rangkaian berurut apa saja yang dikerjakan. Dengan demikian, dapat diestimasi jadwal dan waktu pengerjaannya.
    Contoh, ketika saya dari tidur pengen berangkat ke sekolah :
    1. Saya bangun tidur (15 menit), kemudian
    2. saya mandi (15 menit), kemudian
    3. saya sarapan (30 menit), kemudian
    4. saya berangkat ke sekolah (20 menit).
  2. Proses pengerjaan,
    Sulit kah? mudah kah? simple kah? kompleks kah?
    Terus bagaimana proses yang mesti saya ikuti? banyak kah? tentu mesti memperhatikan, jika ternyata proses untuk mengerjakan codingannya ataupun desainnya, bisa memakan waktu berjam-jam.
    Mulai dari :
    1. memahami klien kemudian menganalisis kehendak si klien;
    2. brainstorming, berguna untuk mendefinisikan semua kebutuhan biar bisa dikerjakan menjadi karya kita;
    3. inisialisasi, mulai dari kamu corat-coret desain/coba-coba code init/awal sampe jadi prototyping;
    4. prototyping, membuat karyamu sampe dengan prototype;
    5. development/design, mulai deh ngembangin sampe memroses semua kebutuhan menjadi produk
    6. revisi, mesti ketemu bagian ini, kadang ada saja bagian yang tidak sesuai kehendak klien, nah ini mesti diperhitungkan;
    7. final version, ketika sudah direvisi, dipoles, dibungkus, terus diserahin deh ke klien.
    panjang kan prosesnya? ðŸ˜€ Makanya perlu diperhatiin betul, jangan sampe harga yang kamu pasang gak sesuai.
    Nah, ada beberapa hal itu bisa dikerjakan bebarengan, serentak (jika kamu ngerjainnya berdua atau lebih sama teman), tentu ada beberapa proses bisa dihemat waktunya. Coba lihat ilustrasi berikut :
    Critical Chain Project Schedule
    Critical Chain Project Schedule
    Kalo dilihat dari gambar di atas, tentu kita bisa memperkirakan, task apa saja yang bisa dikerjakan dalam 1 waktu bersamaan, dan mana yang tidak bisa. Jika tidak bisa, terus taruh di mana prosesnya..apa dikerjakan duluan, apa dikerjakan belakangan? tentu kalau ingin mengerjakan sesuatu, kerjakan dari yang paling mendasar.
  3. Standar harga per jam kerja (hourly rate)
    Kalo bagian ini, gak bisa sembarangan ditentuin. Kamu mesti sadari gaji/rate bayaran kamu berapa yang pernah kamu terima? terus itu dikerjakan berapa lama?
    Misal :
    Kamu pernah kerja 2 minggu (10 hari kerja, minus sabtu-minggu) dibayar Rp 3.000.000
    Sehari kerja dari jam 09:00 – 12:00, dilanjut ishoma, terus jam 13:00 – 16:00, berarti kalo ditotal : 6 jam kerja.
    Dan jika kita konversi menjadi perjam, rumusnya: Harga / total jam kerja / total hari
    Rp. 3.000.000 / 6 / 10 = Rp 50.000
    Berarti kamu dibayar Rp50.000,- per jam. Rate ini selalu naik seiring pengalaman, tentunya bila dinamika perubahannya naik, dalam artian, kamu sudah mengalami pengalaman yang banyak, yang dulunya sulit, jadi gampang, skill bertambah, dan beberapa project kamu jadi terbiasa garap (pengalaman). Semakin tinggi pengalaman, rate tentu semakin tinggi juga.
    Apalagi dibarengi skill yang makin tinggi pula (semakin banyak pengalaman, mestinya semakin beragam pula soft skill yang dikuasai). Bila kamu sudah 10 kali project dalam 2 tahun dengan hourly rate Rp 50.000,-… pas tahun ke-3, ya naikin lagi hourly rate jadi Rp 75.000,- atau Rp 100.000,-.Apalagi dalam 2 tahun itu kamu sudah belajar banyak, ditambah sekolah lagi, bisa berkali-kali lipat.Dan lagi-lagi, perhatiin juga standar gaji di dunia saat ini. (coba googling : salary guide [tahun], contoh : salary guide 2014, saya gak akan jelasin ini, cari di google dan baca sendiri sesuai posisi kamu di pekerjaan, bila orang kerja dibayar per bulan (20 hari kerja) sekian rupiah, tentu bisa dihitung per jamnya). Tentunya jika kamu di tahun kedua pernah mendapatkan proyek membuat sistem informasi perkantoran dengan harga Rp 60.000.000,-, kemudian di tahun ke empat jangan pasang 60jt lagi, tapi dinaikin. Berapa besar kenaikannya? kalau masih kesulitan menentukan, kembali ke pembahasan kita di atas yang baru kita bahas dan perhatikan di salary guideuntuk profesi kita di tahun ke-4 besar gaji/rate-nya berapa.
    Berikut ini contoh hourly rate di beberapa negara
    Screen Shot 2017-03-31 at 2.21.26 PM
    Mahal ya? iya, di sana dihargai lebih. Kalo rate di atas diterapkan di indonesia, tentu gak pas ðŸ˜€ makanya tadi saya sampaikan cek salary guide untuk Indonesia. Contohnya di sini: Salary Guide 2016. Cek profesimu sebagai developer apa. terus cek berapa tahun pengalaman kerjanya. Jika sudah dapat, ya tinggal konversi ke per jam.
  4. Investasi
    Seluruh hal yang berhubungan dengan proses yang dikerjakan di atas, dan biaya yang keluar karena hal tersebut. Seperti yang saya jelaskan di atas.
    1. Saya bangun tidur (15 menit) -> gratis
    2. saya mandi (15 menit) -> sabun : Rp 2000, sampoo Rp 1000, pasta gigi+sikat giginya : Rp 8000
    3. saya sarapan (30 menit) -> sarapan ketoprak : Rp 6000, jalan kaki ke TKP
    4. saya berangkat ke sekolah (20 menit) -> berangkat naik motor, bensin Rp 6500
    Terus, kalo ditotalin : makan waktu 1 jam 20 menit (1,33 jam), dan biaya : Rp 82.000 (2000+1000+….+6500)
    Rumusnya : hourly rate x total proses kerja
    Jadi, ketika hourly rate kamu Rp 50000, berarti :
    Rp 50000 x 1,33 jam + Rp 82.000 = Rp 148666,66 (mari kita bulatkan ke atas :p Rp 149000)
    Ya nilai dari project ini : Rp 149.000,-
    Contoh di atas mungkin sedikit membingungkan, pada intinya saja ya. Jadi kalau kamu dapat proyek dalam waktu 1 bulan, ya dikonversi saja dalam satuan hari. 1 bulan = 20 hari kerja, 1 hari = 8 jam kerja. 20*8=160 jam.
    Misal hourly rate kamu adalah Rp 250.000,- dengan pengalaman sudah 3 tahun. Ya untuk proyek dengan waktu 1 bulan…tinggal dikalikan saja: Rp 250.000*160 jam= Rp 40.000.000
    Nilai 40 juta ini bukanlah nilai mutlak, jadi ada nilai resiko juga di dalam proyek, nah ini kita bahas di poin nomor 5 di bawah.
  5. Resiko
    Segala hal tentu ada resiko, nah jangan sampe resiko ini terjadi dan menimpa kamu. Resiko mungkin bisa dihindari, tapi jika terjadi, pikirkan dampaknya dan apa antisipasinya.
    Resiko besar yang biasanya terjadi itu : project diberhentikan di tengah jalan (bahaya dong, ntar ketabrak), requirements berubah (nah ini dia yang biasanya bikin jengkel, udah bikin capek-capek, gak dipake, mesti diganti)
    Resiko kecil : perubahan minor aplikasi/software, jadi menyita waktu juga walaupun perubahannya dikit-dikit.
    Resiko juga mesti diklasifikasikan berdasarkan :
    1. kesempatan terjadi
    2. potensi yang diakibatkan (parah apa nggak?)
    3. kesulitan mendeteksi resiko supaya bisa dihindari
    Contoh : bugs di aplikasi
    Kesempatan terjadi : menengah lah, gak sedikit juga, gak banyak juga kesempatannya.
    Potensi yang diakibatkan : tinggi, kadang 1 bugs, bisa bikin aplikasi gagal jalan sebagaimana mestinya
    Kesulitan mendeteksi : tinggi, kadang bugs itu sulit banget dicari >.<
    contoh lain : server kebanjiran
    Kesempatan terjadi : kecil, ini sih kesempatan langka banget sampe-sampe server kebanjiran, kecuali kamu taruh servernya di pinggir kali ciliwung.
    Potensi yang diakibatkan : tinggi, server tenggelam, nangislah kliennya. Kamu juga mesti ikutan nangis!
    Kesulitan mendeteksi : kecil, lah wong hujan deres, knapa gak disingkirin tuh server ke tempat yang tinggi.
    Nah, resiko-resiko seperti ini yang mesti diperhitungkan. Terutama ya bayaran kamu. Misal kalo kejadian macem-macem, bayaran kamu telat, bagaimana?. Atau kamunya yang telat ngumpul kerjaan bagaimana?
    Dari sisi developer, pas di kontrak kerja, jangan lupa cantumkan aturan-aturan untuk klien (biasanya klien bikin aturan-aturan juga di poin proposal proyek (misal: apabila kamu telat mengumpulkan progress, atau progress tidak sesuai apa yang diharapkan klien, biasanya klien punya hak mengurangi harga proyek), nah, di sini kamu juga perlu membuat aturan-aturan atau klausa yang memperjelas batasan kamu selaku developer, misal: masalah konfigurasi server ataupun backend bukan tanggungjawab kamu yang seorang developer mobile app, masalah akun PlayStore tanggungjawab klien dan harus menggunakan data dari klien, atau apabila ada permintaan tambahan di luar scope pekerjaan yang telah disepakati, maka klien harus di-charge bayaran baru. Itu harus ada klause kerjasama tambahan yang menyatakan poin-poin apa saja tambahannya dan berapa besar biayanya. Nah yang model ini, developer sering luput, lalai, klien menghendaki revisi ini itu, tambahan ini-itu, tapi nilai proyeksi investasinya tetap. Jatuhnya kita yang rugi. ðŸ™‚
    Berikut ini ada gambar ilustrasi bagaimana harga sebuah proyek apabila dideliver ke klien lebih awal, tepat waktu atau terlambat. Dan berapa harga yang diharapkan. Dari sini bisa kamu kenali kalau untuk deliver sebuah progress pekerjaan ada resiko pinalty dari klien. Dan itu seharusnya kamu sudah antisipasi.
    Decision Trees
    Decision Trees
Sekian dulu yang dapat saya sampaikan, kurang lebih mohon maaf dan mohon dikoreksi ðŸ™‚
Terima kasih.

Software Process

Kali ini saya akan menulis tentang Software Process untuk tugas MPPL (Manajemen Proyek Perangkat Lunak). Oke langsung saja kita mulai!

Berikut ini merupakan beberapa pengertian software process yang saya kutip dari beberapa buku:

Pengertian Software Process
1. Menurut Reidar Conradi pada bukunya yang berjudul Software Process Technology: 7th European Workshop, Software Process adalah Proses perangkat lunak yang direpresentasikan sebagai sebuah proses program dan dapat mengeksekusi secara otomatis.

2. Menurut Ian Sommerville pada bukunya yang berjudul Software Engineering (9th Edition), Software Process adalah Pendekatan sistematis yang digunakan dalam rekayasa perangkat lunak serta merupakan sebuah aktifitas terurut yang menuju kepada produksi dari pembuatan produk rekayasa perangkat lunak.

3. Sedangkan menurut M Deploy pada tulisannya yang berjudul Software Engineering Process, Software process adalah serangkaian langkah-langkah yang terurut untuk membuat sebuah produk rekayasa perangkat lunak. Software process adalah suatu hirarki yang tiap langkah dapat memiliki sub-sub langkah dalam proses rekayasa perangkat lunak.

Terdapat 4 aktifitas umum yang mendasar pada semua proses rekayasa perangkat lunak, yaitu:

  • Software specification, yaitu pengguna dan perekayasa menentukan perangkat lunak yang akan dibuat dan dibatasi pada proyek tersebut.
  • Software development, dimana perangkat lunak tersebut dirancang dan diprogram.
  • Software validation, dimana perangkat lunak di cek apakah sudah memenuhi apa yang dibutuhkan oleh pengguna
  • Software evolution, dimana perangkat lunak diubah,diperbaiki untuk mengatasi perubahan pengguna dan mengikuti perkembangan jaman.

Dalam software process terdapat beberapa model, yaitu:

  • Waterfall, Model ini adalah model yang pertama kali muncul pada tahun 1970an diperkenalkan oleh Winston W. Royce. Model ini memisahkan fase spesifikasi dengan fase pengembangan.

    Ada 5 proses penting dalam model Waterfall:
    1. Requirement analysis and definition (analis kebutuhan)
    2. System and software design (perancangan sistem dan software)
    3. Implementation and unit testing (implementasi dan testing)
    4. Integration and system testing (integrasi dan pengujian sistem)
    5. Operation and maintenance (operasi dan perawatan)
  • RAD (Rapid Application Development), Rapid Application Development (RAD) adalah sebuah strategi pengembangan sistem yang menekankan kecepatan dalam pengembangan melalui keterlibatan pengguna dalam pembangunan secara cepat, iteratif, dan incremental dari suatu serangkaian prototype dari suatu sistem yang dapat berkembang menjadi suatu sistem akhir atau versi tertentu.
  • Prototyping Model, Pada model ini, user berperan aktif dalam pembuatan software. model ini digunakan apabila developer kesulitan dalam pengumpulan kebutuhan dan user juga tidak dapat menggambarkan software yang diinginkannya, atau dimana user sering menambah dan mengubah apa yang diinginkannya. 

Referensi
[1] Reidar ConradiSoftware Process Technology: 7th European Workshop
[2] Ian SommervilleSoftware Engineering (9th Edition)
[3] M DeploySoftware Engineering Process

Rabu, 28 Desember 2016

OOP dalam mesin ATM -1

Secara umum fungsi ATM adalah agar dapat melakukan penarikan uang tunai, namun selain itu masih banyak fungsi ATM yang dapat mempermudah kepentingan kita sebagai nasabah dalam melakukan aktivitas perbankan, seperti:
  • Informasi Saldo
  • Pembayaran Umum: tagihan telepon, kartu kredit, listrik, air, handphone, dan uang kuliah
  • Pembelian: tiket penerbangan, isi ulang pulsa
  • Pemindah bukuan (open transfer)
  • Pengubahan PIN, dll
Untuk contoh study kasus pemrograman berbasis obyek kali ini kita akan menggunakan ATM sebagai temanya.

Berikut adalah Source Codenya:
1. Class Screen



2. Class Keypad

3. Class Cash Dispenser


4. Class DepositSlot


5. Class Deposit


6. Class Withdrawal


7.Class Balance



8. Class Transaction



9. Class Account



10.Class Bank Database



11. Class ATM


12. Class ATM Case Study


Relasi Antar Classnya:


Hasil setelah di run:

1. Balance

2.Withdraw

3. Deposit




Selasa, 27 Desember 2016

FP PBO Kelas D (Vending Machine)

Nama Kelompok:
1. Galuh Aan Ramadhan (5115100026)
2. Muhammad Nurfaizal (5115100096)

PBO Kelas D

Final Projek Pemrograman Berorientasi Objek :

  1. Buatlah program ATM sesuai dengan yang telah dibahas.
  2. Modifikasi dan Reuse dari program yang ada untuk membuat program vending machine mesin pengeluar minuman yang menggunakan smartcard e-money Bank Mandiri.
  3. Dokumentasikan ke dalam blog kemudian update link ke blog saya.

Berikut adalah Source Codenya:

1. Class Screen



2.Class Account



3. Class Dispenser


4. Class Keypad



5. Class Pembelian



6. Class Transaction



7. Class Saldo

8. Class Vending Machine


9. Class EmoneyDatabase

10. Class Vending Machine Case Study



Relasi antarClassnya:

Hasil setelah di run: