TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI Teknologi Web Aplikasi web adalah suatu aplikasi yang berbentuk klien/server yang dapat membentuk halaman-halaman web berdasarkan permintaan pemakai. Klien adalah pemakai yang meminta halaman web, sedangkan server adalah penyedia layanan yang melayani permintaan dari pemakai. Klien dan server berhubungan dalam suatu jaringan Internet atau Intranet. Web dapat diakses oleh berbaga iplatform dengan menggunakan browser, misalnya Internet Explorer,Mozilla,Opera, dan lain-lain. Model dari aplikasi web dapat kita lihat seperti pada gambar di bawah : Proses pengaksesan suatu web yaitu klien melakukan permintaan suatu halaman web kepada server, kemudian server akan mencari halaman yang diminta dan mengembalikannya dalam bentuk kode kode HTML. Kode-kode HTML ini akan didownload oleh komputer klien dan kemudian akan diterjemahkan oleh browser menjadi suatu tampilan halaman web.Aplikasi web dibangun oleh 2 jenis scripting yaitu sebagai berikut: a. Server Side Scripting Pemrograman dari sisi server maksudnya adalah membuat kode-kode program yang hanya dieksekusi di server menjadi bentuk tag-tag HTML untuk dikirim ke klien. Tag-tag inilah yang akan diterjemahkan oleh browser klien menjadi halaman web. Kode-kode program ini tidak akan kelihatan di klien.Contoh bahasa pemrograman dari sisi serveryaitu seperti PHP, ASP, JSP dan lainnya.Bahasa pemrograman ini digunakan untuk membuat suatu halaman web menjadi dinamis. b. Client Side Scripting Pemrograman web dari sisi klien maksudnya adalah membuat kodekode program yang dieksekusi di klien khususnya olehbrowser.Kode-kode program ini bisa dilihat oleh klien.Contoh bahasa pemrograman dari sisi klien yaitu HTML, javascript, CSS. HTML adalah tag-tag yang diterjemahkan oleh browser untuk membentuk secara visual suatu halaman web. HTML sekarang dikembangkan menjadi eXtensible HyperText MarkupLanguage (XHTML), sebuah versi yang lebih matang dan stabil. XHTML datang bersama beberapa cara dan pemikiran yang baru mengenai tag dalam halaman web. Aturan aturan dalam XHTML lebih ketat dibandingkan HTML dari segi cara penulisan.XHTML dapat merupakan perpaduan antara HTML dan XML karenamerupakan formulasi ulang HTML dalambentuk XML. Sekarang ini, XHTML menjadi standar suatu web berdasarkan rekomendasi W3C (World Wide Web Consortium). CSS dan javascript adalah bahasa program untuk membuat tampilan web menjadi interaktif.CSS dan javascript disisipkan di antara sintaksHTML.Berbagai contoh aplikasi web yaitu seperti mesin pencari atau search TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI engine(google,yahoo), tokoonline(amazon), situs berita(detikcom), layanan akademis perguruan tingg i(website IT Telkom) dan lain-lain. Beberapa konsep dasar pemrograman berbasis web (Hariyanto, 2004), yaitu : 1. Komunikasi antara web browser dan web server berdasarkan protokol HTTP. 2. Dokumen dan semua sumber daya apapun di jaringan yang dikehendaki diidentifikasi dengan Universal Resource Locator (URL). 3. Dokumen web ditulis berdasarkan standar HTML. 4. Pemrograman dilakukan dari sisi Client (client-side scripting ) 5. Pemrograman dilakukan dari sisi server (server-side cripting/programming). Standar Teknologi Web Secara umum teknologi disain web terbagi menjadi beberapa layer (lapisan), yaitu structural layer, presentation layer dan behavioral layer. Structural layer Layer ini berhubungan dengan struktur dokumen dokumen web. Bagaimana sebuah dokumen tersusun, format apa yang dipakai, tanda atau mark up apa yang digunakan merupakan bagian dari layer ini. Standar teknologi yang direkomendasikan saat ini adalah Extensible Hypertext Markup Language (XHTML) dan Extensible Markup Language (XML). XHTML adalah HTML versi terakhir (4.01) yang ditulis ulang dengan dengan aturan-aturan yang lebih ketat mengacu pada XML. Sedangkan XML adalah sekumpulan aturan untuk menyusun bahasa markup. Presentation layer Layer ini berhubungan dengan bagaimana mengatur tampilan dokumen pada layar, suara yang keluar, atau bagaimana format pencetakan dokumen. Pada teknologi web lama bagian ini menyatu dengan structural layer. Tapi pada standar baru, layer ini disarankan untuk dipisah. Yang termasuk teknologi ini adalah Cascading Style Sheets (CSS). Behavioral layer Layer ini berhubungan dengan masalah penggunaan bahasa skrip dan pemrogramannya untuk tujuan meningkatkan sisi interaktif dan dinamis halaman web. Yang termasuk dalam layer ini adalah Document Object Model (DOM) dan JavaScript. DOM memungkinkan suatu dokumen atau skrip untuk mengakses atau meng-update isi, struktur, dan style dari dokumen. JavaScript merupakan teknologi yang cukup lama dan tetap digunakan untuk menambah dokumen menjadi lebih interaktif. Web Statis dan Web Dinamis Halaman web dapat digolongkan menjadi web statis dan web dinamis. Pengertian web statis dan web dinamis seringkali mengundang perdebatan. Sebagian pengguna internet menyatakan TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI jika pada halaman-halaman web dilengkapi dengan animasi yang bergerak maka disebut web dinamis sedangkan jika halaman-halaman web tersebut hanya berisi teks dan gambar yang tidak bergerak maka disebut web statis. Namun berdasarkan kesepakatan maka pengertian statis dan dinamis tidak ditentukan oleh ada atau tidaknya animasi bergerak pada halamanhalaman web, tetapi ditentukan oleh isi atau informasi yang ada pada halaman-halaman tersebut. Data dan informasi yang ada pada web statis tidak berubah-ubah. Dokumen web yang dikirim kepada client akan sama isinya dengan apa yang ada di webserver. Sedangkan web dinamis, memiliki data dan informasi yang berbeda-beda tergantung input apa yang disampaikan client. Dokumen yang sampai di client akan berbeda dengan dokumen yang ada di webserver. Contoh paling mudah untuk membedakan web statis dan web dinamis adalah bila kalian membuka situs Google. Halaman awal adalah statis karena kita tidak melihat perubahan isi atau informasi. Halaman ini baik di komputer client maupun di webserver akan sama. Namun begitu kita memasukkan kata pada textbox yang tersedia kemudian menekan tombol search maka kita sedang berinteraksi dengan webserver Google. Webserver akan mengirimkan halaman web sesuai yang diminta oleh client. Tampilan di sisi client akan berupa daftar alamat dan keterangannya. Sedangkan di sisi server isi dokumennya adalah serangkain kode-kode untuk mencari apa yang diinputkan client. Automatic Computing Otomatis Computing Mesin (ACE) adalah desain komputer awal elektronik yang disimpanprogram yang diproduksi oleh Alan Turing atas undangan John R. Womersley, pengawas dari Divisi Matematika dari National Physical Laboratory (NPL). Penggunaan kata Mesin adalah untuk menghormati Charles Babbage dan Difference Engine dan Analytical Mesin. Desain teknis Turing Usulan Elektronik Kalkulator adalah produk dari karya teoretisnya pada tahun 1936 "On Computable Numbers" [1] dan pengalaman masa perang di Bletchley Park di mana komputer Colossus telah berhasil memecahkan kode militer Jerman. Dalam makalahnya tahun 1936, Turing dijelaskan idenya sebagai "universal mesin komputasi", tetapi sekarang dikenal sebagai mesin Turing Universal. Pada 19 Februari 1946 Turing mempresentasikan makalah rinci untuk National Physical Laboratory (NPL) Komite Eksekutif, memberikan desain yang cukup lengkap pertama dari sebuah komputer disimpan-program. Namun, karena ketat dan tahan lama kerahasiaan di sekitar pekerjaan Bletchley Park, ia dilarang (karena Official Secrets Act) dari menjelaskan bahwa ia tahu bahwa ide-idenya bisa diimplementasikan dalam perangkat elektronik. Desain EDVAC lebih terkenal disajikan dalam Draft Pertama Laporan di EDVAC (tanggal 30 Juni 1945), oleh John von Neumann, yang tahu pekerjaan teoritis Turing, menerima banyak publisitas, meskipun sifatnya tidak lengkap dan kurangnya dipertanyakan atribusi sumber dari beberapa ide. TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI Laporan Turing di ACE ditulis pada akhir 1945 dan termasuk rinci diagram sirkuit logis dan perkiraan biaya £ 11.200. Dia merasa bahwa kecepatan dan ukuran memori yang penting dan ia mengusulkan memori berkecepatan tinggi apa yang akan saat ini disebut 25 KiB, diakses pada kecepatan 1 MHz. ACE dilaksanakan panggilan subroutine, sedangkan EDVAC tidak, dan apa juga mengatur ACE terpisah dari EDVAC adalah penggunaan Instruksi Disingkat Komputer, bentuk awal dari bahasa pemrograman. Awalnya, direncanakan bahwa Tommy Flowers, insinyur di Stasiun Penelitian Kantor Pos di Dollis Bukit di utara London, yang telah bertanggung jawab untuk membangun komputer Colossus harus membangun ACE, tapi karena kerahasiaan di sekitar prestasi masa perang dan tekanan kerja pasca-perang, ini tidak mungkin. Rekan Turing di NPL, tidak mengetahui tentang Colossus, berpikir bahwa pekerjaan rekayasa untuk membangun ACE lengkap terlalu ambisius, jadi versi pertama dari ACE yang dibangun adalah Pilot Model ACE, versi yang lebih kecil dari desain asli Turing. Pilot ACE memiliki 1.450 termionik katup (tabung vakum), dan digunakan merkuri delay baris untuk memori utama. Masing-masing dari 12 jalur delay bisa menyimpan 32 instruksi atau kata-kata data 32 bit. Ini menjalankan program pertama pada 10 Mei 1950, dimana pada saat itu komputer tercepat di dunia dengan kecepatan clock 1 MHz. Implementasi kedua dari desain ACE adalah MOSAIC (Departemen Pasokan Integrator otomatis dan Komputer). Ini dibangun oleh Allen Coombs dan William Chandler dari Dollis Bukit yang telah bekerja dengan Tommy Flowers membangun sepuluh komputer Colossus. Itu dipasang di Telekomunikasi Penelitian Pendirian (TRE) yang segera menjadi Royal Radar Establishment (RRE) di Malvern dan menjalankan program pertama pada akhir 1952 atau awal 1953. Itu digunakan untuk menghitung lintasan pesawat dari data radar. [2] Prinsip-prinsip desain ACE yang digunakan dalam G-15 komputer Bendix Corporation. Desain rekayasa dilakukan oleh Harry Huskey yang telah menghabiskan 1947 di bagian ACE di NPL. Dia kemudian berkontribusi pada desain hardware untuk EDVAC. Pertama G-15 pada tahun 1954 dan berlari, sebagai mesin single user yang relatif kecil, beberapa mempertimbangkan untuk menjadi komputer pribadi pertama. Versi produksi pertama dari Pilot ACE, Inggris Listrik Deuce, yang 31 dijual, disampaikan pada musim semi 1955. Virtualisasi Dalam ilmu komputer, virtualisasi (bahasa Inggris: virtualization) adalah istilah umum yang mengacu kepadaabstraksi dari sumber daya komputer. Definisi lainnya adalah "sebuah teknik untuk menyembunyikan karakteristik fisik dari sumber daya komputer dari bagaimana cara sistem lain, aplikasi atau penggunaberinteraksi dengan sumber daya tersebut. Hal ini termasuk membuat sebuah sumber daya tunggal (sepertiserver, 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." [1] TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI stilah 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. virtualisasi perangkat keras Istilah virtualisasi perangkat-keras mengacu kepada upaya menciptakan mesin virtual yang bekerja layaknya sebuah komputer lengkap dengan sistem operasi. Istilah mesin tuan-rumah(host) mengacu kepada mesin tempat virtualisasi bersemayam sementara istilah mesin tamu(guest) mengacu kepada virtual mesin itu sendiri. Istilah hypervisor mengacu kepada perangkat-lunak atau firmware yang membuat mesin virtual. Dua pendekatan yang paling umum digunakan untuk virtualisasi perangkat-keras adalah virtualisasi penuh dan para-virtualisasi. Dalam virtualisasi penuh sebuah lapisan berada di antara mesin tamu (virtual) dan mesin tuan-rumah. Lapisan ini disebut hypervisor atau disebut juga pemantau mesin virtual. Lapisan ini menggandakan sumber-daya sistem bagi kepentingan masing-masing mesin tamu. Para-virtualisasi berbeda dalam hal hypervisor bekerja dengan cara yang lebih koperatif. Setiap sistem operasi tamu menyadari bahwa mereka berjalan dalam lingkungan virtual dan bekerja sama dengan hypervisor untuk memvirtualisasikan mesin tuan-rumah Teknologi Virtualisasi Teknologi virtualisasi adalah sebuah teknologi yang mampu menjalankan software/hardware virtual (bukan sebenarnya) diatas hardware/software non virtual yang sedang berjalan. Misalnya, anda hanya dapat menjalankan satu sistem operasi dalam satu waktu, agar dapat menjalankan lebih dari sistem operasi anda membutuhkan program PC/OS emulator (hypervisor) semisal VirtualBox atau VMware workstation/player. Contoh lainnya, seperti yang anda ketahui bahwa file .exe yang sering kita jumpai di windows tidak dapat dijalankan di mesin linux, untuk bisa berjalan dibutuhkan sebuah software emulator seperti wine. +----------------------+ | +------------------+ | | | Virtual Software | | TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI | |------------------+ | | | Virtual Hardware | | | +------------------+ | | | | Virtual Environment | +----------------------+ | Computer Software | +----------------------+ | Computer Hardware | +----------------------+ Gambar: Virtualization Berbagai bentuk penerapan teknologi virtualisasi diantaranya: Network Virtualization: VLAN,VPN,etc Storage Virtualization: RAID,LVM,SAN,etc Application Virtulization: dosbox,wine,dosemu,playonlinux,etc Platform Virtualization: Virtual Computer & Operating System Dan lainya. Keuntungan teknologi virtualisasi: Kemudahan deployment Mempermudah perawatan & pengelolaan Meningkatkan tingkat efisiensi Mengoptimalkan sumber daya Kemudahan backup dan recovery Menghemat space fisik Kerugian teknologi virtualisasi: TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI Membutuhkan spesifikasi hardware yang cukup tinggi Masalah terpusat Serangan terpusat Agar pembahasan tulisan ini terfokus dan tidak melebar, penulis hanya akan membahas tentang metode,arsitektur,dan implementasi model Platform Virtualization pada lingkungan linux. Jenis Virtualisasi Ada beberapa variant teknologi virtualisasi, diantaranya: Hardware Emulation Pada teknologi ini perangkat lunak menyediakan kebutuhan perangkat keras untuk proses emulasi. Jadi seolah - olah kita menyiapkan sebuah komponen perangkat keras untuk si Guest OS. Misalnya untuk platform hardware ARM Arsitektur,X86,X8664,AMD,AMD64,PowerPC,dll. Contohnya: Qemu,Bochs,Android Emulator +----------+----------+----------+ | Apps | Apps | Apps | +----------+----------+----------+ ... | Guest OS | Guest OS | Guest OS | +----------+----------+------------------------+ | Hardware VM A | Hardware VM B | +---------------------+------------------------+ | Hardware | +----------------------------------------------+ Gambar: Hardware Emulation Full Virtualization Full virtualisasi disebut juga Virtual Machine Monitor, Hampir sama dengan hardware emulation namun teknologi ini memvirtualisasikan seluruh perangkat keras untuk si Guest OS. Pada teknologi ini si Guest OS mengira bahwa dia berjalan diatas hardware sungguhan, maka tidak heran hampir semua sistem operasi dapat berjalan secara normal pada teknologi virtual ini. Teknologi ini akan memakan resource yang besar, karena si guest ngomong pake bahasa hardware kemudian diterjemahkan oleh VMM ke dalam bahasa aplikasi yang kemudian diterjemahkan kembali kebahasa hardware. TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI Contohnya: VirtualBox,VMware Workstation/Player,z/VM +----------+----------+ | Apps | Apps | +----------+----------+ | Guest OS | Guest OS | +------------+ --- | Management | +----------+----------+-----------+------------+ | Hypervisor (VMM) | +----------------------------------------------+ | Hardware | +----------------------------------------------+ Gambar: Full Virtualization Para-Virtualization (PV) Tidak seperti full virtualization, pada Para-Virtualization kernel di kustom agar si Guest dan Host OS menggunakan bahasa yang sama sehingga lebih hemat resource.Kekurangannya lebih sedikit OS yang di support, hanya OS yang sudah di modifikasi yang telah disesuaikan untuk dapat berjalan pada hypervisor yang digunakan. Contohnya: KVM,Xen,UML(User Mode Linux) +----------+----------+ | Apps | Apps | +----------+----------+ | Guest OS | Guest OS | +------------+ --- +----------+----------+ | Management | | | +----------+----------+-----------+------------+ | Hypervisor (VMM) | +----------------------------------------------+ | Hardware | +----------------------------------------------+ Gambar: Para-Virtualization Operating System-level Virtualization Ini merupakan teknologi yang lebih fast dan hemat resource di bandingkan ke 3 teknologi virtualiasi diatas, mirip - mirip dengan chroot namun mempunyai mekanisme isolasi tersendiri TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI dengan sistem proteksi yang kuat. kekurangannya OS Guest harus sama dengan OS Host, OS Guest haruslah hasil modifikasi biasanya di sebut container. Contohnya: OpenVZ,Linux-VServer,LXC +----------------+----------------+ | | | | Private Server | Private Server | | | +----------------+ | | ... | | Private Server | | | +----------------+----------------+------------+----------------+ | Operating System | +---------------------------------------------------------------+ | Hardware | +---------------------------------------------------------------+ Gambar: Operating system-level virtualization Setelah membahas berbagai jenis teknologi virtualisasi, mana yang sebaiknya digunakan? Jika Host & OS Guestnya semuanya linux anda bisa gunakan jenis Operating system-level virtualization, di beberapa server saya sudah menggunakan OpenVZ dan sampai sekarang cukup berjalan lancar sesuai dengan yang di harapkan :). Kalo dari beberapa masukan dan beberapa pembicaraan di forum dan milist, PV seperti XenServer adalah yang paling top buat production. Jika hanya untuk riset dan mencoba - coba berbagai jenis sistem operasi pilihlah tipe Full Virtulization misal VirtualBox. Jika ingin mencoba menjalankan sebuah emulator hardware dengan target OS arsitektur tertentu bisa menggunakan hardware emulation seperti Qemu. Semua tergantung dari kebutuhan dan target penggunaan. MapReduce MapReduce adalah model pemrograman dan implementasi terkait untuk diproses dan menghasilkan set data besar dengan paralel, algoritma didistribusikan pada sebuah cluster. [1] [2] Secara konseptual pendekatan serupa telah sangat dikenal sejak tahun 1995 dengan Pesan Passing Interface [3] standar memiliki mengurangi [4] dan menyebarkan operasi. [5] Sebuah program MapReduce terdiri dari Peta () prosedur (metode) yang melakukan penyaringan dan pemilahan (seperti menyortir siswa dengan nama pertama dalam antrian, satu antrian untuk setiap nama) dan Mengurangi () metode yang melakukan operasi ringkasan (seperti menghitung jumlah siswa di setiap antrian, menghasilkan frekuensi nama). The "MapReduce Sistem" (juga disebut "infrastruktur" atau "kerangka") orchestrates pengolahan TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI dengan menyusun server didistribusikan, menjalankan berbagai tugas secara paralel, mengelola semua komunikasi dan transfer data antara berbagai bagian dari sistem, dan menyediakan untuk redundansi dan toleransi kesalahan. Model ini terinspirasi oleh peta dan mengurangi fungsi yang biasa digunakan dalam pemrograman fungsional, [6] meskipun tujuan mereka dalam rangka MapReduce tidak sama seperti di bentuk asli mereka [7] kontribusi kunci dari kerangka MapReduce tidak sebenarnya. memetakan dan mengurangi fungsi, tetapi skalabilitas dan toleransi kesalahan dicapai untuk berbagai aplikasi dengan mengoptimalkan mesin eksekusi sekali. Dengan demikian, implementasi single-threaded dari MapReduce (seperti MongoDB) akan biasanya tidak lebih cepat dari (non-MapReduce) pelaksanaan tradisional, setiap keuntungan yang biasanya hanya terlihat dengan implementasi multi-threaded. [8] Penggunaan model ini hanya bermanfaat ketika dioptimalkan operasi acak didistribusikan (yang mengurangi biaya jaringan komunikasi) dan toleransi kesalahan fitur dari kerangka MapReduce ikut bermain. Mengoptimalkan biaya komunikasi adalah penting untuk algoritma MapReduce baik. [9] MapReduce perpustakaan telah ditulis dalam banyak bahasa pemrograman, dengan berbagai tingkat optimasi. Implementasi populer open source yang memiliki dukungan untuk mengocok terdistribusi adalah bagian dari Apache Hadoop. Nama MapReduce awalnya disebut teknologi Google eksklusif, tetapi sejak itu telah genericized. MapReduce sebagai model pengolahan data besar dianggap mati oleh banyak ahli domain [siapa?], Karena pembangunan telah pindah ke mekanisme disk di lebih mampu dan kurang yang menggabungkan peta penuh dan mengurangi kemampuan. Menjalankan Contoh Program MapReduce Untuk lebih jelasnya lagi, kita bisa menjalankan langsung program ini di PC kita sendiri. Tetapi, bukan dengan software MapReduce milik Google. Sampai saat ini Google tidak pernah mendistribusikan software MapReduce miliknya. Namun demikian, Apache telah merilis software open source yang dikenal dengan nama Hadoop untuk mengebangkan dan menjalankan aplikasi MapReduce. Secara garis besar Hadoop terdiri atas HDFS (Hadoop Distributed File System) dan Hadoop MapReduce. HDFS adalah versi open source-nya GFS (Google File System), dan Hadoop MapReduce adalah versi open source dari Google MapReduce. Ada tiga cara untuk menjalankan aplikasi MapReduce dengan menggunakan Hadoop, yaitu: 1. Dengan menggunakan Hadoop mode Standalone pada 1 PC Windows. 2. Dengan menggunakan Hadoop mode Pseudo-Distributed pada 1 PC Linux. 3. Dengan menggunakan Hadoop mode Terdistribusi Penuh pada beberapa PC Linux. Fungsi map memproses suatu pasangan kunci dan nilai {key/value) menjadi kunci dan nilai tengah {intermediate key/value) yang nantinya akan dikirim ke fungsi reduksi. Saat operasi pemetaan berjalan secara paralel, file yang menjadi input dibagi menjadi beberapa bagian yang disebut FileSplits. Hal ini dilakukan karena sebuah file bisa memiliki ukuran yang besar dan itu akan memperlambat kinerja. Saat fungsi pemetaan TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI membaca baris data, fungsi ini menghasilkan pasangan kunci berupa kata dan nilai berupa jumlah. Dalam hal ini fungsi map yang akan dilakukan untuk aplikasi pencarian term ini adalah sebagai berikut. map(String key, String value): // key: document name // value: document contents for each word w in value: EmitIntermediate(w, “1”); Pada program ini fungsi pemetaan menghasilkan setiap kata yang diasosiasikan dengan suatu perhitungan yang terjadi(hanya ‘1’ dalam setiap kata). Fungsi map akan menerima inputan berupa key/value dengan key berupa nama dokumen dan value merupakan jumlah kata yang dikandung dalam dokumen tersebut, untuk setiap kata dalam suatu dokumen tersebut akan menghasilkan lanjutan key/value yang berupa (kata, 1). Fungsi reduksi adalah memproses pasangan kunci dan nilai yang dikirim dari fungsi pemetaan untuk menjadi pasangan kunci dan nilai akhir yang nantinya akan ditulis ke file sebagai hasil. Masing-masing kata kunci dan nilai yang dihasilkan oleh fungsi pemetaan diproses secara berbeda dan hasilnya disimpan pada masing-masing file hasil. Untuk suatu kata yang sama maka, fungsi reduksi akan menjumlahkan semua angka nilai dari masing-masing kata tersebut, sehingga didapat pasangan kata dan jumlahnya. Dalam hal ini fungsi reduce yang akan dilakukan untuk pencarian kata ini adalah sebagai berikut. reduce(String key, Iterator values): // key: a word // values: a list of counts int result = 0; for each v in values: result += ParseInt(v); Emit(AsString(result)); Pada program ini fungsi reduce akan menghasilkan hasil dari penjumlahan bersama semua perhitungan yang dihasilkan untuk sebuah keterangan kata yang terdapat dalam suatu dokumen. Fungsi reduce akan menerima inputan berupa lanjutan key/values yang telah dikelompokkan untuk setiap nilainya dengan sebuah kunci yang sama dari hasil fungsi map, key berupa sebuah kata dan values berupa suatu daftar jumlah dari perhitungan kata dalam setiap dokumen yang muncul tersebut. Values dalam fungsi reduce dihasilkan dari penggabungan nilai-nilai dari proses perhitungan TUGAS KONSEP CLOUD COMPUTING NAMA : RIZAL KURNIAWAN NIM : 145410039 / S1 – TI kata dalam suatu iterasi, sehingga akan menghasilkan sebuah kata dengan hasil penjumlahan kata yang muncul pada dokumen tersebut. Hasil ini disimpan dalam satu file terpisah dari hasil pasangan kunci dan nilai yang lain.