First Think Concept to Develop a Software

Mr. I
kasta
Published in
4 min readDec 4, 2017

Selangor, Irsyad — First stop to go. Yes, this article shows you how to think and do exploration in software engineering. Untuk membangun software atau develop suatu aplikasi ada istilah System Development Life Cycle atau SDLC. Ada banyak SDLC dan sekarang yang sedang berkembang adalah agile dan scrum. Scrum adalah pengembangan dari agile. Kita gak akan bahas tentang specific SDLC kok, main processnya ada Research, Analysis, Design, Implementation dan Test. Oleh karena itu saya membuat mind map berdasarkan dasar tersebut. Dan casenya adalah system informasi absensi.

Langkah pertama adalah research atau riset. Di research kita ngapain aja? Di research kita mengumpulkan informasi risk, cost, schedule, technology dan term. Detail tiap hal tersebut akan dibahas dalam artikel yang berbeda. Kita focus ke technology aja. Untuk membuat SI Absensi environment yang saya maksud berupa arsitektur. Untuk pembuatan SI Absensi ini saya menggunakan monolith. Kenapa monolith? Karena akan banyak menggunakan API dan alasan kedua adalah client akan mengakses via web dan mobile. Untuk akses database MySQL atau PostgreSQL native mobile menggunakan API untuk parsing datanya.

Untuk language, atau Bahasa pemrograman yang akan digunakan adalah PHP. PHP dengan mengimplementasikan Laravel. Kenapa PHP? Karena biaya hosting lebih murah dan maintenance lebih mudah mengingat resource untuk programmer PHP lebih banyak dibanding Bahasa pemrograman lain seperti Java, Golang, python dan sebagainya. Bahasa pemrograman tersebut digunakan untuk membuat back-end atau API. Sedangkan front-end karena ada dua yaitu mobile dan web akan menggunakan Bahasa yang berbeda. Kalau web saya menggunakan Angular 2 atau sekarang ada pada versi 5. Sedangkan untuk mobile bisa menggunakan JS Framework atau Native masing — masing. Android menggunakan Java dan iOS menggunakan swift. Sedangkan database akan menggunakan MySQL. Penggunaan MySQL karena database ini gratis. Sebenarnya ada alternative lain untuk open source yaitu PostgreSQL. Tapi karena pada SI Absensi ini belum menggunakan database yang terlalu canggih (Administration, replication dll) jadi MySQL sudah tercover untuk semua kebutuhan tersebut.

Langkah kedua adalah Analysis. Nah proses ini salah satu yang sangat penting dalam proses Software Engineering. Karena semua scope aplikasi akan dibahas. Setiap detail dari aplikasi akan dibahas. Proses bisnis digambarkan dengan BPM atau Business Process Management. Flow dari aplikasi atau jalannya aplikasi digambarkan dengan menggunakan Flowchart. Kemudian alur data digambarkan dengan DFD atau Data Flow Diagram. Ketiga hal tersebut dapat disebut dengan Requirement Analysis. Kemudian ada system analysis. Sistem analisis adalah proses untuk menganalisis suatu system. Alur jalannya program secara detail dapat digambarkan dengan Use Case Diagram. Pada diagram ini akan dijelaskan secara rinci usernya siapa aja dan aksi dari setiap user tersebut apa aja. Penjelasan dari Use Case Diagram akan dibuatkan Use Case Scenario. Use Case Scenario ini nantinya akan dijadikan acuan untuk testing tepatnya Blackbox Testing. Kemudian dari isi codingan akan dijelaskan dalam Class Diagram. Pada diagram class akan digambarkan tentang package dan class apa aja yang ada.

Langkah ketiga adalah design. Apa yang harus dilakukan pada tahapan ini? Pada tahapan ini akan dijelaskan secara terperinci lagi isi dari aplikasi tersebut. Misalnya penggunaan sequence diagram untuk menggambarkan interaksi user dan logic yang ada pada system. Misalnya user login ada kondisi apa saja dan feedback dari system seperti apa.

Langkah keempat adalah implementation. Pada tahapan ini implementasi design ke Bahasa pemrograman. Misalnya suatu class diagram sebut saja class Login, digambarkan pada diagram terdapat dua variable yaitu username dan password, kemudian pada sequence diagram digambarkan jika username dan password sesuai dengan data yang ada pada database maka user akan berhasil login dan seterusnya.

Langkah kelima atau terakhir adalah test. Tahapan ini menguji coba codingan dan tampilan. Apakah sudah sesuai dengan logic dan alur yang ditetapkan pada tahapan analisis atau belum, Jika belum akan dilaporkan ke programmer dan programmer melakukan perbaikan.

Dari semua tahap tersebut terdapat beberapa istilah atau proses yang biasa dilakukan. Seperti SIT, UIT, UAT, dan Production. SIT adalah system integration testing, pada SIT ini programmer, dba, QA akan menguji aplikasi. Apakah sudah sesuai dengan design awal, jika belum maka akan masuk ke dokumen bugs. Pada tahapan ini record pada database masih menggunakan data dummy. Di mana belum memikirkan apakah sudah sesuai dengan bisnisnya atau belum. Kemudian ada UIT atau User Integration Testing. UIT ini sebenarnya sama dengan SIT namun menggunakan data real yang dapat diakses oleh semua orang dan tidak bersifat credential. Kemudian ada UAT atau User Acceptance Testing. UAT ini adalah tahapan di mana user sebenarnya menguji coba aplikasi. Apakah sudah sesuai dengan keingingan mereka atau belum. Jika belum maka casenya dapat dimasukan ke dokumen bugs. Selain menguji flow dan data aplikasi, UAT juga menguji tampilannya, apakah sudah user friendly atau belum, atau ada tampilan yang harusnya dikurangi atau ditambahkan. Untuk kasus tersebut, setiap detailnya akan dimasukan ke dalam dokumen enhancement. Dan terakhir adalah production, production itu ngapain aja? Production itu istilah dalam Bahasa pemrograman Javanya adalah deploy ke server live. Pada tahap production aplikasi sudah siap digunakan oleh user secara keselurahan dengan asumsi user tidak menemukan kesalahan atau error yang berarti. Adapun jika terdapat kesalahan — kesalaham user biasanya memberikan komentar melalui suatu form yang disediakan pada website atau langsung menghubungi penanggung jawab (biasanya PMO — Project Manager Officer).

Nah berikut contoh mind map untuk system informasi absensi. Gambar berikut sekedar contoh dan dapat disesuaikan dengan kebutuhan. BTW penjelasan di atas bukan best pracitenya, tapi pemikiran awal atau saya sering sebut dengan istilah Framethink. Gambaran secara garis besar aplikasi yang akan kita buat, untuk memudahkan pengembangan dengan menerapkan SDLC. Pada postingan selanjutnya akan dibahas pembuatan software berdasarkan SDLC secara terperinci.

--

--

Mr. I
kasta
Editor for

Code using various programming language commonly based on JVM (Java, Scala, Groovy) with DBMS (Oracle, PostgreSQL & MySQL)