TUGAS
KOMPUTASI MODERN
"TUGAS INDIVIDU KOMPUTASI MODERN"
Lembar Ini Disusun Untuk Memenuhi Tugas Individu Yang Diampu Oleh:
Adam Huda Nugraha, S.Kom., MMSI
Disusun Oleh:
Alief Priambudi (50418521)
4IA21
FAKULTAS TEKNOLOGI INDUSTRI
TEKNIK INFORMATIKA
UNIVERSITAS GUNADARMA
2021/2022
Komputasi Awan (Cloud Computing)
Sumber: e-trainingonline.com
Definisi Cloud Computing
Apa itu Cloud Computing? Cloud Computing (dalam bahasa Indonesia disebut komputasi awan)
adalah proses pengolahan daya komputasi (baik CPU, RAM, Network Speeds,
Software, OS maupun Storage) melalui jaringan (biasanya lewat internet). Jadi
transfer data yang terjadi bukan secara fisik dan sumber daya komputasi yang
dimiliki berada di lokasi pengguna yang memakai layanannya.
Manfaat Cloud Computing
Komputasi awan sebenarnya jadi menurunkan permintaan hardware dan software dari sisi si pengguna. Satu-satunya hal yang harus bisa dijalankan/dilakukan oleh si pengguna adalah software interface dari sistem komputasi awan, yang bisa jadi sesederhana saja semacam browser web. Ini pastinya bisa membantu mengurangi pekerjaan pengguna dengan adanya teknonologi jaringan Cloud yang tanggap dan otomatis menyelesaikan masalah-masalah IT lainnya.
Bila Anda bukan dari pihak korporat/pebisnis, Anda juga sebenarnya sudah menggunakan teknologi komputasi awan. Anda mungkin tidak sadar, beberapa layanan cloud populer yang telah banyak digunakan semacam email tools GMail, Hotmail atau Yahoo bahkan sudah didukung teknologi ini.
Saat mengakses/memakai layanan email, data Anda akan disimpan di server cloud, bukan di komputer Anda. Teknologi dan infrastruktur di belakang cloud memang tidak tampak. Jadi, tidak penting lagi apakah layanan cloud didasarkan pada HTTP, XML, Ruby, PHP atau teknologi spesifik lainnya sejauh itu masih user-friendly dan juga fungsional tentunya. Anda sebagai pengguna bisa terhubung ke sistem cloud dari perangkat pribadi Anda sendiri semacam laptop, atau ponsel.
Komputasi awan juga memang memanfaatkan bisnis kecil secara efektif dengan sumber daya yang terbatas. Teknologi atau layanan ini bisa kasih akses ke usaha kecil menengah untuk teknologi yang sebelumnya berada di luar jangkauan mereka. Cloud computing kini banyak sekali membantu usaha kecil untuk mengubah biaya pengeluaran mereka malah menjadi untung.
Tipe-tipe Cloud
Ada empat macam/tipe cloud yang berbeda yang dapat dipakai, sesuai dengan kebutuhan bisnis. Berikut adalah keempatnya.
- Private Cloud
Private cloud ini berarti sumber daya cloudnya digunakan untuk satu organisasi tertentu saja (secara privat, tidak dibagi ke pengguna/organisasi lain). Metode ini lebih banyak digunakan untuk interaksi semacam intra-bisnis, dimana sumber daya cloudnya dapat diatur, dimiliki, dan dioperasikan oleh organisasi yang sama. - Community Cloud
Community cloud mengacu pada penggunaan source bagi komunitas dan organisasi. - Public Cloud
Jenis cloud ini biasanya dipakai untuk interaksi B2C (Business to Consumer). Public cloud menggunakan sumber daya komputasi yang dimiliki, diatur dan dioperasikan oleh pemerintah. - Hybrid Cloud
Jenis cloud yang satu ini dapat digunakan untuk kedua jenis interaksi B2B (Business to Business) atau B2C (Business to Consumer). Jadi, sumber daya komputasi terikat bersama tapi dengan cloud yang berbeda.
Struktur Cloud Computing
Sumber: dewaweb.com
Cloud computing terdiri dari dua komponen yaitu
Front End dan juga Back End. Front End terdiri dari klien Cloud Computing system-nya.
Lalu dibagi lagi menjadi dua yaitu interface dan aplikasi yang diperlukan dalam
mengakses platform cloud computing-nya.
Sementara Back End mengacu ke cloud itu sendiri,
yaitu yang terdiri dari sumber daya. Sumber daya tersebut diperlukan bagi layanan
komputasi awan. Layanannya apa saja? Ada berbagai layanan yang disediakan
teknologi komputasi awan yaitu virtual machine, server, data storage, security
mechanism, dan lain sebagainya. Jadi, semua layanan itu berada di bawah kendali
si provider/penyedia komputasi awan.
Cloud computing bisa mendistribusikan sistem
file yang kemudian disebar ke banyak hard disk maupun mesin. Datanya tidak
pernah disimpan di satu tempat saja. Selain itu, jika satu unit gagal bekerja
atau memproses, maka yang lain akan mengambil alih secara otomatis. Inilah
canggihnya teknologi Cloud. Ruang disk pengguna dapat dialokasikan ke sistem
file yang terdistribusi, sementara komponen penting lainnya semacam algoritma
dimanfaatan buat alokasi sumber daya. Intinya, teknologi komputasi awan ini
merupakan sistem distribusi yang kuat dan sangat bergantung ke algoritma yang
kuat pula.
Grid Computing
Sumber: laptrinhx.com
Definisi Grid Computing
Komputasi Grid atau Grid Computing adalah
kumpulan sumber daya komputer dari berbagai lokasi untuk mencapai tujuan
bersama. Grid dapat dianggap sebagai sistem terdistribusi dengan beban kerja
non-interaktif yang melibatkan sejumlah besar file.
Komputasi grid dibedakan dari sistem komputasi
kinerja tinggi konvensional seperti komputasi cluster dalam bahwa komputer
jaringan memiliki setiap node diatur untuk melakukan tugas yang berbeda atau
aplikasi. komputer Grid juga cenderung
lebih heterogen dan geografis (dengan demikian tidak secara fisik ditambah)
dari komputer klaster Meskipun grid
tunggal dapat didedikasikan untuk aplikasi tertentu, umumnya grid digunakan
untuk berbagai tujuan.. Grids sering dibangun dengan tujuan umum perpustakaan
software jaringan middleware.
Contoh Grid Computing
- Scientific Computing
Komputasi grid diimplementasikan pada bidang fisika, kimia, dan biologi untuk melakukan simulasi terhadap proses yang kompleks. - Medical Images
Penggunaan data grid dan komputasi grid untuk menyimpan medical-image. Contohnya adalah eDiaMoND project. - Computer-Aided Drug Discovery (CADD)
Kompuatasi grid digunakan untuk membantu penemuan obat. Salah satu contohnya adalah Molecular Modelling Laboratory (MML) di Universtity of North Carolina (UNC). - Big Science
Data grid dan komputasi grid digunakan untuk membantu proyek laboratorium yang disponsori oleh pemerintah. Contohnya terdapat di DEISA. - E-Learning
Komputasi grid membantu membangun infrastruktur untuk memenuhi kebutuhan dalam pertukaran informasi pada bidang pendidikan. Contohnya AccesGrid. - Visualization
Komputasi grid digunakan untuk membantu proses visualisasi perhitungan yang rumit. - Microprocessor Design
Komputasi grid membantu untuk mengurangi microprocessor design cycle dan memudahkan design center untuk membagikan resource lebih efisien. Contohnya ada pada Microprocessor Design Group di IBM Austin.
Virtualisasi
Sumber: exabytes.co.id
Definisi Virtualisasi
Virtualisasi adalah sebuah teknik yang saat ini
banyak diterapkan untuk memenuhi kebutuhan TI yang semakin tinggi namun diikuti
dengan tuntutan untuk mengefisiensikan biaya yang digunakan semaksimal mungkin. Virtualisasi adalah teknologi yang telah
diterapkan secara luas saat ini dengan dampak peningkatan operasional dan
finansial yang positif. Virtualisasi adalah konsep dimana akses ke sebuah
hardware seperti server diatur sehingga beberapa operating system (guest
operation system) dapat berbagi sebuah hardware. Tujuan dari virtualisasi adalah kinerja
tingkat tinggi, ketersediaan, keandalan, ketangkasan, atau untuk membuat dasar
keamanan dan manajemen yang terpadu.
Virtualisasi memungkinkan kita untuk berbagi
hardware untuk digunakan beberapa sistem operasi. Virtualisasi dapat membuat
sebuah tempat penyimpanan tunggal yang besar terlihat menjadi beberapa tempat
penyimpanan dengan ukuran yang lebih kecil.
Setiap perusahaan memiliki tujuan yang berbeda mengapa menerapkan virtualisasi, salah satu tujuan yang ingin dicapai perusahaan dapat merupakan salah satu dari hal berikut.
- Memungkinkan semua device yang terhubung dengan jaringan untuk mengakses aplikasi melalui jaringan, bahkan jika aplikasi tidak pernah dirancang untuk dapat bekerja di device tersebut.
- Isolasi beban pekerjaan atau aplikasi yang satu dengan yang lainnya untuk meningkatkan kemanan dan kemudahan pengelolaan lingkungan.
- Isolasi aplikasi dari sistem operasi, memungkinkan aplikasi untuk tetap berfungsi meskipun dirancang untuk sistem operasi dengan tipe yang berbeda.
- Isolasi aplikasi dari sistem operasi, memungkinkan sebuah aplikasi untuk bekerja di sistem operasi yang asing.
- Meningkatkan jumlah orang yang dapat didukung oleh aplikasi, dengan mengijinkan untuk menjalankan aplikasi dari mesin-mesin yang berbeda secara bersamaan.
- Mengurangi waktu yang diperlukan untuk menjalankan aplikasi, dengan memisahkan data atau aplikasi itu sendiri dan menyebar pekerjaan dibeberapa sistem.
- Mengoptimalkan penggunaan sistem tunggal.
- Meningkatkan keandalan atau ketersediaan dari aplikasi atau beban kerja dengan pengulangan.
Beberapa peralatan komputer dapat divirtualisasikan. Contoh peralatan komputer yang dapat divirtualisasikan adalah:
- Server. Mulai dari perspektif akses dan manajemen, sebuah server fisik tunggal dapat menjadi beberapa server yang biasa disebut dengan virtual server atau virtual machine (VM).
- Desktop. Mirip dengan virtualisasi server, virtualisasi desktop dapat berarti dua hal. Yang pertama, memungkinkan pengguna untuk menjalankan beberapa sistem operasi desktop (Apple Mac OS dan Microsoft Windows OS) di dalam komputer yang sama. Yang kedua virtualisasi dapat memungkinkan data dan layanan yang dimiliki oleh pengguna diletakkan di komputer yang digunakan bersama dengan data dan layanan milik orang lain.
- Storage. Satu tempat penyimpanan fisik dapat terlihat menjadi beberapa driver virtual. Dengan kata lain, dengan menggunakan windows yang terpisah di konsol manajemen yang umum, administrator IT dapat memperlakukan drive virtual seperti drive fisik.
- Application. Saat memvirtualisasi, aplikasi yang ditulis untuk sebuah lingkungan sistem operasi dapat dijalankan di lingkungan operasi yang lain untuk meningkatkan kecocokan aplikasi dan kemudahan pengolahan. Operasi akan diarahkan ke sistem operasi yang sesuai.
- Network. Di dalam jaringan, sebuah router fisik dapat mendukung beberapa, alamat IP untuk membuat router visual. Sama seperti sebuah switch Ethenet fisik dapat mendukung beberapa alamat MAC (Media Access Control) untuk membuat switch virtual. Sebuah hardware fisik dapat dibagi menjadi beberapa router atau switch virtual untuk mengurangi biaya.
Distributed Computing
Sumber: Medium.com
Definisi Distributed Computing
Tujuan utama dari sistem komputasi
terdistribusi adalah untuk menghubungkan setiap pengguna dengan sumber daya
yang terpisah secara fisik ke dalam suatu sistem dengan menggunakan cara yang
terkoordinasi. Dan dengan memerlukan kapasitas yang lebih besar dari kapasitas
individual komponennya.
Openness
merupakan properti dari sistem terdistribusi dimana setiap sub-sistem secara
terus-menerus terbuka untuk berinteraksi dengan sistem yang lain. Salah satu
masalah yang dihadapi dalam usaha menyatukan sumber daya yang terpisah ini
antara lain adalah skalabilitas, dapat atau tidaknya sistem tersebut
dikembangkan lebih jauh untuk mencakup sumber daya komputasi yang lebih banyak.
Konsekuensinya, sistem terdistribusi terbuka memberikan beberapa tantangan berikut.
- Monotonicity
Sesuatu yang telah dipublikasikan dalam sistem terbuka (open system) maka tidak dapat diambil kembali. - Pluralism
Subsitem-subsistem berbeda dalam sistem open distributed dapat mempunyai informasi yang berbeda dan mungkin menyebabkan konflik. Tidak ada pengatur kebenaran sentral dalam sistem open distributed. - Unbounded Nondeterminism
Subsistem-subsistem dapat naik dan turun, dan link komunikasi dapat masuk dan keluar antar subsistem dalam sistem open distributed. Karena itu, waktu yang diperlukan untuk menyelesaikan suatu operasi tidak dapat dibatasi dan dipastikan.
Kelemahan dan Kerugian
Jika tidak direncanakan dengan tepat, suatu distributed system dapat menurunkan reliabilitas total dari komputasi jika ketidak-tersediaan dari suatu node dapat menyebabkan gangguan bagi node-node lain. Troubleshooting dan diagnosing terhadap masalah dalam distributed system dapat menjadi lebih sulit, karena perlu analisis yang berkaitan dengan node jauh atau menginspeksi komunikasi antar node di dalam sistem.
Banyak tipe komputasi tidak cocok bagi lingkungan terdistribusi, biasanya yang berhubungan dengan jumlah komunikasi jaringan atau sinkronisasi yang dibutuhkan antar node. Jika bandwidth, latency, atau persyaratan komunikasi begitu signifikan, maka tidak ada keuntungan dari distributed computing dan kinerja dapat lebih burukk daripada lingkungan non-distributed.
Arsitektur
Terdapat banyak arsitektur dari perangkat keras
dan perangkat lunak yang sangat bervariasi dan digunakan untuk distributed
computing atau komputasi terdistribusi. Pada tingkat yang rendah, perlu adanya
penghubung antara CPU dengan CPU lainnya yang berjumlah banyak. Pada tingkat
yang lebih tinggi perlu dibutuhkannya interkoneksi untuk menghubungkan CPU yang
ada dengan sistem komunikasi.
Arsitektur umum yang digunakan oleh Distributed Computing atau Komputasi Terdistribusi yaitu sebagai berikut.
- Client-server: klien menghubungi server untuk pengambilan data, kemudian server memformatnya dan menampilkannya ke pengguna.
- 3-tier architecture: kebanyakan aplikasi web adalah 3-Tier.
- N-Tier architecture: N-Tier biasanya menunjuk ke aplikasi web yang menyalurkan lagi permintaan kepada pelayanan enterprise. Aplikasi jenis ini paling berjasa bagi kesuksesan server aplikasi.
- Tightly coupled (clustered): biasanya menunjuk kepada satu set mesin yang sangat bersatu yang menjalankan proses yang sama secara paralel, membagi tugas dalam bagian-bagian dan kemudian mengumpulkan kembali dan sebagai hasil akhir.
- Peer-to-peer: sebuah arsitektur dimana tidak terdapat mesin khusus yang melayani suatu pelayanan tertentu atau mengatur sumber daya dalam jaringan. Dan semua kewajiban dibagi rata ke seluruh mesin, yang dikenal sebagai peer.
- Space based: mengacu ke suatu infrastruktur yang membuat ilusi atau virtualisasidari satu ruang-alamat (address-space) tunggal. Data secara transparan direplikasi sesuai dengan kebutuhan aplikasi.
- Mobile code: berdasarkan prinsip arsitektur mendekatkan pemrosesan ke sumber data.
- Replicated repository: dimana repository dibuat replikanya dan disebarkan ke dalam sistem untuk membantu pemrosesan online/offline dengan syarat keterlambatan pemaharuan data dapat diterima.
Map Reduce
Sumber: Quora.com
Definisi Map Reduce
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, Map Reduce 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.
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. 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);
Hasil akhir dari program ini adalah jumlah dari tiap kata yang terdapat dalam file teks yang dimasukkan sebagai input program ini.
Database noSQL adalah Database yang tidak
memiliki perintah SQL dan konsep penyimpanannya semistuktural atau tidak
struktural dan tidak harus memiliki relasi seperti layaknya tabel-tabel MySQL.
Tujuan dari penggunaan database noSQL adalah
untuk model data spesifik dan memiliki skema fleksibel dalam membuat aplikasi
modern. Kebanyakan dalam beberapa kasus penggunaan Database noSQl berfungsi
dalam pengembangan real time application.
Cara kerja database noSQL yakni dengan
menggunakan berbagai model database untuk mengelolah dan mengakses data, seperti
document, key-value, graphic, in-memory dan search-engine.
Kita akan mengulas beberapa model database noSQL diatas.
- Document
Mendefinisikan database sebagai dokumen artinya penyimpanan data dan proses manipulasinya dalam bentuk objek dokumen. Contoh objek dokumen yang sering diterapkan dalam pemograman adalah format Json. Konsep dari Json merupakan konsep data yang efisien dalam pembangunan aplikasi karena Json memiliki sifat yang fleksibel, semi struktur dan hirarki. Sehingga memungkinkan program akan lebih mudah dikembangkan karena dokumen akan menyesuaikan penyimpanan data berdasarkan kebutuhan dari aplikasi. - Key-value
Definisi database dengan key-value adalah penyimpanan data dengan metode key-value (nilai kunci) sebagai tempat akses data-data. Contoh database yang menganut konsep key-value adalah dyamondDB. - Graphic
Database jenis grafik menggunakan node sebagai entitas data dan edge sebagai hubungan antar entitas. Setiap edge memiliki node awalan dan node akhiran. Edge juga menggambarkan hubungan antara orang tua-anak, kepemilikan, tindakan dan lain sebagainya. Tidak ada batasan jumlah suatu node untuk terhubung dengan node lainnya. Tujuan dari database jenis grafik ini adalah jejaring media sosial, grafik pengetahuan dan mesin rekomendasi. - In-Memory
Database model ini bekerja dengan menyimpan data pada memori utama, yaitu RAM. Dengan penyimpanan data di dalam RAM maka aksesnya akan sangat cepat sekali. Tidak ada perangkat disk manapun yang mampu menyaingi kecepatan dari akses langsung ke memori utama (RAM) sekali pun itu SSD. - Search Engine
Dalam hal ini search engine database digunakan pada saat proses pencarian karena penciptaan dari konsep database search engine didedikasikan untuk mesin pencari. Cara kerja dari search engine database digunakan untuk mencari data yang sangat panjang, besar dan tidak terstruktur yakni dengan menggunakan index sebagai sumber informasi untuk pengoptimalan pencarian.
Referensi:
https://www.dewaweb.com/blog/cloud-computing/
http://id.m.wikipedia.org/wiki/Komputasi_grid
http://syahrulzzadie.blogspot.com/2014/10/pengertian-cloud-compunting-grid.html?m=1
http://speedradene.blogspot.com/2013/04/grid-pengertiankelebihandan-kekurangan.html?m=1
http://mersannurhakim.blogspot.com/2015/06/apa-itu-grid-computing.html
https://sis.binus.ac.id/2014/10/11/konsep-dasar-virtualisasi/
http://jaisicamm.blogspot.com/2015/02/distributed-parallel-computing.html
http://www.teknologi-bigdata.com/2013/02/mapreduce-besar-dan-powerful-tapi-tidak.html
https://muhammadiqbal.art.blog/2019/08/23/apa-itu-database-nosql-dan-jenis-jenis-database-nosql/
mantapp sangat informatif sekali gan..
BalasHapus