Minggu, 12 April 2015

Makalah Tugas Besar

Mata Kuliah: Pemrograman dan Teknologi Integratif
Dosen: I Putu Agus Eka Pratama
Kampus: Institut Teknologi Harapan Bangsa
Nama/NIM: Yosafat Ksatria / 1213001

Selasa, 10 Maret 2015

Extensible MarkUp Languange

       XML atau eXtensible Markup Language merupakan format bahasa standar untuk Web Service dalam melayani komunikasi aplikasi berbasis web yang memungkinkan untuk dilakukannya strukturisasi, deskripsi dan penukaran data. XML merupakan bahasa yang digunakan untuk meningkatkan fungsionalitas web, dengan menyediakan pengidentifikasian informasi secara fleksibel dan dapat disadur dengan mudah. Materi yang dipaparkan di bagian ini meliputi manfaat dari implementasi XML, baik mempermudah pengaturan data maupun mendukung  SEO (Search Engine Optimization), serta bagaimana implementasinya pada teknologi dan juga keamanan dari sistem (Security System). 
        XML memiliki kemiripan dengan HTML, Antara HTML dan XML memiliki simbol markup untuk mengartikan konten pada sebuah halaman atau file. HTML menerjemahkan konten berdasarkan bagaimana file tersebut ditampilkan dan  melakukan interaksi. Sedangkan XML menerjemahkan konten berdasarkan data apa yang sedang diproses. 
       XML ditetapkan sebagai profil aplikasi dari SGML. SGML (Standard Generalized Markup Language) merupakan bahasa markup standar yang ditentukan oleh ISO 8879. SGML telah menjadi standar vendor untuk mengelola penyimpanan dokumentasi selama lebih dari satu dekade. Namun cara ini tidak terlalu cocok untuk menyediakan dokumen via web. XML disebut sebagai profil aplikasi SGML karena sistem SGML bisa membaca dokumen berbasis XML.

A. Memudahkan Pengaturan Data

         XML adalah format penyimpanan data standar, memberikan kemudahan untuk melakukan pertukaran data. Dokumen XML berisi suatu metadata, data yang memiliki penjelasan (informasi) tentang data itu sendiri. XML dapat disebut sebagai metalanguage, yaitu suatu bahasa yang digunakan untuk mendefinisikan bahasa yang lain. Hal ini telah menjadikan XML sebuah bahasa yang memudahkan pengaturan data-data (data management), ditambah lagi dengan karakteristik XML yang extensible (memfasilitasi penambahan atau mendefinisikan bahasa markup sendiri, berbeda dari HTML yang hanya memiliki tag untuk mendefinisikan elemen dokumen sehingga dapat ditampilkan dalam browser web). XML secara umum digunakan untuk mendefinisikan bagaimana informasi secara terstruktur disimpan. Sebagai format untuk penukaran data, XML memungkinkan data dari suatu sistem dapat dibaca oleh sistem yang lain.

B. Search Engine Optimization

Search Engine
       Search Engine merupakan perangkat lunak komputer berupa aplikasi berbasis web maupun aplikasi desktop dan mobile, yang berfungsi mencari dokumen di dalam jaringan internet berdasarkan kata kunci (keyword) yang diinputkan dan megembalikan hasil dari pencarian berdasarkan inputan kata kunci tersebut. Dokumen yang dicari merupakan basis data (database) yang bersifat masif. Proses yang terlibat di dalamnya meliputi crawling, yaitu proses menjelajahi setiap bagian dokumen, haaman dan situs di seluruh jaringan internet dunia.

Search Engine Optimization (SEO)
SEO merupakan sekumpulan proses, cara, taktik dan teknis di dalam mengoptimalkan halaman website agar dapat memperoleh peringkat atas pada hasil pencarian di mesin pencari (search engine). Kecenderungan user mengupayakan hal ini melalui teknik SEO adalah untuk meningkatkan jumlah visitor website, menarik peluang penanaman iklan, dan memaksimalkan fungsi sharing informasi untuk pengunjung website. Proses SEO meliputi alur terurut yang berkaitan dengan cara kerja SEO sendiri, meliputi:
  1. Nama Perusahaan, memuat nama perusahaan dan profil organisasi terkait.
  2. Nama Halaman, memuat nama dari halaman yang ingin ditemuka pengguna internet lainnya.
  3. Judul, inti pembahasan dari tulisan yang dibagikan melalui website.
  4. Deskripsi, memuat penjelasan singkat dan padat dari apa yang akan disajikan pada halaman website.
  5. Konten, meliputi isi yang dimuat pada halaman website secara keseluruhan.

Berkaitan dengan hal ini, perlu diketahui mengenai 7 elemen utama yang menjadi fokus SEO, yaitu:
  • Konten yang menarik, unik, dan memiliki pembahasan yang banyak dicari oleh masyarakat khususnya di dunia maya. Produktivitas dari sebuah website akan memaksimalkan penggunaan SEO.
  • Design yang baik dan bermutu akan memberikan tampilan menarik dan nyaman bagi pengujung halaman website, meningkatkan frekuensi visitor dan membuat pengunjung menikmati informasi yang disajikan secara lebih maksimal.
  • HTML (Hypertext Markup Language) sebagai bahasa dasar umum dalam aplikasi pelayanan berbasis web yang dipandang penting dalam mendukung kesuksesan SEO, disebabkan karena penyediaan layanan interaktif yang diberikannya.
  • Key Word sebagai kata kunci pencarian dalam search engine yang memiliki peranan sangat penting untuk optimisasi pencarian.
  • Back Links yang berperan sebagai navigasi untuk menghubungkan halaman website satu menuju halaman website lainnya. Hal ini dimanfaatkan untuk penyertaan alamat website pribadi ke website lainnya.
  • Strategi yang berperan sebagai navigasi untuk menghubungkan halaman website satu menuju halaman website lainnya. Hal ini dimanfaatkan untuk penyertaan alamat website pribadi ke website lainnya.
  • Strategi yang digunakan oleh pemilik website untuk membantu meenangkan persaingan dengan kompetitor serupa (sesama pengguna SEO) untuk optimalisasi website.
  • Marketing yang berperan dalam menawarkan atau mempromosikan website kepada pengguna internet secara luas dengan frekuensi yang tinggi.

C. Implementasi pada Teknologi


Implementasi XML pada teknologi dapat dilihat dari 3 sisi berdasarkan klasifikasi, perbedaan dan perkembangannya, diantaranya Internet of Things, Website, dan Future Internet.

Internet of Things

          IoT merupakan salah satu implementasi XML pada teknologi, yang mengarah pada interkneksi jaringan pada keberadaaan barang atau objek lainnya dalam kehidupan sehari-hari. Salah satu bentuk aplikasinya adalah Smart City dan hubungannya dengan parallel computing, yaitu berkaitan dengan Cloud computing, Grid computing dan Cluster computing (ada di postingan dalam blog ini). Selain IoT, terdapat pula WoT (Web of Things) dan MoT (Mobil of Things), yang dibedakan berdasarkan basis yang mewadahinya (IoT berbasis internet, sementara WoT berbasis web dan MoT berbasis mobile).

Website

        Website merupakan sekumpulan halaman-halaman web (dokumen-dokumen yang diakses melalui internet). Sebuah halaman web merupakan tampilan yang user lihat pada layar komputer ketika user mengetikkan alamat web, meng-klik sebuah link, atau memasukkan sebuah query di search engine. Halaman web dapat berisikan segala jenis informasi, baik berupa tulisan, warna, grafik, animasi dan suara (sound). Website dibagi menjadi 2 tipe berdasarkan karakteristik pembuatan dan perancangannya, yaitu statis dan dinamis. Website statis merupakan web yang berbasis HTML/HTM5 (memiliki tag-tag yang sudah ditentukan untuk merancang web), sedangkan website dinamis berbasis PHP (memiliki tag yang fleksibel dan variatif sesuai fungsi dan kebutuhan dari developer).

Future Internet

         Future internet (internet masa depan) yang dibahas berkenaan dengan perkembangan antara CCN (Content-Centric Networking) dan ICN (Information-Centric Networking). CNN merupakan arsitektur jaringan yang didesain untuk menyesuaikan cara kerja jaringan yang sudah ada dengan permasalahan yang sedang berusaha diatasi oleh user. CNN menggunakan IPv6 berhubung banyaknya domain yang dibutuhkan, sehingga kontribusinya menjadi sangat signifikan. CNN mengarahkan dan mengirimkan konten-konten yang sudah diberi nama secara langsung ke paket level jaringan, memungkinkan penyimpanan di memori secara otomatis. Sementara itu ICN (Information-Centric Networking) mengatur kesenjangan antaran penamaan konten dan pengalamatan serta kebutuhan pengaksesan.

D. Keamanan Sistem (System Security)

Memanipulasi data dengan XML terkadang membutuhkan integritas, otentikasi dan juga privasi. XML memiliki beberapa fungsi untuk membantu mengamankan lingkungan XML, yaitu XML Signature, XML Encryption, dan XKMS.
  • XML Signature, mendefinisikan peraturan proses dan sintaks. XML Signature menyediakan integritas, autentifikasi terhadap pesan (message) dan layanan tanda tangan autentifikasi untuk data dari berbagai tipe.
  • XML Encryption, menspesfikasi proses enkripsi data dan mewujudkannya dalam XML. Data dapat berupa dokumen, elemen atau konten XML.
  • Standar XKMS merupakan protokol untuk pendistribusian dan pendaftaran terhadap kunci publik, yang sesuai dengan XML Signature dan XML Encryption.
Referensi:
Sidik, Betha. 2014. Pemrograman Web dengan PHP. Revisi Kedua. Bandung: Penerbit Informatika
Pratama, I Putu Agus Eka. 2014. Komputer dan Masyarakat. Bandung: Penerbit Informatika
https://www.parc.com/work/focus-area/content-centric-networking/

Minggu, 22 Februari 2015

Service Oriented Architecture (SOA)

Gambar 1. Komponen-komponen utama dari implementasi SOA

Apakah SOA itu?

          SOA atau Service Oriented Architecture adalah istilah di dunia TI yang banyak dibicarakan. Sesuai dengan namanya SOA adalah sebuah pendekatan dalam merancang (arsitek) suatu aplikasi dengan menggunakan kembali (reuse) komponen-komponen yang sudah ada sebelumnya. Dalam hal ini, komponen-komponen tersebut memberikan suatu jenis layanan bisnis (service) tertentu seperti antara lain: mengecek credit rating, mencari data customer, mengecek status inventori, melakukan transfer dana, dan lain sebagainya.
          Dengan kata lain, SOA adalah sebuah arsitektur kerangka kerja berbasis standar terbuka yang memungkinkan perusahaan-perusahaan untuk saling mengintegrasikan data yang sebelumnya hanya tersimpan rapat di markas para pelanggan, mitra, atau pemasok. Dengan kata lain, SOA merupakan arsitektur yang mendukung integrasi bisnis sebagai layanan yang terhubung dan menjadi jalan menuju inovasi. (SOA juga menjadi strategi bisnis berbasis teknologi dan hasil evolusi untuk mengintegrasi berbagai sumber informasi dari sumber kode atau platform yang berbeda-beda) Sebagai contohnya, Anda seorang eksekutif yang sedang bepergian ke luar negeri. Saat membongkar barang bawaan di kamar hotel, Anda baru sadar ternyata charger untuk laptop dan PDA Anda ketinggalan. Parahnya, wireless USB yang berfungsi untuk saling bertukar data antara handphone, PDA dan laptop Anda juga ikut tertinggal. Anda tidak perlu khawatir, karena melalui sebuah alat khusus yang disediakan hotel, semua gadget anda masih tetap bisa saling bertukar data. Anda juga bisa mengisi semua baterai gadget Anda tanpa dipusingkan oleh charger yang ketinggalan.Alat khusus tersebut bisa dibilang bekerja dengan menggunakan pendekatan Service Oriented Architecture (SOA). Pada kasus Anda, SOA bekerja untuk menghilangkan hambatan-hambatan interaksi antar gadget (HP, PDA, dan laptop) serta perbedaan konektor ke sumber daya utama. 
          Melihat deinisi SOA di atas,nampak sekali bahwa istilah SOA sangat kental terkait dengan sektor pengembangan aplikasi dari TI. Tidak bisa dipungkiri, perangkat lunak aplikasi adalah aset TI yang terpenting yang memungkinkan TI memberikan dukung-annya terhadap bisnis yang dijalankan perusahaan. 

Gambar 2. Layanan SOA

Karakteristik dari SOA

      Seperti yang didefinisikan diatas, SOA adalah suatu cara perancangan aplikasi dengan menggunakan komponen-komponen atau pelayanan yang sudah ada. Dengan kata lain, suatu aplikasi dibangun secara modular. Sebenarnya pendekatan modular ini bukanlah sesuatu yang baru. Teknik - teknik pemrograman masa kini seperti object oriented programming, telah mengedepankan pendekatan modular dalam pembangunan aplikasi. Namun yang membuat SOA berbeda adalah komponen atau service tersebut dibangun dan berinteraksi satu sama lain secara bebas dan lepas (loose coupled).
          Dengan bersifat loose coupled, sebuah service dapat di-panggil oleh program/service lainnya tanpa program pemanggil tersebut perlu memperhatikan di mana lokasi service yang dipanggil berada dan platform/teknologi apa yang digunakan oleh service tersebut. Loose coupling sangat penting bagi SOA karena dengan demikian pemanggilan sebuah service oleh service lainnya dapat dilakukan pada saat run-time.

Gambar 3. Contoh penggunaan SOA pada pelayanan bank.

       Misalnya sebuah aplikasi core banking menyediakan sebuah service Fund Transfer, maka aplikasi-aplikasi banking lainnya seperti treasury, payment gateway, ATM switching dan sebagainya dapat memanggil service Fund Transfer tersebut tanpa perlu memusingkan di mana Fund Transfer tersebut berada di dalam jaringan dan teknik pemanggilan yang harus digunakan.Hal ini kontras dengan pendekatan tight coupling di mana dalam hal ini setiap aplikasi perbankan di atas masing-masing harus mempunyai fungsi Fund Transfer di dalamnya sehingga akan menyulitkan dan membutuhkan biaya/resource besar jika perlu merubah logic dari Fund Transfer ke requirement bisnis yang baru di dalam setiap aplikasinya.
        Karakteristik lainnya adalah service dalam SOA disusun atas 2 hal: Service Interface dan Service Implementation. 

Gambar 4. SOA Web Services Inteface

        Service Interface menyatakan bagaimana service tersebut dapat dipanggil seperti parameter input/output dan lokasi ia berada. Misalkan, service interface untuk Customer Lookup menyatakan berbagai cara untuk mendapatkan informasi tentang seorang ustomer (dari id customer atau nama dan sebagainya) dan struktur data customer yang dikembalikan. Service Implementation adalah bagaimana logic dari service Customer Lookup tersebut dijalankan. 

Gambar 5. Service dan Implementation Interface
        Service implementation sangat terkait dengan teknologi pemrograman yang digunakan. SOA tidak perlu memperdulikan bagaimana sebuah service diimplementasikan, yang penting adalah bagaimana service tersebut dapat dipanggil dan memberikan informasi sesuai dengan Service Interface-nya.
        Karakteristik SOA yang terakhir adalah service tersebut harus business oriented. Dalam arti, setiap service yang didiinisikan harus melakukan suatu aktiitas bisnis tertentu, misalkan Customer Lookup, Fund Transfer, Check Inventory, dan sebagainya. Tidak dapat dipungkiri pula bahwa keberhasilan SOA belakangan ini ikut dimotori oleh tingginya penerimaan teknologi web services di kalangan pengembang aplikasi. Walaupun ide tentang SOA telah ada sebelum web services dilahirkan, web services dan SOA saat ini telah menjadi suatu si-nergi dan bahkan beberapa kalangan menganggap dengan menggunakan web services maka ia telah menerapkan SOA.

KETERANGAN DAN GAMBAR SOA

         Service Oriented Architecture (SOA) adalah sebuah permodelan perangkat lunak yang dibangun dengan pendekatan service oriented. Service oriented sendiri merupakan sebuah pendekatan yang memiliki visi ideal di mana setiap resource dari perangkat lunak terpartisi secara bersih satu sama lain [1]. Setiap resource ini disebut dengan service. Service ini merepresentasikan sebuah business logic atau automation logic dalam sebuah sistem besar. Setiap service memiliki otonomi sendiri yang membuatnya tidak tergantung satu sama lain. Setiap service dapat berkomunikasi satu sama lain melalui sebuah protokol yang sudah terstandardisasi sehingga memudahkan untuk melakukan integrasi service baru dan penyusunan ulang kumpulan service disebabkan proses bisnis yang berubah.
Gambar 6. Enkapsulasi Logic

Saat ini, SOA merupakan sebuah solusi yang baik untuk permodelan sistem di perusahaan atau organisasi besar. Sebab, permodelan ini memiliki banyak kelebihan, diantaranya:
  1. Dapat menyatukan berbagai sistem yang memiliki platform berbeda, seperti J2EE dan .NET. sebab dengan pendekatan ini, yang pengembang akan memilih untuk membangun sebuah layer di atas sistem dan sistem tersebut yang dapat saling berkomunikasi dengan pesan yang sudah distandardisasi, misalnya menggunakan teknologi XML. Dalam sudut pandang SOA, kedua sistem itu masing-masingnya akan dianggap sebagai service.
  2. Tahan terhadap perubahan. Perusahaan atau organisasi besar seringkali berubah struktur untuk meningkatkan efisiensi dan kinerja. Akibatnya, perangkat lunak juga terkena imbas untuk menyesuaikan diri terhadap proses bisnis yang baru. Permodelan perangkat lunak dengan SOA akan mengurangi effort untuk modifikasi perangkat lunak tersebut. Sebab, karena seluruh logic dari sistem sudah terpartisi secara bersih menjadi sekumpulan services, kita hanya perlu menyusun ulang seluruh service tersebut dan jika perlu menambahkan yang baru. Hal ini jelas mengurangi biaya.
          Web Services seringkali dikaitkan atau bahkan disamakan dengan SOA. Namun sebenarnya keduanya adalah hal yang sangat berbeda. SOA adalah sebuah konsep untuk pengembangan perangkat lunak, sementara Web Services adalah sebuah aplikasi web yang berinteraksi dengan aplikasi web lainnya untuk pertukaran data. Pembangunan SOA tidak harus menggunakan Web Services, sebab ada bermacam-macam teknologi lain yang memungkinkan, tapi menggunakan Web Services untuk membangun sebuah sistem SOA adalah langkah yang baik.
        Web Services adalah sebuah teknik pemrograman di mana sebuah service menggunakan standar-standar berbasis XML dalam menjelaskan interface dan protocol yang harus digunakan untuk memanggil service tersebut. Standar-standar tersebut adalah:
  • SOAP (Simple Object Access Protocol): Menjelaskan protokol tentang bagaimana sebuah web service dapat dipanggil.
  • WSDL (Web Services Deinition Language): Sebuah format XML yang menjelaskan interface dari sebuah web service (parameter input dan output).
  • UDDI (Universal Description, Discovery and Integration): Sebuah direktori yang berisi daftar web service yang dapat ditemukan dan dipanggil oleh aplikasi lainnya.Dengan standar di atas, web services sangat mendukung implementasi SOA dimana karakteristik SOA seperti loose coupling dan service interface disediakan oleh teknologi web services. Pertanyaannya adalah, apakah dengan menggunakan teknik web services, SOA sudah akan terwujud?

BAGAIMANA CARA KERJA SOA?

Gambar 7. Cara Kerja SOA
          Inovasi membutuhkan perubahan dan SOA memudahkannya. SOA bekerja seperti charger untuk semua fungsi, atau dengan kata lain SOA membangun interface yang bisa diakses oleh berbagai macam software. Selama ini, sebuah software dibangun dengan cara mengikat data dan alat pemrosesnya dalam satu rangkaian. Tentu saja, semakin banyak software yang dibutuhkan akan membuat perusahaan mengeluarkan uang dan tenaga lebih banyak lagi. Demikian pula dengan semakin banyaknya lalulintas data antar software tersebut yang secara otomatis akan meningkatkan ongkos perusahaan. Teknologi SOA bertugas untuk meringankan masalah tersebut dengan cara mengurangi hambatan integralisasi. 
         Melihat karakternya, SOA saat ini banyak diminati perusahaan-perusahaan keuangan dan perbankan. Namun, industri asuransi dan telekomunikasi juga banyak yang mengadopsi teknologi SOA. Hal ini disebabkan fleksibilitas dan arsitektur yang ditawarkan SOA cukup handal untuk mengurangi berbagai hambatan interaksi antar software dan memotong rangkaian proses dalam sebuah jaringan yang kadang cukup berbelit.
              Untuk menggambarkan bagaimana SOA bekerja dalam sebuah perusahaan atau institusi bisnis, dapat mengambil contoh transaksi pembelian barang melalui internet yang dilakukan seorang netter atau pelanggan. Dalam sistem TI pengecer yang menggunakan sebuah SOA, pembelian barang secara online itu memicu serangkaian transaksi lainnya. Misalnya, kartu kredit pelanggan diverifikasi, bagian pengiriman barang diberi tahu, gudang diminta untuk menyesuaikan persediaan barang, dan catatan-catatan pembukuan diperbaharui. Transaksi-transaksi tersebut berupa input informasi yang dikirim melalui sistem atau software-software yang berlainan, yang kadang tidak sesuai dan tidak bisa berhubungan satu sama lain. Namun, teknologi SOA telah memungkinkan infrastruktur yang mendukung transaksi tersebut untuk dibaurkan dan dikombinasikan secara integral.
               Di atas kertas, semuanya memang terlihat semudah membalik telapak tangan. Faktanya, membangun sebuah SOA memiliki berbagai tantangan yang tidak mudah. Salah satu tantangan terbesar yang dihadapi pelanggan adalah menentukan dari mana harus memulai SOA. Banyak departemen TI yang menerapkan layanan Web dalam sebuah SOA, mereka memulai dari yang paling mudah lalu meningkat ke bagian yang lebih sulit dan kompleks. Yang perlu diingat, membangun sebuah SOA yang baik haruslah menyelaraskan tujuan utama bisnis perusahaan dengan teknologi yang tepat sasaran. Jaringan yang baik dan terpadu merupakan salah satu kunci keberhasilan penerapan SOA. Tentu saja dengan biaya yang sesuai dengan kebutuhan.
            Service-oriented Architecture (SOA) membantu perusahaan mengakomodasi perubahan secara lebih baik dengan menyediakan fleksibelitas untuk pemanfaatan sumber TI yang lebih baik pula. Lebih khusus, perencanaan ini menawarkan pendekatan arsitektural dalam lingkungan komputasi terencana dan teratur yang dibangun pada layanan yang secara bebas berangkaian, dapat digunakan kembali, dan berbasis standar serta dapat berubah sesuai dengan bergesernya kebutuhan bisnis. Inilah kebutuhan dan proses bisnis yang fokusnya membantu enterprise untuk bisa sukses dan bersaing dengan makin meningkatnya standar TI, berarti: fleksibelitas bisnis tergantung fleksibelitas TI.

SOA dan Integrasi

             Peranan SOA dalam integrasi proses bisnis,bisa dalam internal perusahaan maupun antar perusahaan. Dalam internal perusahaan,penerapan SOA memungkinan unit-unit bisnis bekerja secara sinergi, dari pabrikasi hingga distribusi dapat lebih sinkron. Kerjasama antar perusahaan bukan hal yang mustahil lagi pada masa ini. Sebuah perusahaan yang membuka layanan pembelian online harus dapat mengirimkan produknya kepada customer. 
             Untuk itu, ia harus bekerja sama dengan agen pengiriman, yang akhirnya akan bekerja sama lagi dengan jasa penerbangan kargo. Bayangkan, jika masing-masing perusahaan itu menggunakan aplikasi yang tidak bisa saling berkomunikasi sehingga cara yang mungkin dilakukan hanyalah cara manual yang sudah pasti akan memakan waktu lama. Jika semua aplikasi yang dipakai sudah menerapkan SOA, masing-masing dapat saling berkomunikasi sehingga diperoleh hasil/respon realtime.
               Bayangkan juga sebuah agen perjalanan yang menyediakan jasa wisata liburan. Perusahaan ini harus bekerjasama dengan hotel dan jasa angkutan yang ada di lokasi wisata. Solusi yang umum dilakukan adalah membuat sistem integrasi untuk aplikasi yang ada. Itu berarti untuk setiap pembukaan lokasi wisata baru atau penambahan hotel baru, sistemnya harus di-setup agar dapat menyesuaikan. Proses setup ini jelas memakan waktu dan biaya yang tidak sedikit jika tidak menggunakan prinsip SOA. 

Gambar 8. SOA dan Akses Multi-channel

Aplikasi SOA

          Sedangkan dalam dunia digital, SOA menjadi sangat menarik, apalagi dengan tekanan regional untuk membuat sebuah sistem yang transparan, cepat dan anti birokrasi, yang di Indonesia sering disebut sebagai Single Window.
         Dalam SOA dunia digital yang akan disebut SOA saja setelah ini, yang lebih khususnya dalam dunia perinternetan yang sangat berhubungan dengan Web, populer setelah berkembangkan sebuah mekanisme request-response yang memungkinkan pesan (message) terkirim dari satu titik ke titik lainnya.
          Interaksi sebuah sistem dengan sistem lain, atau mewrap sebuah aplikasi dari aplikasi tradisional menjadi aplikasi berbasis SOAP, secara tidak langsung telah merubah sebuah sistem tersebut menjadi sebuah aplikasi yang SOA Ready. SOAP adalah sebuah mekanisme implementasi XML yang terstandarisasi.
          Teknologi ini sering disebut sebagai Web Services, sebuah mekanisme melayani permintaan (messaging) yang mengacu pada protokol Web yang sering disebut HTTP. Tetapi tentu saja SOA itu bukan hanya Web Services saja. Ingat SOA itu lebih luas, dan lebih luas dari yang dapat kita bayangkan.
          Perkembangan Web Services sebagai media terbuka untuk interaksi, yang berbasis pada HTTP yang juga merupakan standar terbuka, membuat Web Services dengan SOAP sebagai icon teknologinya, telah membuat Web Services menjadi teknologi primadona dalam dunia SOA ini. Apalagi perbedaan namanya sangat jelas, SOA dan SOAP. 
           SOAP Sebenarnya merupakan sebuah perwakilan dari sebuah envelope yang gunanya mirip dengan mekanisme melakukan surat menyurat. SOAP umumnya diciptakan lebih khusus, untuk surat menyurat resmi, seperti mengirim form purchase order, form pengajuan kredit, form meminjam buku. Sedangkan yang kurang formal dapat menggunakan XML saja. 
            Dalam implementasinya SOAP yang flat ternyata memiliki kekurangan yang sangat banyak, apalagi SOAP ini seperti kakeknya HTML, berbentuk flat file, sehingga diasumsikan tidak aman, untuk itulah maka hadir beberapa implementasi SOAP yang tentu saja membuat SOA menjadi lebih secure dan siap digunakan. 
             Standar berbasis Web Services yang lebih sering disebut dengan WS-Security adalah sebuah standar yang dikembangkan oleh OASIS yang juga mengembangkan teknologi ODF (Open Document Format). WS-Security ini memungkinkan melakukan implementasi Web Services yang terembed didalamnya security.
              Sebenarnya ada standar lainnya yang dapat digunakan untuk membuat sebuah implementasi SOA menjadi lebih aman, diantaranya SAML untuk identity management (di Indonesia populer disebut Single Identity Number), XACML, XKMS, XML-Sig, WS-Federation, WS-I Basic Profile. Sebenarnya kita juga dapat membuat implementasi sendiri, tetapi umumnya entitas pengeluar standar di dunia Web Services adalah bersifat internasional.

Gambar 9. SOA meta-model

“A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.”
     Arsitektur yang digunakan tidak tertumpu pada suatu teknologi tertentu. SOA dapat diimplementasikan menggunakan teknologi yang ada. Termasuk REST, RCP, DCOM, CORBA atau Web Services. SOA dapat diimplementasikan menggunakan protokol - protokol tersebut. Sebagai contoh dapat digunakan mekanisme sistem file untuk penyesuaian cara berkomunikasi antar data untuk menentukan spesifikasi interface antara penyesuaian proses terhadap konsep SOA. Kunci pokok dari SOA adalah service yang mandiri dengan interface yang terdefinisi dengan baik yang dapat dipanggil untuk melakukan tugas dan fungsinya berdasarkan standar-standar tertentu, service tersebut tidak memerlukan pengetahuan masa lalu dari aplikasi yang dipanggil, dan aplikasi tidak memerlukan pengetahuan bagaimana service melakukan tugas-tugasnya.
            SOA dapat dipandang sebagai sebuah gaya arsitektur sistem informasi yang memungkinkan pembuatan aplikasi yang dibuat dengan mengkombinasikan service yang bebas dan penggabungan service. Operasi antar layanan yang ada berbasis pada definisi yang jelas (seperti kontrak atau WSDL) yang mandiri dari platform dan bahasa pemprograman yang mendasarinya.
       Definisi interface akan menyembunyikan implementasi dari suatu bahasa pemprograman layanan. Sistem berbasis SOA dapat dikembangkan dari berbagai platform dan teknologi (seperti java dan dot net). Sebagai contoh, Service yang ditulis dengan bahasa C# berjalan di platform Dot Net dan layanan yang ditukis dengan java berjalan di platform java EE. Keduanya dapat digunakan dengan sebuah aplikasi gabungan umum. Aplikasi-aplikasi tersebut berjalan pada masing-masing platform dan tetap dapat menggunakan layanan yang berjalan pada aplikasi lainnya sebagai web service, hal ini memudahkan penggunaan kembali layanan tersebut.
            SOA dapat mendukung aktivitas integrasi dan konsolidasi dalam sistem yang kompleks, tetapi SOA tidak diperuntukkan atau menyediakan sebuah metodologi atau kerangka kerja bagi proses pendokumentasian kemampuan atau layanan.

Gambar 10. Service-Oriented Modeling Framework (SOMF) Version 2.0

         SOM Framework (SOMF) adalah pengembangan metodologi siklus hidup berorientasi layanan, proses pemodelan disiplin khusus . Ini menawarkan sejumlah praktek pemodelan dan disiplin yang berkontribusi terhadap berorientasi layanan siklus hidup pengembangan sukses dan modeling selama proyek.
      Service Oriented Modelling Framework (SOMF) memperkenalkan lima kegiatan pemodelan siklus hidup utama yang mendorong evolusi layanan selama desain - time dan run - time. Pada tahap desain - waktu layanan berasal sebagai entitas konseptual (layanan konseptual), kemudian berubah menjadi unit analisis (layanan analisis ), berikutnya transisi menjadi sebuah entitas kontrak dan logis (layanan desain) , dan akhirnya didirikan sebagai layanan solusi).
  • Model Penemuan : Model ini harus digunakan ketika memastikan entitas perangkat lunak baru untuk memberikan solusi 
  • Model Analisis : Model analisis dirancang untuk memeriksa kelayakan komponen software untuk menawarkan solusi, membantu menganalisis bisnis dan persyaratan teknis , dan membantu mengukur keberhasilan pelaksanaan 
  • Model Desain : Memfasilitasi desain logis entitas perangkat lunak, dan memberikan kontribusi untuk hubungan komponen , komposisi penyebaran, dan pembentukan transaksi
  • Model arsitektur Teknis : Model ini melibatkan tiga perspektif utama arsitektur : arsitektur konseptual , arsitektur logis , dan arsitektur fisik
  • Model Konstruksi : Membantu dengan praktek modeling selama kode sumber tahap implementasi
  • Model Jaminan Kualitas : menyatakan komponen perangkat lunak untuk produksi dan menjamin stabilitas dan kontinuitas usaha teknis
  • Operasi Model : Memungkinkan lingkungan produksi yang stabil dan menjamin penyebaran yang tepat dan konfigurasi entitas software
  • Model arsitektur Bisnis : Model ini mendorong integrasi yang tepat dari kontekstual dan struktural formasi bisnis dengan entitas software 
  • Model Governance : Penawaran praktik terbaik , standar, dan kebijakan untuk semua model implementasi SOMF
Sumber: 
http://download.portalgaruda.org/article.php?article=15698&val=1028
http://en.wikipedia.org/wiki/Service-oriented_architecture
https://www.academia.edu/7478618/Service_Oriented_Modeling_and_Architecture_Bagus_Banget_

Minggu, 08 Februari 2015

Transfer Control Protocol (TCP) Socket Programming

        TCP menyediakan layanan transfer yang dapat diandalkan dengan mengirimkan paket datagrams per kelompok antar server dan client dengan pemeriksaan. 

Keuntungan TCP:

- Mampu menangani paket yang hilang
- Mampu menangani kedatangan paket ganda.
- Dapat mengatasi penerimaan paket secara beriringan.
- Menyediakan alur penerimaan paket.
- Data yang diterima dapat diepercaya dan diandalkan.

Kelemahan TCP :

- Waktu lebih lama.
- Paket yang dikirim besar.

Fungsi socket protocol TCP


  1. socket(AF_INET, SOCK_STREAM, 0), berfungsi untuk membuat socket dan parameter family yang digunakan adalah AF_INET yaitu internet protocol dan socket yang digunakan adalah SOCK_STREAM yang berfungsi untuk membuka socket pada TCP.
  2. htonl(), meng-convert unsigned integer ke network byte order.
  3. inet_ntoa(), ntoa singkatan 'network to ascii', nilai return-nya berupa string dari alamat yang dilewatkan.
  4. inet_addr(), meng-convert string menjadi network byte order.
  5. bind(), digunakan pada pihak server, untuk membuka 'port' komunikasi.
  6. write(), send(), bertugas mengirimkan data.
  7. read(), recv(), bertugas menerima data.
  8. connect(), digunakan pada pihak client, untuk mengadakan koneksi ke server.
  9. listen(), menunggu koneksi socket.
  10. accept(), menerima koneksi socket.
  11. close() dan shutdown(), digunakan untuk menutup atau mengakhiri koneksi.

Diagram Alur Socket Programming dengan UDP


Diagram alur socket programming

Program TCP Socket dengan Bahasa C

Server.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

void error(const char *msg)
{
perror(msg);
exit(1);
}

int main(int argc, char *argv[])
{
int sockfd, newsockfd, portno;
socklen_t clilen;
char buffer[256];
struct sockaddr_in serv_addr, cli_addr;
int n;
if (argc < 2) {
fprintf(stderr,"ERROR, no port provided\n");
exit(1);
}
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
error("ERROR opening socket");
bzero((char *) &serv_addr, sizeof(serv_addr));
portno = atoi(argv[1]); /* ambil syntax ke 2 dari perintah */
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(portno);
if (bind(sockfd, (struct sockaddr *) &serv_addr,
sizeof(serv_addr)) < 0)
error("ERROR on binding");
listen(sockfd,5);
clilen = sizeof(cli_addr);
newsockfd = accept(sockfd,
(struct sockaddr *) &cli_addr,
&clilen);
if (newsockfd < 0)
error("ERROR on accept");
bzero(buffer,256);
n = read(newsockfd,buffer,255);
if (n < 0) error("ERROR reading from socket");
printf("Here is the message: %s\n",buffer);
n = write(newsockfd,"I got your message",18);
if (n < 0) error("ERROR writing to socket");
close(newsockfd);
close(sockfd);
return 0;
}

Client.c 

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
void error(const char *msg)
{
    perror(msg);
    exit(0);
}
int main(int argc, char *argv[])
{
    int sockfd, portno, n;
    struct sockaddr_in serv_addr;
    struct hostent *server;
    char buffer[256];
    if (argc < 3) {
       fprintf(stderr,"usage %s hostname port\n", argv[0]);
       exit(0);
    }
    portno = atoi(argv[2]);
    sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd < 0)
        error("ERROR opening socket");
    server = gethostbyname(argv[1]);
    if (server == NULL) {
        fprintf(stderr,"ERROR, no such host\n");
        exit(0);
    }
    bzero((char *) &serv_addr, sizeof(serv_addr));
    serv_addr.sin_family = AF_INET;
    bcopy((char *)server->h_addr,
         (char *)&serv_addr.sin_addr.s_addr,
         server->h_length);
    serv_addr.sin_port = htons(portno);
    if (connect(sockfd,(struct sockaddr *) &serv_addr,sizeof(serv_addr)) < 0)
        error("ERROR connecting");
    printf("Please enter the message: ");
    bzero(buffer,256);
    fgets(buffer,255,stdin);
    n = write(sockfd,buffer,strlen(buffer));
    if (n < 0)
         error("ERROR writing to socket");
    bzero(buffer,256);
    n = read(sockfd,buffer,255);
    if (n < 0)
         error("ERROR reading from socket");
    printf("%s\n",buffer);
    close(sockfd);
    return 0;
}


nb: Copy source code di atas untuk melakukan demo

Sumber: 
I Putu Agus Eka Pratama, S.T.,M.T. 2014. Handbook Jaringan Komputer. Bandung: Penerbit Informatika.
http://sumarna.staff.gunadarma.ac.id/Downloads/files/31673/2.+Pemrograman+TCP+socket.pdf

Parallel Computing

Parallel Processing

       Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan.
          
          Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll) ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.
          
           Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.

          Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang terhubung dalam satu jaringan komputer, biasanya disebut sistem terdistribusi. Bahasa pemrograman yang populer digunakan dalam pemrograman paralel adalah MPI (Message Passing Interface) dan PVM (Parallel Virtual Machine).

       Yang perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor atau komputer. Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann.

             Untuk lebih memperjelas lebih dalam mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang digunakan, yaitu:

  • SISD

Yang merupakan singkatan dari Single Instruction, Single Data adalah satu-satunya yang menggunakan arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel yang menggunakan beberapa processor. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
  • SIMD

Yang merupakan singkatan dari Single Instruction, Multiple Data. SIMD menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5 processor. Pada setiap processor kita menggunakan algoritma atau perintah yang sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV, MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).
  • MISD

Yang merupakan singkatan dari Multiple Instruction, Single Data. MISD menggunakan banyak processor dengan setiap processor menggunakan instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah data dari urutan 1-100, namun algoritma yang digunakan untuk teknik pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer yang menggunakan model MISD.
  • MIMD

Yang merupakan singkatan dari Multiple Instruction, Multiple Data. MIMD menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.

Singkatnya untuk perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkan pada gambar di bawah ini:

Gambar 1. Penyelesaian sebuah masalah pada komputasi tunggal


Gambar 2. Penyelesaian Sebuah Masalah pada Komputasi Paralel

          Dari perbedaan kedua gambar di atas, kita dapat menyimpulkan bahwa kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk pemrosesan data yang banyak daripada komputasi tunggal.

            Dari penjelasan-penjelasan di atas, kita bisa mendapatkan jawaban mengapa dan kapan kita perlu menggunakan komputasi paralel. Jawabannya adalah karena komputasi paralel jauh lebih menghemat waktu dan sangat efektif ketika kita harus mengolah data dalam jumlah yang besar. Namun keefektifan akan hilang ketika kita hanya mengolah data dalam jumlah yang kecil, karena data dengan jumlah kecil atau sedikit lebih efektif jika kita menggunakan komputasi tunggal.

        Tujuan utama dari pemrosesan paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan. 

Contoh Penerapan dari Parallel Computing ada 3:

  1. Cluster;
  2. Grid; dan
  3. Cloud

Cluster

          Cluster, dalam ilmu komputer dan jaringan komputer adalah sekumpulan komputer (umumnya server jaringan) independen yang beroperasi serta bekerja secara erat dan terlihat oleh klien jaringan seolah-olah komputer-komputer tersebut adalah satu buah unit komputer. Proses menghubungkan beberapa komputer agar dapat bekerja seperti itu dinamakan dengan Clustering. Komponen cluster biasanya saling terhubung dengan cepat melalui sebuah interkoneksi yang sangat cepat, atau bisa juga melalui jaringan lokal (LAN). Karena menggunakan lebih dari satu buah server, maka manajemen dan perawatan sebuah cluster jauh lebih rumit dibandingkan dengan manajemen server mainframe tunggal yang memiliki skalabilitas tinggi (semacam IBM AS/400), meski lebih murah. 

Cluster komputer terbagi ke dalam beberapa kategori, sebagai berikut: 

  • Kluster untuk ketersediaan yang tinggi (High-availability clusters)

           High-availability cluster, yang juga sering disebut sebagai Failover Cluster pada umumnya diimplementasikan untuk tujuan meningkatkan ketersediaan layanan yang disediakan oleh kluster tersebut. Elemen kluster akan bekerja dengan memiliki node-node redundan, yang kemudian digunakan untuk menyediakan layanan saat salah satu elemen kluster mengalami kegagalan. Ukuran yang paling umum dari kategori ini adalah dua node, yang merupakan syarat minimum untuk melakukan redundansi. Implementasi kluster jenis ini akan mencoba untuk menggunakan redundansi komponen kluster untuk menghilangkan kegagalan di satu titik (Single Point of Failure). 

           Ada beberapa implementasi komersial dari sistem kluster kategori ini, dalam beberapa sistem operasi. Meski demikian,proyek linux-HA adalah salah satu paket yang paling umum digunakan untuk sistem operasi GNU/linux. 

          Dalam keluarga sistem operasi Microsoft Windows NT,sebuah layanan yang disebut dengan Microsoft Cluster Service (MSCS) dapat digunakan untuk menyediakan kluster kategori ini. MSCS ini diperbarui lagi dan telah diintegrasikan dalam Windows 2000 advanced server dan Windows 2000 Datacenter server , dengan nama Microsoft Clustering Service. Dalam Windows Server 2003, Microsoft Clustering Service ini ditingkatkan lagi kinerjanya. 

  • Kluster untuk pemerataan beban komputasi (Load-balancing clusters)

          Kluster kategori ini beroperasi dengan mendistribusikan beban pekerjaan secara merata melalui beberapa node yang bekerja di belakang (back-end node). Umumnya kluster ini akan dikonfigurasikan sedemikian rupa dengan beberapa front-end load-balancing redundan. Karena setiap elemen dalam sebuah kluster load-balancing menawarkan layanan penuh, maka dapat dikatakan bahwa komponen kluster tersebut merupakan sebuah kluster aktif/kluster HA aktif, yang bisa menerima semua permintaan yang diajukan oleh klien.  

  • Kluster hanya untuk komputasi (Compute clusters)

     Seringnya, penggunaan utama kluster komputer adalah untuk tujuan komputasi, ketimbang penanganan operasi yang berorientasi I/Oseperti layanan Web atau basis data. Contoh, sebuah kluster mungkin mendukung simulasi komputasional untuk perubahan cuaca atau tabrakan kendaraan. 

    Perbedaan utama untuk kategori ini dengan kategori lainnya adalah seberapa eratkah penggabungan antar node-nya. Sebagai contoh, sebuah tugas komputasi mungkin membutuhkan komunikasi yang sering antar node--ini berarti bahwa kluster tersebut menggunakan sebuah jaringan terdedikasi yang sama, yang terletak di lokasi yang sangat berdekatan, dan mungkin juga merupakan node-node yang bersifat homogen. 

         Desain kluster seperti ini, umumnya disebut juga sebagai Beowulf Cluster. Ada juga desain yang lain, yakni saat sebuah tugas komputasi hanya menggunakan satu atau beberapa node saja, dan membutuhkan komunikasi antar-node yang sangat sedikit atau tidak ada sama sekali. Desain kluster ini, sering disebut sebagai "Grid". Beberapa compute cluster yang dihubungkan secara erat yang didesain sedemikian rupa, umumnya disebut dengan "Supercomputing". Beberapa perangkat lunak Middleware seperti MPI atau Paraller Virtual Machine (PVM) mengizinkan program compute clustering agar dapat dijalankan di dalam kluster-kluster tersebut.  

Grid

             Komputasi grid memungkinkan organisasi virtual (virtual organization) untuk menggunakan secara bersama sumber daya yang tersebar secara geografis dengan berasumsi ketidakhadiran dari lokasi terpusat, kontrol terpusat, pengetahuan menyeluruh terhadap sumber daya dan hubungan kepercayaan. Organisasi virtual dapat meliputi suatu departemen dari suatu perusahaan yang berada pada satu lokasi yang sama sampai dengan kumpulan besar orang-orang dari berbagai organisasi yang tersebar diberbagai belahan bumi. Komputasi grid memiliki tiga karakteristik penting yaitu:
  1. Pemakaian bersama sumber daya yang terkoordinasi (setara) yang tidak berada di bawah suatu kendali terpusat.
  2. Menggunakan protokol-protokol dan interface yang standar, terbuka dan serbaguna.
  3. Dapat memberikan kualitas layanan (QoS) yang tinggi.
           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 lebih cenderung longgar digabungkan, heterogen, dan geografis. Grid computing merupakan salah satu jenis dari komputasi modern. Grid computing adalah arsitektur TI baru yang menghasilkan sistem informasi perusahaan yang berbiaya rendah dan lebih adaptif terhadap dinamika bisnis. Dengan grid computing, sejumlah komponen hardware dan software yang modular dan independen akan dapat dikoneksikan dan disatukan untuk memenuhi tuntutan kebutuhan bisnis. Lebih jauh, dari sisi ekonomi, implementasi grid computing berarti membangun pusat komputasi data yang tangguh dengan struktur biaya variatif yang bias disesuaikan dengan kebutuhan.

            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.


Konsep Grid Computing

  • Sumberdaya Infrastruktur
Mencakup hardware seperti penyimpan, prosesor, memori, dan jaringan; juga software yang didesain untuk mengelola hardware ini, seperti database, manajemen penyimpan, manajemen sistem, server aplikasi dan system operasi.

  • Sumberdaya Aplikasi

Adalah perwujudan logika bisnis dan arus proses dalam software aplikasi. Sumberdaya yang dimaksud bisa berupa aplikasi paket atau aplikasi buatan, ditulis dalam bahasa pemrograman, dan merefleksikan tingkat kompleksitas. Sebagai contoh, software yang mengambil pesanan dari seorang pelanggan dan mengirimkan balasan, proses yang mencetak slip gaji, dan logika yang menghubungkan telepon dari pelanggan tertentu kepada pihak tertentu pula.

  • Sumberdaya Informasi

Saat ini, informasi cenderung terfragmentasi dalam perusahaan, sehingga sulit untuk memandang bisnis sebagai satu kesatuan. Sebaliknya, grid computing menganggap informasi adalah sumberdaya, mencakup keseluruhan data pada perusahaan dan metadata yang menjadikan data bisa bermakna. Data bias berbentuk terstruktur, semi-terstruktur, atau tidak terstruktur, tersimpan di lokasi manapun, seperti dalam database, sistem file lokal.

Prinsip Kerja Grid Computing

Dua prinsip kerja utama grid computing yang membedakannya dari arsitektur komputasi yang lain, semisal mainframe, klien-server, atau multi-tier: virtualisasi dan provisioning.

  • Virtualisasi

Setiap sumberdaya (semisal komputer, disk, komponen aplikasi dan sumber informasi) dikumpulkan bersama-sama menurut jenisnya, lalu disediakan bagi konsumen (semisal orang atau program software). Virtualisasi berarti meniadakan koneksi secara fisik antara penyedia dan konsumen sumberdaya, dan menyiapkan sumberdaya untuk memenuhi kebutuhan tanpa konsumen mengetahui bagaimana permintaannya bisa terlayani. 

  • Provisioning

Ketika konsumen meminta sumberdaya melalui layer virtualisasi, sumberdaya tertentu di belakang layer didefinisikan untuk memenuhi permintaan tersebut, dan kemudian dialokasikan ke konsumen. Provisioning sebagai bagian dari grid computing berarti bahwa system menentukan bagaimana cara memenuhi kebutuhan konsumen seiring dengan mengoptimasi jalannya sistem secara keseluruhan.
Cara Kerja Grid Computing

Menurut tulisan singkat oleh Ian Foster ada check-list yang dapat digunakan untuk mengidentifikasi bahwa suatu sistem melakukan komputasi grid yaitu :

  1. Sistem tersebut melakukan koordinasi terhadap sumberdaya komputasi yang tidak berada dibawah suatu kendali terpusat. Seandainya sumber daya yang digunakan berada dalam satu cakupan domain administratif, maka komputasi tersebut belum dapat dikatakan komputasi grid.
  2. Sistem tersebut menggunakan standard dan protokol yang bersifat terbuka (tidak terpaut pada suatu implementasi atau produk tertentu). Komputasi grid disusun dari kesepakatan-kesepakatan terhadap masalah yang fundamental, dibutuhkan untuk mewujudkan komputasi bersama dalam skala besar. Kesepakatan dan standar yang dibutuhkan adalah dalam bidang autentikasi, otorisasi, pencarian sumberdaya, dan akses terhadap sumber daya.
  3. Sistem tersebut berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial quality of service) yang jauh diatas kualitas layanan komponen individu dari komputasi grid tersebut.

Keuntungan Grid Computing

Secara generik, keuntungan dasar dari penerapan komputasi Grid, yaitu:

  1. Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle.
  2. Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah apat berjalan lebih cepat dan mencakup domain yang lebih luas.
  3. Software dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan perangkat berbeda, Metodologi penelitian yang lebih baik.
  4. Data: Akses terhadap sumber data global, dan Hasil penelitian lebih baik.
           Indonesia sudah menggunakan sistem Grid dan diberi nama InGrid (Inherent Grid). Sistem komputasi grid mulai beroperasi pada bulam Maret 2007 dan terus dikembangkan sampai saat ini. InGrid ini menghubungkan beberapa perguruan tinggi negeri dan swasta yang tersebar di seluruh Indonesia dan beberapa instansi pemerintahan seperti Badan Meteorologi dan Geofisika.


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.


Contoh Cloud Computing


Cloud computing saat ini sedang populer, namun apa contoh dari Cloud Computing itu, berikut adalah lima contoh dari sekian banyak Cloud Computing saat ini:
  • Email
Email adalah salah satu alat komunikasi yang sudah cukup lama ada. Dalam email tersimpan data-data pada saat kita mengirimkan atau menerima data. Yang berupa tulisan atau file. Data-data tersebut dapat kita akses sewaktu-waktu kita perlukan , tanpa kita harus menyimpan data tersebut pada komputer pribadi sendiri. Orang lain juga dapat mengakses data tersebut tapi tentunya yang hanya menerima email itu saja.
  • Data storage online
Penyimpanan data pada komputer personal tentu akan santa terbatas. Jika harus membeli server sendiri amat sangat mahal sekali. Oleh sebab itu saat ini kita dapat menyewa atau bahkan ada yang menyediakan server gratis yang dapat kita akses secara online. Contohnya adalah Humyo, ZumoDrive, Microsoft’s SkyDrive, S3 from Amazon, dan masih banyak yang lain.
  • Colaboration Tools
Penkolaborasian data sering kali diperlukan. Karena data yang ingin kita simpan bermacam-macam jenisnya dan fungsinya. ada banayk tools yang dapat digunakan. Contohnya adalah Spicebird, Mikogo, Stixy and Vyew t.
  • Virtual Office
Sering kita memerlukan office untuk memproses data-data. Saat ini kita dapat menggunakan office tidak hanya yang sudah terinstall namun kita juga dapat menggunakan office yang disediakan secara online. Contohnya antara lain Ajax13, ThinkFree and Microsoft’s Office Live.
  • Kekuatan ekstra processing 
Bila membutuhkan kekuatan untuk memproses secara cepat tanpa perlu membeli perangkat tambahan maka salah satu solusinya adalah Amazon’s EC2 virtual computing ini juga dapat diatur sesuai dengan kebutuhan individu masing -masing orang. Contoh yang lain adalah AbiCloud, Elastichosts and NASA’s Nebula platform.

Ciri – Ciri Cloud Computing

Cloud computing saat ini sedang terkenal, namun apa ciri – ciri dari Cloud Computing itu, berikut adalah 7 ciri Cloud Computing yaitu:

1. Komputasi Otonom

Sistem komputer yang mampu mengatur atau me-manajemen sendiri secara otomatis.

2. Client-server model

Komputasi client-server mengacu secara luas untuk setiap aplikasi terdistribusi yang membedakan antara penyedia layanan (server) dan pengguna layanan (klien).

3. Grid computing

Suatu bentuk komputasi terdistribusi dan komputasi paralel, dimana sebuah ‘super komputer dan virtual’ terdiri dari sekelompok jaringan, komputer lebar ditambahkan serta bertindak untuk melakukan tugas yang demikian besar.

4. Mainframe komputer

Komputer luar biasa yang banyak digunakan oleh organisasi-organisasi besar untuk aplikasi kritis, biasanya proses transaksi pemrosesan data massal seperti sensus, statistik industri dan konsumen, perencanaan sumber daya perusahaan, dan keuangan.

5. Utility komputasi

Dengan kemasan sumber daya komputasi, seperti perhitungan dan penyimpanan.

6. Peer-to-peer

Arsitektur yang didistribusikan tanpa perlu koordinasi pusat, dengan peserta yang pada saat yang sama pihak pemasok dan konsumen sumber daya (berbeda dengan model client-server tradisional).

7. Berorientasi layanan komputasi

Cloud computing menyediakan layanan yang berkaitan dengan komputasi sementara, dengan cara timbal balik, komputasi berorientasi layanan terdiri dari teknik komputasi yang beroperasi pada perangkat lunak layanan.


Tingkat Layanan

Cloud computing mempunyai 3 tingkatan layanan yang diberikan kepada pengguna, yaitu:

1. Infrastructure as a service (IAAS)

Hal ini meliputi Grid untuk virtualized server, storage & network. Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service.

2. Platform as a service (PAAS)

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 (SAAS)


Hal ini memfokuskan pada aplikasi dengan Web-based interface yang diakses melalui Web Service dan Web 2.0. Contohnya adalah Google Apps, SalesForce.comdan 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.


Sumber:
http://digilib.batan.go.id/e-prosiding/lkstn_2008/artikel/U2-SaidMirza.pdf
https://www.academia.edu/7424831/Parallel_PROCESSING_Pemrosesan_paralel
http://blog.uin-malang.ac.id/sleeping/files/2010/10/Cluster.pdf

Senin, 26 Januari 2015

Smart City

Smart City


          Smart City didefinisikan sebagai kota yang mampu menggunakan SDM, modal sosial, dan infrastruktur telekomunikasi modern (Information and Communication Technology) untuk mewujudkan pertumbuhan ekonomi berkelanjutan dan kualitas kehidupan yang tinggi, dengan manajemen sumber daya yang bijaksana melalui pemerintahan berbasis partisipasi masyarakat. 

       Konsep Smart City merupakan konsep yang telah melalui penyempurnaan-penyempurnaan dari konsep yang telah terlebih dahulu berkembang dengan menambal kekurangan-kekurangan yang ada dan mempertimbangkan aspek-aspek yang mungkin belum ada pada konsep-konsep berbasis Teknologi Informasi dan Komunikasi (TIK) yang telah muncul sebelumnya. Konsep ini pada akhirnya tidak hanya mendasarkan pembangunan dan pengelolaan kota dalam dimensi teknologi, namun juga mencakup dimensi manusia dan dimensi institusional

          Sehubungan dengan sedang berkembangnya konsep Smart City, pemahaman terhadap konsep Smart City ini belum jelas dan konsisten. Kota-kota yang disebut Smart City pada awalnya memiliki terobosan baru dalam penyelesaian-penyelesaian masalah di kotanya, yang kemudian sukses meningkatkan performa kotanya. Pada umumnya, pembangunan kota-kota ini menuju Smart City diawali dengan penggunaan teknologi informasi dan komunikasi yang biasanya bersifat parsial, pada masalah-masalah prioritas. Sebagai contoh, Kota Amsterdam yang mendasarkan penggunaan TIK untuk mengurangi polusi, atau Kota Tallim, sebagai ibukota Estonia yang memulai pengelolaan kota yang cerdas dari segi pemerintahannya dengan e-government dan menggunakan smart ID card dalam pelayanan bagi penduduknya, maupun Kota Songdo di Korea Selatan yang mendasarkan pengembangan kota berbasis TIK untuk mengembangkan Songdo sebagai pusat bisnis internasional.

Smart city dapat didefinisikan menjadi 6 dimensi, yaitu:
  1. Smart Goverment (Pemerintahan Pintar)
  2. Smart Economy (Ekonomi Pintar)
  3. Smart Live (Hidup pintar)
  4. Smart Living (Lingkungan pintar)
  5. Smart People (Orang/Masyarakat Pintar)
  6. Smart Mobility (Mobilitas pintar)

Pengertian 6 Sumbu Utama Smart City
  1. Ekonomi pintar (inovasi dan persaingan) : maksudnya ini adalah semakina tinggi inovasi-inovasi baru yang ditinkatkan maka akan menamnabah peluang usaha baru dan mningkatkan persaingan pasar usaha/modal.
  2. Mobilitas pintar (transportasi dan infrastruktur) : Pengelolaan infrastruktur kota yang dikembangkan di masa depan merupakan sebuah sistern pengelolaan terpadu dan diorientasikan untuk menjamin keberpihakan pada kepentingan publik.
  3. Masyarakat pintar (kreativitas dan modal sosial) : Pembangunan senantiasa membutuhkan modal, baik modal ekonomi (economic capital), modal manusia (human capital) maupun modal sosial (social capital). Kemudahan akses modal dan pelatihan-pelatihan bagi UMKM dapat meningkatkan kemampuan dan ketrampilan mereka dalam mengembangkan usahanya. Modal sosial termasuk elemen-elemennya seperti kepercayaan, gotong royong, toleransi, penghargaan, saling memberi dan saling menerima serta kolaborasi sosial memiliki pengaruh yang besar terhadap pertumbuhan ekonomi melalui berbagai mekanisme seperti meningkatnya rasa tanggungjawab terhadap kepentingan publik, meluasnya partisipasi dalam proses demokrasi, menguatnya keserasian masyarakat dan menurunnya tingkat kejahatan
  4. Lingkungan pintar (keberlanjutan dan sumber daya) : lingkungan pintar itu berarti lingkungan yang bisa memberikan kenyamanan,Keberrlanjutan sumber daya,keindahan fisik maupun non fisik, visual maupun tidak,bagi masyarakat dan publik.lingkngan yang bersih tertata, RTH yang stabil merupakancontoh dari penerapan lingkungan yang pintar.
  5. Cerdas hidup (kualitas hidup dan kebudayaan) : Berbudaya, berarti bahwa manusia memiliki kualitas hidup yang terukur (budaya). Kualitas hidup tersebut bersifat dinamis, dalam artian selalu berusaha memperbaiki dirinya sendiri. Pencapaian budaya pada manusia, secara langsung maupun tidak langsung merupakan hasil dari pendidikan. Maka kualitas pendidikan yang baik adalah jaminan atas kualitas budaya, dan atau budaya yang berkualitas merupakan hasil dari pendidikan yang berkualitas.
  6. Pemerintahan yang cerdas (pemberdayaan dan partisipasi). : Kunci utama keberhasilan penyelengaraan pemerintahan adalah Good Governance. Yaitu paradigma, sistem dan proses penyelenggaraan pemerintahan dan pembangunan yang mengindahkan prinsip-prinsip supremasi hukum, kemanusiaan, keadilan, demokrasi, partisipasi, transparansi, profesionalitas, dan akuntabilitas ditambah dengan komitmen terhadap tegaknya nilai dan prinsip “desentralisasi, daya guna, hasil guna, pemerintahan yang bersih, bertanggung jawab, dan berdaya saing”.

    Enam dimensi itu berhubungan dengan teori regional dan neoklasik pertumbuhan dan pembangunan perkotaan tradisional. Secara khusus, dimensi tersebut didasarkan pada daya saing masing-masing daerah, seperti transportasi, ICT, ekonomi, sumber daya alam, social, pemerintahan, dan lain-lain.

Konsep smart city:

  1. Sebuah kota berkinerja baik dengan berpandangan ke dalam ekonomi, penduduk, pemerintahan, mobilitas, lingkungan hidup
  2. Sebuah kota yang mengontrol dan mengintegrasi semua infrastruktur termasuk jalan, jembatan, terowongan, rel, kereta bawah tanah, bandara, pelabuhan, komunikasi, air, listrik, dan pengelolaan gedung. Dengan begitu dapat mengoptomalkan sumber daya yang dimilikinya serta merencanakan pencegahannya. Kegiatan pemeliharaan dan keamanan dipercayakan kepada penduduknya.
  3. Smart city dapat menghubungkan infrastuktur fisik, infrastruktur IT, infrastruktur social, dan bisnis infrastruktur untuk meningkatkan kecerdasan kota.
  4. Smart city membuat kota lebih efisien dan layak huni
  5. Penggunaan smart computing untuk membuat smart city dan fasilitasnya meliputi pendidikan, kesehatan, keselamatan umum, transportasi yang lebih cerdas, saling berhubungan dan efisien.

Tujuan Smart City

       Tujuan dari konsep smart city ini adalah untuk mengatasi berbagai karakteristik inovasi ekosistem oleh semua gagasan smart city diantaranya menjadi kota hijau, saling berhubungan, terpadu untuk semua lapisan dan bentuk kota. Perencanan smart city menggunakan model referensi untuk menentukan konsep tata letak kota yang cerdas dan berkarakter. Smart city ini pada intinya memiliki 6 dimensi yaitu ekonomi yang cerdas, mobilitas cerdas, lingkungan pintar, orangnya cerdas, cerdas dalam hidup dan akhirnya pemerintahan yang cerdas pula. Konseptual Smart city dapat digunakan juga untuk evaluasi kemampuan inovatif pererencanaan kota. Selain itu model ini juga dapat untuk sinkronisasi dan pengoptimalan kota investasi dalam ekonomi dan broadband.
            Tujuan utama dari pembangunan sebuah “Kota Pintar” (Smart City) adalah bagaimana kita melestarikan lingkungan, meningkatkan daya saing ekonomi dan membangun masyarakat yang madani. Institut investasi Indonesia (3i) bersama Federasi Pembangunan Perkotaan Indonesia (FePPI), Asosiasi Pemerintah Kota Seluruh Indonesia (APEKSI) dan Asosiasi Pemerintah Kabupaten Seluruh Indonesia (APKASI) berkepentingan untuk memulai kampanye pembangunan perkotaan di Indonesia agar menjadi lebih cerdas dan lebih sukses, sebuah “Kota Pintar” yang mampu mendukung masyarakatnya untuk hidup makmur, adil dan sejahtera.

Contoh Fasilitas Kota Berkonsep Smart City 

         Teknologi modern serta perencanaan kota yang ramah lingkungan telah menghasilkan sejumlah inovasi baru. Banyak kota besar di dunia berusaha meningkatkan keseimbangan secara berkelanjutan, yang akan menjadi daya tarik kota itu sendiri. Berbagai macam inovasi berkembang ke berbagai unsur layanan kota pintar. Berikut adalah contoh dari fasilitas kota dengan konsep “Smart City”:
  • Perumahan dan Gedung Perkantoran

      Untuk mengurangi dampak negatif terhadap lingkungan dalam pengoperasian bangunan dan konstruksi, di beberapa kota telah dilakukan perbaikan pada infrastruktur serta sertifikasi bangunan untuk mengurangi penggunaan listrik dan air. Penggunaan “smart metering” dan “smart building” teknologi membantu memaksimalisasi kontrol penggunaan.Pengaturan kode etik dalam proses pembangunan, standarisasi dan sertifikasi adalah salah satu cara penting untuk menciptakan bangunan yang ramah lingkungan. Banyak kota telah menjalankan program pengawasan kodeetik dan standar dalam proses pembangunan dan renovasi gedung.
  • Pengelolaan sumber daya alam

          Dalam hal pasokan dasar sumber daya alam, banyak kota yang bekerja keras untuk mengurangi intensitas karbon dari energi yang digunakan masyarakat serta meningkatkan efektifitas, efisiensi pasokan dan jaringan distribusi.Berbagai sumber energi terbarukan seperti energi tenaga air, angin, sampah, ombak, matahari, dan panas bumi akan menjadi sumber energi penting. Pada tahun 2010, lebih dari 100 negara telah menetapkan target untuk energi terbarukan, naik dari hanya 55 negara pada tahun 2005. Sampai tahun 2020 penggunaan energi terbarukan ditargetkan sekitar 15% hingga 25%, tetapi ada beberapanegara sudah melampaui target ini.

  • Kesehatan dan keselamatan
        Teknologi informasi dan telekomunikasi secara inovatif telah mengubah kemampuan kota untuk menyediakan.pelayanan kesehatan jarak jauh kepada masyarakat, terutama masyarakat yang tinggal di panti jompo dan daerah terpencil.Penerapan teknologi modern merupakan bagian terpenting dari proyek ini.Beberapa pasien dilengkapi dengan perangkat yang dapat mengukur tekanan darah dan glukosa darah secara otomatis, menggunakan sebuah televisi “set-top box” yang berfungsi sebagai computer yang mampu meng-upload hasil tes ke Service Center Telecare. Para perawat kemudian menganalisa hasil diagnosa tersebut dan merekomendasikan perawatan yang diperlukan.Salah satu manfaat dari program ini adalah bahwa pasien tidak harus meninggalkan tempat tinggalnya untuk mendapatkan pelayanan kesehatan dasar.
  • Pendidikan dan budaya

      Model pelayanan pendidikan pada kota pintar (Smart City) baik negeri maupun swasta, diterapkan terutama menggunakan teknologi modern. Termasuk penyediaan fasilitas untuk kegiatan rekreasi dan kebudayaan seperti :musik, teater, olahraga dan kegiatan rekreasi lainnya. Tidak kalah pentingnya, pendidikan dalam konteks Kota Pintar (Smart City) adalah kebutuhan untuk melibatkan masyarakat dalam proses pendidikan, dimana akan terjadi perubahan perilaku untuk menjadi lebih baik sehingga dapat meningkatkan keseluruhan aspek keberlanjutan dan kesehatan lingkungan kota.


Bagaimana Cara Membangun Smart City?

Berikut ini adalah beberapa faktor yang penting untukdipertimbangkan saat merencanakan sebuah kota menjadi Smart City:
  • Mendorong dan mengembangkan pola baru struktur kepemimpinan dan tata kelola kota.
          Kota dan para pelaku usaha harus dapat bekerjasama dalammemperjuangkan konsep Smart City, menyikapi tantangan dengan bijaksana untuk mendapatkan keberhasilan dalam melayani masyarakat. Pemimpin Kabupaten/Kota perlu kepercayaan dan dukungan dari mitra usaha; demikian juga sebaliknya, para pelaku usaha membutuhkan dukungan dari para pemimpin kota.
  • Bekerjasama dengan melibatkan semua pihak
          Untuk berhasil melaksanakan misi sebagai Kota pintar, Pemimpin Kabupaten/Kota harus dapat bekerjasama menyelaraskan kepentingan dan tujuan dari berbagai sektor, lembaga masyarakat, sektor swasta dan seluruh komponen masyarakat.
  • Membangun dan menggunakan infrastruktur pintar


      Pemimpin Kabupaten/Kota harus mulai menjajaki teknologi dan konsep infrastruktur yang modern, terintegrasi dan pintar. Dengan cara menghadiri konferensi dan pameran teknologi di seluruh dunia sehingga memiliki pengetahuan dan menimba pengalaman dari berbagai kota di negara lain sehingga akan lebih mudah untuk memulai inisiatif pembangunan kota pintar di daerahnya.
  • Mempersiapkan model pembiayaan yang mampu menjawab tantangan dan peluang ke depan


         Model standar pembiayaan investasi infrastruktur konvensional biasanya tidak memadai dalam membangun sebuah kota pintar, sehingga diperlukan model dan pendekatan baru. Misalnya, menggunakan tabungan dari teknologi dengan model jatuh tempo seperti smart meter, bisa mendanai penelitian teknologi lainnya dan pengembangan bersama berbagai bagian dari infrastruktur pintar.

         Dalam kebanyakan kasus, kemitraan publik-swasta akan dapat mendanai investasi infrastruktur yang dibutuhkan untuk merevitalisasi kota. Misalnya, 1990-2009, lebih dari 1.400 kemitraan publik-swasta, yang mewakili sekitar $ 350 miliar modal kerja, telah didirikan di seluruh Uni Eropa dalam mendukung pembanguan Kota Pintar.

       Pengelolaan kota bisa menjadi katalisator untuk menyatukan sektor publik dan swasta dalam membangun model pembiayaan dan managemen yang menghasilkan pola kemitraan yang lebih baik. Pendekatan ini membutuhkan inisiatif dan koordinasi dari semua pihak, baik pemerintah maupun pihak swasta. Koordinasi dan kerjasama yang baik dapat menyelaraskan kepentingan dan keseimbangan pembagian risiko di antara semua pihak.

Model Pembiayaan :

Untuk membangun dan mengembangkan sebuah kota konvensional menjadi Kota Pintar dapat menggunakan sumber pembiayaan sebagai berikut;
    • APBN dan APBD


       Sumber pendanaan ini merupakan pendanaan yang sudahdilakukan selama ini dalam membangun kota, yaitu dari Anggaran Pemerintah termasuk dari Anggaran Pemerintah Pusat dan Pemerintah Daerah yang cukup terbatas, dengan pola perencanaan pembangunan tiap tahun dan dieksekusi pada tahun berikutnya. Kekurangan dari pola pendanaan ini adalah sulit menciptakan program pembangunan yang berkelanjutan.
    • Obligasi Daerah


         Pendanaan bersumber dari obligasi daerah merupakan pendanaan dengan melibatkan masyarakat untuk bisa menjadi shareholder pada pembangunan di kotanya. Sumber dana dari capital market yang cenderung memilki kemampuan sebagai sumber dana tanpa batas. Obligasi daerah bisa menjadi potensi pendanaan masa depan untuk mewujudkan Kota Pintar dengan melibatkan masyarakat dan pelaku bisinis di daerah untuk aktif sebagai shareholder.
    • Public Private Partnership (PPP)


                  PPP atau Kemitraan Pemerintah Swasta menjadi alternativependanaan yang cukup mudah diterapkan untuk pembangunankota, yaitu melibatkan swasta untuk membantu mendanai program-program pemerintah dengan diberikan hak kelola pada swasta dalam durasi konsesi kerjasama tertentu.

    • Foreign Direct Investment (FDI)


            Foreign Direct Investment adalah sumber pendanaan yang secara langsung datang dari investor asing, untuk mendanai program-program pembangunan perkotaan. FDI akan membutuhkan dukungan kemudahan administrasi dari Pemerintah Kota untuk mencairkan dana dari asing tersebut. FDI bisa untuk mendanai program pemerintah atau kerjasama langsung dengan swasta.

    • Specific Purposed Bonds (SPB)


                Specific Purposed Bonds juga merupakan sumber pendanaan masa depan yang sangat baik. Program pemerintah yang sangat besar misalnya membangun MRT (Mass Rapid Transport) atau membangun sistem transportasi massal yang memerlukan investasi yang sangat besar, dimana terjadi situasi Pemerintah tidak sanggup mendanai dan Swasta juga tidak berani mendanai, sehingga SPB bisa menjadi solusi dengan menerbitkan bonds/saham yang khusus untuk membangun MRT dan saham ditawarkan pada masyarakat. Masyarakat yang memahami arti penting adanya transport masal yang effektif di sebuah kota akan dengan senang hati akan membeli saham tersebut dan akan ikut aktif berpartisipasi agar program tersebut dapat terealisasi danterjaga dengan baik.


Referensi:

https://staff.blog.ui.ac.id/jp/2014/12/18/sistem-smart-city-jakarta/
http://etd.ugm.ac.id/index.phpmod=download&sub=DownloadFile&act=view&typ=html&file=343100.pdf&potongan=S2-2013-343100-chapter1.pdf&ftyp=potongan&tahun=2013
http://www.slideshare.net/PutuShinoda/putu-smartcity-22-feb-2014