Jumat, 24 November 2017

SOFTWARE DEVELOPMENT


1. AGILE SOFTWARE DEVELOPMENT METHODOLOGY

Tahukah Kamu ?
Salah satu kunci utama kesuksesan sebuah startup teknologi adalah kualitas produk atau solusi yang dikembangkan. Kualitas produk perangkat lunak dapat tercipta melalui proses pengembangan perangkat lunak yang benar, yaitu dengan mengikuti kaidah rekayasa perangkat lunak yang ada. Apalagi bila kita bekerja dalam tim, maka sangat penting sekali untuk menentukan metodologi dan proses pengembangan perangkat lunak. Metodologi pengembangan perangkat lunak sendiri adalah sebuah metodologi yang digunakan untuk membuat struktur, rencana, dan kontrol pengerjaan suatu proyek, contoh : waterfall, fountain, spiral, rapid, prototyping, incremental, dan agile.

Agile methods merupakan salah satu dari beberapa metode yang digunakan dalam pengembangan sooftware. Agile method adalah jenis pegembangan sistem jangka pendek yang memerlukan adaptasi cepat dan pengembang terhadap perubahan dalam bentuk apapun.

Metodologi dalam perangkat lunak digunakan untuk merancang atau membangun suatu perangkat lunak,dengan perkembangan teknologi yang sangat pesat metodologi perangkat lunak juga terjadi perubahan atau penambahan requirements. Dari model waterfall sampai dengan model-model incremental. Semua metodologi yang berkembang sebelumnya tidak mampu menangani kemungkinan perubahan atau penambahan requirements. Metode pengembangan perangkat lunak telah dilacak kembali pada tahun 1957. Pada tahun tersebut EA Edmonds telah memperkenalkan proses pengembangan perangkat lunak adaptif. “Lightwight” merupakan metode pengembangan perangkat lunak yang berkembang pada tahun 1990, sebagai reaksi terhadap apa yang disebut metode “heavyweight”. Yang ditandai dengan kritik mereka terhadap metode waterfall

Pada tahun 90-an diperkenalkan dengan metodologi baru yang dikenal dengan nama agile methods,kata Agile berarti bersifat cepat, ringan, bebas bergerak, waspada. Metodologi yang dikenal sebagai agile methods ini mengutamakan fleksibilitas terhadap perubahan-perubahan yang terjadi selama pengembangan. Bahkan perubahan ataupun penambahan pada saat fase terakhir pun teratasi apabila menggunakan metodologi ini.

Agile Methods dikembangkan karena pada metodologi tradisional terdapat banyak hal yang membuat proses pengembangan tidak dapat berhasil dengan baik sesuai tuntutan user. Konsep Agile Software Development dicetuskan oleh Kent Beck dan 16 rekannya dengan menyatakan bahwa Agile Software Development adalah cara membangun software dengan melakukannya dan membantu orang lain membangunnya sekaligus. 

Berikut adalah diagramnya:


2. RAPID APPLICATION DEVELOPMENT

Dalam model RAD (Rapid Application Development), modul fungsional dikembangkan secara paralel sebagai prototip dan terintegrasi untuk membuat produk yang lengkap untuk pengiriman produk yang lebih cepat. Dikarenakan tidak ada rincian planning yang detail, maka memudahkan untuk melakukan perubahan pada saat development berjalan.

RAD Model Design

1.Business Modeling (Bisnis Model)
Fase ini untuk perancangan dasar dari pengembangan produk berdasarkan informasi dan distribusi informasi antar saluran bisnis. Analisis bisnis yang lengkap dilakukan untuk menemukan informasi penting untuk bisnis, bagaimana hal itu dapat diperoleh, bagaimana dan kapan informasi diproses dan faktor apa yang mendorong arus informasi yang berhasil.

2.Data Modeling (Data Model)
Fase ini untuk menganalisa informasi yang sudah dikumpulan dari fase Business Modeling. semua kumpulan data diidentifikasi dan didefinisikan  secara rinci untuk mencari model bisnis yang tepat.

3.Process Modeling (Proses Pemodelan)
Fase ini untuk untuk menetapkan arus informasi bisnis yang diperlukan untuk mencapai tujuan bisnis yang spesifik sesuai model bisnis. perubahan atau penyempurnaan pada kumpulan objek, data didefinisikan dalam fase ini. Deskripsi proses untuk menambahkan, menghapus, mengambil atau memodifikasi objek data diberikan.

4.Application Generation (Generasi Aplikasi)
Fase ini untuk Sistem yang sebenarnya dibangun dan pengkodean dilakukan dengan menggunakan automatic tools i untuk mengubah model proses dan data menjadi prototype yang aktual.

5.Testing and Turnover
fase ini untuk pengujian keseluruhan sistem yang dibangun semua komponen perlu diuji secara menyeluruh dengan cakupan uji yang lengkap. Dengan pengujian yang lengkap dapat mengurangi risiko cacat sistem.

  • Model RAD mengadopsi model waterfall dan pembangunan dalam waktu singkat yang dicapai dengan menerapkan :

1. Component based construction ( pemrograman berbasis komponen bukan prosedural).
2.   Penekanan pada penggunaan ulang (reuse) komponen perangkat lunak yang telah ada.
3.   Pembangkitan kode program otomatis/semi otomatis.
4.  Multiple team (banyak tim), tiap tim menyelesaikan satu tugas yang selevel tetapi tidak sama. Banyaknya tim tergantung dari area dan kompleksitasnya sistem yang dibangun.

Jika keutuhan yang diinginkan pada tahap analisis kebutuhan telah lengkap dan jelas, maka waktu yang dibutuhkan untuk menyelesaikan secara lengkap perangkat lunak yang dibuat adalah berkisar 60 sampai 90 hari. Model RAD hampir sama dengan model waterfall, bedanya siklus pengembangan yang ditempuh model ini sangat pendek dengan penerapan teknik yang cepat.

Sistem dibagi-bagi menjadi beberapa modul dan dikerjakan beberapa tim dalam waktu yang hampir bersamaan dalam waktu yang sudah ditentukan. Model ini melibatkan banyak tim, dan setiap tim mengerjakan tugas yang selevel, namun berbeda. Sesuai dengan pembagian modul sistem.

  • Beberapa hal (kelebihan dan kekurangan) yang perlu diperhatikan dalam implementasi pengembangan menggunakan model RAD :

1.   Model RAD memerlukan sumber daya yang cukup besar, terutama untuk proyek dengan skala besar.
2.   Model ini cocok untuk proyek dengan skala besar.
3. Model RAD memerlukan komitmen yang kuat antara pengembang dan pemesssan, bahkan keduanya bisa tergabung dalam 1 tim
4. kinerja dari perangkat lunak yang dihasilkan dapat menjadi masalah manakala kebutuhan kebutuhan diawal proses tidak dapat dimodulkan, sehingga pendekatan dengan model ini kurang bagus.
5.  sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini.
6. penghalusan dan penggabungan dari beberapa tim di akhir proses sangat diperlukan dan ini memerlukan kerja keras.
7.   proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
8.   risiko teknis yang tinggi juga kurang cocok untuk model ini.

3. DYNAMIC SYSTEM DEVELOPMENT MODEL METHODOLOGY

Dynamic System Development Method (DSDM) adalah suatu kerangka dalam pengembangan suatu project, terutama digunakan untuk metode pengembangan perangkat lunak. 

DSDM merupakan iteratif dan incremental pendekatan yang mencakup prinsip-prinsip pembangunan Agile, termasuk keterlibatan pengguna atau pelanggan secara terus-menerus, intinya DSDM suatu metode yang mendekati Incremental dan Agile Alliance.

Beberapa karakteristik DSDM yaitu sebagai berikut :

Menyajikan kerangka kerja (Framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototyping yang incremental dalam lingkungan yang terkondisikan.
Membangun software dengan cepat yaitu 80% dari proyek diserahkan dalam 20% dari waktu total untuk menyerahkan proyek secara utuh.

Aktifitas Feasibility Study yaitu dengan requirement, lalu uji apakah sesuai gunakan proses DSDM
Aktifitas Business Study yaitu susunam kebutuhan fungsional dan informasi, menentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi

Aktifitas Functional model iteration yaitu menghasilkan incremental prototype yang perlihatkan fungsi software ke client untuk dapatkan kebutuhan lebih jelas dan konfirmasi.

Aktifitas Design and Build Iteration yaitu melakukan cek ulang prototype yang di bangun untuk memastikan bahwa prototype yang di bangun dengan cara tersebut memungkinkan semua fungsi benar-benar bekerja

Aktifitas Implementation yaitu menempatkan software pada lingkungan sebenarnya sekalipun belum lengkap atau masih ada perubahan.

DSDM dapat dikombinasikan dengan XP yang menghasilkan kombinasi model proses mengikuti metode DSDM dan praktek yang sejalan dengan XP.

4. EXTREME PROGRAMING METHODOLOGY

Kita pasti sudah mengenal istilah Programmer, yaitu orang yang membuat suatu program aplikasi / software. Dalam pembuatan Software itu sendiri bisa dilakukan secara kelompok atau sendirian tergantung tingkat kesulitannya. Dalam pembuatan softaware biasanya terbagi menjadi beberapa kelompok yang mengerjakan hal yang berbeda. Ada yang membuat program, ada yang melakukan uji coba dan ada juga yang melakukan implementasi. Lalu apa hubungannya dengan “Extreme Programming” ?

Extreme Programming (berikutnya akan disingkat sebagai XP) adalah sebuah pendekatan atau model pengembangan perangkat lunak yang mencoba menyederhanakan berbagai tahapan dalam proses pengembangan tersebut sehingga menjadi lebih adaptif dan fleksibel. XP bukan hanya berfokus pada coding tetapi meliputi seluruh area pengembangan perangkat lunak. XP mengambil pendekatan ‘ekstrim’ dalam iterative development.

XP Pertama kali diusulkan oleh Kent Beck dan Ward Cunningham pada bulan Maret 1996, asal mula XP digunakan karena pada saat itu permintaan dari customer yang sering berubah dengan cepat sehingga mengakibatkan putaran kehidupan metode pengembangan perangkat lunak tradisional menjadi lebih pendek dan tidak selaras dengan metode tradisional karena pada umumnya memerlukan desain yang luas dan itu mengakibatkan perubahan desain yang terjadi dan tentu saja memerlukan biaya yang lebih tinggi. Tujuan XP adalah meminimalisir biaya yang diperlukan jika ada perubahan dalam pengembangan perangkat lunak.


5. SCRUM DEVELOPMENT METHODOLOGY

Scrum merupakan framework untuk manajemen pengembangan software dengan karakteristik cekatan dan bersifat iteratif dan incremental. Scrum mendefinisikan dirinya fleksible, strategi pengembangan yang menyeluruh di mana seluruh team bekerja sebagai satu unit dalam mencapai sebuah gol yang sama.

Dalam menjalankan kerjasama antara anggota team, scrum menekankan lokasi fisik yang sama atau sarana online yang akrab antara semua member, dan juga pertemuan muka dengan muka setiap hari antara semua anggota team.

Prinsip kunci dari scrum adalah memahami bahwa dalam project yang tengah berlangsung, klien mungkin mengubah apa yang menjadi kebutuhan dan keinginannya. Perubahan sulit diadaptasi oleh framework pengembangan aplikasi yang bersifat tradisional.  Scrum menerima perubahan ini dan memaksimalkan seluruh anggota team untuk menyesuaikan perubahan mendadak ini.
Scrum mengadopsi permainan Rugby yang begitu mudah menyesuaikan diri semua anggota team setelah ada sedikit pelanggaran. Kemudian menyesuaikan diri inilah yang mengimpirasi scrum.

Scrum mempunyai 3 Role

Product Owner
Pengertian produk adalah tujuan dari proyek. Product Owner memastikan bahwa proyek berjalan sesuai yang diharapkan. Product Owner merupakan penjembatan antara client dengan team development. Product Owner akan menuliskan spesifikasi-spesifikasi sesuai cara pandang client, di lain pihak harus punya empati terhadap anggota team.

Team Member
Dilihat dari namanya jelas yaitu anggota-anggota team.

Scrum Master
Scrum Master akan mencegah hal-hal yang mengalihkan focus team. Scrum master akan membuat suasana kondusif supaya team dapat bekerja sama dalam mencapai goal.

Event penting dalam Scrum adalah sprint/iteration. Sprint merupakan unit dasar dalam development dengan Scrum. Sprint merupakan jangka waktu yang dibatasi pada suatu durasi 1 minggu, 2 minggu atau 1 bulan. Setiap sprint dimulai dengan planning meeting dan diakhiri dengan sprint review dan retrospective meeting.

Kamis, 09 November 2017

Kelebihan & Kekurangan MAC OS, ANDROID dan LINUX

MAC OS
Pengertian :

Mac OS singkatan dari Macintosh Operating System adalah "serial system operasi berbasis grafik yang dikembangkan oleh Apple Inc". Untuk system komputer Machintosh mereka dan tidak kompatibel dengan PC berbasis IBM. Diperkenalkan pada tahun 1984 dan namanya diganti denan Mac OS pada tahun 1996 pada versi 7.6. Mac OS sejak tahun 2006 telah memiliki kompatibilitas dengan arsitektur PowerPC maupun x86. System operasi ini terkenal karena memiliki konsep grafik yang elegan.Mac OS X adalah versi terbaru dari sistem operasi Mac OS untuk komputer Macintosh. Karakter “X” adalah nomor Romawi yang berarti sepuluh, di mana versi ini adalah penerus dari sistem operasi yang digunakan sebelumnya seperti Mac OS 8 Mac OS 9. Sistem operasi ini memiliki beberapa kelebihan dan kelemahan. Kelebihan-kelebihan dan kekurangan-kekurangan yang dimiliki sistem operasi ini antara lain adalah :

Kelebihan :

  1. “Time Machine”, aplikasi yang berfungsi untuk membackup system dan perubahan data secara otomatis
  2. “Sherlock”, aplikasi yang bisa mencari data harddisk, jaringan LAN dan Internet secara keyword
  3. Sangat sulit terserang virus, malware, maupun spyware
  4. Tampilan lebih glossy dan elegan, cocok untuk desain/multimedia
  5. Shutdown yang sangat cepat. waktu untuk shutdown hanya dibutuhkan 3 – 4 detik.
  6. Bisa mengenal file format windows

Kekurangan :

  1. Mahal, pasti menjadi satu dengan produk dari Apple sendiri dan pasti harganya sangat mahal.
  2. Tidak cocok untuk aplikasi games dan server
  3. Lebih cocok untuk desain grafis
  4. Mac OS tidak dapat digunakan bersama-sama sistem-sistem pengoperasian lain yang tidak menggunakan sistem Mac OS.
  5. Mac OS tidak bisa dirakit sendiri karena Apple sudah tidak memberi license buat perusahaan lain untuk membuat hardware yang bisa menggunakan Mac OS.
  6. Software di Mac OS tidak begitu lengkap.



ANDROID
Pengertian :

Android merupakan sistem operasi yang memang khusus dirancang untuk smartphone dan tablet. Sistem Android ini memiliki basis Linux yang mana dijadikan sebagai pondasi dasar dari sistem operasi Android. Linux sendiri merupakan sistem operasi yang memang khusus dirancang untuk komputer.

Kelebihan :

  1. Penggunaan yang didesain mudah pada fitur-fitur aplikasi, serta tidak sulit untuk dipahami.
  2. Android dapat juga dikatakan sistem operasi berbasis Linux yang open source. Dengan begitu akan memberikan peluang besar untuk para developer membuat dan mengembangkan aplikasi-aplikasi yang bagus dan canggih.
  3. Pengguna dapat dengan bebas untuk memilih aplikasi yang mana saja yang ingin digunakan.
  4. Tersedia banyak sekali aplikasi yang dapat digunakan secara gratis dengan berbagai fungsinya, itu secara resmi tersedia di Google Play Store.
  5. Sistem operasi Android bersifat multitasking, yang berguna untuk menjalankan berbagai aplikasi secara mudah, serta dapat menelusuri apps Android yang diinginkan.
  6. Aplikasi untuk sistem Android juga dikembangkan secara up to date, sehingga setiap waktu akan muncul berbagai program dengan teknologi baru yang luar biasa fitur-fiturnya.
  7. Kamu bisa menginstal ROM yang dimodifikasi, akan tetapi pada sistem operasi Android sendiri memiliki cukup banyak jenis custom ROM. Tenang saja hal tersebut dijamin tidak membahayakan perangkat smartphone.
  8. OS Android memiliki keunggulan dibandingkan dengan sistem operasi lainnya seperti salah satunya iOS yang dipunyai milik Apple, dimana iOS hanya dapat digunakan oleh produk dari Apple sendiri. Adapun Android dapat digunakan berbagai merek smartphone seperti Samsung, Sony Ericsson, Motorola, dan HTC.
  9. Widget yang ada di homescreen bisa diakses dengan berbagai setting, cepat dan juga mudah

Kekurangan :

  1. Sistem operasi Android tampaknya menuntut pengguna untuk harus memiliki koneksi internet dalam keadaan aktif. Seperti minimalnya perlu koneksi internet GPRS, hal ini agar perangkat siap untuk online sesuai dengan kebutuhan pengguna.
  2. Memang terdapat banyak Aplikasi Android yang dapat digunakan secara gratis, akan tetapi seringkali  pada aplikasi yang digunakan akan memunculkan iklan yang cukup mengganggu.
  3. Baterai pada smartphone dengan sistem Android akan sangat boros dibandingkan OS lainnya, hal tersebut disebabkan dengan banyaknya proses yang berjalan secara background yang membuat energi baterai menjadi cepat habis.


LINUX
Pengertian :

Linux adalah software sistem operasi open source yang gratis untuk disebarluaskan di bawah lisensi GNU. Linux merupakan turunan dari unix dan dapat bekerja pada berbagai macam perangkat keras koputer mulai dari inter x86 sampai dengan RISC.
Dengan lisensi GNU (Gnu Not Unix) Anda dapat memperoleh program, lengkap dengan kode sumbernya (source code). Tidak hanya itu, Anda diberikan hak untuk mengkopi sebanyak Anda mau, atau bahkan mengubah kode sumbernya.Dan itu semua legal dibawah lisensi. Meskipun gratis, lisensi GNU memperbolehkan pihak yang ingin menarik biaya untuk penggandaan maupun pengiriman program.

Kelebihan :

  1. Linux Bersifat open source, terbuka dan bebas sehingga untuk mendapatkannya tidak memerlukan biaya (LISENSI FREE)  dan semuanya boleh di utak atik.
  2. Sekarang Linux sudah mudah di operasikan. Bahkan sekarang orang awam pun sudah banyak yang menggunakannya beda dengan dulu pengguna linux identik dengan para hacker.
  3. Lebih unggul dalam hal keamanan karena linux merupakan sistem operasi yang multiuser sehingga jika virus menyerang user tertentu, maka akan sangat sulit untuk menyebar ke user lainnya.
  4. Hampir semua aplikasi yang biasa dijalankan di windows, sudah ada aplikasi linuxnya yang dikembangkan oleh komunitas linux atau bisa juga menggunakan software emulator.
  5. linux memerlukan resource yang lebih kecil jika dibandingkan dengan Windows sehingga cocok untuk PC yang mempunyai spesifikasi minimum
  6. Linux mempu berjalan di dua mode.
  7. Linus lebih stabil sehingga jarang crash atau nge-hang yang mengharuskan kita untuk merestart komputer.
  8. Ada bermacam-macam pilihan pada linux seperti Ubuntu, Fedora, Debian, Centos, RedHat, Opensuse, Mandriva, dan sebagainya.
  9. Mempunyai komunitas di berbagai penjuru dunia.

Kekurangan :

  1. User banyak yang belum terbiasa menggunakan linux karena mereka lebih terbiasa menggunaka windows.
  2. Dukungan hardware dari vendor-vendor tertentu yang tidak terlalu baik pada linux. Jika ingin melihat daftar-daftar hardware yang mendukung linux silahkan dilihat di www.linux-drivers.org atau www.linuxhardware.org/.
  3. Instalasi linux tidak semudah Instalasi windows.
  4. Program/ Aplikasi di linux belum seampuh aplikasi windows.
  5. Bagi administrator sistem perlu belajar dahulu karena belum terbiasa dengan Unix-like,.
  6. Struktur direktori serta hak akses yang membingungkan bagi user yang terbiasa menggunakan windows.

About