Senin, 15 September 2014

Pekerjaan Dalam WEB dan Agile Development Model

Pekerjaan Dalam WEB


Beberapa Pekerjaan dalam dunia WEB :

1. Web Architect
2. Web Designer
3. Web Programmer
4. Web Developer
5. Web Administrator
6. Web Analis

Web Architect

Arsitektur Website adalah suatu pendekatan terhadap desain dan perencanaan situs yang, seperti arsitektur itu sendiri, melibatkan teknis, kriteria estetis dan fungsional. Seperti dalam arsitektur tradisional, fokusnya adalah benar pada pengguna dan kebutuhan pengguna. Hal ini memerlukan perhatian khusus pada konten web, rencana bisnis, kegunaan, desain interaksi, informasi dan desain arsitektur web. Untuk optimasi mesin pencari yang efektif perlu memiliki apresiasi tentang bagaimana sebuah situs Web terkait dengan World Wide Web.

Sejak web perencanaan isi, desain dan manajemen datang dalam lingkup metode desain, Vitruvian tradisional tujuan komoditas, keteguhan dan kesenangan dapat memandu arsitektur situs, seperti yang mereka lakukan arsitektur fisik dan disiplin desain lainnya. Website arsitektur akan datang dalam ruang lingkup estetika dan teori kritis dan kecenderungan ini dapat mempercepat dengan munculnya web semantik dan web 2.0. Kedua ide menekankan aspek struktur informasi. Strukturalisme adalah sebuah pendekatan untuk pengetahuan yang telah dipengaruhi sejumlah disiplin akademis termasuk estetika, teori kritis dan postmodernisme. Web 2.0, karena melibatkan user-generated content, mengarahkan perhatian arsitek website untuk aspek-aspek struktur informasi.

Suatu pendekatan terhadap desain dan perencanaan situs yang, seperti arsitektur itu sendiri, melibatkan teknis, kriteria estetika dan fungsional. Seperti dalam arsitektur tradisional, fokusnya adalah benar pada pengguna dan kebutuhan pengguna. Hal ini memerlukan perhatian khusus pada konten web, rencana bisnis, kegunaan, desain interaksi, informasi dan desain arsitektur web. Untuk optimasi mesin pencari yang efektif perlu memiliki apresiasi tentang bagaimana sebuah situs Web terkait dengan World Wide Web

Web Designer

Web designer, kata “Web” disini memberikan deskripsi spesifik bahwa pekerjaan si desainer adalah fokus terhadap tampilan dan layout web, pemahaman tentang HTML, CSS & Javascript ringan diperlukan dalam bidang pekerjaan ini. Pada kenyataannya di Indonesia banyak web designer yg job desc-nya hanya sebagai graphic desainer (tidak mengkonversi desain ke web format), ini pun kadang tidak di keluhkan si web desainer karena mungkin saja gaji yang tidak selevel dengan web desainer sebenarnya, so it’s web designer with a graphic designer salary.

Web Programmer

Pekerjaan yang satu ini fokus pada pekerjaan backend dan pemrograman yang berhubungan dengan bahasa web PHP, ASP, Ruby atau phyton, pengetahuan yang baik tentang database seperti mysql dan cara kerja server diperlukan dalam job description web programmer, tidak lupa juga mereka tentunya mengerti HTML & CSS. Tapi hal yang terpenting dalam pekerjaan web programmer adalah fokus pada konsep pemrograman, keamanan dan struktur web.

Web Developer

Tugas-tugas dari web developer adalah menganalisis kebutuhan sistem, merancang web (desain dan programmnya), mengonlienkannya (domain dan hosting), mempromosikan, hingga mengurusnya (maintenance). Berbeda dengan web master. Untuk web master lebih banyak ke keahlian. Mulai dari membuat desain, membuat program, dan hal-hal lain yang berhubungan dengan teknis. Untuk menjadi seorang web developer dibutuhkan keahlian mengenai pemrograman web, database, domain dan hosting hingga jaringan. Jadi cakupannya lebih luas dibandingkan menjadi seorang web master.

Web Administrator

Pekerjaan ini bertugas untuk memelihara situs web khususnya pada server. Web administrator harus memahami secara mendalam tentang sistem operasi yang digunakan server, proses penginstalan, memahami jaringan LAN, WAN, keamanan data server, dan yang penting dia juga harus dapat mengatasi masalah Troubleshooting.

Web Analis

Web analytics adalah pengukuran, pengumpulan, analisis dan pelaporan data internet untuk tujuan pemahaman dan mengoptimalkan penggunaan web.

Web analytics bukan hanya sebuah alat untuk mengukur lalu lintas situs Web, namun dapat digunakan sebagai alat untuk penelitian bisnis dan riset pasar. Analisis Web aplikasi dapat juga membantu perusahaan mengukur hasil kampanye iklan cetak tradisional. Ini membantu orang untuk memperkirakan bagaimana lalu lintas ke situs web berubah setelah peluncuran kampanye iklan baru. Web analytics menyediakan data tentang jumlah pengunjung, tampilan halaman dll untuk mengukur popularitas situs yang akan membantu untuk melakukan riset pasar.

Ada dua kategori analisis Web; off-site dan on-site web analytics.

Off-site web analisis mengacu pada pengukuran dan analisis web tidak peduli apakah Anda sendiri atau mempertahankan sebuah website. Ini mencakup pengukuran potensi sebuah situs web penonton (kesempatan), berbagi suara (visibilitas), dan buzz (komentar) yang terjadi di Internet secara keseluruhan.

On-site web analytics mengukur perjalanan sekali pengunjung di website Anda. Ini termasuk yang driver dan konversi, misalnya halaman arahan yang mendorong orang untuk melakukan pembelian. On-site analisis Web mengukur kinerja situs dalam konteks komersial. Data ini biasanya dibandingkan terhadap indikator kinerja kunci kinerja, dan digunakan untuk meningkatkan situs web atau kampanye pemasaran respons penonton.

Secara historis, analisis Web telah disebut di-pengukuran pengunjung situs. Namun dalam beberapa tahun terakhir ini telah kabur, terutama karena vendor yang memproduksi alat-alat yang span kedua kategori.

On-site web analytics teknologi

Banyak vendor yang berbeda memberikan on-site perangkat lunak analisis Web dan layanan. Ada dua pendekatan teknologi utama untuk mengumpulkan data. Metode pertama, analisis logfile, membaca logfiles di mana server web catatan semua transaksi. Metode kedua, tag halaman, menggunakan JavaScript pada setiap halaman untuk memberitahukan pihak ketiga server jika suatu halaman yang diberikan oleh browser web. Keduanya mengumpulkan data yang dapat diolah untuk menghasilkan laporan lalu lintas Web.

Selain itu sumber data lain juga dapat ditambahkan untuk menambah data. Misalnya e-mail tingkat respons, data kampanye surat langsung, penjualan dan memimpin informasi, kinerja pengguna data seperti panas klik pemetaan, atau metrik kustom lainnya yang diperlukan.
Web server logfile analisis

Web server mencatat beberapa transaksi mereka dalam sebuah logfile. Itu segera menyadari bahwa logfiles ini dapat dibaca oleh program untuk menyediakan data tentang popularitas website. Dengan demikian muncul perangkat lunak analisis web log.

Pada awal 1990-an, statistik situs web terdiri terutama dari menghitung jumlah permintaan klien (atau hits) dibuat ke web server. Ini adalah metode yang masuk akal pada awalnya, karena setiap situs web biasanya terdiri dari satu file HTML. Namun, dengan pengenalan gambar dalam HTML, dan situs web yang membentang beberapa file HTML, menghitung ini menjadi kurang bermanfaat. Komersial yang pertama Log Analyzer dirilis oleh IPRO pada tahun 1994.

Dua unit pengukuran diperkenalkan pada pertengahan tahun 1990-an untuk mengukur secara lebih akurat jumlah aktivitas manusia pada web server. Ini adalah tampilan halaman dan dilihat (atau sesi). Sebuah tampilan halaman didefinisikan sebagai permintaan yang dibuat ke web server untuk sebuah halaman, sebagai lawan dari grafis, sedangkan kunjungan didefinisikan sebagai urutan permintaan dari klien yang diidentifikasi secara unik kedaluwarsa setelah jumlah tertentu tidak aktif, biasanya 30 menit . Halaman pandangan dan kunjungan umumnya masih ditampilkan metrik, namun sekarang dianggap lebih canggih pengukuran.

Munculnya search engine spider dan robot pada akhir tahun 1990-an, bersama dengan web proxy dan alamat IP yang ditetapkan secara dinamis untuk perusahaan besar dan ISP, membuatnya lebih sulit untuk mengidentifikasi manusia unik pengunjung ke sebuah website. Log analyzer menanggapi dengan melacak kunjungan oleh cookie, dan dengan mengabaikan permintaan dari laba-laba dikenal.

Ekstensif menggunakan web cache juga disajikan masalah bagi analisis logfile. Jika seseorang mengunjungi kembali halaman, permintaan kedua biasanya akan diambil dari cache browser, jadi tak ada permintaan akan diterima oleh server web. Ini berarti bahwa orang jalan melalui situs tersebut hilang. Caching bisa dikalahkan dengan mengkonfigurasi server web, tetapi hal ini dapat mengakibatkan kinerja yang rusak pengunjung ke situs web.

AGILE DEVELOPMENT MODEL



Pengertian

Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada.Sehingga saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang.

Pendahuluan

Saat bekerja dalam tim untuk mengerjakan suatu proyek sangatlah penting menentukan Metodologi pengembangan perangkat lunak dan Proses pengembangan perangkat lunakyang akan digunakan. Metodologi pengembangan perangkat lunak sendiri adalah sebuah metodologi yang digunakan untuk membuat struktur, rencana, dan kontrol pengerjaan suatu proyek, sedangkan Proses pengembangan perangkat lunak adalah model-model dan metodologi yang digunakan untuk mengembangkan suatu perangkat lunak. Ada beberapa model Metodologi pengembangan perangkat lunak diantaranya : waterfall, fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize.Terdapat enam langkah yang digunakan dalam Metodologi pengembangan perangkat lunak, yaitu :
  • Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan dari perangkat lunak yang akan dibuat.
  • Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.
  • Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.
  • Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.
  • Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem. Setelah sistem memenuhi syarat maka perangkat lunak siap dideployment.
  • Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100% bebas dari bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara berkala.

Agile Manifesto

Martin Fowler, salah satu pencetus ide agile development method
Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliance’s Manifesto, diantaranya :
  1. Interaksi dan personel lebih penting dari pada proses dan alat.
  2. Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
  3. Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak.
  4. Respon terhadap perubahan lebih penting daripada mengikuti rencana.
Pengertian dari Agile Alliance's Manifesto dijelaskan di bawah ini:
  • Interaksi dan personel lebih penting dari pada proses dan alat, di dalam agile interaksi antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
  • Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap, saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap.
  • Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, salah satu ciri dari agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien.
  • Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile development methods berfokus terhadap kecepatan respon tim ketika klien menginginkan perubahan saat proses pembuatan perangkat lunak.

Agar suatu tim berhasil dalam menerapkan agile development methods, maka tim tersebut harus mengikuti dua belas prinsip yang ditetapkan oleh Agile Alliance, yaitu :

  1. Prioritas utama proses agile adalah memuaskan klien dengan menghasilkan perangkat lunak yang bernilai dengan cepat dan rutin.
  2. Menyambut perubahan kebutuhan, walaupun terlambat dalam pengembangan perangkat lunak. Proses Agile memanfaatkan perubahan untuk keuntungan kompetitif klien.
  3. Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka waktu beberapa minggu sampai beberapa bulan, dengan preferensi kepada jangka waktu yang lebih pendek.
  4. Rekan bisnis dan pengembang perangkat lunak harus bekerja sama tiap hari sepanjang proyek.
  5. Kembangkan proyek di sekitar individual yang termotivasi. Berikan mereka lingkungan dan dukungan yang mereka butuhkan, dan percayai mereka untuk menyelesaikan pekerjaan dengan baik.
  6. Metode yang paling efisien dan efektif untuk menyampaikan informasi dari dan dalam tim pengembang perangkat lunak adalah dengan komunikasi secara langsung.
  7. Perangkat lunak yang bekerja adalah ukuran utama kemajuan.
  8. Proses agile menggalakkan pengembangan berkelanjutan. Sponsor-sponsor, pengembang-pengembang, dan pengguna-pengguna dapat mempertahankan kecepatan tetap secara berkelanjutan.
  9. Perhatian yang berkesinambungan terhadap keunggulan teknis dan rancangan yang baik meningkatkan Agility.
  10. Kesederhanaan (memaksimalkan sumber daya yang tersedia) adalah hal yang amat penting.
  11. Arsitektur, kebutuhan, dan rancangan perangkat lunak terbaik muncul dari tim yang yang dapat mengorganisir diri sendiri.
  12. Secara berkala, tim pengembang berefleksi tentang bagaimana untuk menjadi lebih efektif, kemudian menyesuaikan dan menyelaraskan kebiasaan bekerja mereka.

Dua belas prinsip tersebut menjadi suatu dasar bagi tim agar sukses menerapkan agile development methods. Dengan prinsip-prinsip tersebut agile berusaha untuk menyiasati tiga masalah yang biasanya dihadapi saat proses pembuatan perangkat lunak, yaitu:

  • Kebutuhan perangkat lunak sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring berjalannya proyek.
  • Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan.
  • Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

Tujuan Agile

Secara garis besar tujuan dirumuskannya agile development methods,yaitu :
  1. High-value & working App system, diharapkan dengan memakai agile development methods dapat dihasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan perangkat lunak bisa berjalan dengan baik.
  2. Iterative, incremental, evolutionary, agile adalah metode pengembangan perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner. Tim harus bekerja dalam waktu yang singkat(biasanya 1-3 minggu) dan juga selalu menambah fungsionalitas dari perangkat lunak sesuai dengan kebutuhan klien. Agile dapat dianalogikan ketika seseorang ingin pergi ke suatu kota dan dia tidak tahu jalannya. Lalu bagaimana dia bisa sampai tujuan? Dengan sering bertanya kepada orang yang dia temui dijalan hingga dia sampai di tempat tujuan.
  3. Cost control & value-driven development, salah satu tujuan dari agile yaitu pengembangan perangkat lunak disesuaikan dengan kebutuhan pengguna, tim bisa dengan cepat merespon kebutuhan yang diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat lunak bisa dikontrol.
  4. High-quality production, walaupun biaya pembuatan perangkat lunak bisa ditekan dan proses pembuatan bisa dipercepat , tetapi kualitas dari perangkat lunak yang dibuat harus tetap dijaga. Dengan melakukan tes setiap fungsionalitas perangkat lunak setelah selesei dibuat berarti agile juga mengakomodir kebutuhan ini.
  5. Flexible & risk management, jika kita menggunakan metode pembuatan yang biasanya dipakai, jika ingin mengubah fungsionalitas dari wireframe yang telah dibuat di butuhkan proses yang rumit. Mulai dari pertemuan dengan sistem analis untuk mengubah sistem perangkat lunak, perubahan rencana rilis produk hingga perubahan biaya produksi. Pertemuan dengan klien untuk melakukan tes perangkat lunak juga sering dilakukan sehingga fungsionalitas perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunakpun bisa diminimalisir.
  6. Collaboration, dengan menggunakan agile, tim pengembang diharuskan sering bertemu untuk membahas perkembangan proyek dan feedback dari klien yang nantinya akan ditambahkan dalam perangkat lunak, sehingga tim bisa berkolaborasi dengan maksimal.
  7. Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan agile dan SDM lainnya. Dengan agile, developer dapat memanajemen dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan developer perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.

Bagaimana Agile bekerja

Topik selanjutnya yaitu tentang cara kerja agile development methods. Disini akan dijelaskan bagaimana agile development methods (model scrum) digunakan dalam manajemen proyek.

Komposisi tim

Secara umum komposisi dari sebuah tim pengembang perangkat lunak yaitu :
  • Owner / Klien, bersama dengan developer sebagai bagian terpenting dalam proyek, tugas dari klien menentukan fungsi dari perangkat lunak yang akan di buat, melakukan testing dan memberikan feedback.
  • Manajer / Scrum Master, bertugas mengkolaborasikan developer dengan klien, membuat dan mengevaluasi target pengerjaan perangkat lunak.
  • Sistem Analis, membuat arsitektur sistem dari perangkat lunak yang akan dibuat.
  • Developer, merupakan titik vital dalam tim, tanpa developer perangkat lunak tidak akan bisa dibuat.

Story

Story adalah daftar kebutuhan atau fitur yang nanti akan dibuat. Story berisi apa yang klien kehendaki, dan ditulis dalam bahasa yang dimengerti klien. Dengan kata lain dapat disimpulan Story adalah bagian terpenting dari Scrum. Story terdiri dari kolom-kolom berikut ini:
  • ID – Identifikasi unik, biasanya berupa nomor urut. Hal ini untuk menghindari kehilangan jejak story kalau kita mengganti namanya.
  • Nama – Nama story bersifat deskriptif, padat, singkat, dan jelas (2-10 kata), sehingga tim dan klien memahami kira-kira story yang dibicarakan.
  • Kepentingan – Derajat kepentingan yang diberikan oleh klien terhadap story. Pemberian derajat kepentingan biasanya menggunakan deret fibonacci (1,1,2,3,5,dst). Semakin tinggi nilainya maka semakin tinggi pula prioritas pengerjaannya.
  • Perkiraan awal – Perkiraan awal tim tentang berapa banyak kerja yang diperlukan untuk mengimplementasikan sebuah story.
  • Demo – deskripsi umum bagaimana cara story ini didemokan pada waktu sprint demo (lakukan ini, klik itu, lalu ini akan muncul,dll).

Sprint

Sprint (Rapat perencanaan pembuatan perangkat lunak dilakukan 2-8 minggu sekali), yang perlu diperhatikan saat melaksanakan sprint antara lain :
  • Tujuan sprint.
  • Daftar anggota tim harus lengkap.
  • Sprint backlog (daftar story yang akan diikutkan dalam sprint).
  • Tanggal demo yang pasti.
  • Tempat dan waktu yang jelas untuk pelaksanaan sprint berikutnya.
Tim akan melakukan sprint secara simultan sampai perangkat lunak selesei dikerjakan, sebagai contoh:

Sprint 1, tim membuat fungsi login,logout dan demo perangkat lunak akan dilakukan 3 minggu kemudian. Setelah dilakukan demo untuk mengevaluasi kerja yang dilakukan tim pada Sprint 1, maka Sprint 1 dianggap selesei. Bahan evaluasi dari Sprint 1 akan dibawa ke Sprint 2 begitu seterusnya sampai aplikasi selesei dikerjakan.

Kelebihan dan Kekurangan

Kelebihan

Beberapa kelebihan dari agile diantaranya :
  • 82% Menambah produktivitas tim.
  • 77% Menambah kualitas perangkat lunak.
  • 78% Menambah kepuasan klien.
  • 37% Menghemat biaya.

Kekurangan

Sedangkan kekurangan dari agile antara lain :
  • Agile tidak akan berjalan dengan baik jika komitmen tim kurang.
  • Tidak cocok dalam skala tim yang besar (>20 orang).
  • Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.

Source :

http://eka-yunita-ekayunita.blogspot.com/2013/04/web-developer.html

Minggu, 24 Agustus 2014

Pengembangan Software dengan berbagai Model + Studi Kasus

METODE PENGEMBANGAN PERANGKAT LUNAK


Pengertian

Dalam rekayasa perangkat lunak, metodologi pengembangan perangkat lunak adalah sebuah divisi dari pekerjaan pengemban perangkat lunak (software developer) menjadi fase atau kegiatan yang berbeda, dengan maksud perencanaan dan manajemen yang lebih baik saat pembuatan software. Hal ini sering dianggap sebagai bagian dari Systems Development Live Cycle. Metodologinya mungkin termasuk dari pencarian data spesifik lalu memberikannya kepada sebuah tim yang nantinya akan membuat, mengembangkan, dan atau melakukan maintenance (perawatan) pada Aplikasi.

Sejarah

Metodologi pengembangan kerangka perangkat lunak (juga dikenal sebagai Software Development Methodology)muncul pada tahun 1960-an. Menurut Elliott (2004) System Development Life Cycle (SDLC) dapat dianggap sebagai kerangka metodologi formal tertua untuk membangun sistem informasi. Ide utama dari SDLC adalah untuk mendorong pengembang Software mengenai sistem informasi dalam cara yang sangat disengaja, terstruktur dan metodis, yang mengharuskan setiap tahap dari Life Cycle dari ide awal sampai sistem final. Sasaran utama dari metodologi ini pada tahun 1960 adalah untuk mengembangkan sistem bisnis fungsional skala besar di zaman konglomerat.

Model dari Metodologi

Ada beberapa Model dalam metodologi pengembangan perangkat lunak, yaitu :
  1. Waterfall Development Model
  2. Spiral Development Model
  3. Increment Development Model
  4. Evolutionary Development Model

Model Waterfall

Model Waterfall merupakan salah satu model untuk perencanaan dari sebuah Perangkat Lunak. Model Waterfall adalah salah satu model klasik yang bersifat sistematis. Mengapa disebut sistematis ? Karena model ini dikerjakan secara berurutan. Penggunaan model ini dalam penerapan di kehidupan sehari-hari sangatlah memakan waktu dan sangat sedikit dipakai membuat software. Namun model ini cocok untuk bisnis kecil.

Contoh Model Waterfall

Kelebihan Model Waterfall :
  1. Merupakan model pengembangan paling handal dan paling lama digunakan.
  2. Cocok untuk sistem software yang bersifat generik.
  3. Pengerjaan projek sistem akan terjadwal dengan baik dan mudah dikontrol.
Kekurangan Model Waterfall :
  1. Persyaratan sistem harus digambarkan dengan jelas.
  2. Rincian proses harus benar-benar jelas dan tidak boleh berubah ubah
  3. Sulit untuk mengadaptasi jika terjadi perubahan spesifikasi pada suatu tahapan pengembangan
Contoh Studi Kasus :

Perkembangan ilmu pengetahuan dan teknologi saat ini, telah mempengaruhi aktivitas perpustakaan dalam pengolahan informasi. Perpustakaan dapat diibaratkan sebagai satu kesatuan. Dalam artian, sebuah perpustakaan merupakan satu kesatuan sistem yang saling mempengaruhi satu sama lain untuk mencapai tujuan tertentu. Tetapi dengan pertumbuhan sebuah perpustakaan, ada kalanya suatu sistem pada sebuah perpustakaan menjadi tidak efektif dan efisien dalam menangani permasalahan yang muncul. Seperti misalnya, kebutuhan pengolahan data yang semakin meningkat, aturan pengolahan data yang semakin bervariasi, aturan dari dalam atau luar perpustakaan, dapat digunakan sebagai indikator adanya permasalahan. Untuk mengatasi permasalahan tersebut, diperlukan suatu sistem yang dapat mendukung operasi yang bersifat manajerial dan kegiatan strategi dari suatu perpustakaan demi tercapainya tujuan, sebuah sistem yang dinamakan sistem informasi.

Model Spiral

Model spiral (spiral model) adalah model pengembangan software dimana proses digambarkan sebagai spiral. Setiap loop akan mewakili satu fase dari proses pembuatan/perancangan software. Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya, seperti gambar berikut
Contoh Model Spiral.

Kelebihan Model Spiral :
  1. Setiap tahap pengerjaan dibuat prototyping sehingga kekurangan dan apa yang diharapkan oleh client dapat diperjelas dan juga dapat menjadi acuan untuk client dalam mencari kekurangan kebutuhan.
  2. Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar.
  3. Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer. 
  4. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.
  5. Menggunakan prototipe sebagai mekanisme pengurangan resiko dan pada setiap keadaan di dalam evolusi produk.
  6. Tetap mengikuti langkah-langkah dalam siklus kehidupan klasik dan memasukkannya ke dalam kerangka kerja iteratif.
  7. Membutuhkan pertimbangan langsung terhadap resiko teknis sehingga mengurangi resiko sebelum menjadi permaslahan yang serius. 
Kekurangan Model Spiral :
  1. Banyak konsumen (Client) tidak percaya bahwa pendekatan secara evolusioner dapat dikontrol oleh kedua pihak. 
  2. Model spiral mempunyai resiko yang harus dipertimbangkan ulang oleh konsumen dan developer.
  3. Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses.
  4. Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru.
  5. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
  6. Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute.
Contoh Studi Kasus : 

Sidik jari (bahasa Inggris: fingerprint) adalah hasil reproduksi tapak jari baik yang sengaja diambil, dicapkan dengan tinta, maupun bekas yang ditinggalkan pada benda karena pernah tersentuh kulit telapak tangan atau kaki. Kulit telapak adalah kulit pada bagian telapak tangan mulai dari pangkal pergelangan sampai kesemua ujung jari, dan kulit bagian dari telapak kaki mulai dari tumit sampai ke ujung jari yang mana pada daerah tersebut terdapat garis halus menonjol yang keluar satu sama lain yang dipisahkan oleh celah atau alur yang membentuk struktur tertentu. Identifikasi sidik jari, dikenal dengan daktiloskopi adalah ilmu yang mempelajari sidik jari untuk keperluan pengenalan kembali identitas orang dengan cara mengamati garis yang terdapat pada guratan garis jari tangan dan telapak kaki. Daktiloskopi berasal dari bahasa Yunani yaitu dact ylos yang berarti jari jemari atau garis jari, dan scopein yang artinya mengamati atau meneliti. Kemudian dari pengertian itu timbul istilah dalam bahasa Inggris, dactyloscopy yang kita kenal menjadi ilmu sidik jari. Fleksibilitas dari gelombang pada kulit berarti tidak ada dua sidik jari atau telapak tangan yang sama persis pada setiap detailnya. Pengenalan sidik jari melibatkan seorang pakar, atau sebuah sistem pakar komputer, yang menentukan apakah dua sidik jari berasal dari jari. 

Identifikasi berdasarkan sidik jari adalah daerah aktif penelitian di biometrik menerapkan berbagai umum dan teknik kode domain-spesifik optimasi untuk secara efisien melaksanakan tahap pendaftaran, yang mengambil sebagai masukan serangkaian gambar sidik jari dan menghasilkan diadaptasi packet pohon dan template wavelet domain yang terkait. Itu kode untuk identifikasi sebenarnya kemudian dihasilkan automati-Cally dari deskripsi matematika. Algoritma identifikasi sidik jari kembali quires perhitungan matematika yang berat, sehinggasatu al-gorithm bisa memiliki runtimes berbeda tergantung pada Implementasi algoritma. Algoritma ini terdiri dari 2 tahap, tahap pelatihan dan tahap verifikasi. Namun penting untuk memiliki efisien pelaksanaan tahap pelatihan untuk memungkinkan pengembang algoritma untuk dengan cepat menjalankan dan menguji uji beda kasus. Tahap verifikasi dilakukan secara on-line sehingga itu perlu secepat mungkin. Kualitas sidik jari sistemidentifikasi tidak hanya tergantung pada keakuratan.

Model Incremental

Dalam model Incremental ini proses pengerjaan perangkat lunak akan dilakukan perbagian sehingga bagian selanjutnya akan dikerjakan setelah bagian awal telah selesai dan selanjutnya sampai menghasilkan perangkat lunak yang lengkap dengan semua fungsi yang diperlukan dan pengerjaan perangkat lunak berakhir. Sebelum pengerjaan perangkat lunak akan dilakukan perancangan arsitektur software sebagai kerangka dalam pengerjaan perbagian.

Contoh Model Incremental

Kelebihan Model Incremental :
  1. Resiko yang rendah pada pengembangan sistem.
  2. Mengutamakan fungsi-fungsi pada sistem perangkat lunak sehingga kemudahan pemakaian sistem yang paling di utamakan. 
  3. Tahap awal adalan dasar dari pembuatan tahap berikutnya (dikerjakan secara terurut).
  4. Cocok digunakan bila pembuat software tidak banyak/kekurangan pembuat
  5. Mampu mengakomodasi perubahan kebutuhan customer. 
  6. Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya bagian per bagian.
  7. Memaksimalkan pengembalian modal investasi konsumen. 
Kekurangan Model Incremental :
  1. Hanya akan berhasil jika tidak ada staffing untuk penerapan secara menyeluruh.
  2. Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut.
  3. Hanya cocok untuk proyek dengan skala kecil.
  4. kemungkinan tiap bagian tidak dapat diintegrasikan.
Contoh Studi Kasus :

Dalam sebuah software, adanya sebuah Graphical User Interface akan jauh lebih memudahkan pengguna software untuk berinteraksi dengan software, dikarenakan tampilan GUI akan jauh lebih meminimalkan kesalahan penggunaan dari user daripada pada aplikasi yang berbasis console. Selain itu, aplikasi yang menggunakan GUI akan jauh lebih menarik dan user-friendly daripada aplikasi yang berbasis console.

Aplikasi yang akan dibuat adalah aplikasi yang akan dijalankan pada perangkat mobile (handphone), karena memang aplikasi mobile banking lebih ditujukan untuk mengimbangi mobilitas seseorang dengan tetap dapat melaksanakan aktifitas perbankan. aplikasi disini bukanlah aplikasi besar yang berlevel enterprise, sehingga baris kodennya juga tidak terlalu banyak.

Software yang nantinya dikembangkan haruslah memenuhi beberapa kriteria diantaranya : aplikasinya tidak membutuhkan resource yang besar, dapat berjalan di perangkat mobile, kecepatan proses transaksi haruslah cepat, aplikasi nantinya bisa dikembangkan lebih lanjut untuk mengimbangi kebutuhan pengguna software.

Model Evolusi

Model evolusi adalah sebuah model yang berulang-ulang. Model ini memiliki karakteristik yang memungkinkan para programmer mengembangkan perangkat lunaknya menjadi semakin lengkap di tiap versinya. Model ini diterapkan karena persyaratan (requierement) sering berubah sehingga hasil akhir dari sebuah produk tidak akan realistis, dimana edisi komplit dari produk tersebut mustahil dikeluarkan dikarenakan deadline market yang begitu ketat. Oleh karena itu lebih baik mengeluarkan versi limited untuk memperkenalkannya terlebih dahulu dan programmer dapat membuat model dari sebuah design untuk mengakomodasikan produk, yang secara bertahap akan diselesaikan dari waktu ke waktu.

Contoh Model evolusi

Kelebihan Model Evolusi :
  1. Meningkatkan kemampuan memimpin dan mengatur sesuatu dengan pengembangan diri.
  2. Menciptakan suasana yang sadar akan kualitas suatu produk.
  3. Fungsi inti dari quality control dalam perusahaan besar pada tingkat lokakarya.
  4. Meningkatkan kebersamaan untuk mencapai suatu hasil dan semangat kerja karyawan.
  5. Meningkatkan kualitas dengan biaya efektif.
  6. Membebaskan manajemen.
  7. pekerja Shop Floor adalah lokasi terbaik untuk mengidentifikasi masalah.

Kekurangan Model Evolusi :
  1. Intensitas pekerjaan meningkat karena masalah akan lebih banyak dari pada yang diperkirakan.
  2. Manajemen perlu berkomitmen untuk sistem yang berkualitas, jika sebuah solusi dari sebuah masalah tidak dapat diterapkan maka itu bisa membuat frustasi para pekerja.
  3. Dapat memiliki efek negatif pada hubungan industrial.
  4. Dapat fokus pada masalah duniawi.
Contoh Studi Kasus :

Proyek SITINA dimulai dengan kebutuhan terhadap suatu sistem EDM utilitas yang harus melalukan pemantauan dengan mudah, benar-benar otomatis,pada pembangkit listrik tenaga air . Tujuan utama adalah untuk mengembangkan aplikasi dengan biaya rendah yang memungkinkan dewan direksi untuk memonitor pembangkit listrik tersebut dan mengambil data statistik pada produksi mereka.

Hal ini tidak dalam melingkupi penjelasan rinci tentang SITINA . Namun, seperti yang dapat kita lihat dari akhir arsitektur umum pada Gambar 1, kita berhadapan dengan sistem yang kompleks dengan SCADA/EMS2 yang terbentuk dari penggunaan banyak teknologi dari beberapa produk-produk perangkat lunak yang berbeda.


Model Prototype

Prototype merupakan salah satu metode pengembangan perangat lunak yang banyak digunakan. Dengan metode prototyping ini pengembang dan pelanggan dapat saling berinteraksi selama proses pembuatan sistem. Prototyping, dimulai dengan pengumpulan kebutuhan, mendefinisikan objektif keseluruhan dari software, mengidentifikasikan segala kebutuhan, kemudian dilakukan “perangcangan kilat” yang difokuskan pada penyajian aspek yang diperlukan.

Contoh Model Prototype


Kelebihan :
  1. Prototype melibatkan user dalam analisa dan desain.
  2. Punya kemampuan menangkap requirement secara konkret daripada secara abstrak.
  3. Untuk digunakan secara standalone.
  4. Digunakan untuk memperluas SDLC.
  5. Mempersingkat waktu pengembangan Sistem Informasi

Kekurangan :
  1. Proses analisis dan perancangan terlalu singkat.
  2. Mengesampingkan alternatif pemecahan masalah.
  3. Bisanya kurang fleksible dalam mengahdapi perubahan.
  4. Prototype yang dihasilkan tidak selamanya mudah dirubah
Contoh Studi Kasus :

Dalam pelaksanaannya, system akademik yang berjalan di Sekolah Menengah Pertama Negeri 20 Bandung dirasa belum optimal, hal ini dikarenakan sistem yang digunakan masih bersifat manual. Dengan permasalahan tersebutmaka muncul berbagai permasalahan terutama pada proses pendaftaran,registrasi, pembagian kelas, pembagian wali kelas, proses penilaian serta informasimengenai perkembangan siswa kepada orang tua. Untuk itu, diperlukan suatu sistem informasi yang mampu mendukung pengambilan keputusan dalammemperoleh informasi kegiatan akademik. Pembuatan Sistem Informasi Akademik Sekolah Menengah Pertama Negeri 20 Bandung menggunakan pendekatan terstruktur, sedangkan metode pengembangan menggunakan prototype dengan teknik pengumpulan data observasidan wawancara, sedangkan alat yang digunakan dalam merancang sistem berupa Flow Map, Diagram Konteks, DFD dan pengembangan aplikasi berbasis desktop.Sistem yang dibangun disajikan secara client server sehingga dapat diaksesbeberapa komputer. Sistem yang dibangun diharapkan dapat mengatasi sebagianbesar permasalahan yang ada seperti melakukan validasi kerangkapan dataregistrasi dan nilai siswa, pembagian kelas dan penilaian.

Rabu, 20 Agustus 2014

Review Software "VLC Media Player"

REVIEW SOFTWARE VLC MEDIA PLAYER

Pada post kali ini, saya akan berbagi mengenai Review salah satu Software Multimedia, yakni VLC Media Player. Pada masa kini, di zaman yang sudah modern kita dapat dengan mudah untuk menonton film ataupun mendengarkan musik melalui Laptop kita. Nah, untuk melakukan kegiatan tersebut kita memerlukan sebuah aplikasi Multimedia, agar file film bisa diputar ataupun untuk memainkan musik. VLC Media Player merupakan solusi karena aplikasi ini dapat memainkan hampir seluruh format file multimedia. Berikut adalah ulasan mengenai VLC Media Player :