Sabtu, 31 Maret 2012

Komputasional semantic

Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Hal ini ialah apa yang disebut dengan teori komputasi, suatu sub-bidang dari ilmu komputer dan matematika. Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan komputer.

Semantik (dari Bahasa Yunani: semantikos, memberikan tanda, penting, dari kata sema, tanda) adalah cabang linguistik yang mempelajari makna yang terkandung pada suatu bahasa, kode, atau jenis representasi lain. Dengan kata lain, Semantik adalah pembelajaran tentang makna. Semantik biasanya dikaitkan dengan dua aspek lain: sintaksis, pembentukan simbol kompleks dari simbol yang lebih sederhana, serta pragmatika, penggunaan praktis simbol oleh komunitas pada konteks tertentu. (Wikipedia)

    Dari masing-masing pengertian diatas kita bisa mendapatkan definisi bahwa komputasional semantic adalah pemecahan masalah pada sebuah kode/symbol melalui proses computer dimana mengandung suatu makna/arti yang sederhana maupun rumit yang selanjutnya diterjemahkan kedalam bahasa pemrograman dimana bertujuan untuk dikelompokkan menjadi bermacam-macam karakter agar mudah dan diketahui artinya.

WEB SEMANTIC
Image
Web semantic merujuk kepada kemampuan aplilkasi komputer untuk lebih memahami bahasa manusia, bukan hanya bahasa yang baku dari para penggunanya tetapi juga bahasa yang lebih kompleks, seperti dalam bahasa percakapan sehingga memudahkan penggunanya untuk berkomunikasi dengan mesin.. Web semantik dapat mengolah bahasa dan mengenali homonim, sinonim, atau atribut yang berbeda pada suatu database.
Istilah web semantik itu sendiri diperkenalkan oleh Tim Berners-Lee, penemu World Wide Web. Sekarang, prinsip web semantik disebut-sebut akan muncul pada Web 3.0, generasi ketiga dari World Wide Web. Bahkan Web 3.0 itu sendiri sering disamakan dengan web semantik. Web semantik menggunakan XML, XMLS (XML Schema), RDF, RDFS (Resources Description Framework Schema) dan OWL.
Jika HTML dan Web membuat semua dokumen online tampak seperti buku besar, RDF, skema, dan kesimpulan bahasa akan membuat semua data di dunia tampak seperti database besar”
Tim Berners-Lee, Weaving the Web, 1999 Tim Berners-Lee, Tenun Web, 1999
RDF (Resource Description Framework) adalah bahasa untuk mendeskripsikan informasi dan sumber daya di web.
Menempatkan informasi ke file RDF, memungkinkan program komputer ( “web spider”) untuk mencari, menemukan, mengambil, mengumpulkan, menganalisis dan memproses informasi dari web.
Semantic Web yang menggunakan RDF untuk mendeskripsikan sumber daya web.
Web semantik adalah teknologi web yang berkembang saat ini. Teknologi ini dikembangkan berbasis RDF format. Basis data dapat dijadikan acuan untuk pembuatan metadata, namun BibTex file dapat juga dijadikan acuan untuk pembuatan web semantik. Dengan menggunakan format XML yang merupakan dasar pembentukan metadata (RDF), maka berdasarkan format tersebut metadata dapat didistribusikan atau di simpan dalam domain yang beragam, data yang tersimpan berupa BibTex file di konversi ke format RDF, selanjutnya dengan menggunakan sesame metadata di load pada file index, SeRQL selanjutnya melakukan query terhadap metadata yang telah di load untuk ditampilkan di browser.
Semantik sebuah bahasa menggambarkan hubungan antara sintaks dan model komputasi. Semantik : aturan-aturan untuk menyatakan arti dalam sebuah pemrograman.Sederhananya, semantik menjelaskan arti dari program.
            Analoginya sebagai berikut. Apabila kita memakai sintaks [subyek] + [kata kerja] + [kata benda], kita bisa menghasilkan kalimat-kalimat.
Apabila kita mengasilkan kalimat Saya makan nasi, maka kalimat ini memenuhi aturan sintaks. Tapi, apabila saya membuat kalimat Saya makan batu, secara sintaks kalimat ini sudah benar. Namun, secara semantik, kalimat ini tidak mengandung makna yang berarti.
Dalam hubungannya dengan bahasa pemrograman, kadang ada kalanya seorang programmer tidak bisa mengaitkan sintaks dengan model komputasi. Kesalahan logika bisa dengan mudah terjadi.
Sebagi contoh ada bahasa pemrograman sebagai berikut:
if(a=5) {
echo ‘Nilai a=5′;
}
Apabila program ini dijalankan, apa yang terjadi? Bergantung bahasa apa yang digunakan. Apabila bahasa yang dipakai adalah bahasa C, maka output yang keluar selalu Nilai a=5, walaupun nilai variabel a sebelumnya selain 5. Kenapa itu bisa terjadi? Itu karena operator ‘=’ dalam bahasa C berarti mengassign sebuah variabel yang ada di sebelah kiri dengan nilai yang ada di sebelah kanan. Dalam bahasa C, secara sintaks operasi ini sudah benar.
Tapi, apabila yang dimaksud adalah programmer ingin mengevaluasi nilai variabela, maka seharusnya memakai operator logika ‘==’. Jadi, program yang sebenarnya menjadi
if(a==5){
echo ‘Nilai a=5′;
}
KONSEP SEMANTIKS BAHASA PEMROGRAMAN
•   Semantik mendefinisikan arti dari program yang benar secara syntax dari bahasa tersebut.
•   Semantik suatu bahasa membutuhkan semacam expressi untuk mengirimkan suatu nilai kebenaran (TRUE, FALSE, NOT atau nilai INTEGER)
PENDEKATAN SYNTAX DIRECTED TRANSLATION
•   Syntax merupakan kumpulan aturan yang mendefinisikan suatu bentuk bahasa dan mendefinisikan bagaimana suatu kalimat dibentuk sebagai barisan/urutan dari pemilihan suatu kata dasar.
•   Syntax tidak mengerti apap pun tentang isi atau arti dari suatu kalimat; aturan SEMANTIC yang mengartikannya.
PENDEKATAN SYNTAX
DIRECTED TRANSLATION
Contoh deklarasi dalam bahasa C :
            if (a>b) max = a ; else max = b ;
§   Ekspressi a > b harus di evaluasi, dan tergantung dari nilai ini, satu dari dua statemen di belakangnya akan dieksekusi.
§   Aturan syntax memberikan bentuk pada statemen tersebut di mana dengan tepat meletakkan tanda “;” sehingga aturan semantic dapat mengartikannya dengan benar.
TEKNIK-TEKNIK PENDESKRIPSIAN SEMANTIK BAHASA PEMROGRAMAN
A.    Operational Semantic
B.      Denotational Semantic
C.    Axiomatic Semantic
D.    Algebraic Semantic
E.      Structured Operational atau
            Natural Semantic
TEKNIK-TEKNIK PENDESKRIPSIAN SEMANTIK BAHASA PEMROGRAMAN
A.  OPERATIONAL SEMANTIC
            Pendekatan ini mendefinisikan suatu mesin buatan (Abstract) dengan instruksi-instruksi primitif, tidak perlu realistik, tetapi cukup sederhana supaya tidak muncul kesalahpahaman. Deskripsi semantic dari bahasa pemrograman menentukan suatu translasi ke kode.
B. DENOTATIONAL SEMANTIC
            Pada pendekatan ini, diberikan suatu fungsi yang memetakan program-program komputer yang ditunjuk ke dalam bentuk nilai-nilai abstrak secara matematika (angka, nilai, kebenaran, fungsi matematika, dan sebagainya)
C. AXIOMATIC SEMANTIC
            Pada pendekatan ini didefinisikan suatu tindakan program yang dibangun dengan properti logika yang menyimpan status komputer sebelum dan sesudah eksekusi
D. ALGEBRAIC SEMANTIC
            Pada pendekatan ini dipertimbangkan suatu objek komputasi yang menjadi syarat-syarat dalam aljabar multi-sorted. Program meng-implementasikan fungsi yang dapat diwujudkan dengan suatu persamaan di antara syarat-syarat tersebut.
E. STRUCTURED OPERATIONAL atau  NATURAL SEMANTIC
             Seperti dalam pengambilan keputusan  secara alamiah dengan logika. Program diberi suatu arti dari aturan yang  diturunkan yang menggambarkan  penilaian gagasan suatu bahasa.

Rabu, 28 Maret 2012

Cloud Computing

Jika diartikan cloud computing adalah komputer awan. Seperti yang ada di Wikipedia bahwa cloud computing itu adalah gabungan dari pemanfaatan teknologi (komputasi) dan pengembangan berbasis internet (awan). Cloud computing merupakan sebuah metode komputasi dimana kemampuan TI disediakan sebagai layanan berbasis internet.
Biar lebih paham lagi tentang cloud computing itu sendiri, saya kasih gambaran sederhananya. Kita bisa bayangkan cloud computing itu seperti sebuah jaringan listrik. Jika kita butuh listrik, kita tidak harus punya pembangkit listrik. Kita hanya perlu menghubungi penyedia layanan listrik, yaitu PLN untuk menyambungkan rumah kita dengan jaringan listrik dan kita tinggal menikmatinya saja. Dan pembayaran kita lakukan sesuai dengan besaran pemakaiannya.
Kalau listrik aja bisa begitu, kenapa layanan komputasi tidak bisa? Contohnya, jika sebuah perusahaan membutuhkan aplikasi CRM (Costumer Relationship Management). Kenapa perusahaan itu harus membeli aplikasi itu, membeli hardware buat server dan harus menyewa tenaga ahli TI khusus untuk menjaga server dan aplikasi itu?
Nah, disinilah cloud computing itu berperan. Dalam contoh di atas, perusahaan Microsoft telah menyediakan aplikasi CRM yang dapat langsung digunakan oleh perusahaan yang membutuhkan tadi. Perusahaan yang membutuhkan itu tinggal menghubungi perusahaan Microsoft untuk menyambungkan perusahaannya (dalam hal ini melalui internet) dengan aplikasi CRM & tinggal memakainya. Dan pembayaran dilakukan per bulan, per triwulan, per semester, per tahun atau sesuai kontrak yang dibuat. Jadi, perusahaan yang membutuhkan aplikasi CRM tadi, tidak perlu melakukan investasi awal untuk pembelian hardware server dan tenaga ahli TI. Itulah salah satu manfaat dari cloud computing yang dapat menghemat anggaran suatu perusahaan.
Untuk ilustrasinya, cloud computing digambarkan seperti ini:

Cloud%20Computing Apa Itu Cloud Computing?

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.
Cloud computing mempunyai 3 tingkatan layanan yang diberikan kepada pengguna, yaitu:
  1. Infrastructure as service, hal ini meliputi Grid untuk virtualized server, storage & network. Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service.
  2. Platform as a service, hal ini memfokuskan pada aplikasi dimana dalam hal ini seorang developer tidak perlu memikirkan hardware dan tetap fokus pada pembuatan aplikasi tanpa harus mengkhawatirkan sistem operasi, infrastructure scaling, load balancing dan lain-lain. Contohnya yang sudah mengimplementasikan ini adalah Force.com dan Microsoft Azure investment.
  3. Software as a service: Hal ini memfokuskan pada aplikasi dengan Web-based interface yang diakses melalui Web Service dan Web 2.0. Contohnya adalah Google Apps, SalesForce.com dan aplikasi jejaring sosial seperti FaceBook.
Para investor sedang mencoba untuk mengeksplorasi adopsi teknologi cloud computing untuk dijadikan bisnis seperti Google dan Amazon yang sudah punya penawaran khusus pada teknologi cloud. Dan juga Microsoft dan IBM tidak mau kalah dalam hal ini, mereka juga sudah menginvestasikan jutaan dolar untuk hal ini.
Bisa dipastikan ke depannya cloud computing ini akan menjadi sebuah trend, standar teknologi akan menjadi lebih sederhana karena ketersediaan dari layanan cloud.

Kelebihan Cloud Computing

  1. Menghemat biaya investasi awal untuk pembelian sumber daya.
  2. Bisa menghemat waktu sehingga perusahaan bisa langsung fokus ke profit dan berkembang dengan cepat.
  3. Membuat operasional dan manajemen lebih mudah karena sistem pribadi/perusahaan yang tersambung dalam satu cloud dapat dimonitor dan diatur dengan mudah.
  4. Menjadikan kolaborasi yang terpercaya dan lebih ramping.
  5. Mengehemat biaya operasional pada saat realibilitas ingin ditingkatkan dan kritikal sistem informasi yang dibangun.

Kekurangan Cloud Computing

Komputer akan menjadi lambat atau tidak bisa dipakai sama sekali jika internet bermasalah atau kelebihan beban. Dan juga perusahaan yang menyewa layanan dari cloud computing tidak punya akses langsung ke sumber daya. Jadi, semua tergantung dari kondisi vendor/penyedia layanan cloud computing. Jika server vendor rusak atau punya layanan backup yang buruk, maka perusahaan akan mengalami kerugian besar.