Tampilkan postingan dengan label Rekayasa Perangkat Lunak. Tampilkan semua postingan
Tampilkan postingan dengan label Rekayasa Perangkat Lunak. Tampilkan semua postingan

RPLast

RPL akhirnya selesai juga... detik-detik menjelang akhir semester ini pun semakin terlihat...

RPL adalah salah satu mata pelajaran tetangga ( mirip dengan ASI ) yang sebelumnya saya post, dalam RPL ini ada beberapa ilmu yang saya peroleh, misalnya saja mempermantap erd, flowchart dan dfd. Walaupun diulang-ulang dan mirip dengan ASI, namun ini lumayan membantu untuk mempermantap apa yang kita ketahui. Namun, pada penjelasan materi yang terakhir state transition diagram, itu masihlah hal yang mengambang bagi saya. Membuat state transition diagram masih cukup membingungkan, kadang berpikir terlalu rumit ataupun bingung harus bagaimana menuliskannya dengan benar. Waktu yang sangat singkat juga merupakan kendala dalam membahas materi ini, materi ini belum dibahas secara lebih mendalam namun sangatlah sebentar saja. Selain itu, arsitektur sistem juga masih belum terlalu dipahami, namun ternyata yang kelompok kami buat sudah hampir mendekati benar, hanya salah satu tambahan yang sebenarnya tidak diperlukan (atau tidak ada dalam rancangan awal).

Hanya ini saja yang bisa saya tuliskan, terima kasih Bapak udah mengajar kami di ASI dan RPL, jangan lupa luluskan kami dengan nilai yang bagus ya Pak... ^^ 

Never say goodbye, cause goodbye means forgetting, so see ya...di mata kuliah yang lain...

Model Data 002

Model data... pembahasan ini memang telah pernah saya bicarakan sebelumnya... namun kali ini mari melihatnya sekali lagi dengan tambahan persepsi yang baru.

Sebelumnya, mari melihat arsitektur sistem basis data

  • View merupakan output, yaitu hasil-hasil yang diinginkan untuk diperoleh dari sistem basis data tersebut. Jumlah view bisa sebanyak dan semaksimal mungkin tergantung dari seberapa sukses logical level yang telah dibuat.
  • Logical level merupakan tahap pembuatan erd atau pemikiran logical dari sistem yang akan dibuat, meliputi berapa entitas yang dibutuhkan, relasi yang ada, kardinalitas, modalitas serta normalisasi datanya.
  • Physical level merupakan tahap memikirkan dari fisik dari sistemnya, seperti berapa besar memori yang mungkin dibutuhkan
Saat ini, pembelajaran fokus pada logical level yaitu pembuatan ERD nya. Nah, dalam ERD sendiri juga memiliki simbol-simbol tersendiri, ada kardinalitas, modalitas, relasi yang merupakan hubungan antar entitas. Dalam kasus yang diberikan kali ini tentang kasus artis figuran. Dalam kasus ini, artis figuran dibagi menjadi 3 kategori untuk masing-masing honor yang berbeda. Setiap artis figuran juga memiliki scene masing-masing dan bila berhalangan dapat digantikan dengan artis figuran yang lain dalam kategori yang sama.

Pada pembuatan ERD nya, kami terlalu banyak melibatkan entitas dan berpikir terlalu jauh dan rumit dari kasus yang diberikan, padahal yang diminta sangat sederhana yaitu hanya hubungan antara artis figuran, scene dan kategorinya. Hanya 3 entitas yang penting terlibat dalam kasus kali ini. Bila digambarkan :

Setelah sekian lama berjumpa dengan kata ERD, semoga kami semakin mengenal satu sama lain dan makin memahami membuat ERD dengan sebaik mungkin, walaupun kadang jalan berpikir saya suka berbeda, kadang terlalu rumit dan berbeda dari persoalan yang ada, ataupun kadang terlalu sederhana... semoga perlahan-lahan saya semakin bisa memahami model data dengan baik dan sukses dalam tahapan logical level ini (ini adalah dasar dalam pembuatan sistem) sehingga saya nantinya bisa membuat sistem yang bagus.

Wish me luck!




It's not just the sims, it's SIMSE

Game The Sims adalah salah satu game simulasi terlaris di dunia, kali ini yang akan saya bahas bukan mengenai The Sims yang seperti biasa saya post, tapi kali ini SIM SE. Apa itu SIM SE? Ini merupakan game simulator juga, tapi simulator sebagai Software Engineer. Dalam game ini, pemain diajarkan bagaimana metode-metode yang digunakan dalam pengembangan atau pembuatan suatu software. Dalam simulasinya, ada karakter-karakter sebagai pekerjanya, pemain bertugas sebagai manager untuk mengontrol alur permainan agar sesuai dengan metode yang digunakan dan menghasilkan final product untuk customer.

Salah satu metode yang paling menarik untuk saya adalah Prototyping. Mengapa Prototyping? Mungkin karena pada awalnya dikarenakan saya selalu memperoleh nilai 0, sehingga saya penasaran dalam game ini hingga saya terus mencoba dan mencari solusinya.

Contoh hasil yang saya peroleh
Dalam game SIM SE Rapid Prototyping, pemain akan berhadapan dengan customer yang cerewet dan selalu curious akan program yang dia inginkan. Pemain sebagai developer yang baik harus bisa mendengar suara atau permintaan customer. Seperti metode pengembangan prototyping yang saya bahas pada post saya yang sebelumnya, pada simulasi ini, developer akan membuat terlebih dahulu prototype nya dan akan terus mengevaluasi dengan customer hingga customer merasa puas, baru akan dilanjutkan ke tahapan berikutnya.

Nah, pada game SIM SE Rapid Prototyping ini, ada 2 poin yang terpenting yaitu :
Waktu, Customer Satisfaction dan Bahasa Pemograman

  • Waktu. Ketika melakukan simulasi Rapid Prototyping ini, pemain diharapkan dapat bekerja semaksimal mungkin dalam menghemat waktu yang digunakan, karena ketika waktu yang dipakai melebih batas waktu yang diberikan, maka pemain akan mendapatkan nilai 0.
  • Customer Satisfaction. Ketika dalam tahap pembuatan Prototype, yang perlu diperhatikan adalah poin di Customer Satisfaction nya harus mencapai 100, sedangkan di percent discovernya harus dipastikan di atas 80 dan tidak perlu mencapai angka 100.
  • Bahasa Pemograman. Dalam tahapan pembuatan prototype, bahasa pemograman yang dipilih adalah Visual Basic, dikarenakan memiliki waktu tercepat untuk membuat prototype yaitu 2. Sedangkan pada tahapan implementasi, bahasa pemograman yang dipilih adalah Java ataupun C++ yang memiliki kecepatan dan error yang ditimbulkan yang sama, yaitu 1. Jangan memilih Visual Basic untuk implementasi, karena akan berakibat menimbulkan error yang banyak dan akan mengurangi poin.
Dalam simulasi ini, setiap aksi yang dilakukan akan melibatkan semua karyawan, jadi pemilihan karyawan tidak diperlukan (langsung check all saja). Ketika dalam tahapan pembuatan prototype, customer akan banyak untuk curious akan produk yang dibuat dan ataupun memiliki permintaan yang lain, ketika itu terjadi maka pembuatan prototype akan dihentikan, lalu kembali mendengar dari customer 'have customer evaluate prototype'. Setelah prototype selesai dibuat, maka developer akan kembali meminta feed back dari customer dengan kembali 'have customer evaluate prototype' (ingat poin no 2 tentang poin customer satisfaction dan percent discovernya), ketika percent discovernya telah mencapai angka 80 dan customer satisfactionnya telah mencapai 100, maka pemain dapat stop waktunya, dan langsung melanjutkan ke tahapan requirement specification, design dan implement. Ketiga hal tersebut harus diproses hingga mencapai angka 100, baru dikirim final product nya ke customer.

Walaupun sudah mencapai angka demikian, saya masih penasaran untuk menembus angka 100, nampaknya saya harus lebih menghemat dan memperhatikan waktu lagi.

Nah, semoga tips and trick ini dapat membantu kalian supaya tidak dapat 0 terus ya... dan bisa mencapai nilai yang tinggi... Good Luck! Selamat mencoba...

Model Awal

Prototyping... nama yang keren dan mungkin saja pernah didengar oleh telinga kita ketika sedang menonton film tentang robot atau film yang menceritakan dengan latar belakang teknologi. Atau biasa juga kita mendengar istilah prototype di berita ataupun media cetak. Contohya saja mobil prototype. Selain mobil dan robot, ternyata maket rumah juga merupakan prototype loh.
Prototype mobil hemat energi
Sumber : Google
Prototype robot 2005
Sumber : Google














Nah, sebenernya apa itu prototype?

Prototype adalah model awal atau contoh dasar yang lebih sederhana.

Lalu apa itu prototyping? Seperti pada penggunaan bahasa Inggris pada umumnya ketika ditambahkan akhiran -ing maka akan menjadi sebuah pekerjaan, seperti cycle menjadi cycling dari sepeda menjadi bersepeda.

Prototyping adalah suatu metode pengembangan perangkat lunak dengan membuat prototype nya terlebih dahulu sesuai dengan permintaan atau kebutuhan awal dari customer, lalu dari prototype itulah akan dikembangkan lebih lanjut untuk menjadi sistemnya.

Metode ini sangat sesuai untuk mengembangkan perangkat lunak atau sistem yang customer nya belum tahu dengan jelas apa yang diinginkan, ataupun untuk customer yang cerewet. Untuk penjelasan tentang  tahapan dari model proses prototype, yang dari mendengar permintaan atau kebutuhan customer hingga akhirnya jadi sistem, telah saya bahas di artikel saya yang sebelumnya. Di sini hanya berpusat pada tahapan Prototyping nya saja.

Hal terpenting dari prototyping adalah 
visual dan reuse.

Prototype nya dibuat dengan atau hanya dengan memperlihatkan visual kepada customer, agar customer paling tidak dapat melihat seperti apa sistem atau perangkat lunak yang diinginkan. Biasanya untuk pengembangan visualnya, developer akan menggunakan bahasa pemograman visual. Salah satu bahasa pemograman visual yang paling dikenal adalan VB atau Visual Basic karena sangat mudah untuk mengatur tampilannya. Selain daripada tampilan atau visualnya, masalah reuse juga penting. Prototype yang dibuat, harus bisa direuse, baik untuk pengembangan sistem selanjutnya ataupun untuk digunakan kemudian untuk customer yang berbeda namun memiliki kasus yang hampir sama.

Prototype yang dibuat terbagi 2 jenis yaitu :
  • Close-ended atau throw-away prototype (Prototype yang terbuang) artinya prototype tersebut hanya digunakan untuk menghasilkan informasi dan spesifikasi apa yang dibutuhkan untuk pengembangan sistemnya.
  • Open-ended atau evolutionary prototype (Prototype tak terbuang atau Prototype yang berkembang) artinya prototype nya akan menjadi tahapan awal dalam pembuatan sistemnya.
Sebenarnya masih ada suatu kebingungan dalam otak saya, walupun prototyping sangat cocok untuk metode pembuatan perangkat lunak bagi customer yang cerewet, namun dulu saya pernah mendengar bahwa lebih baik menghindari menggunakan metode prototyping ketika sedang membuatkan sistem basis data untuk customer yang cerewet. Mengapa? Karena sistemnya tidak akan selesai-selesai dan memakan waktu yang lama. Bila menggunakan metode prototyping untuk membuat sistem basis data bagi suatu perusahaan, sebaiknya memiliki kesepakatan awal dalam hal jangka waktu dan biaya pembuatan sistem hingga tahapan mana untuk mengurangi kerugian dari developer. Lalu bagaimana? Tetap menggunakan prototyping? Contoh kasus seperti apakah yang sesuai?

Lebih lanjut saya akan mendalami dan mencari tahu lebih lanjut tentang prototyping dan sebenarnya kasus seperti apa yang sesuai untuk metode ini.



P.S. Ingat ya, prototype itu contoh dasar. Siapa tahu nanti dengar atau nonton film tentang teknologi atau robot lagi...

Model Proses ?

Dalam pembuatan sistem/perangkat lunak, ada beberapa model untuk membuatnya, sama seperti pembuatan/ pengolahan makanan, misalnya saja ayam. Ada beberapa model untuk membuatnya seperti dikukus, digoreng, dibakar, ataupun dijadikan kuah. Nah, bila dalam pembuatan sistem/ perangkat lunak, ada model waterfall atau yang dikenal dengan model air terjun, model prototype, model inkremental, model spiral dan rapid application development atau yg lebih dikenal dengan RAD.

Prototyping Model


Sumber : Google
Model ini merupakan model yang palik unik diantara semuanya, semua model biasanya dikembangkan setelah diketahui requirement yang diinginkan, sedangkan dalam model ini, customer biasanya belum tahu akan apa yang diinginkan. Model prototyping sangat cocok untuk customer yang banyak keinginan tambahan atau cerewet ketika sedang mengembangkan sebuah sistem/ perangkat lunak. Dengan model ini, keinginan customer yang tiba-tiba ingin ditambah, dapat dipenuhi oleh developer dan tidak seribet model lainnya.

Tugas kelompok sendiri ;)
Prototyping berpusat pada keinginan dan kepuasan dari customer. Developer awalnya memberikan prototype (biasanya dengan algoritma sederhana) pada customer, untuk evaluasi dari customer. Bila telah sesuai, maka prototype tersebut akan dikembangkan lebih lanjut untuk dibuat sistemnya dengan algoritma yang lebih kompleks, sedangkan bila tidak, maka prototype nya akan diulang lagi.

Kelebihan dari model ini adalah adanya komunikasi yang baik antara customer dan developer sehingga kebutuhan dan kepuasan customer terpenuhi secara maksimal, customer berperan aktif, dan lebih menghemat waktu serta hasil yang jadi sudah terstruktur. Kekurangannya ialah pada proses pembuatan prototype, developer menggunakan algoritma yang sederhana karena ingin cepat selesai tanpa memikirkan lebih lanjut bahwa program tersebut hanya cetak biru yang harus dikembangkan lebih lanjut.


Waterfall Model
Sumber : Google

Model air terjun (waterfall) kadang dinamakan siklus hidup klasik (clasic life cycle), dimana hal ini menyiratkan pendekatan yang sistematis dan berurutan (sekuensial) pada pengembangan perangkat lunak, yang dimulai dengan spesifikasi kebutuhan pengguna dan berlanjut melalui tahapan-tahapan perencanaan (planning), pemodelan (modeling), konstruksi (construction), serta penyerahan sistem/ perangkat lunak ke pelanggan (deployment), yang diakhiri dengan dukungan berkelanjutan pada perangkat lunak. (Pressman, Rekayasa Perangkat Lunak Edisi 7)

Waterfall sama seperti proses pencernaan manusia, dimana makanan harus digigit dahulu oleh gigi, lalu dikunyah dimulut lalu ditelan dan melewati saluran pencernaan, dari kerongkongan hingga keluar dari anus. Dalam proses waterfall, prosesnya harus melewati tahap demi tahap dan tiap tahap harus diselesaikan terlebih dahulu baru bisa ke tahap selanjutnya. (makanan juga harus digigit dan dikunyah dulu baru bisa ada dicerna di usus)

Waterfall membutuhkan waktu yang lama dalam pembuatannya dan spesifikasi perangkat lunak yang ingin dikembangkan harus jelas.

Incremental Model
Sumber : Google

Model ini merupakan model penambahan sedikit demi sedikit menggabungkan elemen-elemen aliran proses linier dan paralel. Model ini berfokus pada pengiriman produk yang bersifat operasional pada setiap tahapan. (Pressman, Rekayasa Perangkat Lunak Edisi 7)

Pada inkremental model ini, ketika telah melewati tahap analisis dan desain, maka developer dapat pindah pada inkremen atau versi perangkat lunak berikutnya, sedangkan versi sebelumnya sudah dapat digunakan oleh customer untuk melayani kebutuhan customer dan juga sebagai evaluasi selanjutnya oleh pengguna.

Spiral Model
Sumber : Google

Model ini merupakan gabungan perkembangan dari prototype dan waterfall. Model ini terus mengembangkan sistem dan perangkat lunak sesuai dengan permintaan customer, bila ada komplain ketika perangkat lunak telah selesai, maka developer akan mengembangkannya lagi dan evaluasi lagi, begini terus berulang. Setiap lintasan pada gambar spiral menambahkan kemampuan fungsional pada sistem. Point akhir yang diberi label "delivered system" bukan merupakan akhir lintasan spiral, tapi awal spiral yang baru yang dimulai dengan pemeliharaan dan evolusi dari sistem.

Model spiral banyak digunakan untuk pengembangan skala besar. Salah satu contohnya ialah pengembangan  sistem operasi pada smart phone, salah satunya android. Sistem operasi nya selalu diupdate untuk memperbaiki bug dan menambahkan fasilitas di dalamnya. Misalnya saja, dahulu instagram pada android belum dilengkapi dengan fitur-fitur filter yang banyak, namun setelah diupdate, banyak fitur yang ditambahkan.

RAD (Rapid Application Development)
Sumber : Google

Model RAD atau rapid prototyping merupakan lanjutan/ pengembangan lebih lanjut dari waterfall model. RAD dalam pengerjaannya terbagi menjadi kelompok-kelompok yang bekerja masing-masing sesuai requirment umum awal dan akhirnya akan disatukan menjadi satu sistem. RAD lebih menghemat waktu dibandingkan dengan waterfall karena RAD terbagi dalam tim kerja. Model ini juga cocok untuk proyek skala besar, namun karena bekerja dalam tim, model ini membutuhkan sumber daya yang banyak, walaupun begitu model itu menghemat waktu.

Dalam pengembangan perangkat lunak dengan sistem ini, kedua pihak harus sepakat terlebih dahulu akan apa yang akan dikembangkan dan berkomitmen untuk melakukannya, dikarenakan bila terjadi kepincangan di dalam komitmennya, maka model RAD ini tidak akan dapat berhasil dan berjalan lancar.



next : lebih lanjut tentang Prototyping model

Software bukan Perangkat Lunak?

Hal pertama yang terlintas ketika mendengar dan ditanya apa itu software, sebagian besar pasti menjawab perangkat lunak. Kita tidak memperoleh pemikiran lain bagaimana menjelaskannya, padahal bila menjawab software adalah perangkat lunak, sama saja dengan menjawan senin adalah Monday. Lalu sebenarnya apa itu software kalau dia bukan perangkat lunak jawabannya?

Software adalah kumpulan dari elemen yang berkesinambungan: program, data
dan dokumen.

Salah satu karakterisik dari software yang paling berkesan adalah:
Software is like an aging factory.

Software pun mengalami penuaan, dan bila telah sampai kepada tahap penuaan tingkat tinggi seperti pabrik yang sudah tua dan tidak dapat berfungsi lagi, software tersebut tentu saja tidak akan digunakan lagi. Software mengalami penuaan artinya sudah tidak up to date lagi dan sudah tidak compatible dengan mesin yang ada dan kebutuhan dari konsumen, sehingga software tersebut tidak dapat digunakan lagi.

Sama seperti kulit manusia yang sedikit demi sedikit mengalami penuaan dan keriput, demikian pula software yang sedikit demi sedikit akan ketinggalan zaman. Bila keriput pada manusia diakibatkan dari faktor makanan atau kurangnya vitamin dan nutrisi pada kulit, software mengalami penuaan dikarenakan faktor perkembangan zaman dan software yang terus berkembang dan diperbarui serta kesalahan dan kekurangan pada software yang telah ada tersebut, ini mengakibatkan software tersebut akan ditinggalkan alias mengalami penuaan.

Sadar atau tidak, kita mengetahui banyak macam software hanya saja tidak menyadarinya, macam-macam software dan contohnya:
  • Sistem software untuk melayani software lain, seperti anti virus, windows, winRAR, winZip
  • Real time software, mengolah data yang dihasilkan pada waktu saat itu juga, seperti chatting, messenger, mesin ATM
  • Business software, digunakan untuk program bisnis, seperti software perusahaan untuk menghitung stok,  profit dan loss
  • Embedded software, software yang dimasukkan pada perangkat keras seperti jam tangan dan AC
  • PC Software, seperti Microsoft Word, MP3 Player, Corel Draw
  • Al Software. digunakan untuk memprediksi seperti software penghitungan dan pencengahan bencana alam
  • Web application, software yang didukung internet dalam penggunaannya, seperti wiki, webmail
Nah, yang saya masih belum tahu dan pasti, game merupakan software dan termasuk golongan apa? Seperti salah satu game saya yaitu The Sims 3, game tersebut digunakan pada PC namun pada waktu bermainnya juga bisa menggunakan dukungan internet, selain itu ada fitur prediksi pada saat bermain gamenya, sims didalamnya dapat diprediksi keinginan dan dapat memiliki keinginan sendiri. Lalu seperti game Business Tycoon, termasuk business software, PC software, Al software atau bukan? Dikarenakan dalam gamenya, kita dapat bermain layaknya pengusaha yang nyata dan dapat melihat keuntungan serta dapat memprediksi kerugian perusahaan.


Software proses
Salah satu contohnya ialah teknik Waterfall :
Tahapan yang dilakukan oleh System engineering
Gambar dari: Google
 
untuk kelanjutan dari waterfall proses...
to be continued...