Kamis, 18 Desember 2014

ANALYSIS SWOT !

SWOTadalah singkatan dari Strenghths (kekuatan), Weakness (kelemahan),Opportunities (peluang), dan Threats (ancaman). Ini adalah teknik untuk menyediakan kerangka kerja untuk mengidentifikasi secara sistematis posisi organisasi; caranya berhubungan dengan lingkungan eksternal dan masalah serta peluang yang dihadapi. Tujuan analisis SWOT adalah untuk memisahkan masalah pokok dan memudahkan pendekatan strategis.

Contoh Kasus
Abraham adalah seorang Chief Information Officer (CIO) Perusahaan XYZ, yang memiliki volume penjualan perusahaan mencapai lebih dari $ 100 juta per tahun, melayani lebih dari 2300 pelanggan, dan mempekerjakan lebih dari 300 pegawai. Abraham telah menguasai seluruh kegiatan perusahaan dengan baik (memahami business strategy). Bersama dua orang asisten dia menganalisis semua kebutuhan informasi, yakni dengan meneliti semua socio-techno informasi yang ada di perusahaan, lalu membuat sebuah sistem pemrosesan data. Dilanjutkan dengan membeli piranti keras (hardware) komputernya dengan persetujuan dari manajemen. Ketika Sistem Informasi Manajemen (SIM) baru diinstalasi, dilakukan mutasi pegawai ke tugas-tugas baru, dan formulir-formulir serta prosedur-prosedur baru diperkenalkan kepada semua users di perusahaan tersebut. Alhasil, para pekerja menjadi bingung dan marah. Dalam waktu satu minggu suasana sudah menjadi kacau, meskipun instalasinya telah direncanakan dengan cermat oleh Abraham. Dimana letak kegagalan Abraham dalam persiapannya? Dan apa yang harus dilakukan Abraham sekarang?
  1. Kekuatan (Strengths)
Menurut saya, kekuatan atau kelebihan perusahaan yang dipimpin bapak Abraham adalah memiliki volume penjualan perusahaan mencapai lebih dari $ 100 juta per tahun, melayani lebih dari 2300 pelanggan, dan mempekerjakan lebih dari 300 pegawai. Abraham juga telah menguasai seluruh kegiatan perusahaan dengan baik (memahamibusiness strategy).
  1. Kelemahan (Weaknesses)
Abraham melakukan kesalahan dalam memanage perusahaan. Kesalahannya adalah ketika Sistem Informasi Manajemen (SIM) baru diinstalasi, dilakukan mutasi pegawai ke tugas-tugas baru. Abraham tidak melakukan survey atau pelatihan terlebih dahulu kepada pegawainya sehingga pegawai bingung dan marah dengan Abraham.
  1. Peluang (Opportunities)
Peluang perusahaan yang dipimpin Abraham untuk maju sangatlah besar, karena Abraham yang telah memahami business strategy, dan juga perusahaan yang memiliki volume penjualan perusahaan mencapai lebih dari $ 100 juta per tahun, melayani lebih dari 2300 pelanggan, dan mempekerjakan lebih dari 300 pegawai.
  1. Ancaman (Threats)
Akibatnya perusahaan akan bangkrut jika tidak ada penanganan dari Abraham kepada pegawainya. Selain itu, ini merupakan ancaman bagi pegawai karena bisa saja bagi mereka yang tidak mengerti sistem baru yang sedang Abraham kembangkan akan diganti dengan pegawai baru yang lebih kompeten yang mengerti sistem baru Abraham.

grid computing and cloud computing

Pengertian Cloud Computing
Cloud Computing adalah gabungan dari pemanfaatan teknologi (komputasi) dan pengembangan berbasis internet (awan). Cloud Computing merupakan sebuah metode penggabungan dari berbagai pemanfaatan beberapa teknologi dimana kemampuan TI disediakan sebagai layanan berbasis internet.

Contoh Cloud Computing seperti Ymail atau Gmail. Anda tidak perlu software atau hardware (server) untuk menggunakannya. Semua Konsumen hanya perlu koneksi Internet dan mereka dapat mulai mengirimkan email. Software manajemen email dan server semuanya ada di cloud (internet) dan secara total di kelola oleh provider seperti Yahoo, Google, etc. Konsumen hanya perlu menggunakan software itu sendiri dan menikmati manfaatnya.



Perhatikan titik-titik komputer/server sebagai gabungan dari sumber daya yang akan dimanfaatkan. Lingkaran-lingkaran sebagai media aplikasi yang menjembatani sumber daya dan cloud-nya adalah internet. Semuanya tergabung menjadi satu kesatuan dan inilah yag dinamakan cloud computing.Analoginya adalah, “Jika anda membutuhkan Susu, anda tidak perlu membeli sapi. Karena yang anda butuhkan adalah Susunya (manfaatnya) bukan Sapinya (Software/hardware). Itu sama saja dengan anda menggunakan software atau hardware seperti mengirim email, dan lain-lain tanpa harus memiliki Aplikasi Penyedia layanannya.

Pengertian Grid Computing

Grid Computing atau Komputasi Grid merupakan salah satu dari tipe Komputasi Paralel, adalah penggunaan sumber daya yang melibatkan banyak komputer terpisah secara geografis namun tersambung via jalur komunikasi (termasuk Internet) untuk memecahkan persoalan komputasi skala besar. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber-sumber komputasi yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas-batas domain administrasi yang ada.

Sebagai sistem terdistribusi dengan non-interaktif beban kerja yang melibatkan sejumlah besar file. Apa yang membedakan grid computing dari konvensional sistem komputasi kinerja tinggi seperti komputasi cluster adalah grid le
bih cenderung longgar digabungkan, heterogen, dan geografis.



Grid computing adalah model generasi selanjutnya untuk komputasi perusahaan berbasis virtualisasi dan provisioning bagi setiap sumberdaya TI. Grid computing menjanjikan peningkatan utilitas dan fleksibilitas yang lebih besar untuk sumberdaya infrastruktur, aplikasi dan informasi. Oracle 10g telah berbasis grid computing, sehingga perusahaan yang menginginkan kemajuan dan perbaikan kinerja bisnis berbiaya rendah bagi aplikasi transaksional, business intelligence dan knowledge management dapat menggunakan solusi grid computingdari Oracle. Khusus bagi pelanggan Oracle sekarang ini, adopsi gridcomputing hanya berupa adopsi generasi selanjutnya dari software yang telah sukses dijalankan sebelumnya. IDC juga meyakini bahwa Oracle 10g cukup diperhitungkan oleh banyak perusahaan yang berkeinginan yang sama. Pelaku bisnis cukup mengadopsi teknologi grid dengan investasi minimal, kegagalan nol, dan ROI cepat.


BAHASA R

Apakah bahasa R itu?
Bahasa R adalah suatu fasilitas perangkat lunak terpadu untuk manipulasi data, simulasi, kalkulasi dan peragaan grafik. R memiliki kemampuan menganalisis data dengan sangat efektif dan dilengkapi dengan operator pengolahan array dan matriks. Tidak kalah menariknya R memiliki kemampuan penampilan grafik yang sangat canggih untuk peragaan datanya. Berikut adalah contoh code dalam bahasa R:




Bahasa R merupakan versi open-source dari bahasa pemrograman S (Azola dan Harrel, 2006). Bahasa R dapat diperoleh secara gratis dan jika berminat tinggal diunduh di http://cran.r-project.org. Versi komersial yang berbasis bahasa S adalah S plus. Bahasa R memiliki kemampuan yang tidak kalah dangan paket program pengolahan data komersial bahkan dalam beberapa hal kemampuannya lebih baik. Bahasa R mendapat sambutan yang baik dari kalangan statistikawan di seluruh dunia dan komunitas R sangat aktif dalam memberikan kontribusi paket aplikasi untuk R. Keunikan bahasa R adalah langsung terhubung dengan paket aplikasi yang dibangun oleh statistikawan di seluruh dunia ini dan jika membutuhkan dapat langsung diinstal dengan mencari paket yang sesuai.
Sejarah R
R project pertama kali dikembangkan oleh Robert Gentleman dan Ross Ihaka (nama R untuk sofware ini berasal dari huruf pertama nama kedua orang tersebut) yang bekerja di departemen statistik Universitas Auckland tahun 1995. Sejak saat itu software ini mendapat sambutan yang luar biasa dari kalangan statistikawan, industrial engineering, peneliti, programmer dan sebagainya. Pada saat ini, source code kernel R dikembangkanterutama oleh R Core Team yang beranggotakan 17 orang statistisi dari berbagai penjuru dunia.
Paket statistik R bersifat multiplatforms, dengan file instalasi binary/file tar tersedia untuk sistem operasi Windows, Mac OS, Mac OS X, Linux, Free BSD, NetBSD, irix, Solaris, AIX, dan HPUX. Fungsi dan kemampuan dari R sebagian besar dapat diperoleh melalui Add‐on packages/library. Suatu library adalah kumpulan perintah atau fungsi yang dapat digunakan untuk melakukan analisis tertentu. Sebagai contoh library yang sangat powerful adalah R-commander dan Rattle.
Meskipun R mengutamakan penggunaan bahasa pemrograman, bagi pengguna awam dengan metode statistik dan bahasa pemrograman, dapat memanfaatkan paket R-commander yang telah disediakan di library. Dengan mengaktifkan paket R-Commander, pengguna dapat melakukan pengolahan data secara statistik dengan mudah, semudah menggunakan SPSS, Minitab ataupun software statistik berlisensi lainnya. Hal ini sangat dimungkinkan karena melalui R-Commander, pengguna bisa langsung melakukan pengolahan data dengan memilih menu-menu yang disediakan pada jendela R-Commander. Berikut adalah screenshoot dari R Commander .


Fitur lain yang tak kalah penting adalah kemampuan bahasa R untuk dihubungkan dengan bahasa lain. Dengan fasilitas ini kekurangan utama bahasa R yaitu kurangnya fasilitas untuk rekayasa perangkat lunak dapat diatasi dengan mudah. Berikut adalah library untuk menghubungkan dengan beberapa bahasa pemrograman utama:
  • R.Net (http://rdotnet.codeplex.com/). R.NET memampukan .NET Framework untuk berkolaborasi dengan bahasa statistical computing R.
  • RPy (http://rpy.sourceforge.net/). RPy adalah interface Python dengan bahasa R yang tangguh.
  • Rinside (http://dirk.eddelbuettel.com/code/rinside.html). RInside menyediakan kelas C++ yang membuat bahasa R dapat ditambahkan ke dalam C++ dengan mudah.
  • RJava (http://www.rforge.net/rJava/). RJava adalah interface R ke Java yang sederhana.

IDE PKM

PKM kepanjangan dari Program Kreativitas Mahasiswa. Lalu saya akan mencoba membuat sebuak PKM yang membantu alat transportasi yaitu kereta. Alat ini memaksimalkan kinerja pemutaran loko menjadi sangat efektif dan efisien. Cara kerjanya dengan menggunakan tombol dan akan bekerja secara otomatis.

Kamis, 11 Desember 2014

Metode Agile

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 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.

Kelebihan dan Kekurangan Agile

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.