Selasa, 01 Mei 2018

Analisa Program - Pemrograman Jaringan



Analisa Program - Pemrograman Jaringan
1.(getIP.java)
LISTING PROGRAM

 LOGIKA PROGRAM
Program ini bertujuan untuk mendapatkan alamat IP yang sedang digunakan. Terdapat library yaitu import.java.net.* digunakan agar program dapat mendukung pemrograman socket/jaringan. Kemudian terdapat beberapa fungsi, diantaranya:
InetAddress host = null; berfungsi untuk memanggil kelas InetAddress yang dapat mengambil informasi mengenai host dalam jaringan.
host = InetAddress.getLocalHost( ); berfungsi sebagai hak akses localhost untuk membaca data-data dari jaringan user.
byte ip[ ] = host.getAddress( ); berfungsi untuk menyimpan alamat IP.
Setelah alamat didapatkan maka secara otomatis akan ditampilkan oleh program.

OUTPUT PROGRAM


2.(getName.java) 

Listing Program 


 LOGIKA PROGRAM
Program ini bertujuan untuk mendapatkan alamat IP yang sedang digunakan. Terdapat library yaitu import.java.net.* digunakan agar program dapat mendukung pemrograman socket/jaringan. Kemudian terdapat beberapa fungsi, diantaranya:
host = InetAddress.getLocalHost; berfungsi untuk memanggil kelas InetAddress yang dapat mengambil informasi mengenai host dalam jaringan.
host.getHostName(); berfungsi sebagai hak akses localhost untuk membaca data-data dari jaringan user, serta menampilkan nama dari jaringan user.

OUTPUT PROGRAM


 
3. (IPtoName.java)
LISTING PROGRAM



LOGIKA PROGRAM
Program ini bertujuan untuk mendapatkan nama computer/jaringan dari IP Address yang ditentukan. Terdapat library yaitu import.java.net.* digunakan agar program dapat mendukung pemrograman socket/jaringan. Kemudian terdapat fungsi, diantaranya:
getHostName(); berfungsi sebagai hak akses localhost untuk membaca data-data dari jaringan user, serta menampilkan nama dari alamat jaringan yang dimasukan user.
OUTPUT PROGRAM

4. (NsLookup.java) 

Jumat, 13 April 2018

REVIEW JURNAL CLOUD COMPUTING

REVIEW JURNAL 
CLOUD COMPUTING
Hasil gambar untuk CLOUD COMPUTING
Judul Jurnal : Cloud Computing : Solusi ICT?
Nama : Faizah Vivic Anisa
NPM : 53414837
      Salah satu topik terhangat Information and Communication Technology (Teknologi Informasi dan Komunikasi) saat ini adalah cloud computing. Teknologi cloud computing dihadirkan sebagai upaya untuk memungkinkan akses sumber daya dan aplikasi dari mana saja melalui jaringan Internet, sehingga keterbatasan pemanfaatan infrastruktur ICT yang sebelumnya ada dapat diatasi. NIST mendefiniskan Clud Computing adalah sebuah model untuk kenyamanan, akses jaringan on-demand untuk menyatukan pengaturan konfigurasi sumber daya komputasi (seperti, jaringan, server, media penyimpanan, aplikasi, dan layanan) yang dapat dengan cepat ditetapkan dan dirilis dengan usaha manajemen yang minimal atau interaksi dengan penyedia layanan. Pembahasan paper dimulai dengan uraian dari beberapa pendapat dan penelitian terdahulu tentang teknologi cloud computing, selanjutnya ditinjau kelebihan dan kekurangan yang dapat ditimbulkan atas implementasi cloud computing. Pembahasan diakhiri dengan kesimpulan apakah cloud computing merupakan solusi ICT? dan saran yang dapat dijadikan bahan pertimbangan penguna dalam implementasi cloud computing.
Tiga model layanan dari cloud computing [6], yaitu :
    1. Cloud Software as a Service (SaaS). Kemampuan yang diberikan kepada konsumen untuk menggunakan aplikasi penyedia dapat beroperasi pada infrastruktur cloud.
Aplikasi dapat diakses dari berbagai perangkat klien melalui antarmuka seperti web browser (misalnya, email berbasis web). Konsumen tidak mengelola atau mengendalikan infrastruktur cloud yang mendasar termasuk jaringan, server, sistem operasi, penyimpanan, atau bahkan kemampuan aplikasi individu, dengan kemungkinan pengecualian terbatas terhadap pengaturan konfigurasi aplikasi pengguna tertentu. Contohnya adalah Google Apps, SalesForce.com dan aplikasi jejaring sosial seperti FaceBook.
    2. Cloud Platform as a Service (PaaS). Kemampuan yang diberikan kepada konsumen untuk menyebarkan aplikasi yang dibuat konsumen atau diperoleh ke infrastruktur cloud computing menggunakan bahasa pemrograman dan peralatan yang didukung oleh provider. Konsumen tidak mengelola atau mengendalikan infrastruktur cloud yang mendasar termasuk jaringan, server, sistem operasi, atau penyimpanan, namun memiliki kontrol atas aplikasi yang disebarkan dan memungkinkan aplikasi melakukan hosting konfigurasi. Contohnya yang sudah mengimplementasikan ini adalah Force.com dan Microsoft Azure investment.
    3. Cloud Infrastructure as a Service (IaaS). Kemampuan yang diberikan kepada konsumen untuk memproses, menyimpan, berjaringan, dan sumber komputasi penting yang lain, dimana konsumen dapat menyebarkan dan menjalankan perangkat lunak secara bebas, yang dapat mencakup sistem operasian aplikasi. Konsumen tidak mengelola atau mengendalikan infrastruktur cloud yang mendasar tetapi memiliki kontrol atas sistem operasi, penyimpanan, aplikasi yang disebarkan, dan mungkin kontrol terbatas komponen jaringan yang pilih (misalnya, firewall host). Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service.
Kelebihan Cloud Computing
· Menghemat biaya investasi awal untuk pembelian sumber daya.
· Bisa menghemat waktu sehingga perusahaan bisa langsung fokus ke profit dan berkembang dengan cepat.
· Membuat operasional dan manajemen lebih mudah karena sistem pribadi/perusahaan yang tersambung dalam satu cloud dapat dimonitor dan diatur dengan mudah.
· Menjadikan kolaborasi yang terpercaya dan lebih ramping.
· Mengehemat biaya operasional pada saat realibilitas ingin ditingkatkan dan kritikal sistem informasi yang dibangun.
Kekurangan Cloud Computing
· Hal penting dalam cloud computing adalah koneksi internet, diperlukan bandwith yang memadai dan stabil agar cloud computing berjalan dengan baik. Komputer akan menjadi lambat atau tidak bisa dipakai sama sekali jika internet bermasalah atau kelebihan beban.
· 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 penyedia layana rusak atau punya layanan backup yang buruk, maka perusahaan akan mengalami kerugian besar.
Kesimpulan
       Profesional ICT dituntut untuk meningkatkan keahlian yang dimiliki atas penerapan teknologi cloud computing. Dengan kemampuan dan keterampilan yang dimiliki, para profesional dapat menangkap peluang baru yang dapat digunakan sebagai kesempatan untuk memperluas kompetensi mereka.
Perusahaan perlu mengembangkan pengetahuan dan pemahaman tenaga ICT yang mereka miliki, sehingga nantinya transisi ke teknologi berbasis cloud akan yang diterapkan dapat berhasil dan menguntungkan.
       Teknologi dalam bidang ICT begitu cepat berkembang, dan ini merupakan sebuah tantangan. Maka dibutuhkan kesiapan para profesional dan perusahaan ICT untuk mengantisipasi perkembangan tersebut.

Selasa, 13 Maret 2018

Pengantar Komputasi Grid

BAB I
PENDAHULUAN

Perkembangan teknologi di era ini menggunakan konsep – konsep seperti social networking, open, share, colaborations, mobile, easy maintenance, one click, terdistribusi, scalability, concurency, dan transparan. Sampai saat ini trend teknologi Cloud Computing masih terus diteliti dalam penelitian – penelitian para pakar IT dunia. Dengan berbagai kelebihan dan kekurangan, Cloud Computing hadir dengan memudahkan akses data dari mana saja dan kapan saja, karena dengan memanfaatkan internet dan menggunakan perangkat fixed atau mobile device menggunakan internet cloud sebagai tempat penyimpanan data, aplikasi dan lainya. Teknologi ini akan memberikan banyak keuntungan baik dari sisi pemberi layanan (provider) atau dari sisi user. Penerapan teknologi ini memberikan dampak yang sangat signifikan bagi pengembangan teknologi itu sendiri, baik dari sisi pengguna maupun dari sisi industri.
Pengguna diuntungkan dengan semakin mudahnya memperoleh atau mengunduh data secara cepat dan mudah karena banyak layanan yang dibuka oleh pihak industri. Keuntungan bagi pihak industri pun tidak kalah besar dengan kemudahan yang didapat oleh pengguna, karena dengan semakin majunya teknologi cloud computing akan semakin memudahkan industri untuk memasarkan produk dan menyebarkan informasi secara meluas keseluruh penjuru dunia. Secara umum, definisi cloud computing (komputasi awan) merupakan gabungan pemanfaatan teknologi komputer (komputasi) dalam suatu jaringan dengan pengembangan berbasis internet (awan) yang mempunyai fungsi untuk menjalankan program atau aplikasi melalui komputer – komputer yang terkoneksi pada waktu yang sama, tetapi tak semua yang terkonekasi melalui internet menggunakan cloud computing.
Teknologi komputer berbasis sistem Cloud ini merupakan sebuah teknologi yang menjadikan internet sebagai pusat server untuk mengelola data dan juga aplikasi pengguna. Teknologi ini mengizinkan para pengguna untuk menjalankan program tanpa instalasi dan mengizinkan pengguna untuk mengakses data pribadi mereka melalui komputer dengan akses internet.







BAB II
PEMBAHASAN
Pengantar Komputasi Grid
Komputasi Grid sebenarnya merupakan sebuah aplikasi pengembangan dari jaringan komputer (network). Hanya saja, tidak seperti jaringan komputer konvensional yang berfokus pada komunikasi antar piranti (device), aplikasi pada grid computing dirancang untuk memanfaatkan sumber daya pada terminal dalam jaringannya. Grid Computing biasanya diterapkan untuk menjalankan sebuah fungsi yang terlalu kompleks atau terlalu intensif untuk dikerjakan oleh satu sistem tunggal. Seperti halnya pengguna internet yang mengakses berbagai situs web dan menggunakan berbagai protokol seakan – akan dalam sebuah sistem yang berdiri sendiri, maka pengguna aplikasi Grid Computing seolah – olah akan menggunakan sebuah virtual komputer dengan kapasitas pemrosesan data yang sangat besar.
Menurut definisi Grid Computing atau Komputasi Grid merupakan salah satu dari tipe data komputasi paralel. Karena penggunaan sumber daya nya melibatkan banyak komputer terpisah secara geografis namun tersambung via jalur komunikasi (termasuk internet) untuk memecahkan persoalan komputasi skala besar. Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber – sumber komputer yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas – batas domain administrasi yang ada.
Semakin cepat jalur komunikasi terbuka, maka peluang untuk menggabungkan kinerja komputasi dari sumber-sumber komputasi yang terpisah menjadi semakin meningkat. Dengan demikian, skala komputasi terdistribusi dapat ditingkatkan secara geografis lebih jauh lagi, melintasi batas-batas domain administrasi yang ada.
Suatu sistem melakukan komputasi grid yaitu :
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.
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.Misalnya TCP/IP
Sistem tersebut berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial quality of service) yang jauh diatas kualitas layanan komponen individu dari komputasi grid tersebut.
Beberapa konsep dasar dari Komputasi Grid
Sumber daya dikelola dan dikendalikan secara lokal.
Sumber daya berbeda dapat mempunyai kebijakan dan mekanisme berbeda, mencakup Sumber daya komputasi dikelola oleh sistem batch berbeda, Sistem storage berbeda pada node berbeda, Kebijakan berbeda dipercayakan kepada user yang sama pada sumber daya berbeda pada Grid.
Sifat alami dinamis: Sumber daya dan pengguna dapat sering berubah.
Lingkungan kolaboratif bagi e-community (komunitas elektronik, di internet)
Tiga hal yang di-sharing dalam sebuah sistem grid, antara lain : Resource, Network dan Proses. Kegunaan / layanan dari sistem grid sendiri adalah untuk melakukan high throughput computing dibidang penelitian, ataupun proses komputasi lain yang memerlukan banyak resource komputer.
Secara generik, keuntungan dasar dari penerapan komputasi Grid, yaitu:
Perkalian dari sumber daya: Resource pool dari CPU dan storage tersedia ketika idle.
Lebih cepat dan lebih besar: Komputasi simulasi dan penyelesaian masalah apat berjalan lebih cepat dan mencakup domain yang lebih luas
Software dan aplikasi: Pool dari aplikasi dan pustaka standard, Akses terhadap model dan perangkat berbeda, Metodologi penelitian yang lebih baik.
Data: Akses terhadap sumber data global, dan Hasil penelitian lebih baik

Virtualisasi
Dalam ilmu komputer, virtualisasi (bahasa Inggris: virtualization) adalah istilah umum yang mengacu kepada abstraksi dari sumber daya komputer. Definisi lainnya adalah "sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara sistem lain, aplikasi atau pengguna berinteraksi dengan sumber daya tersebut. Hal ini termasuk membuat sebuah sumber daya tunggal (seperti server, sebuah sistem operasi, sebuah aplikasi, atau peralatan penyimpanan terlihat berfungsi sebagai beberapa sumber daya logikal; atau dapat juga termasuk definisi untuk membuat beberapa sumber daya fisik (seperti beberapa peralatan penyimpanan atau server) terlihat sebagai satu sumber daya logikal."

Istilah virtualisasi sudah digunakan secara luas sejak 1960-an, dan telah diaplikasikan kepada beberapa aspek komputer—dari keseluruhan sistem komputer sampai sebuah kemampuan atau komponen individu. Secara umum semua teknologi virtualisasi mengacu kepada "menyembunyikan detail teknis" melalui enkapsulasi.

Menurut Alan Murphy dalam papernya Virtualization Defined – Eight Different Ways, menyebutkan setidaknya terdapat delapan istilah dalam penerapan virtualisasi. Diantaranya adalah operating system virtualization, application server virtualization, application virtualization, management virtualization, network virtualization, hardware virtualization, storage virtualization dan service virtualization.
Fungsi Virtualisasi
Secara umum fungsi virtualisasi data center adalah sebagai berikut.
Pengurangan Biaya Investasi Hardware. Investasi hardware dapat ditekan lebih rendah karena virtualisasi hanya mendayagunakan kapasitas yang sudah ada. Tak perlu ada penambahan perangkat komputer, server dan pheriperal secara fisik. Kalaupun ada penambahan kapasitas harddisk dan memori, itu lebih ditujukan untuk mendukung stabilitas kerja komputer induk, yang jika dihitung secara finansial, masih jauh lebih hemat dibandingkan investasi hardware baru.
Kemudahan Backup & Recovery. Server-server yang dijalankan didalam sebuah mesin virtual dapat disimpan dalam 1 buah image yang berisi seluruh konfigurasi sistem. Jika satu saat server tersebut crash, kita tidak perlu melakukan instalasi dan konfigurasi ulang. Cukup mengambil salinan image yang sudah disimpan, merestore data hasil backup terakhir dan server berjalan seperti sedia kala. Hemat waktu, tenaga dan sumber daya.
Kemudahan Deployment. Server virtual dapat dikloning sebanyak mungkin dan dapat dijalankan pada mesin lain dengan mengubah sedikit konfigurasi. Mengurangi beban kerja para staff IT dan mempercepat proses implementasi suatu sistem
Mengurangi Panas. Berkurangnya jumlah perangkat otomatis mengurangi panasnya ruang server/data center. Ini akan berimbas pada pengurangan biaya pendinginan/AC dan pada akhirnya mengurangi biaya penggunaan listrik
Mengurangi Biaya Space. Semakin sedikit jumlah server berarti semakin sedikit pula ruang untuk menyimpan perangkat. Jika server ditempatkan pada suatu co-location server/data center, ini akan berimbas pada pengurangan biaya sewa
Kemudahan Maintenance & Pengelolaan. Jumlah server yang lebih sedikit otomatis akan mengurangi waktu dan biaya untuk mengelola. Jumlah server yang lebih sedikit juga berarti lebih sedikit jumlah server yang harus ditangani
Standarisasi Hardware. Virtualisasi melakukan emulasi dan enkapsulasi hardware sehingga proses pengenalan dan pemindahan suatu spesifikasi hardware tertentu tidak menjadi masalah. Sistem tidak perlu melakukan deteksi ulang hardware sebagaimana instalasi pada sistem/komputer fisik
Kemudahan Replacement. Proses penggantian dan upgrade spesifikasi server lebih mudah dilakukan. Jika server induk sudah overload dan spesifikasinya tidak mencukupi lagi, kita bisa dengan mudah melakukan upgrade spesifikasi atau memindahkan virtual machine ke server lain yang lebih powerful.


Teknologi Virtualisasi
Untuk mendukung implementasi virtualisasi server , CPU dari sebuah server harus mendukung teknologi virtualisasi, tetapi tidak usa kuatir karena hardware saat ini sudah mendukung teknologi virtualisasi hankan untuk komputer biasa pun sudah mendukung teknilogi virtualisasi.

Dalam teknologi virtualisasi sebuah server dipecah kedalam virtual environment , dan setiap virtual environment dapat diinstall sistem operasi yang berbeda dari sistem operasi server fisik atau sistem operasi dari virtual environment lain nya. Ketiaka Virtual environment berjalan dia tidak tau tentang resource yang digunakan sehingga dalam teknologi virtualisasi diperlukan sebuah Hypervisor yang mengkoordinasi komunikasi dan instruksi antara virtual environment dengan resource fisik / psical resource. Hypervisor inilah yang dipegang oleh administrator dari sebuah server yang mengimplementasikan teknologi virtualisasi untuk mengatur virtual environment.
Ada 2 jenis Hypervisor dalam dunia virtualisasi saat ini :
Hypervisor Type 1 (Bare Metal Hypervisor)
Dikatakan Bare Metal hypervisor karena hypervisor ini mengakses langsung hardaware fisik tanpa bantuan sistem operasi, dan biasnaya untuk menggunakan hypervisor type 1 kita harus menginstal hypervisor sebagai sistem operasi (Bukan diinstal dalam sistem operasi).
Contoh  Hypervisor Type 1 diantaranya : KVM, Red hat Enterprise Virtualisation (RHEV), XEN/Citrix XenServer, Hyper-V, VMware vSphere/ESXi
Hypervisor Type 2 (Hosted Hypervisor)
Jenis Hypervisor ini memerlukan sistem operasi untuk berjalan, karena jenis hyper visor ini berjalan diatas sistem operasi.
Contoh Hypervisor Type 2 diantaranya : VMware Work station, VMware Player, Virtual Box
Keuntungan Menggunakan teknologi Virtualisasi
Semakin berkembangnya tuntutan dunia dalam industri komputer untuk memenuhi kebutuhan manusia dan semakin komplex infrastruktur untuk membangun nya maka teknologi virtualisasi dibuat untuk menyederhanakan kerumitan yang ada. dengan menggunakan virtual environment,konfigurasi server dan infrastruktur jaringan lebih gampang dimanage dan dimonitor. Berikut adalah beberapa keuntungan/benefit menggunakan teknologi virtualisasi dalam dunia komputer modern saat ini .

Optimalisasi Server
jika kita mempunyai server fisik dengan kapasitas besar, sedangkan aplikasi server yang akan kita bangun memerlukan resource yang kecil, baiknya server yang akan kita bangun dimasukan ke dalam virtual environment dan mengatur resource VE sesuai dengan kebutuhan aplikasi server yang akan kita bangun, Dengan demikian sisa resource bisa kita manfaatkan untuk membangun server lain diwaktu yang akan datang tanpa harus membeli perangkat baru.
Snapshot
Virtual environment mendukung snapshot yang memungkinkan kita untuk mengembalikan virtual environment (VE) ke kondisi saat snapshot diambil jika terjadi kesalahan konfigurasi/Error. Snapshot akan menyimpan kondisi dari VE dan kita bisa merestore kapanpun kita mau.
Migrasi Mudah
Hypervisor sekarang telah mendukung live migration, dimana kita bisa memindah VE (Server) yang sedang berjalan ke server fisik yang lain tanpa mengalami server down.
Instan Fail Over
Mayoritas Hypervisor telah mendukung clustering sehingga fail over bisa dilakukan secara instan dan otomatis
Flexible
Dengan menggunakan teknologi virtual pengelolaan server akan menjadi lebih mudah ketika kita ingin memindah, merubah resource bahkan ketika kita ingin memindahkan server dalam keadaan hidup tanpa mengalami down (Live Migration). Proses penginstallan dan recovery juga tidak memakan waktu yang lama jika terjadi kerusakan /error pada Hypervisor
Hemat Listrik dan Hardware
Akan sangat berbeda jika kita tidak menggunakan virtualisasi dimana kita menghidupkan banyak server yang masing-masing menggunakan daya sendiri , dengan virtualisasi cukup 1 server besar dan penggunaan resource bisa disesuaikan dengan kebutuhan. Jika Resource kurang tidak perlu beli server baru cukup Upgrade part yang perlu diupgrade saja (misal RAM,CPU,Storage)
Memperpanjang masa hidup aplikasi yang sudah lama
Ketika aplikasi jadul sudah tidak bisa berjalan di modern OS saat ini (Misalnya aplikasi DOS) dengan teknologi virtual kita bisa menjalankan aplikasi jadul tersebut diplatform manapun dengan menggunakan virtualisasi desktop atau virtualisasi aplikasi.
Backup dan Recovery Mudah
Hypervisor menyediakan auto backup untuk setiap container /VE sehingga jika terjadi kerusakan kita bisa merestore backup tersebut ke virtual server yang telah disediakan tanpa harus memakan waktu yang lama, Berbeda sekali jika kita menginstall server pada server fisik yang akan memakan waktu lama untuk mengkonfigurasi ulang jika terjadi kerusakan
Lebih aman
Jika terjadi kasus server di hack dan data penting dalam server dihapus/dirusak  maka dengan mudah kita untuk mengembalikan nya dengan fasilitas backup-restore. walau hacker telah masuk kedalam sistem tetapi hacker tidak bisa menembus ke resource fisik dari server yang kita kelola maka dengan mudah kita untuk menghapus backdoor dan malware yang ditinggalkannya, ini akan berbeda jika tidak menggunakan virtualisasi ketika server dijebol hacker maka hacker 100% telah menguasai server fisik kita dan akan sangat repot untuk membersihkan nya.


Sedangkan kekurangannya adalah sebagai berikut :
Potensi risiko keamanan jaringan tidak dikelola dengan baik
Kesulitan aplikasi kompleks (seperti multimedia)
Downtimejaringan akan berakibat fatal dan berdampak ke semua user atau pengguna
Ketergantungan konektivitas jaringan publik.

Gambar Virtualisasi

Distributed Computation dalam Cloud Computing

Kegiatan ini merupakan kumpulan beberapa computer yang terhubung untuk melakukan pendistribusian, seperti mengirim dan menerima data serta melakukan interaksi lain antar computer yang dimana membutuhkan sebuah jaringan agar computer satu dan lainnya bisa saling berhubung dan melakukan interaksi. Hal ini semua dilakukan dengan cloud computing yang seperti kita ketahui memberikan layanan dimana informasinya disimpan di server secara permanen dan disimpan di computer client secara temporary.
Komputasi Terdistribusi merupakan salah satu tujuan dari Cloud Computing, karena menawarkan pengaksesan sumber daya secara parallel, para pengguna juga bisa memanfaatkannya secara bersamaan (tidak harus menunggu dalam antrian untuk mendapatkan pelayanan), terdiri dari banyak sistem sehingga jika salah satu sistem crash, sistem lain tidak akan terpengaruh, dapat menghemat biaya operasional karena tidak membutuhkan sumber daya (resourches)“.
Distribusi komputasi ini memiliki definisi mempelajari penggunaan terkoordinasi dari computer secara fisik terpisah atau terdistribusi. Pada distributed computing ini, program dipisah menjadi beberapa bagian yang dijalankan secara bersamaan pada banyak computer yang terhubung melalui jaringan internet.

Map Reduce
Setiap istilah perlu definisi, dan harus ada kesepakatan akan definisi tersebut biar tidak terjadi salah pengertian ataupun salah paham diantara para pengguna istilah tersebut. MapReduce pun punya definisi. MapReduce adalah model pemrograman rilisan Google yang ditujukan untuk memproses data berukuran raksasa secara terdistribusi dan paralel dalam cluster yang terdiri atas ribuan komputer. Dalam memproses data, secara garis besar MapReduce dapat dibagi dalam dua proses yaitu proses Map dan proses Reduce. Kedua jenis proses ini didistribusikan atau dibagi-bagikan ke setiap komputer dalam suatu cluster (kelompok komputer yang salih terhubung) dan berjalan secara paralel tanpa saling bergantung satu dengan yang lainnya. Proses Map bertugas untuk mengumpulkan informasi dari potongan-potongan data yang terdistribusi dalam tiap komputer dalam cluster. Hasilnya diserahkan kepada proses Reduce untuk diproses lebih lanjut. Hasil proses Reduce merupakan hasil akhir yang dikirim ke pengguna.
Desain dan Struktur, MapReduce itu sederhana.
Dari definisinya, MapReduce mungkin terkesan sangat ribet. Untuk memproses sebuah data raksasa, data itu harus dipotong-potong kemudian dibagi-bagikan ke tiap komputer dalam suatu cluster. Lalu proses Map dan proses Reduce pun harus dibagi-bagikan ke tiap komputer dan dijalankan secara paralel. Terus hasil akhirnya juga disimpan secara terdistribusi. Benar-benar terkesan merepotkan.
Beruntunglah, MapReduce telah didesain sangat sederhana alias simple. Untuk menggunakan MapReduce, seorang programer cukup membuat dua program yaitu program yang memuat kalkulasi atau prosedur yang akan dilakukan oleh proses Map dan Reduce. Jadi tidak perlu pusing memikirkan bagaimana memotong-motong data untuk dibagi-bagikan kepada tiap komputer, dan memprosesnya secara paralel kemudian mengumpulkannya kembali. Semua proses ini akan dikerjakan secara otomatis oleh MapReduce yang dijalankan diatas Google File System (Gambar 1).


Gambar 1. Map dan Reduce

Program yang memuat kalkulasi yang akan dilakukan dalam proses Map disebut Fungsi Map, dan yang memuat kalkulasi yang akan dikerjakan oleh proses Reduce disebut Fungsi Reduce. Jadi, seorang programmer yang akan menjalankan MapReduce harus membuat program Fungsi Map dan Fungsi Reduce.
Fungsi Map bertugas untuk membaca input dalam bentuk pasangan Key/Value, lalu menghasilkan output berupa pasangan Key/Value juga. Pasangan Key/Value hasil fungsi Map ini disebut pasangan Key/Value intermediate. Kemudian, fungsi Reduce akan membaca pasangan Key/Value intermediate hasil fungsi Map, dan menggabungkan atau mengelompokkannya berdasarkan Key tersebut. Lain katanya, tiap Value yang memiliki Key yang sama akan digabungkan dalam satu kelompok. Fungsi Reduce juga menghasilkan output berupa pasangan Key/Value.
Untuk memperdalam pemahaman, mari kita simak satu contoh. Taruhlah kita akan membuat program MapReduce untuk menghitung jumlah tiap kata dalam beberapa file teks yang berukuran besar (Gambar 2). Dalam program ini, fungsi Map dan fungsi Reduce dapat didefinisikan sebagai berikut:
      map(String key, String value):
            //key : nama file teks.
            //value: isi file teks tersebut.
            for each word W in value:
                  emitIntermediate(W,"1");
      reduce(String key, Iterator values):
            //key : sebuah kata.
            //values : daftar yang berisi hasil hitungan.
            int result = 0;
            for each v in values:
                  result+=ParseInt(v);
            emit(AsString(result));

Hasil akhir  dari program ini adalah jumlah dari tiap kata yang terdapat dalam file teks yang dimasukkan sebagai input program ini.


Gambar 2. Menghitung jumlah tiap kata dalam suatu dokumen.

Pengertian hadoop MapReduce
Untuk penyederhanaan saya coba merumuskan definisi hadoop MapReduce ke dalam poin-poin sebagai berikut :
Hadoop MapReduce adalah algoritma atau proses komputasi pada sistem terdistribusi
Ditulis di atas bahasa Java
Mempunyai 2 proses utama, yaitu map dan reduce
Mampu untuk memproses secara pararel data yang sangat besar, karena komputasi bisa berjalan di puluhan, ratusan, atau bahkan ribuan node.
Map mengambil satu set data dan mengubahnya menjadi satu set data, di mana unsur-unsur individu dipecah menjadi tupel. Kemudian, Reduce mengambil output dari hasil proses map sebagai masukan dan menggabungkan/mengelompokkan tupel data ke satu set data yang lebih kecil dari tupel. Sebagai urutan pada penamaan MapReduce menyiratkan, proses reduce selalu dilakukan setelah proses map. Tupel di sini berarti pasangan antara key dan value-nya, dapat digambarkan dengan simbol "(k1, v1)".
Tahapan proses MapReduce
MapReduce terdiri atas tiga tahap, yaitu tahap map, tahap shuffle, dan terakhir tahap reduce. untuk tahapan shuffle dan reduce digabungkan kedalam satu tahap besaran-nya yaitu tahap reduce.
Tahap map, memproses data inputan yang umumnya berupa file yang tersimpan dalan HDFS (dapat di baca di Sistem file terdistribusi), inputan tersebut kemudian diubah menjadi tuple yaitu pasangan antara key dan value-nya.
Tahap reduce, memproses data inputan dari hasil proses map, yang kemudian dilakukan tahap shuffle dan reduce yang hasil data set baru-nya disimpan di HDFS kembali.
Berikut ini ilustrasi untuk mendapatkan gambaran tentang proses map dan reduce :
Contoh kasus map reduce adalah misalnya jika kita ingin menghitung jumlah penggunaan huruf dalam sebuah buku. Misal kita punya satu file teks besar yang berisi seluruh kalimat yang menyusun sebuah buku. Maka yang dilakukan oleh Map Reduce program yang menghitung penggunaan kata dalam buku tersebut kurang lebih sebagai berikut :
Proses Map :
Membaca tiap baris kalimat di dalam file teks tersebut.
Membaca tiap kata yang ada dalam beris tersebut dan membuat sebuah map untuk kata tersebut. Key dari map itu adalah kata tersebut sedangkan value dari map itu adalah 1.
Sampai disini hasil yang kita dapatkan dari dua langkah diatas adalah daftar map untuk semua kata dari file teks tersebut dengan value 1. Karena kita tidak menyatukan perhitungan kata-kata yang sama dalam satu map, maka tersapat map dengan key yang sama. Misal ada map kata ‘Dan’ => 1 berulang kali.

Proses Reduce:
Melakukan sorting atau pengelompokan map dengan kata-kata yang sama.
Menjumlahkan untuk mencari total dari kata-kata yang sama tersebut
Sampai disini maka hasilnya adalah map dengan key yang unik setiap kata berikut dengan jumlah penggunaannya di buku tersebut.


Kesimpulan :
Hadoop MapReduce adalah model komputasi berbasis Java pada sistem terdistribusi dalam rangka mendukung aplikasi Big Data. Diberi nama MapReduce dikarenakan terdiri atas dua proses utama yaitu map dan reduce.


NoSQL (Not Only SQL)
NoSQL (Not Only SQL) merupakan sebuah konsep dimana ketika sebuah software dirancang, terdapat lebih dari satu mekanisme penyimpanan data yang bisa digunakan tergantung kebutuhan software tersebut. Secara sederhana, ketika masalah kompleks harus diselesaikan, masalah akan dipecah menjadi bagian-bagian kecil dan dalam setiap bagian tersebut diterapkan model database yang berbeda. Selanjutnya hasil dari masing-masing bagian digabungkan kedalam sebuah hybrid data storage. Konsep ini juga dikenal sebagai Polyglot Pesistence. Saat ini NoSQL masih belum memiliki definisi tetap.
Mengapa NoSQL?
Developer aplikasi sering berhadapan dengan masalah ketidaksesuaian antara struktur data relasional dengan struktur data in-memory. NoSQL database memungkinkan developer untuk mengembangkan aplikasi tanpa perlu mengubah struktur in-memory ke struktur relasional.

Pada gambar diatas, bagian kanan merupakan gambaran implementasi menggunakan database biasa sedangkan bagian kiri merupakan gambaran implementasi menggunakan database berkonsep NoSQL. Gambar ini menunjukkan perpindahan dari penggunaan database sebagai titik integrasi menjadi integrasi menggunakan services. Database relasional tidak didesain untuk bekerja dengan baik dalam cluster, sedangkan perkembangan web sebagai platform membutuhkan dukungan untuk jumlah data yang besar dengan menjalankan aplikasi dalam cluster.

No SQL Data Base
NOSQL adalah database generasi terbaru yang mengarahkan kepada database yang tidak berelasi (non-relational), dapat disebarkan kepada siapapun (open-source) dan berskala horisontal (horizontal scale). Berbeda dengan basis data SQL dimana meskipun berbeda-beda pembuat namun cara kerja NOSQL maupun cara penggunaannya relatif sama. Contohnya sama-sama menggunakan tabel yang dihubungkan oleh relasi-relasi, manipulasi data dengan bahasa SQL dan sb. Basis data NOSQL bisa sangat berbeda satu sama lain.
Pengelompokan database noSQL
Secara umum, database noSQL dibagi menurut format penyimpanan dokumentnya. Berikut ini adalah pengelompokan database noSQL berdasarkan model (penyimpanan) datanya :
Document Database (disimpan dalam dokumen-dokumen) contohnya MongoDB, seiap satu object data disimpan dalam satu dokumen. Dokumen sendiribisa terdiri dari key-value, dan value sendiri bisa berupa array atau key-value bertingkat.
Graph , (disimpan dalam bentuk graf). Format ini sering dipakai untuk data yang saling berhubungan seperti jejaring social. Contoh database noSQL dengan format ini adalah Neo4J dan FlockDB. FlockDB dipakai oleh twitter.
Key – Value (disimpan dalam bentuk kunci-isi berpasangan), contoh database jenis ini adalah Apache Cassandra.
Object Database (disimpan dalam object object), Object disini sama dengan pengertian object di Pemrograman beroreintasi object , Contoh databasenya adalah Db4o.

7 Basis Data NoSQL Populer

Mongo DB
MongoDB merupakan basis data NoSQL yang document based. Ia menyimpan data-datanya dalam suatu dokumen JSON yang disebut BSON (Binary JSON). MongoDB juga merupakan salah satu basis data yang open source sehingga pengembangan mongoDB sendiri cukup pesat karena setiap orang bisa berpartisipasi untuk mengembangkannya.
Couch DB
Apache CouchDB, biasa disebut dengan CouchDB saja, merupakan basis data NoSQL yang dikembangkan oleh Apache. CouchDB tidak menyimpan datanya dalam tabel melainkan dalam dokumen seperti halnya mongoDB. Basis data ini juga merupakan proyek open source serta dikembangkan dalam pengembangan CouchDB agar basis data ini lebih baik.
Cassandra
Cassandra merupakan sebuah sistem penyimpanan data terdistribusi untuk menangani jumlah data yang sangat besar dan terstruktur dan juga merupakan aplikasi open source yang ditulis dalam bahasa Java dengan lisensi Apache License 2.0. Untuk memproses datanya, Cassandra menggunakan bahasa sendiri yang mirip dengan SQL yaitu Cassandra Query Language (CQL).
Redis
Redis merupakan singkatan dari REmote DIctionary Server dan merupakan basis data berbasis key-valuepaling populer. Redis banyak dipilih karena memiliki fitur in-memory, networked, dan durabilitas tinggi.
Riak
Riak merupakan basis data NoSQL terdistribusi yang menyimpan datanya dalam bentu key-value. iak memiliki dua versi yakni Open source edition dan Enterprise edition. Enterprise edition menawarkan dukungan berbayar intensif dari pengembangnya. Pengguna Open source edition dapat bermigrasi kapan saja ke Enterprise edition jika dibutuhkan.
Neo4J
Neo4j merupakan basis data NoSQL dengan sistem graf. Neo4j menyimpan relasi antar objek dalam struktur seperti graf, dimana setiap objek merujuk ke objek lainnya secara langsung. Dalam menambahkan maupun mengambil data, Neo4j memiliki bahasa sendiri yang disebut Cypher. Neo4j termasuk basis data yang open source.
Orient DB
OrientDB merupakan basis data graf terdistribusi generasi kedua. OrientDB menawrkan dua edisi yakni Community Edition yang tersedia secara gratis dan Enterprise Edition yang merupakan aplikasi komersial dikembangkan oleh tim yang sama yang mengembangkan engine OrientDB. OrientDB dapat digunakan bersama JavaScript, .NET, node.js, php, Scala, Ruby, Python, C, Clojure, Java, dan Perl.

Ulasan Produk Terapan NoSQL
Salah satu produk terapan NOSQL yang terkenal adalah MongoDB. MongoDB adalah database open source berbasis dokumen (Document-Oriented Database) yang awalnya dibuat dengan bahasa C++. MongoDB sendiri sudah dikembangkan oleh 10 gen sejak Oktober 2007, namun baru dipublikasikan pada Februari 2009. Selain karena performanya  4 kali lebih cepat dibandingkan MySQL serta mudah diaplikasikan. Dalam konsep MongoDB tidak ada yang namanya tabel, kolom ataupun baris yang ada hanyalah collection (ibaratnya tabel), document (ibaratnya record). Data modelnya sendiri disebut BSON dengan struktur mirip dengan JSON. Strukturnya cukup mudah dibaca, contohnya seperti ini.
{
“nama” : “Dede Gunawan”,
“kontak” : {
“alamat” : “Kp. Cioray, Ds. Jatiwaras”,
“kota” : “Tasikmalaya”,
“kodepos” : “46191”,
“telp” : “0812xxxxxx”,
}
}

Dengan konsep key-value yang ada pada MongoDB, setiap document otomatis memiliki index id yang unik. Hal ini membantu mempercepat proses pencarian data secara global.
Kelebihan NoSQL di banding Relasional Database
NoSQL bisa menampung data yang terstruktur, semi terstruktur dan tidak terstuktur secara efesien dalam skala besar (big data/cloud).
Menggunakan OOP dalam pengaksesan atau manipulasi datanya.
NoSQL tidak mengenal schema tabel yang kaku dengan format data yang kaku. NoSQL sangat cocok untuk data yang tidak terstruktur, istilah singkat untuk fitur ini adalah Dynamic Schema.
Autosharding, istilah sederhananya, jika database noSQL di jalankandi cluster server (multiple server) maka data akan tersebar secara otomatis dan merata keseluruh server.
Kekurangan dari database NoSQL
Hostingnya mahal. beberapa layanan di luar negeri mencharge biaya 100-200 USD untuk hosting database noSQL. Selain itu, belum ditemukan hosting Cpanel yang mendukung database MongoDB atau database noSQL lainnya.








BAB III
PENUTUP

Kesimpulan
Sistem Cloud bekerja menggunakan internet sebagai server dalam mengolah data. Sistem ini memungkinkan pengguna untuk login ke internet yang tersambung ke program untuk menjalankan aplikasi yang dibutuhkan tanpa melakukan instalasi. Infrastruktur seperti media penyimpanan data dan juga instruksi/perintah dari pengguna disimpan secara virtual melalui jaringan internet kemudian perintah – perintah tersebut dilanjutkan ke server aplikasi. Setelah perintah diterima di server aplikasi kemudian data diproses dan pada proses final pengguna akan disajikan dengan halaman yang telah diperbaharui sesuai dengan instruksi yang diterima sebelumnya sehingga konsumen dapat merasakan manfaatnya.
Contohnya lewat penggunaan email seperti Yahoo ataupun Gmail. Data di beberapa server diintegrasikan secara global tanpa harus mendownload software untuk menggunakannya. Pengguna hanya memerlukan koneksi internet dan semua data dikelola langsung oleh Yahoo dan juga Google. Software dan juga memori atas data pengguna tidak berada di komputer tetapi terintegrasi secara langsung melalui sistem Cloud menggunakan komputer yang terhubung ke internet.






















DAFTAR PUSTAKA

Mann, Andi, Virtualization 101, Enterprise Management Associates (EMA), diakses tanggal 2007-10-29
Alan Murphy, Virtualization Defined – Eight Different Ways
http://naufalgholibs.blogspot.co.id/2017/10/pengertian-dan-fungsi-virtualisasi.html
https://azizazkink.wordpress.com/2014/05/09/distributed-computation-dalam-cloud-computing/
https://openbigdata.wordpress.com/2014/09/06/map-reduce-the-algorithm/
http://noviardisyamsuir.blogspot.co.id/2016/03/hadoop-mapreduce-adalah.html
http://seto.citravision.com/berita-39-pengantar-komputasi-cloud--map-reduce-dan-nosql-not-only-sql.html
http://cinoyraz.wordpress.com/2013/05/01/komputasi-cloud-komputasi-grid-virtualisasi-map-reduce-dan-nosql-not-only-sql/
http://no21reason.blogspot.com/2013_04_01_archive.html
https://www.candra.web.id/pengantar-database-nosql-dan-mongodb/
http://irfandudin.blog.uns.ac.id/2015/12/19/nosql-database/
https://www.codepolitan.com/7-basis-data-nosql-populer
https://adhibarfan.wordpress.com/2016/04/21/pengantar-komputasi-cloud/
https://laviniavini.wordpress.com/2015/12/05/not-only-sql-nosql/

Minggu, 14 Januari 2018

Konfigurasi Firewall pada Debian 7



Konfigurasi Firewall pada Debian 7
       Firewall berfungsi untuk memfilter semua paket yang lewat pada dirinya, baik dari jaringan Lokal ataupun Internet. Aplikasi server yang satu ini sangatlah penting, untuk melindungi jaringan local kita dari serangan luar. Aplikasi firewall yang terkenal pada linux adalah IpTables.

      Pada keadaan default, aplikasi IpTables telah terinstall secara otomatis saat kita menginstall system operasi Debian.Tinggal kita konfigurasi saja.

       kita akan mengkonfigurasi pemblokiran pada port protocol tertentu. Sebelumnya,
anda harus mengetahui terlebih dahulu, nama protocol beserta port yang sering digunakan. Komputer kita terdapat kurang lebih 35.000 nomor port. Dan berikut port-port yang sering dipakai :

1. FTP (21)
2. SSH (22)
3. TELNET (23)
4. SMTP (25)
5. DNS (53)
6. TFTP (69)
7. HTTP (80)
8. POP3 (110)
9. IMAP (143)
10. HTTPS (443)

1.berikut ini  jika kita mengijinkan Ip/port Tertentu saja yang bisa mengakses protocol tersebut.

root@telesandi :~#  iptables –A INPUT –p tcp –dport 21 –j  ACCEPT
root@telesandi :~#  iptables –A INPUT –p tcp –dport 80 –j  ACCEPT
root@telesandi :~#  iptables –A INPUT –p tcp –dport 22 –j  ACCEPT



2. berikut jika kita memblokir Ip/port supaya tidak bisa mengakses protocol tersebut.

root@telesandi :~#  iptables –A INPUT –p tcp –dport 22 –j  DROP
root@telesandi :~#  iptables –A INPUT –p tcp –dport 21 –j  DROP
root@telesandi :~#  iptables –A INPUT –p tcp –dport 80 –j  DROP



3. Kelemahan pada IpTables ini adalah, jika computer kita restart maka semua konfigurasi yang telah kita buat sebelumnya akan hilang. Untuk mengakalinya, simpan konfigurasi tersebut

root@telesandi :~#  iptables-save  >  /etc/network/iptables.conf
root@telesandi :~#  nano /etc/network/iptables.conf



4. Untuk melihat semua konfigurasi yang telah kita buat, gunakan perintah seperti di bawah ini.

root@telesandi :~#  cd /etc/network/if-up.d/
root@telesandi :/etc/network/if-up.d#  iptables -L



5.Kemudian restart webserver nya

root@telesandi :~#  service apache2 restart




6.Kemudian uji coba server http menggunakan browser,
   Disitu terlihat network is protected by a firewall,Konfigurasi Firewall di Debian sudah berhasil.




© Asik Belajar Template designed by Juvmom - Sesukamu