Jumat, 10 Agustus 2012

Kalkulus Proposisi



(gambar diambil dari http://ririsatria40.files.wordpress.com/2011/02/moivre.jpg)

Sering terdengar pernyataan bahwa matematika diajarkan untuk mendidik murid berpikir secara praktis, teratur, murni, tajam dan logis. Apakah sebenarnya berpikir secara logis itu ?
Suatu ucapan benar atau salah disebut sebagai suatu pernyataan atau kalimat. Setiap pernyataan adalah suatu ucapan, tetapi tidak setiap ucapan merupakan suatu pernyataan. 
Contoh,
a. Marilah ke sini.
b. Siapakah namamu.
c. Betapa indahnya.
Semuanya adalah ucapan – ucapan, tetapi bukan merupakan suatu pernyataan, karena ucapan – ucapan tersebut tidak dapat dinyatakan sebagai benar atau salah. 
Kalimat yang menerangkan sesuatu atau menyatakan sesuatu yang dapat dianggap sebagai pernyataan, misalnya,
1. Paris adalah ibukota Perancis.
2. Dua adalah suatu bilangan asli.
Pernyataan (1) dan (2) di atas dinyatakan sebagai benar, karena menerangkan atau menyatakan sesuatu hal yang benar.
Dalam logika, kata – kata seperti “dan”, “atau”, “tidak”, “jika … maka”, dan lain – lain memegang peranan yang sangat penting. Kata – kata tersebut merangkaikan buah pikiran, relasi – relasi dan cara yang dilakukan, yang disebut sebagai struktur logis dari suatu pernyataan. 
Contoh, 
Pernyataan – pernyataan berikut memiliki struktur logis yang sama,
a. Setiap orang adalah laki – laki atau perempuan.
b. Setiap zat adalah organis atau anorganis.
c. Setiap penduduk adalah warga negara atau warga asing.
Pernyataan di atas bisa digambarkan dengan skema sebagai berikut,
“Setiap … (i) … adalah … (ii) … atau … (iii) …”,
dengan (i), (ii) dan (iii) merupakan kata benda atau kata nama.
Kebenaran dari pernyataan di atas tergantung dari struktur logisnya dan tidak tergantung pada isi pernyataan. Pernyataan yang demikian dikatakan benar secara logis atau selalu benar. Contoh lain,
“Jika setiap manusia adalah fana dan Ali adalah manusia maka Ali adalah fana.”.
Struktur logisnya,
“Jika setiap … (i) … adalah … (ii) … dan … (iii) … adalah … (iv) … maka … (v) … adalah … (vi) …”.
Jika (i) dan (iv) diisi dengan kata benda yang sama, (ii) dan (vi) dengan kata sifat yang sama, dan (iii) dan (v) dengan kata nama yang sama, maka selalu diperoleh suatu pernyataan yang benar. Tetapi kalau ditinjau pernyataan yang lain,
“Suhu di dalam kamar ini adalah 40 derajat Celcius.”
Kebenaran dari pernyataan ini harus didasarkan oleh fakta, jadi pernyataan ini tidaklah selalu benar.
Dalam logika, kebenaran dari suatu pernyataan didasarkan pada kebenaran logisnya. Pernyataan “Besok pagi matahari akan terbit” bukan merupakan suatu kebenaran logis, karena mungkin saja besok pagi hujan atau mendung sehingga matahari tidak terbit. Pernyataan “Jika harga karcis per lembar Rp. 30.000,- , maka harga 5 lembar karcis adalah Rp. 150.000,-“ merupakan suatu keharusan logis. Kebenaran pernyataan ini terkandung dalam pernyataan itu sendiri, dan tidak tergantung pada suatu fakta. Inilah kebenaran dalam matematika, yaitu kebenaran yang relatif.
Dua pernyataan dikatakan logis ekivalen jika kedua pernyataan ini sesuai dalam kebenaran dan kesalahannya dan ini semata – mata didasarkan pada struktur logisnya. Misalnya, “Tidak ada sesuatu zat yang tidak organis dan tidak pula anorganis”. Pernyataan ini sama dengan pernyataan “Setiap zat adalah organis atau anorganis”.
Bukanlah suatu pekerjaan yang mudah untuk menentukan apakah suatu pernyataan logis atau benar ataukah dua pernyataan logis ekivalen, demikian pula apakah suatu pernyataan membawakan suatu pernyataan lain atau tidak. Studi dari hubungan logika matematika dengan pernyataan – pernyataan yang dinyatakan dalam hubungan kalimat ini dinamakan kalkulus proposisi (propositional calculus).
Kalkulus proposisi dapat digunakan untuk menentukan apakah sebuah kalimat adalah valid atau kontradiktif, dan apakah dua buah kalimat merupakan kalimat – kalimat yang ekivalen satu dengan lainnya.

MDAC - MIcrosoft Data Access Component


Microsoft Data Access Component (MDAC) adalah sekumpulan komponen yang merupakan kunci dari teknologi yang membangun aplikasi database. Aplikasi database client server baik itu yang berbasis web ataupun pada suatu LAN dapat menggunakan komponen-komponen ini untuk mengintegrasikan informasi dari berbagai macam sumber data, baik itu yang sifatnya relasional (SQL) maupun data yang tidak relasional komponen-komponen dalam MDAC diantaranya adalah 
1) Microsoft ActiveX Data Object (ADO)
2) OLE DB
3) OPEN Database Conectivity (ODBC)

Gambar berikut ini akan menunjukan secara keseluruhan mengenai arsitektur MDAC dan bagaimana MDAC ini menjadi kunci dakam membangun model UDA (Universal Data Access).





Berikut adalah penjelasan terkait MDAC

1) ActiveXData Object (ADO)
Microsoft ActiveX Data Object (ADO) adalah suatu Application Programming Interface (API) strategi yang khusus digunakan dalam pengaksesan data dan informasi. ADO memberikan cara yang konsisten, pengaksesan data dengan performa tinggi yang mendukung berbagai kepentingan untuk membangun sebuah aplikasi, termasuk dalam pembuatan aplikasi client database, tools, atau browser internet, ADO didesain sedemikian rupa untuk menjadi satu data interface yang dapat digunakan untuk kepentingan single dan client server serta aplikasi berbasis WEB. Keuntungan utama dari ADO adalah kemudahan dalam penggunaan, kecepatan tinggi dan penggunaan memory yang minimal.
Jika kita melihat posisi ADO pada gambar diatas. ADO berada diatas tekhnologi akses data yang lain dan memberikan dukungan data akses terhadap para developer.
ADO memberikan kemudahan interface dalam mengakses OLE DB. ADO menerapkan trafik jaringan secara minimal dan meminimalkan jumlah layar antara fron-end dan sumber data untuk memberikan interface yang ringan tetapi dengan performa yang tinggi. ADO sangat mudah digunakan karena berbasis interface COM automation yang saat ini sudah tersedia pada semua RAD development tools, dan bahasa-bahasa pemrograman di pasaran.

2) OLE DB
OLE DB adalah interface strategis programming pada level sistem untuk mengakses data. OLE DB adalah suatu spesifikasi terbuka yang didesain atas kesuksesan ODBC dengan memberikan suatu standar terbuka untuk mengakses berbagai macam data. ODBC dibuat untuk mengakses database relasional, sedangkan OLE DB di desain data relasional maupun non-relasional.
OLE DB digambarkan sebagai sebuah kumpulan dari COM interface yang mengendalikan berbagai macam service database management system. Interface ini memungkinkan pembuatan suatu komponen software yang digunakan oleh berbagai macam service. Interface OLE DB didesain untuk membantu komponen-komponen agar dapat berintegrasi secara mudah sehingga pembuat komponen OLE DB dapat mebuat komponen OLE DB bagi pengguna denagan kualitas yang baik dan cepat. Sebagai tambahan, OLE DB menawarkan suatu jembatan kepada ODBC untuk membah dukungan kepada driver database ODBC yang banyak ragamnya saat ini.

3) Open Database Connectivity (ODBC)
Interface Microsoft Open Database Connectivity (ODBC) adalah suatu standar industri saat ini dan merupakan komponen dari Mcrosoft Window Open Service Architecture (WOSA). Interface ODBC membuat aplikai-aplikasi dapat mengkases data dari berbagai macam database management system (DBMSs). ODBC mengijinkan interoperabilitas secara maksimal terhadap berbagai macam DBMS hanya dengan melaluisatu interface. Ini dapat dikatakan bahwa suatu aplikasi akan bejalan secara independen. Pengguna aplikasi dapat menambah suatu software komponen yang dinamakan driver, yang mana menciptakan suatu interface antara suatu aplikasi dan suatu DBMS spesifik.

4) OLE Automation
OLE (Object Linking and Embedding) adalah suatu protokol yang memungkinkan adanya komunikasi diantara beberapa aplikasi yang berbeda. Bagian dari OLE yang memungkinkan berbagai aplikasi saling berkomunikasi tersebut dikenal sebagai OLE Automation. Ada dua bentuk OLE  Automation yaitu OLE Automation Client dan OLE Automation Server.
OLE Automation Client dapat mengendalikan aplikasi lain yaitu OLE Automation Server. Dengan kata lain OLE Automation Client adalah suatu aplikasi yang dapat menggunakan berbagai objek beserta fungsi dan prosedurnya yang memang telah disediakan oleh OLE Automation Server. Untuk mengendalikan apikasi berbentuk OLE Automation Server tersebut. Protokol OLE dirancang berdasarkan arsitektur berbasis komponen yang disebut COM (Component Obyek Model)

Rabu, 25 Juli 2012

Pemodelan Perangkat Lunak

Saya sudah sering menulis tentang topik ini: pemodelan perangkat lunak, namun karena adanya kebutuhan untuk "mengumpulkan" tulisan-tulisan saya yang tersebar, menjadi lebih mudah dibaca, maka saya (kembalil) menulis topik ini.

Silahkan baca disini, bagi yang ingin mengetahui mengenai UML sebagai Bahasa Pemodelan Perangkat Lunak:

  1. UML dan Pemodelan Software: tulisan ini membahas mengenai jenis-jenis diagram yang ada pada UML, beserta kegunaannya, dan pada proses SDLC mana diagram itu dapat digunakan http://stanlysk.blogspot.com/2012/04/pemodelan-dengan-uml.html
  2. Model Sistem Perangkat Lunak: tulisan ini membahas tentang LINK official UML, serta maksud dan tujuan digunakannya UML sebagai alat pemodelan perangkat lunak. http://stanlysk.blogspot.com/2012/07/model-sistem-perangkat-lunak.html
  3. UML Use Case Diagram; bagian tulisan ini menjelaskan secara mendetail, langkah-langkah logis tertentu dalam memodelkan perangkat lunak, dengan pendekatan user-oriented dan menggunakan UML Use Case Diagram http://stanlysk.blogspot.com/2012/05/use-case-diagram.html
  4. Sequence Diagram; bagian tulisan ini menjelaskan secara mendetail, langkah-langkah logis tertentu dalam memodelkan perangkat lunak, dengan menggunakan UML Sequence Diagram  http://stanlysk.blogspot.com/2012/05/sequence-diagram.html
Bagi yang ingin melihat Video Tuturial tentang Pemodelan menggunakan UML, maka saya menganjurkan beberapa LINK Youtube dibawah ini:
1. Pengenalan tentang UML, klik disini: http://www.youtube.com/watch?v=FkRwbVUVFvE&feature=fvwrel

Tautan dibawah ini, adalah daftar tools yang bisa digunakan untuk menggambar model UML:








Senin, 23 Juli 2012

Model Sistem Perangkat Lunak



Pertanyaan pertama yang selalu muncul di benak pengembang perangkat lunak adalah "mengapa harus repot-repot membuat model sistem dari perangkat lunak yang akan dibangun?"

Memang, jika hanya melihat dari "satu sisi", maka langkah pemodelan sistem perangkat lunak, seperti membuang waktu. Namun demikian, pada kenyataannya, tidaklah demikian. Para pengembang perangkat lunak yang punya banyak "jam terbang" dan telah mengembangkan berbagai "model" akan menyetujui bahwa langkah pemodelan merupakan langkah yang penting dan strategis, dalam pengembangan perangkat lunak.

Sedikitnya ada beberapa alasan mengapa para pengembang "pemula" tidak memahami pentingnya langkah pemodelan perangkat lunak, diantaranya adalah:
1) terlalu banyak melibatkan pekerjaan "dokumentasi" perangkat lunak;
2) tidak menggambarkan persyaratan non - fungsional
3) tidak dapat menggambarkan keseluruhan aplikasi yang akan dikembangkan
4) jika modelnya terlalu "mendetail" maka justru akan membuat kebingungan.

Para pengembang "pemula" JUSTRU harus mengubah paradigma diatas, dengan meyakini bahwa model perangkat lunak, merupakan syarat penting untuk memulai kegiatan pengembangan perangkat lunak. Misalnya, dengan menggunakan model diagram, maka pengembang dapat "mengkomunikasikan" dengan pengguna, perihal perangkat lunak yang akan dikembangkan. Dari sisi pengembang, maka model perangkat lunak akan menjadi "panduan" pada langkah-langkah selanjutnya.

Banyak notasi yang dapat digunakan untuk memodelkan perangkat lunak, yang umum digunakan adalah:
Diagram Konteks,
Data Flow Diagram
Diagram Aktivitas
Diagram Use Case
Diagram Kelas
Diagram Sekuens
Diagram Navigasi

UML adalah salah notasi pemodelan yang umum digunakan dalam industri perangkat lunak. Untuk acuan RESMI dari notasi pemodelan UML, dapat mengklik tautan dibawah ini:
1. http://www.uml.org/
3. Document Associated with UML version 2.0:
4. UML version 2: In support on model driven development:


Sabtu, 21 Juli 2012

Catatan Seminar Sabtu, 21 Juli 2012

Hari ini, Sabtu 21 Juli 2012 kembali saya diminta untuk memberikan Seminar tentang Teknologi Informasi. Kali ini yang meminta saya adalah salah satu komunitas Kristen. Mereka meminta saya menerangkan tentang Pengaruh Teknologi Informasi, khususnya untuk generasi muda.

Berikut adalah LINK terkait materi saya tersebut:

1. Paradigma Kristen mengenai Teknologi Informasi; klik disini:
http://stanlysk.blogspot.com/2012/06/information-technology-christian.html

2. Tentang Perspektif Teknologi Informasi, klik disini:
http://stanlysk.blogspot.com/2012/04/perspektif-teknologi-informasi.html

3. Apa itu Web 2.0?, klik disini:
http://stanlysk.blogspot.com/2012/05/apa-itu-web-20.html
 
Demikian beberapa catatan saya terkait pelaksanaan Seminar kali ini. Semoga bermanfaat!

Jumat, 20 Juli 2012

Requirements Engineering

Apakah yang dimaksud dengan requiremens engineering tersebut?

Menurut pemahaman Ian Sommerville, software requirements adalah ...
Requirements engineering is the process of establishing: (1) the services that the customer requires from a system; (2) the constraints under which it operates and is developed
Jadi, pada dasarnya, requirements adalah proses dimana developer sistem/aplikasi mencoba untuk memahami secara jelas, apa yang diinginkan user (atau stakeholders) pada sistem/aplikasi yang ingin dikembangkan.
Perlu diperhatikan disini, bahwa proses requirements merupakan proses yang sangat krusial dalam pengembangan perangkat lunak. Apalagi jika kita berparadigma bahwa ukuran "kualitas" perangkat lunak yang akan dibangun itu adalah "sesuai dengan kebutuhan dan keinginan pengguna".
Yang menjadi tantangan disini adalah bagaiman pengembang dan pengguna dapat memiliki kesaman persepsi mengenai setiap services dan constraints dari perangkat lunak yang akan dikembangkan.

Software Requirements atau Persyaratan Perangkat Lunak daapt dibedakan menjadi:
1) User Requirements: 
statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers
2) System Requirements:
A structured document setting out detailed descriptions of the system services. Written as a contract between client and contractor
dan
3) Software Specification Requirements:
A detailed software description which can serve as a basis for a design or implementation. Written for developers

Dalam prakteknya, pendefinisian software requirements itu dilakukan dengan menggunakan berbagai model diagram, seperti misalnya UML Use Case Diagram, ataupuan Data Flow Diagram. Tujuan menggunakan notasi diagram adalah untuk "memudahkan" pemahaman antara user dan pengembang.


Proses pendefinisian perangkat lunak, bertujuan untuk "menyelesaikan" berbagai perbedaan antara pengembang dan pengguna seperti yang diilustrasikan pada gambar diatas.
Secara umum, software requirements sering dibedakan menjadi requirement fungsional, non-fungsional dan requirements domain.

Untuk penulisan dokumen Software Requirements Spesification (SRS) dapat mengacu pada standar IEEE, seperti yang ditulis selengkapnya disini:
http://asingh.com.np/blog/ieee-srs-recommendations/
atau bisa juga melihat tulisan blog disini:
http://techwhirl.com/skills/tech-docs/writing-software-requirements-specs/

Beberapa Contoh Template Dokumen SRS dapat diunduh disini:

Penjelasan Video Tutorial Pembuatan Software Requirements Specification, dapat dilihat disini:
http://www.youtube.com/watch?v=HcRQ8oLik18
dan, disini:
http://www.youtube.com/watch?gl=ID&v=_XTQjKhh6hQ

Semoga Bermanfaat ...

Rabu, 18 Juli 2012

Software Process

Apa yang dimaksud dengan Software Process?

Sejak tahun 1968, pengembangan perangkat lunak memasuki babakan baru dengan mengadopsi pendekatan system engineering. Pendekatan pengembangan perangkat lunak dengan system engineering bermakna bahwa perangkat lunak dikembangkan menurut kaidah keteknikan yang mengikuti urutan langkah-langkah logis tertentu. 

Dengan demikian, pengembangan perangkat lunak dapat dimodelkan menurut prinsip engineering tertentu. Model pengembangan perangkat lunak inilah yang disebut sebagai software process.
Sommerville mengartikan software process sebagai:
Software processes are the activities involved in producing and evolving a software system. They are represented in a software process model

Selanjutnya, Sommerville mengusulkan bahwa aktivitas umum dari Software Process tersebut adalah:
specification, design and implementation, validation and evolution.

Pressman, melihat software process dari sudut pandang praktis. Lihatlah sebuah Video tayangan berikut ini:


Pendekatan Pressman pada software process adalah communication, planning, modeling dan deployment.

Singkatnya, dalam memahami pengembangan perangkat lunak secara engineering, terdapat langkah-langkah logis yang berurutan tertentu (sebagai proses) yang akan menghasilkan perangkat lunak.

Menurut Sommerville,
terdapat beberapa software process yang berkembang sekarang ini, diantaranya adalah:
1) Model Waterfall
2) Model Perkembangan Evolutionary
3) Model Pengembangan Formal System
4) Model Pengembangan Guna-Ulang (reused-based)

Selanjutnya software process ini "diterjemahkan" menjadi langkah-langkah logis pada metodologi pengembangan perangkat lunak, seperti misalnya RAD, WebEng, RUP ataupun AUP.

Selasa, 17 Juli 2012

Pekerja TIK

ICT Worker atau Pekerja TIK adalah mereka yang menekuni bidang profesi dalam dunia Teknologi Informasi dan Komunikasi. PBB membedakan Pekerja TIK ini dalam dua kategori utama:
1) ICT Worker
2) ICT Enabled Worker


Perbedaan signifikan antara kedua jenis pekerja TIK ini adalah:
ICT Worker atau disebut juga ICT Professionals adalah individu yang memiliki kemampuan untuk menghasilkan karya cipta inovasi terkait bidang ICT. Yang termasuk kelompok ini misalnya para programmer atau system analyst yang dapat membuat produk software. 
ICT Enabled Workers atau disebut juga ICT Users adalah individu yang memiliki kemampuan untuk menggunakan/memakai produk-produk TIK. Misalnya adalah individu yang dapat menggunakan Aplikasi Microsoft Office Excel dalam membuat laporan keuangan.

Pendidikan Tinggi diharapkan dapat menghasilkan kedua jenis pekerja TIK ini untuk menjawab kebutuhan dunia-kerja yang ada. Kualitas sumber daya manusia dalam bidang TIK, dapat dibedakan dalam kedua bagian besar tersebut diatas.

Senin, 16 Juli 2012

Jurnal Teknik Informatika Unsrat

Akhirnya ...

setelah menunggu beberapa waktu lamanya (tidak terlalu lama pastinya) Jurnal Teknik Informatika Universitas Sam Ratulangi mendapat ISSN. (Lihat Gambar dibawah)


Dengan adanya Surat Keputusan ISSN ini, maka secara legal, Jurnal Teknik Informatika Universitas Sam Ratulangi, sudah dapat diterbitkan.

Pihak pengelola e-Jurnal Universitas Sam Ratulangi sendiri telah memberikan "space" untuk Jurnal Teknik Informatika Unsrat disini:
http://ejournal.unsrat.ac.id/index.php/informatika

Tentu saja, kehadiran Jurnal Teknik Informatika (untuk pertama kalinya dalam sejarah Universitas Sam Ratulangi) merupakan kebanggaan tersendiri bagi segenap Civitas Academica Informatika Unsrat.

Semoga dapat dimanfaatkan untuk kemajuan keilmuan informatika ...

Peran strategis TIK

Apa sebenarnya peran Teknologi Informasi dan Komunikasi?
Gambar dibawah menjelaskan dengan singkat sebuah "proses" berkesinambungan dari TIK (atau ICT - Information and Communication Technology) dalam mendukung "menciptakan" keunggulan kompetitif suatu bangsa.



Pada dasarnya, keunggulan suatu bangsa dapat dibedakan menjadi dua jenis:
1) keunggulan komparatif
2) keunggulan kompetitif

Yang dimaksud dengan keunggulan komparatif itu adalah keunggulan karena sumber daya alam. Misalnya dapat kita contohkan disini adalah posisi geografis Indonesia yang strategis, karena merupakan "titik persilangan" dalam pelayaran laut internasional, menghubungkan Atlantik dan Pasifik. Ini merupakan keunggulan komparatif. Dapat kita contohkan disini juga adalah kekayaan sumber daya alam Indonesia, yang beragam jenisnya dan tersebar meluas di Nusantara, mulai dari minyak bumi, gas alam, besi bahkan uranian dan plutonium. Ditambah dengan "daerah tropis", yang membuat tanah Indonesia relatif lebih subur.

Tpi, kemajuan suatu bangsa, tidak hanya ditentukan dari keunggulan komparatif saja. Juga dibutuhkan keunggulan kompetitif; yang saya contohkan pada gambar diatas adalah "kualitas" sumber daya manusia, menyangkut penguasaan pengetahuan dan kompetensi. Dimana, peran Perguruan Tinggi menjadi strategis, karena "memiliki" proses bisnis yang dapat menciptakan keunggulan sumber daya manusia, menyangkut "learning process" yang berkelanjutan.

Pada dasarnya, proses belajar (atau learning process) itu adalah proses "mengakuisis" pengetahuan. Dimana, pengetahuan ini, memiliki bahan dasar yang disebut informasi (sebagai kumpulan data yang bermakna/berarti). Peran perguruan tinggi atau higher education disini adalah dalam mendampingi (dan membentuk) sumber daya manusia agar secara efisien dapat mengolah informasi untuk pengetahuan dan trampil "menggunakan" pengetahuannya dalam bentuk kompetensi (atau penguasaan ketrampilan teknis tertentu). Pengetahuan dan kompetensi adalah dua hal mendasar yang "menciptakan" kuatlitas sumber daya manusia.

Tentu saja, menciptakan "learning model" yang cepat dan berkarakter menjadi peran utama dari Perguruan Tinggi (terutama para dosen, di garis depan); sehingga peserta didik dapat meng-akuisisi pengetahuan dan memiliki kompetensi tertentu terkait bidang keilmuan yang dipelajari.

Learning Model harus didasari pada "ability on accessing and managing information as source of knowledge". Jadi isu dari learning model ada dua: accessing dan managing informasi. Peran TIK ada pada dua hal ini: (1) bagaimana mengakses informasi yang tepat sasaran dan (2) bagaimana mengelola informasi tersebut, sehingga "lebih cepat" menghasilkan pengetahuan dan kompetensi ...

Jumat, 13 Juli 2012

Pengantar Rational Unified Process (RUP)

Rational Unified Process sebagai suatu kerangka kerja, makin banyak diminati di lingkungan akademis. Dalam artian, makin banyak para mahasiswa yang ingin menyelesaikan Tugas Proyek, Kerja Praktek bahkan Tugas Akhirnya dengan menggunakan framework Rational Unified Process (RUP). Tentu saja, hal ini merupakan perkembangan yang baik.

(sumber gambar: http://www.ibm.com/developerworks/rational/library/content/03July/1000/1156/1156_fig1.gif) 

Namun, minat yang makin meningkat dalam mengimplementasikan RUP juga harus dibarengi dengan pemahaman teori yang baik mengenai kerangka kerja tersebut.

Berikut ini adalah sebuah link acuan (berbasis slide kuliah) mengenai kerangka kerja RUP tersebut:

Tautan tersebut diatas dikeluarkan oleh Fakultas Ilmu Komputer - Universitas Indonesia. Referensi acuan yang dipakai adalah Rational Unified Process version 2003.06.12.01; sedangkan untuk buku acuan yang digunakan adalah Applying UML and Patterns: An Intriduction to Object-oriented Analysis and Design and the Unified Process karangan Craig Larman, Prentice Hall, 2002 ISBN: 0-13-092569-1

Untuk proses analisis dan disain menggunakan kerangka kerja RUP, biasanya akan menghasilkan beberapa dokumen tertentu; yakni:
RMP atau Requirement Management Plan
STRQ atau Stakeholder Request
Vision
Use Case Diagarm
Use Case Spesification
Supplementaru Spesification
Glossary

Dokumen-dokumen diatas merupakan dokumen standar yang harus dihasilkan pada fase inception, elaboration dan construction.

Disamping itu, apabila menggukan tool Rational Rose, maka, "proses" pendefinisian perangkat lunak yang akan dibangun juga harus menghasilkan dokumen:
Attribute Matrix All Features
Attribute Matrix Stakeholder Request
Attribtue Matrix Supplementary Spesification

dilengkapi dengan,
Traceability Stakeholder Needs VS Features
Traceability Features VS Use Case
Traceability Features VS Supplementary

Link dibawah ini adalah sebuah contoh penulisan dokumen-dokumen tersebut diatas:
https://docs.google.com/open?id=0BxSxy7HfW5oJNER6d1hibU5udVE

Link dibawah ini adalah sebuah Metodologi PAUS yang merupakan "modifikasi" gabungan dari RUP dan Agile:
http://ecl.cs.ui.ac.id/PAUS/index.htm

Semoga bermanfaat dan Selamat Belajar !!!

Selasa, 10 Juli 2012

Masalah Interoperability

Masalah "interoperability" antar tools sepertinya selalu menggerogoti hidup para developer aplikasi. Lihat saja, yang saya alami baru-baru ini. Saya memiliki Microsoft Visual Studio 2008 (original) yang sering saya gunakan untuk mendevelop aplikasi dalam bahasa C++ dan C#. Kesulitannya mulai terasa saat harus mengerjakan aplikasi dalam skala enterprise; yakni saat akan mengintegrasikan model arsitektur aplikasi dengan "working code" ataupun "test code".

Berikut ini adalah kutipan-kutipan dari forum komunitas MSDN:
-------------------------------------------------------------------------------------------
Halo, 
Saya memiliki pertanyaan tentang praktek desain UML dalam NET. 
Apa UML alat yang direkomendasikan untuk digunakan untuk NET dan. VS 2008? 
Apakah ada sesuatu seperti RationlRose untuk. NET? Menggunakan "Rational Rose 2003" Saya belum menemukan "C #" model, misalnya dengan ... 
ada juga IBM Rational Rose Developer untuk Visual Studio , tetapi memiliki "integrasi terbatas dengan VS 2003 dan 2005" ... 
Saya tidak Shure jika alat ini harus atau tidak untuk diintegrasikan di VS, saya pikir tidak penting ... 
Apa yang Anda gunakan? 
By the way, saya ingin jika memungkinkan untuk mengimpor diagram kelas VS (. Cd) ke lingkungan UML
. 

-------------------------------------------------------------------------------------------------------------
Jika Anda bertanya kepada saya pertanyaan itu dalam kurun waktu 2003 Studio Visual maka saya pasti akan mengatakan XDE Rasional untuk Visual Studio adalah pilihan terbaik. Hari ini, sejak IBM membeli Rasional dan produk XDE tidak pernah direvisi untuk Visual Studio 2005 atau 2008, jawabannya kurang jelas.

IBM tidak menjual produk yang disebut IBM Rational Software Architect meskipun tanpa plugin. BERSIH (lebih banyak uang untuk itu) alat ini hanya mendukung Java dan C + +.
Aku benar-benar dibeli pada gagasan dari Rasional Lingkungan Pengembangan eXtended (XDE) di mana pemodelan dibangun ke IDE.Tampaknya meskipun bahwa IBM adalah hanya tertarik memberikan janji bahwa jika membangun Eclipse yang. NET pengembang benar-benar tidak mungkin untuk bermigrasi ke Visual Studio ketika tendangan Eclipse dalam segala hal.
Tolong beritahu saya jika Anda tahu dari alat lain UML besar meskipun ...
- Doug
---------------------------------------------------------------------------------------------------------------
Saya mencoba untuk mencari tahu hal yang sama.
Saya akan berbagi penemuan saya terbaru dan quandaries.
VS 2003 memiliki SKU disebut Enterprise Architect. Ini seharusnya memiliki alat pemodelan yang kuat.
Sekarang ada SKU disebut Studio Team System 2008 Edisi Visual Arsitektur tapi saya tidak bisa mendapatkannya dari uber-MSDN langganan saya. Aku benar-benar ingin melihat apa yang dilakukannya.
Kemudian, "fungsionalitas pemodelan kuat" itu harus digulung menjadi VS Edisi Tim SKU dimulai dengan '05 dan mungkin melanjutkan '08.
Jadi, saya menginstal Visual Studio Team System 2008 Team Suite bersama dengan Visio Pro 2007. Saya bahkan tidak bisa "balik" proyek (alat yang mengubah kelas C # untuk UML). Pada VS08, "Proyek / Visio UML" pilihan tidak hadir dan tidak ada "Visio UML" Toolbar. Aku agak bingung.
Namun, saya BISA "balik" menggunakan VS05 Professional Edition dengan Visio Pro 2007. Kedua pilihan menu tersebut dan toolbar yang terlihat dalam VS05 PE.
Berikut adalah link mengenai "reverse engineering" alat: http://office.microsoft.com/en-us/visio/HP815507451033.aspx
Ia melakukan pekerjaan yang bagus untuk menciptakan kelas-kelas dan interface UML dari kode C #.
Namun, tampaknya tidak menjadi alat siklus hidup penuh. misalnya saya tidak dapat membuat perubahan pada UML dan memilikinya menghasilkan kode.
BISA SOMEOME DARI MICROSOFT SILAKAN POST PETA JALAN INI macam TECHNOLOGIES DAN ALAT DAN MENJELASKAN APA FUNGSIONALITAS ADALAH SAAT YANG SKU DAN / ATAU KOMBINASI PRODUK?
Banyak terima kasih!
TerryMcP
----------------------------------------------------------------------------------------------
Jawaban singkat:   Reverse engineering dari kode ke model Visio UML bekerja dengan kombinasi Visio Pro 2007 dan Visual Studio Team System untuk Arsitek Software 2005. Tidak bekerja dengan Visio Pro 2007 dan Visual Studio Team System Arsitektur Edisi 2008. Namun, Visio Pro 2007 tidak memungkinkan Anda untuk melakukan reverse engineering dari database.
Mengapa?:   Kemampuan untuk membalikkan kode insinyur sekarang disediakan oleh semua versi dari Visual Studio dalam bentuk desainer kelas di mana kode ini terus disinkronkan dengan model. Fungsi pemodelan tambahan akan disediakan dalam Team System Visual Studio di masa depan.  
David Trowbridge | Grup Manajer Program | Visual Studio Team System Arsitektur Edition | Microsoft 
ADUH!

----------------------------------------------------------------------------------------------

Kutipan-kutipan diatas, makin memperkuat dugaan saya tentang "masalah interoperability" antar tool. Konektivitas UML DIagram dengan IDE Microsoft Visual Studio ternyata baru mulai "terjadi" pada lingkunga IDE Microsoft Visual Studio 2010 untuk Professional Edition.

Mungkin, sudah tiba waktunya Microsoft mulai  mengejar "ketertinggalan" dengan IDE lainnya (yang berbasis FREE), dengan mengintegrasikan kemampuan forward engineering dan reverse engineering-nya.

Belum lagi, dalam persoalan menggunakan framework ataupun metodologi pengembangan ... Saya belum pernah menemukan IDE yang terintegrasi seluruh proses SDLC-nya dengan berbagai kerangka kerja ... apalagi untuk Formal Methods ...

Saya kira a long road head masih harus dijalani oleh para developer ...


Senin, 09 Juli 2012

Kelas di Abad ke-21

Implementasi Teknologi Informasi untuk mendukung proses belajar mengajar semakin meluas. Menurut hemat saya, salah satu peranan penting berbagai produk Web 2.0 dalam mendukung proses belajar mengajar adalah mendorong suasana kolaborasi antar mahasiswa/siswa dengan mahasiswa/siswa, dan antar mahasiswa/siswa dengan guru/dosen.

Penelitian yang serius mengenai memanfaatkan Web 2.0 untuk kepentingan pendidikan mulai marak dilakukan. Tantangannya adalah bagaimana mengklasifikasikan produk Web 2.0 sesuai manfaat masing-masing dengan kurikulum terkini. Untuk area program studi Teknik Informatika sendiri, sudah "terlebih" dahulu hadir secara nyata, misalnya yang ditunjukkan oleh Khan Academy ataupun EdX.

Berikut adalah sebuah ilustrasi suasana ruangan kelas abad ke-21:


Meskipun banyak pihak yang menyambut baik perkembangan ini, studi lebih lanjut tentang manfaat yang dapat diperoleh harus digencarkan. Riset-riset terkini mengenai topik ini akan berkisar pada "pengukuran" besar manfaat yang diperoleh pada setiap stakeholders pendidikan. Apakah manfaatnya hanya akan berkisar pada efisiensi, efektivitas ataupun hingga strategic competitive value. Terlebih, apakah manfaatnya bisa menciptakan sumber daya manusia yang lebih superior dibandingkan generasi sebelumnya?


Jumat, 06 Juli 2012

UML di IDE Netbeans


(Gambar diambar dari javastudy.wordpress.com)


Setelah sedikit mengutak-atik Netbeans Community, akhirnya saya mendapat kabar kalo UML sudah bisa digunakan di IDE Netbeans 6.9.1. Biasanya saya menggunakan Rational Rose untuk membuat model diagram UML, tapi akhirnya saya "tergoda" juga untuk menggunakan IDE Netbeans.

Sedikit perbedaan adalah, pada Rational Rose, disediakan fitur untuk menggambar diagram2 UML yang lebih lengkap, sedangkan untuk IDE Netbeans hanya disediakan Class Diagram, Activity Diagram, Use Case Diagram, Sequence Diagran dan State Diagram. Dari sudut pandang seorang dosen, maka saya mengatakan bahwa diagram2 tersebut sudah cukup untuk digunakan dalam perkuliahan maupun sebagai bagian dari Laporan Tugas Proyek dan Tugas Akhir.

Fitur click-and-drag yang disediakan Netbeans dalam menggambar UML Diagram, tentu saja memberikan kemudahan tersendiri bagi para pengguna IDE ini. Ditambah dengan fitur "reverse engineering" yang akan memudahkan kita untuk men-generate code dari diagram2 yang telah kita gambar.

Berikut ini adalah petunjuk instalasi Plug In UML:

Berikut ini adalah Petunjuk Pemakaian UML di Netbeans:

Berikut ini adalah Video Petunjuk Penggunaan UML di Netbeans:

Untuk yang ingin mengetahui UML secara lebih mendalam melalui Video, dapat melihat link ini:


Kamis, 05 Juli 2012

Internetware

Hong Mei, Gang Huang dan Tao Xie dari Peking University - Cina mengusulkan sebuah paradigma baru dalam pengembangan perangkat lunak berbasis web; yakni INTERNETWARE. Trio peneliti dari Peking University tersebut mengemukakan paradigma Internetware di Majalah Computer (June 2012 (Vol. 45, No. 6) pp. 26-310018-9162/12/$31.00 © 2012 IEEE; Published by the IEEE Computer Society)

Apa yang dimaksud dengan Internetware menurut Hong Mei, Gang Huang dan Tao Xie dari Peking University tersebut? Internetware adalah software paradigm (atau disebut juga programming paradigm) yang menyediakan sekumpulan teknologi dalam mengembangkan aplikasi untuk memenuhi persyaratan-persyaratan dalam lingkungan implementasi berupa internet.

Argumentasi mereka adalah ...
Software on the Internet differs from traditional software in terms of its form, structure, and behavior. Consequently, software applications (including software entities and their interactions) for Internet computing should be autonomous, cooperative, situational, evolvable, emergent, and trustworthy

Jadi, dari sudut pandang bentuk, struktur dan perilaku perangkat lunak di internet (misalnya web services) jika dibandingkan dengan aplikasi tunggal ataupun clien-server (LAN) memiliki perbedaan yang cukup tajam. 
Internetware harus memenuhi beberapa aspek terkait:
1) Software Model (what to be)
2) Software Operating Platform (how to run)
3) Engineering Approach (how to do)
4) Quality Assessment (how well)


Gambar diatas menunjukkan bagaimana para peneliti di China mengembangkan teknologi untuk mendukung internetware.

Yang diusulkan oleh rekan-rekan peneliti di China merupakan suatu terobosan dalam perkembangan keilmuan teknologi informasi. Tentu saja, perkembangan internet yang sedemikian pesat, membuat paradigma internetware mulai keliatan masuk akal. Kesediaan infrastruktur "keras" seperti konektivitas kabel maupun broadband, merupakan prasyarat mutlak dalam mengimplementasikan paradigma internetware.
Mungkin pada level universitas, seperti Universitas Sam Ratulangi, sudah dapat mengimplementasikan paradigma internetware dalam blue print pengembangan infrastruktur yang mendukung sistem penyelenggaraan universitas.

Catatan:
Tulisan ini adalah adaptasi dari Majalah Computer Edisi Juni 2012, yang berjudul Internetware: A Software Paradigm for Internet Computing.

Tentang para penulis dapat dilihat dibawah ini:
Hong Mei is a professor in the School of Electronics Engineering and Computer Science, Peking University, China. His research interests include software engineering, software reuse, distributed object technology and middleware, and programming languages. Mei received a PhD in computer science from Shanghai Jiaotong University. He is a senior member of IEEE. Contact him at meih@pku.edu.cn.
Gang Huang is a professor in the School of Electronics Engineering and Computer Science, Peking University. His research interests include software engineering, particularly software architecture and middleware. Huang received a PhD in computer science from Peking University. He is a member of IEEE. Contact him at hg@pku.edu.cn.
Tao Xie is a visiting professor in the School of Electronics Engineering and Computer Science, Peking University, and an associate professor in the Department of Computer Science at North Carolina State University. His research interests include software engineering, particularly software testing, program analysis, and software analytics. Xie received a PhD in computer science from the University of Washington, Seattle. He is a member of IEEE and a senior member of ACM. Contact him at xie@csc.ncsu.edu.

Tata Kelola TI

Pada dasarnya, Tata Kelola TI (diterjemahkan dari IT Governance) adalah bagaimana melakukan pengelolaan yang optimal bagi sumber daya SI/TI yang dimiliki organisasi. Pengelolaan yang optimal ini berkaitan dengan peranan SI/TI yang memberikan manfaat bagi organisasi termasuk mengendalikan setiap resiko yang ada. Implementasi tata kelola TI diharapkan dapat memberikan manfaat bagi organisasi.

Menurut Grembergen[1] tata kelola TI adalah kapasitas organisasi sebagai tanggung jawab direksi, manajemen eksekutif, dan manajemen teknologi informasi untuk mengendalikan rumusan dan implementasi strategi SI/TI untuk memastikan selarasnya sumber daya SI/TI dengan bisnis organisasi. Grembergen menekankan pengertian tata kelola TI pada bagaimana organisasi memandang, mengelola dan mengoptimalkan sumber daya SI/TI yang dimilikinya dalam mendukung tujuan organisasi.


Menurut Weill dan Ross[2], tata kelola TI adalah mengenai pengelolaan hak-hak dalam pengambilan keputusan dan kerangka kerja yang dapat dipertanggungjawabkan untuk mendorong terwujudnya hal-hal yang diharapkan dalam penggunaan SI/TI. Weill dan Ross[2] mengusulkan lima pilar utama dari tata kelola TI yang perlu untuk dikelola oleh seluruh stakeholders organisasi. Kelima pilar tata kelola TI tersebut adalah IT Principles, IT architecture, IT Infrastructure, IT Business Application Needs,  IT Investment. (Lihat Gambar 1).

Grembergen[1] mengatakan bahwa tantangan krusial tata kelola TI sekarang ini adalah bagaimana memastikan bahwa penerapan tata kelola TI pada suatu organisasi dapat memberikan manfaat bisnis yang optimal dari setiap investasi SI/TI yang dilakukan. Manfaat bisnis ini harus dapat terukur dengan jelas.

Rabu, 04 Juli 2012

Source Code Review

Yang namanya seorang software engineer pastinya sudah kenal dengan source code review. Terlebih bagi mereka yang berkecimpung dalam dunia software testing. Software testing, sebagai bagian dari daur hidup pengembangan perangkat lunak, sebenarnya adalah "kunci" dari dihasilkannya perangkat lunak yang berkualitas.

Tren yang saya amati sekarang ini, hampir semua hasil tugas project, laporan kerja praktek dan bahkan karya akhir mahasiswa yang mengambil topik software development, sering "mengabaikan" tahap software testing. Beberapa laporan bahkan tidak mencantumkan sama sekali kalau pernah melakukan prosedur pengujian perangkat lunak. Sebagian hanya mencantumkan pengujian fitur antar muka. Jarang, bahkan hampir tidak ada yang melampirkan dokumen, telah melakukan source code review. Hal ini tentu saja, sangat memprihatinkan.


Memang harus diakui, diperlukan ketrampilan khusus dalam melakukan source code review. Dan untuk level pengguna, biasanya tidak ada yang dapat melakukan source code review. Bahkan untuk level profesional TI sekalipun, tugas melakukan source code review itu sangat melelahkan. Tentu saja, secara ideal, diperlukan tim khusus untuk melakukan source code review.

Secara umum, source code review dapat dilakukan secara otomatis dan manual. Static Code Analysis, dapat dilakukan dengan penekanan pada me-review source code menurut predefined rules tertentu. Static Code Analysis adalah contoh dari source code review secara otomatis. Tujuan utamanya adalah untuk menemukan bugs dan security flaws sedini mungkin pada aplikasi yang akan di-released. Melakukan static code analysis merupakan suatu keharusan dalam pengujian aplikasi sebelum di-released. Sayangnya, static code analysis tidak dapat mendeteksi malicious code yang ditambahkan/diselipkan oleh attacker.

Manual Code Review, memiliki kemampuan untuk mendeteksi malicioius code atau perilaku sistem aplikasi yang tidak diinginkan. Kelemahnnya adalah merupakan suatu pekerjaan yang sangat memakan waktu apabila baris code yang harus diperiksa sangat panjang dan banyak.

Teknik source code review yang baik adalah yang sesuai dengan target pengembangan sistem perangkat lunak yang akan dikembangkan. Dengan perkembangan IDE yang semakin handal, maka pekerjaan melakukan software testing menjadi relatif lebih ringan. Meskipun demikian, esensi kompetensi dasar seorang software tester tidak berubah: ketahanan, ketajaman dan ketepatan.

Berikut ini adalah link terkait tools yang dapat digunakan untuk melakukan static code analysis:

Dibawah ini, dapat dilihat perbandingan IDE pengembangan aplikasi:

Sedangkan dibawah ini, terdapat link menuju Portal Software Testing: