Jumat, 24 Agustus 2012

Kalkulus, Oh Kalkulus ...

Perkuliahan semester ganjil TA 2012/2013 di Prodi Teknik Informatika, Fakultas Teknik, Universitas Sam Ratulangi, dimulai dengan sedikit berbeda. Disamping banyaknya peminat dan mahasiswa baru yang masuk (sekitar 160-an maba), saya juga dipercayakan untuk mengampu mata kuliah Kalkulus.

Sebenarnya, Kalkulus dalam dunia Informatika ada dua; 1) Kalkulus Klasik (atau Newtonian) dan 2) Kalkulus Ilmu Komputer. Kalkulus Klasik berhubungan dengan "preciseness" atau ketepatan, sedangkan Kalkulus Ilmu Komputer (diberi nama mata kuliah: Logika Informatika) berhubungan dengan "validity" atau pembuktian kebenaran.


Cakupan pembahasan materi Kalkulus Klasik, dimulai dengan Teori Bilangan, hingga konsep dan penerapan Limit, Turunan dan Integral. Kesemuanya diarahkan untuk memberikan dasar "kompetensi" untuk mata kuliah Metode Numerik (atau Komputasi Numerik). Inti pembahasannya adalah PRECISENESS, atau dengan kata lain, bagaimana mengelola ERROR.

Cakupan pembahasan materi Kalkulus Ilmu Komputer, berkisar pada Logika Proporsional, Logika Predikat dan "berbagai" metode pembuktian kebenaran yang ada. Seperti ditulis sebelumnya, aspek VALIDITY merupakan fokus bahasan mata kuliah ini.

Kedua mata kuliah ini, merupakan dasar bagi setiap mereka yang ingin menekuni keilmuan informatika, rekayasa perangkat lunak dan teknologi informasi. Kepentingan pemahaman teori kedua "jenis" Kalkulus ini merupakan suatu mandatory bagi para mahasiswa yang menekuni keilmuan Informatika ini.


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: