A. Pengetahuan Dasar Computational Thinking
Kemampuan berpikir komputasi bukanlah kemampuan membuat
program di komputer, atau
kemampuan menggunakan software di
komputer walaupun keahlian ini tetap akan memperkaya kemampuan berpikir
komputasi. Metode inti dalam computational
thinking dikategorikan menjadi decomposition
dalam memecah masalah yang lebih besar (kompleks). Hal tersebut menjadi komponen-
komponen yang lebih kecil (sederhana), pattern recognition dalam mencari/ menemukan pola/kesamaan
antarmasalah maupun dalam masalah tersebut. Abstraction
fokus pada informasi penting saja dan mengabaikan detail yang kurang
relevan.
Mengamati
Amatilah bagian-bagian dan bentuk-bentuk dari pengetahuan dasar computational thinking yang ada di
lingkungan sekolah kalian! Tulis hasil pengamatan kalian di buku
tugas! Nilaikan kepada guru!
1. Sejarah Komputasi Modern
Cikal bakal (sejarah) terjadinya
komputasi modern hingga menjelang kemunculan
ENIAC adalah sebagai berikut.
a.
Tahun 1941, Konrad Zuse’s electromechanical menciptakan mesin bernama Z machine yang
dikenal dengan istilah Z3 sebagai mesin pertama yang menampilkan biner
aritmatika, termasuk aritmatika floating point dan ukuran programmability. Hingga pada tahun 1998, operasional Z3 di dunia komputer
memiliki bentuk mesin Turing secara lengkap.
b.
Pada tahun 1941 ditemukan seperangkat tabung hampa yang didasarkan pada perhitungan, angka biner, dan regeneratif memori kapasitor yang
dikenal sebagai nonprogrammable atanasoff
(berry computer). Penggunaan
memori regeneratif menjadikannya jauh lebih seragam walaupun masih berukuran
meja besar atau meja kerja.
c.
Komputer Colossus yang ditemukan
pada tahun 1943 memiliki kemampuan
dalam membatasi kemampuan program
tertentu. Komputer ini digunakan untuk
memecahkan kode perang Jerman.
d. Tahun 1944 ditemukan komputer elektromekanis dengan programmability terbatas yang diberi nama The Harvard Mark I.Masa berikutnya, US Army’s Ballistic Research Laboratory menemukan ENIAC pada tahun 1946 sebagai unit komputer yang digunakan untuk menghitung desimal aritmatika dan dinyatakan sebagai komputer elektronik pertama
2.
Klasifikasi
Komputasi Modern
Komputasi modern selalu berkaitan
erat dengan prosedur perhitungan menggunakan algoritma tertentu dalam menyelesaikan
berbagai jenis masalah
menggunakan komputer. Penerapan
simulasi komputer secara praktis dengan berbagai bentuk komputasi lainnya untuk menyelesaikan
masalah-masalah dalam berbagai bidang keilmuan. Pada perkembangan selanjutnya,
komputasi digunakan untuk menemukan prinsip-prinsip baru yang mendasar
dalam berbagai disiplin ilmu.
a. Grid computing system
Komputasi grid memiliki beberapa
karakteristik. Karakteristik tersebut di antaranya
kemampuan dalam menggunakan seperangkat komputer yang terpisah secara geografis, didistribusikan,
dan terhubung
oleh jaringan
untuk menyelesaikan masalah komputasi berskala
besar.
Beberapa daftar yang dapat digunakan
untuk mengenali sistem komputasi grid berupa sistem koordinat sumber
daya komputasi. Sistem tersebut tidak berada di bawah kendali pusat, sistem menggunakan
standard dan protokol yang terbuka. Sistem ini memiliki kemampuan
dalam mencoba mencapai kualitas pelayanan canggih serta lebih
baik di atas kualitas komponen individu pelayanan
komputasi grid.
Beberapa implikasi grid computing, antara lain sebagai berikut.
1) Big science
Data dan komputasi grid dalam hal ini digunakan untuk membantu proyek
laboratorium yang disponsori
oleh pemerintah
2) CADD (Computer-Aided
Drug Discovery)
Implikasi grid computing digunakan untuk membantu penemuan
obat, misalnya Molecular Modelling Laboratory (MML) dari University of North
Carolina (UNC)
3) e-Learning
Implikasi grid computing
yang dapat membantu dalam membangun infrastruktur untuk memenuhi
kebutuhan dalam pertukaran informasi di bidang pendidikan.
4) Microprosesor design
Implikasi grid computing
yang dapat membantu mengurangi penggunaan microprosesor design cycle serta
memudahkan design center dalam
membagikan resource secara efisien.
Misalnya Microprosesor Design
Group yang digunakan di IBM Austin
5) Scientific simulation
Implikasi grid computing digunakan untuk simulasi terhadap
proses yang kompleks
di bidang fisika, kimia, dan biologi.
b. Cloud computing system
Cloud computing sebagai metode komputasi di mana
kapabilitas terkait teknologi informasi yang
disajikan sebagai layanan
(as a service). Dengan
demikian, pengguna dapat
mengaksesnya lewat internet (“di dalam awan”) tanpa mengetahui apa yang
ada di dalamnya, ahli dengannya, atau memiliki kendali
terhadap infrastruktur teknologi
yang membantunya. Beberapa
jenis layanan komputasi awan, antara lain Infrastructure as a Service
(IaaS), Platform as a Service (PaaS), dan Software as a Service
(SaaS). Dalam hal ini, awan (cloud)
sering digambarkan di diagram jaringan komputer sebagai metafora dari internet, sehingga
dalam cloud computing sebagai abstraksi dari
infrastruktur kompleks yang masih disembunyikan. Komputasi cloud yang terukur
secara dinamis dan memiliki
sumber daya virtual
yang sering digunakan pada layanan internet. Secara mendasar
komputasi cloud digambarkan sebagai
pelengkap dalam layanan
IT berbasis model dalam internet dengan melibatkan ketentuan dari
keterukuran yang sudah ditentukan.
c. Mobile computing system (komputasi bergerak)
Kemajuan teknologi ke arah yang lebih dinamis
membutuhkan perubahan dari sudut pandang manusia maupun sudut pandang alat.
Beberapa jenis perangkat komputasi bergerak antara lain GPS, Laptop,
PDA, smartphone, UMPC, Wearable computer, dan lain sebagainya. Dalam hal ini, mobile
computing menjadi sebuah kemajuan teknologi komputer dalam berkomunikasi menggunakan
jaringan tanpa
kabel dan mudah dibawa
atau
berpindah tempat, meskipun secara mendasar berbeda dengan komputasi nirkabel. Beberapa kemampuan mobile computing di antaranya akses web dalam keadaan bergerak,
disconnected operations (mobile agents),
entertaintment (network game groups),
information services, location aware services, serta peralatan
emergensi untuk akses ke dunia luar maupun pemantauan dan koordinasi pada
kendaraan (GPS)
Perbedaan mendasar antara komputasi mobile,
komputasi grid, dan komputasi
cloud di
antaranya sebagai berikut
1) Biaya, Biaya untuk tenaga komputasi
mobile lebih mahal dibandingkan dengan komputasi grid dan
cloud
2) Portabilitas, Komputasi mobile tidak membutuhkan tempat dan mudah dibawa ke mana-
mana, sedangkan grid dan cloud membutuhkan tempat khusus.
3) Proses, Komputasi mobile sangat tergantung pada kemampuan pengguna
secara personal, proses komputasi
grid tergantung user dalam
mendapatkan server, dan
komputasi cloud prosesnya membutuhkan jaringan internet sebagai penghubungnya.
4) Teknologi, Komputasi mobile menggunakan
teknologi komputer yang bekerja seperti
handphone, sedangkan komputer banyak
digunakan pada komputasi grid dan cloud
Menanya :
Buatlah daftar pertanyaan tentang persoalan akurasi dalam komputasi modern yang belum kalian pahami!
Mintalah bantuan teman kalian untuk menjawab pertanyaan
tersebut! Jika teman kalian mengalami
kesulitan, mintalah guru untuk menjawab ketidaktahuan kalian!
3. Persoalan Akurasi dalam
Komputasi Modern
Peletak dasar konsep komputasi
modern pertama kali digagasi oleh seorang ilmuwan bernama John Von Neumann. Sumbangsihnya dalam bidang
matematika, teori kuantum, fisika nuklir,
dan ilmu komputer disalurkan melalui karya-karyanya. Von Neumann juga ahli dalam bidang komputasi dan diangkat
menjadi seorang konsultan pada pengembangan komputer ENIAC, sekaligus
merancang konsep arsitektur komputer yang masih dipakai sampai sekarang
Beberapa prinsip dalam memecahkan masalah menggunakan komputasi
modern adalah sebagai berikut.
a. Kompleksitas (Teori big O)
Seorang programmer
harus mampu memprediksi jumlah sumber daya yang akan dihabiskan
oleh kode yang ditulisnya. Guna dapat mengukur hal
tersebut, seorang programmer
harus mengetahui efisiensi algoritma yang telah
ditulis. Pemahaman yang kurang terhadap
hal tersebut dapat menimbulkan kerugian, misalnya tidak bisa menilai
dalam kasus apa algoritma berjalan
lebih cepat atau lebih lambat. Selain itu, ketidakmampuan tersebut akan berujung penilaian buruk terhadap
kinerja yang bersangkutan. Kompleksitas komputasi identik dengan cabang dari
teori komputasi dalam ilmu komputer
yang berfokus pada mengklasifikasikan masalah
komputasi sesuai dengankesulitan inheren mereka. Dalam
konteks ini, sebuah
masalah komputasi dipahami
sebagai tugas yang pada prinsipnya setuju untuk dipecahkan oleh komputer. Selain itu, kompleksitas sebagai
hal mendasar yang seharusnya dipahami oleh programmer. Dengan demikian, menguasai
konsep Big O menjadi
suatu kewajiban jika ingin menjadi
programmer yang unggul.
Efisiensi algoritma dapat diukur dengan sebuah notasi yang
bernama Big O. Big O adalah sebuah metrik yang digunakan untuk mengukur
kompleksitas suatu algoritma. Kompleksitas dalam konteks
ini berkaitan dengan efisiensi kode. Semakin rendah
kompleksitasnya, makin efisien pula kode tersebut
1) Ukuran kompleksitas
Berbagai bidang ilmu memiliki keterkaitan erat dalam ilmu
komputer teoretis berupa analisis algoritma
dan teori computability. Perbedaan utama antara teori
kompleksitas komputasi dan analisis algoritma adalah kondisi
akhir ditujukan untuk menganalisis jumlah sumber daya yang dibutuhkan oleh algoritma tertentu. Adapun kondisi pertama mengajukan pertanyaan yang lebih umum
tentang semua kemungkinan algoritma yang
dapat digunakan untuk memecahkan
masalah sejenis. Secara khusus, teori kompleksitas komputasi menentukan
batas-batas praktis tentang apa yang komputer
bisa dan tidak bisa lakukan. Oleh sebab itu, masalah kompleksitas dianggap sebagai sebuah inheren yang sulit jika memecahkan masalah
memerlukan sejumlah besar
sumber daya, tetapi
hal tersebut tergantung pada algoritma yang digunakan dalam memecahkan masalah yang bersangkutan. Teori ini bersifat
formalizes intuisi
dengan memperkenalkan matematika model komputasi untuk mempelajarinya dan kuantitatif
jumlah sumber daya yang dibutuhkan, seperti waktu dan penyimpanan Beberapa komponen
ukuran kompleksitas yang digunakan
di antaranya jumlah komunikasi
yang
digunakan dalam
kompleksitas
komunikasi,
jumlah gerbang dalam
rangkaian
yang
digunakan dalam rangkaian
kompleksitas, dan jumlah prosesor yang
digunakan dalam komputasi paralel. Dalam hal ini, kompleksitas waktu pada
sebuah algoritma berisi jumlah langkah dan ekspresi bilangan yang dibutuhkan
sebagai fungsi dari ukuran permasalahan. Kompleksitas ruang berkaitan dengan sistem memori yang dibutuhkan untuk eksekusi sebuah program. Dalam hal ini, kompleksitas mencoba
untuk mengklasifikasikan masalah
yang dapat atau tidak dapat
diselesaikan secara tepat dengan sumber daya terbatas. Pada gilirannya, memaksakan pembatasan pada sumber daya yang tersedia untuk membedakan kompleksitas
komputasi dari computability teori
berkaitan dengan jenis masalah yang dapat diselesaikan menggunakan prinsip
algorithmically. Komputasi modern dirancang untuk menangani masalah
yang kompleks, sehingga
diterapkan pada komputer. Dengan menggunakan teori Big O, maka komputasi modern dapat melakukan perhitungan untuk memecahkan masalah kompleksitas yang kerap dihadapi. Adapun
kelompok algoritma berdasarkan kompleksitas waktu asimptotik sebagai berikut.
2) Implementasi teori Big
O
Notasi Big O (dibaca : Big Oh) mengukur kompleksitas algoritma dalam dimensi
waktu. Selain Big O, ada dua notasi lain yang dapat
digunakan untuk mengukur
kompleksitas waktu sebuah algoritma, yaitu Big Theta (Θ) dan Big Omega (Ω). Konsep Big Omega (Ω) mirip dengan Big O,
tetapi terdapat perbedaan
pada semantiknya. Nilai Big Omega (Ω) menunjukkan batas bawah
kompleksitas waktu suatu algoritma, sedangkan Big O sebaliknya. Jika sebuah
algoritma memiliki nilai batas atas dan batas bawah yang sama, algoritma tersebut
dikatakan memenuhi konsep Big Theta (Θ).
Penggunaan teori Big O pada komputasi modern bertujuan untuk melakukan
perhitungan dalam memecahkan masalah kompleksitas yang sering
dihadapi. Komputasi modern
dirancang untuk menangani masalah yang kompleks
dalam implementasinya menggunakan seperangkat komputer. Notasi Big
O menjadi sebuah
notasi matematika untuk
menjelaskan batas atas dari magnitude
suatu fungsi dalam fungsi yang lebih sederhana. Dalam dunia ilmu komputer, notasi ini sering digunakan dalam analisis kompleksitas algoritma. Notasi Big O
pertama kali diperkenalkan tahun 1894 oleh Paul Bachmann
(pakar teori bilangan Jerman) dengan bukunya yang berjudul
“Analytische Zahlentheorie” edisi kedua. Notasi tersebut juga dipopulerkan oleh pakar teori bilangan Jerman lainnya yaitu Edmund Landau yang lebih dikenal sebagai
simbol Landau. Adapun konsep Big O sebagai
sesuatu yang abstrak dapat lebih mudah dipahami dengan
menggunakan sebuah analogi.
Beberapa jenis runtime yang
umum ditemui adalah O(log n), O(n log n), O(n^2), O(2^n), dan O(n!). Sebuah runtime mungkin saja memiliki lebih dari satu variabel. Misalnya
ingin mengecat dinding kamar. Jika dinding memiliki lebar l dan
memerlukan n lapis cat, waktu total
yang diperlukan dapat dirumuskan sebagai O(ln). Atau bisa dilihat pada sebuah harddrive berisi data penting yang perlu
diberikan kepada teman di luar kota secepatnya. Dalam kasus ini, ada dua
alternatif yang dapat dilakukan yaitu sebagai berikut
a) Memberikan harddrive tersebut kepada yang
bersangkutan
Dengan alasan efisiensi
waktu, tentu saja akan memilih
alternatif ini karena mengirimkan harddrive dapat memakan waktu 1 hingga 3 jam
b) Melakukan transfer
data secara digital
Hal ini akan berbeda jika data yang harus dikirimkan sangat besar, misalnya 1 TB, sebab dengan kecepatan rata-rata internet saat ini (16 Mbps), maka memerlukan waktu lebih dari satu hari untuk menyelesaikan pengiriman data. Dengan
kondisi tersebut, maka alternatif
kedua menjadi pilihan yang tepat. Dalam hal ini, proses transfer data mewakili
waktu eksekusi (runtime) algoritma.
Dalam notasi Big O, proses tersebut dapat dideskripsikan sebagai berikut
(1) Transfer digital: O(n), di mana n
adalah ukuran data. Notasi tersebut menunjukkan bahwa waktu yang diperlukan
untuk transfer data akan bertambah secara linear mengikuti besar ukuran data
(2) Transfer fisik: O(1), di mana 1
adalah suatu konstanta. Nilai konstan dalam notasi tersebut menunjukkan bahwa
ukuran data tidak memengaruhi waktu transfer data. Artinya, data akan selalu sampai dalam rentang
waktu 4 – 5 jam, tidak peduli seberapa besar data yang dikirimkan
3)
b. Modelling (NN & GA)
Modelling menjadi suatu hal yang penting
dalam melakukan perhitungan rumit yang menyebabkan komputasi modern membutuhkan
proses modelling sebelum melakukan
perhitungan. Modelling merupakan asas yang cukup penting dalam pembelajaran CTL sebab melalui modelling tersebut
dapat terhindar dari pembelajaran yang teorestis–abstrak yang dapat memberi
peluang terjadinya verbalisme.
Bayangkan saja jika dihadapi dalam suatu masalah perhitungan yang banyak dan kompleks,
tetapi tidak ada model matematika yang dimiliki. Perhitungan akan berjalan tanpa kendali
dan tidak akan mendapatkan hasil yang akurat.
c. Down sizzing (problem volume besar)
Data yang besar membutuhkan cara penyelesaian khusus,
karena dapat menjadi
masalah jika ada yang terlewatkan. Oleh karena itu, penggunaan metode down sizzing pada komputasi
modern untuk menangani masalah
dengan volume yang besar. Dengan metode ini, data yang besar diparalelkan
dalam pengolahannya, sehingga dapat diorganisir dengan baik
d. Akurasi (floating point)
Pengertian akurasi sebagai kedekatan antara
nilai yang terbaca dari alat
ukur dengan nilai sebenarnya. Akurasi menjadi masalah yang paling penting dalam memecahkan masalah. Karena itu, pada komputasi
modern dilakukan perhitungan yang menghasilkan suatu jawaban yang akurat dari sebuah masalah.
Tentu kita pernah mendengar tipe data floating point
yang biasa digunakan untuk menyimpan data numerik
dalam bentuk pecahan.
Tipe data tersebut memiliki
range penyimpanan numerik yang besar, sehingga dapat digunakan oleh komputer untuk melakukan
komputasi yang akurat. Akurasi termasuk jenis persoalan paling penting dalam memecahkan masalah.
Dalam kondisi tersebut, tipe data floating point digunakan untuk menyimpan data numerik dalam bentuk
pecahan. Tipe data yang bersangkutan memiliki
ruang (range) penyimpanan numerik yang cukup besar, sehingga dapat digunakan oleh komputer untuk melakukan
komputasi secara akurat
e. Kecepatan (Hz)
Secara mendasar, manusia pasti menginginkan masalah dapat diselesaikan dengan cepat, sehingga
perhitungan masalah kecepatan menjadi hal yang sangat krusial. Selain
itu, dan harus dilakukan dalam waktu yang singkat pada saat mengolah suatu data
4. Tujuan dan Hambatan Komputasi Paralel
Peranan komputasi modern dalam membantu manusia
menyelesaikan masalah-masalah yang kompleks sangat besar, bukan tidak hanya menghitung tetapi dalam hal program
dan jaringan yang dapat diselesaikan dengan cepat. Komputasi modern dikategorikan menjadi komputasi mobile(bergerak), komputasi
grid, dan komputasi cloud (awan).
Mayoritas permasalahan dalam computational thinking dilakukan pada sisi manusia, sehingga
dapat digunakan dalam berbagai bidang,
yang salah satunya pada dunia
computer science. Adapun
tujuan utama penggunaan
komputasi paralel adalah mempersingkat waktu eksekusi program menggunakan komputasi
serial. Beberapa
penggunaan komputasi paralel antara lain sebagai berikut
Penggunaan komputasi paralel sebagai
solusi untuk mempersingkat waktu yang dibutuhkan untuk eksekusi program memiliki
beberapa hambatan. Hambatan-hambatan
tersebut antara lain adalah sebagai berikut
a. Beban waktu
Hambatan yang terkait dengan beban waktu yang digunakan untuk
inisiasi task, terminasi task, dan sinkronisasi
b. Beban jaringan
Hambatan yang diakibatkan karena beban jaringan
dapat dilihat pada saat eksekusi
program
secara paralel. Permasalahan ini muncul karena ketika suatu task membutuhkan data dari task yang lain.
State ini dikirimkan melalui jaringan di mana kecepatan
transfer data kurang dari kecepatan prosesor yang mengeksekusi instruksi task. Adapun jumlah waktu yang dibutuhkan untuk berkomunikasi melalui jaringan antardua titik adalah jumlah dari startup
time, per-hop time,
dan per-word transfer
time.
c. Percepatan waktu
eksekusi program
Nama Amdahl diambil dari nama seorang arsitektur
komputer terkenal di perusahaan IBM, Gene
Amdahl yang pertama kali mencetuskan bentuk formulasi ini. Formulasi atau hukum
ini banyak dipakai dalam bidang komputasi paralel untuk meramalkan peningkatan
kecepatan maksimum pemrosesan data (secara teoretis) jika jumlah prosesor di dalam komputer paralel tersebut ditambah.
Hukum Amdahl sebagai percepatan waktu eksekusi program menggunakan komputasi paralel tidak akan
pernah mencapai kesempurnaan karena selalu ada bagian program yang harus
dieksekusi secara serial. Amdahl menyatakan bahwa peningkatan kecepatan
secara paralel akan menjadi
linear, melipatgandakan kemampuan proses sebuah komputer dan mengurangi separuh dari waktu
proses yang diperlukan untuk menyelesaikan sebuah masalah.
Format hukum Amdahl
dinyatakan sebagai berikut
5. Arsitektur Memori pada Komputer Paralel
Ilmu komputasi juga berkaitan dengan teknik penyelesaian numerik, penyusunan model matematika,
dan penggunaan komputer dalam menganalisis serta memecahkan masalah-masalah sains. Komputasi
modern memudahkan perkembangan teknologi modern dengan sangat pesat.
Terdapat dua jenis arsitektur
memori pada komputer paralel, yaitu sebagai berikut
a. Shared memory
Arsitektur jenis ini menyediakan global addressing sehingga berbagai prosesor memiliki cara pengaksesan memori yang seragam. Setiap perubahan pada
suatu lokasi memori oleh suatu prosesor akan selalu terlihat oleh prosesor lain.
Terdapat ada dua jenis
shared memory berdasarkan frekuensi akses yaitu Uniform Memory Access (UMA) untuk setiap prosesor memiliki hak pengaksesan yang seragam
dengan prosesor lain dan Non Uniform
Memory Access (NUMA) di mana tidak semua prosesor memiliki hak yang sama dalam mengakses
memori. Kelebihan dari arsitektur ini antara lain pengaksesan memori yang user friendly
dan performansi dalam penggunaan data Bersama antartask. Adapun
kekurangannya antara lain minimnya skalabilitas pada saat terjadi penambahan prosesor, di mana terjadi
peningkatan traffic antara prosesor ke shared memory dan
antara cache coherent system dengan memori sebenarnya.
b. Distributed memory
Kelebihan dari arsitektur distributed
memory adalah terjaganya skalabilitas ketika terjadi penambahan prosesor. Adapun kekurangannya adalah programmer harus berurusan dengan detail komunikasi data antara prosesor
dan memori nonlokal.
Arsitektur jenis ini memiliki karakteristik di mana setiap prosesor
memiliki memorinya masing-masing. Dengan demikian, eksekusi instruksi dapat berjalan secara independen antara satu prosesor dengan yang lain. Prosesor akan
menggunakan jaringan ketika membutuhkan akses ke memori nonlokal.
Akses ini sepenuhnya menjadi tanggung jawab
penulis program.
c.
6. Realisasi dan Dampak Komputasi Modern
Mayoritas komputasi di masa sekarang telah
menggunakan komputer yang lebih dikenal komputasi modern. Komputasi menjadi salah satu sub bidang
dari ilmu komputer dan matematika. Bila pemrosesan paralel dilakukan dengan
tepat, maka performa
dari
komputasi modern akan berjalan dengan
baik
dan maksimal. Jika arsitektur
paralel processing yang digunakan
kurang tepat, maka pemrosesan data juga tidak akan berjalan maksimal dan baik. Guna melakukan aneka jenis komputasi
paralel diperlukan infrastruktur mesin paralel yang terdiri
dari banyak
komputer yang dihubungkan dengan
jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah.
Komputasi modern membantu kita dalam kehidupan sehari-hari mulai mempercepat waktu pekerjaan
sampai meminimalkan pengeluaran
untuk melakukan sebuah
proses, dalam sebuah pekerjaan akan sangat
membutuhkan kecepatan dan juga ketepatan, apabila banyak data yang diproses
maka akan membutuhkan waktu. Dengan meminimalisir arsitektur, path, dan biaya, maka pemrosesan yang dilakukan akan semaksimal mungkin.
Oleh sebab itu, diperlukan aneka perangkat
lunak pendukung (middleware) yang berperan mengatur
distribusi antarnode dalam satu mesin paralel. Selanjutnya pemakai harus membuat
pemrograman paralel untuk merealisasikan komputasi. Beberapa dampak komputasi
modern dalam kehidupan sehari-hari adalah sebagai berikut.
a.
Biosensor
Biosensor identik dengan sejenis sensor
yang mengombinasikan komponen
hayati dengan komponen elektronik (transduser) dengan mengubah sinyal dari komponen hayati menjadi sinyal
luar yang terukur. Implementasi yang paling umum dari biosensor
dapat dilihat pada alat pengukur gula darah yang menggunakan enzim glukosa oksidase untuk memecah gula darah
b.
Biometrik
Komputasi modern dapat
membantu manusia dalam
menyelesaikan masalah-masalah kompleks dengan bantuan seperangkat PC, salah satu misalnya adalah
biometrik. Menurut garis
besarnya, biometrik bisa diterjemahkan sebagai pengukuran dari analisis
statistik pada data biologi yang mengacu pada teknologi untuk menganalisa
karakteristik tubuh secara individu. Beberapa teknik biometrik di antaranya pembacaan
sidik jari/telapak tangan, geometri tangan, pembacaan retina/ iris, pengenalan
suara, dan dinamika tanda tangan.
c.
Bidang kesehatan
Beberapa penerapan komputasi modern dalam bidang kesehatan
antara lain sebagai berikut
1)
Administrasi
Dengan adanya komputasi modern di dalam dunia administrasi
sangat membantu di dalam penyimpanan, pengelompokan, dan pengolahan data. Tanpa komputasi modern,
akan sangat sulit untuk
memeriksa banyaknya data pasien, stok obat, dan data lainnya yang dimiliki oleh
rumah sakit. Namun dengan adanya komputasi
modern, proses tersebut lebih mudah
untuk dilakukan.
2)
Melihat dan menganalisa organ
Supaya dapat melihat
organ tubuh bagian
dalam manusia telah
ditemukan begitu banyak
alat canggih, namun hampir seluruh
alat tersebut masih bergantung pada perangkat
komputer sebagai sarana untuk
penyaluran data atau pun gambarnya.
Oleh karenanya,
komputer memiliki peranan
yang vital juga dalam melihat
dan menganalisa organ-organ tubuh manusia
tersebut. Beberapa contoh penggunaan komputasi modern dalam melihat dan menganalisis
organ adalah sebagai berikut
a)
USG (Ultra Sonography) adalah suatu alat dalam dunia
kedokteran yang memanfaatkan gelombang ultrasonik, yaitu gelombang suara yang memiliki frekuensi tinggi (250 kHz –2000 kHz) yang hasilnya ditampilkan dalam layar monitor berupa gambar dua dimensi atau tiga dimensi.
b)
System Dynamic Spatial Reconstructor (DSR) berguna untuk melihat gambar dari berbagai sudut organ tubuh secara bergerak.
c)
System Computerized Axial Tomography (CAT) berguna
untuk menggambar struktur
otak dan mengambil gambar
seluruh organ tubuh
yang tidak bergerak
dengan menggunakan sinar-X
d)
SPECT (Single Photon Emission Computer Tomography) merupakan sistem komputer yang mempergunakan gas radiokatif untuk mendeteksi partikel-partikel tubuh yang ditampilkan dalam bentuk gambar
e)
PET (Position Emission Tomography) merupakan sistem komputer yang menampilkan gambar yang mempergunakan
isotop radioaktif.
f)
NMR (Nuclear Magnetic Resonance) yaitu teknik mendiagnosa dengan cara memagnetikkan
nukleus (pusat atom) dari atom hidrogen
g)
Magnetic Resonance
Imaging (MRI) adalah alat untuk pemeriksaan organ tubuh secara komputerisasi, dengan potongan
tranversal, koronal, dan sagita.
3)
Farmasi
Dalam bidang farmasi dan obat-obatan, komputasi modern juga
berperan sangat penting, misalnya untuk mengelola resep dan dosis serta harga obat-obatan tersebut. Selain itu, dengan
adanya komputasi modern dalam bidang farmasi juga membantu untuk
mengelompokkan macam-macam obat berdasarkan kegunaannya
4)
Rekam medis
Komputasi modern dapat menjadi alat bantu dalam proses rekam medis berbasis komputer
(Computer based patient
record) yang digunakan untuk mencatat
semua data medis pasien
Dokter ataupun perawat dapat
melihat rekam medis pasien seperti,
keluhan dan riwayat penyakit sebelumnya yang pernah diderita
oleh si pasien, tanggal kedatangan pasien terakhir kali
berobat, resep yang pernah diberikan, dan lain sebagainya
5)
Proses Diagnosis
Dengan adanya komputasi
modern dalam bidang kesehatan, mendiagnosis suatu penyakit bukan hal
yang sulit lagi. Salah satu contohnya yaitu Mycin. Mycin merupakan contoh
sistem pakar yang digunakan untuk membantu juru medis mendiagnosis penyakit darah yang cepat menular
dan kemudian dapat memberikan saran berupa penggunaan antibiotik yang
sesuai
d.
Bioinformatika
Ilmu terapan yang lahir
dari perkembangan teknologi
informasi di bidang molekular disebut bioinformatika
yang ditemukan
pada pertengahan
tahun 1980-an. Beberapa aktivitas yang
berhubungan dengan bioinformatika antara lain sebagai berikut
1)
Pangkalan data
Dalam hal ini, penerapan
berbagai bidang dalam khasanah bioinformatika dapat dijumpai pada pembuatan pangkalan
data dan pengembangan algoritma untuk analisis
sekuens biologi telah dilakukan sejak tahun 1960an. Kemajuan teknik biologi molekuler dalam mengungkap sekuens
biologi protein
dan asam nukleat mengawali perkembangan pangkalan data dan teknik analisis
sekuens biologi dengan sangat pesat. Bahkan pada tahun 1960-an
telah mulai dikembangkan pangkalan data sekuens protein
di Amerika Serikat
dilanjutnya pengembangan pangkalan data sekuens DNA di akhir tahun 1970-an. Termasuk di dalamnya Jerman yang berfokus
pada European Molecular Biology
Laboratory (Laboratorium Biologi
Molekuler kawasan Eropa)
Bioinformatika juga mempelajari penerapan teknik komputasi untuk mengelola dan menganalisis
informasi hayati yang mencakup penerapan metode-metode matematika, statistika, dan informatika untuk
memecahkan masalah-masalah biologi,
terutama yang terkait
penggunaan sekuens DNA dan asam amino. Misalnya analisis
ekspresi gen, analisis
filogenetik, pangkalan data untuk mengelola
informasi hayati, sequence
alignment (penyejajaran sekuens), dan prediksi struktur
untuk meramalkan struktur
protein dan struktur
sekunder RNA. Dalam
hal ini, pangkalan data
sekuens biologi berwujud sebagai berikut.
a)
Data sekuens biologi
Salah satu jenis piranti
bioinformatika yang saling
terhubungan dengan penggunaan pangkalan data sekuens Biologi
adalah BLAST (Basic Local Alignment Search
Tool). Ada pun
algoritma yang mendasari kerja BLAST adalah
penyejajaran sekuens. PDB (Protein Data Bank) sebagai pangkalan
data tunggal yang menyimpan model struktur 3D protein dan asam nukleat
hasil penentuan eksperimental menggunakan dengan kristalografi sinar
X, mikroskopi elektron, dan spectroscopy NMR.
b)
Sekuens asam nukleat
Pangkalan data utama untuk sekuens asam nukleat di masa sekarang adalah DDBJ (DNA Data Bank of Japan) dari Jepang, EMBL (the European Molecular Biology Laboratory)
untuk kawasan Eropa, dan GenBank dari Amerika Serikat. Ketiga pangkalan data tersebut
saling bekerja sama dan bertukar data harian guna menjaga keluasan
cakupan masing- masing pangkalan data.
2)
Biologi molekular modern
Di bidang bioinformatika ini tidak terlepas
dari perkembangan biologi
molekular modern, salah satunya peningkatan pemahaman
manusia dalam bidang genomik yang terdapat dalam molekul
DNA. Perkembangan teknologi
DNA rekombinan (DNA) memainkan peranan penting dalam lahirnya bioinformatika. Teknologi
tersebut memunculkan pengetahuan baru dalam rekayasa genetika organisme yang dikenal
dengan istilah biotechnology. Kemampuan
para peneliti dan ilmuwan dalam memahami dan memanipulasi kode genetik DNA sangat didukung
teknologi informasi melalui perkembangan hardware dan software yang
berkaitan dengan produksi perangkat lunak. Hal ini dapat dilihat pada upaya
perusahaan bioteknologi Celera Genomics (Amerika
Serikat) yang melakukan pembacaan sekuen genom manusia yang secara maksimal
memanfaatkan teknologi informasi,
sehingga bisa melakukan pekerjaannya dalam waktu singkat
(hanya beberapa tahun).
Mengeksplorasi
Kumpulkanlah informasi dari berbagai sumber komputasi modern! Bagaimanakah perkembangan perangkat
tersebut saat ini? Buatlah dalam bentuk laporan sederhana dan kumpulkan kepada
guru untuk dinilai!
3)
e.
B. Prosedur Standar Dalam Menyelesaiakan
Persoalan Komputasi
Dengan makin berkembangnya alat dan kebutuhan, maka makin banyak
pula data-data yang ingin dihitung, dan mulailah ide pembuatan alat hitung
dengan konsep komputasi modern yang juga dikenal sebagai komputer. Bukan hanya itu saja, keberadaan komputer yang diciptakan hingga sekarang ini bukan
hanya menjadi alat untuk menghitung saja, tetapi juga bisa
menyimpan, mengedit, mengolah
kata, serta masih banyak lagi
kegunaan dan kelebihannya
1.
Prosedur dan Kinerja
Komputasi
Komputer berasal dari kata computare
yang artinya menghitung. Secara bahasa komputer
didefinisikan sebagai alat yang melakukan proses perhitungan aritmatika. Secara umum, Komputer didefinisikan sebagai seperangkat alat elektronik yang mengubungkan komponen satu dengan yang lainnya sehingga
menghasilkan informasi yang sebelumnya telah diolah terlebih dahulu. Komputer terdiri atas 3 elemen yaitu hardware (perangkat keras) seperti prosesor, harddisk, RAM, CPU, dan motherboard. Software (perangkat lunak) seperti aplikasi-aplikasi dan juga system
operasi yang akan bekerja sesuai perintah yang diberikan oleh brainware (pengguna).
Kinerja komputasi menggunakan paralel
processing dengan memanfaatkan beberapa komputer
atau CPU untuk menemukan
suatu pemecahan masalah dari berbagai
masalah yang ada, sehingga
dapat diselesaikan dengan cepat. Paralel processing
computational akan menggabungkan beberapa CPU, dan membagi tugas untuk masing-masing CPU tersebut. Computational thinking
(CT) sebagai metode berpikir yang dipakai programmer pada
saat menulis program,
sedangkan pemrosesan paralel
(paralel processing) menggunakan
lebih dari satu CPU untuk
menjalankan sebuah program
secara simultan. Dampak
dari
paralel processing adalah membuat program
berjalan lebih cepat
karena makin banyak CPU yang
digunakan
2.
Paralel Computing
Di dalam komputasi paralel terdapat teknik pemrograman paralel pada komputer
memberi peluang eksekusi perintah secara bersamaan
(paralel) di dalam komputer menggunakan
single prosesor (prosesor
tunggal) maupun prosesor ganda dengan mesin paralel
CPU. Hal ini pada umumnya
terjadi pada saat kapasitas komputasi yang digunakan untuk mengolah data dalam jumlah yang sangat besar (misalnya pada industri keuangan,
bioinformatika, dan lain-lain) maupun tuntutan proses komputasi.
a. Pengetahuan dasar
Sistem operasi pada komputer tunggal tidak bisa melakukan
beberapa pekerjaan sekaligus, tetapi menggunakan proses penjadwalan pada sistem
operasi seperti mengerjakan tugas secara bersamaan.
Sedangkan komputasi paralel menggunakan beberapa prosesor atau komputer
serta tidak menggunakan arsitektur Von
Neumann. Komputasi paralel menjadi salah satu teknik melakukan komputasi bersamaan dengan
memanfaatkan beberapa komputer secara stand
alone. Bila komputer
yang digunakan secara bersamaan dilakukan
secara terpisah oleh komputer
yang terhubung dalam suatu jaringan, maka komputer tersebut biasa disebut
sebagai distributed computing (sistem komputer terdistribusi).
Komputasi paralel dikategorikan dalam model berikut.
1) Crowd computation
Model crowd computation terdiri atas kumpulan proses yang sangat erat hubungannya dengan
prosedur dalam melakukan
komputasi pada bagian yang berbeda dari workload, terutama pola yang
digunakan pada model master-slave.
a) Program master bertugas penyebaran
proses (spawn proccess), inisialisasi, collection, displai
hasil, dan displai fungsi-fungsi waktu.
b) Program slave bertugas melaksanakan komputasi yang sebenarnya dengan menerima
alokasi task (workload)
dari master
secara statis maupun dinamis serta
melakukan komputasi task-task dari alokasi dirinya sendiri.
2) Model tree computation
Tree computation identik dengan pola pemrograman di mana proses disebar secara
dinamis seperti tree (pohon).
Hubungan antarnode sebagai hubungan parent-child sehingga sesuai untuk aplikasi
dengan total proses yang terbentuk tidak diketahui sebelumnya. Pada umumnya, model jenis ini
dipakai untuk algoritma dengan tipe branch and bound, tipe alpa beta search, serta tipe recursive divide and conquer.
3) Model hybrid computation
Hybrid computation identik dengan model komputasi
kombinasi antara bentuk tree dan model crowd.
Dampak dari model ini adalah memiliki struktur penyebaran proses yang lebih
bebas dan kompleks. Penempatan infrastruktur Hybrid di lokasi pihak ketiga (off-premise)
biasa di sebut cloud computing
sebagai sebuah terobosan bagi pemetaan infrastruktur Hybrid
IT dalam beberapa tahun
terakhir. Pemikiran availabilitas
sistem (up-time) hingga penurunan
biaya modal (capex) menjadi pendorong adopsi
cloud computing.
Mengasosiasi
:
Lakukan analisis tentang
metode pembangunan komputasi
algoritma paralel! Manakah
metode yang menurut kalian
penggunaannya paling efektif? Diskusikan dengan teman dan nilaikan kepada guru!
b. Metode pembangunan
komputasi algoritma paralel
Metode pembangunan komputasi algoritma paralel dapat
dikategorikan sebagai berikut.
1) Paralelisme data
Teknik paralelisme data menunjukkan bahwa basis data
dipergunakan sebagai dasar untuk membentuk aktivitas paralel, di mana bagian yang berbeda dari basis data akan diproses secara paralel.
Prinsip paralelisme data berlaku untuk pemrograman multiprosesor dan multikomputer. Pada
program sekuensial biasa, array dimanipulasi
dengan mempergunakan perulangan bersarang untuk mendapatkan hasil. Kebanyakan program
paralel dibentuk dengan mengatur
ulang algoritma sekuensial agar perulangan bersarang tersebut dapat
dilaksanakan secara parallel.
2) Paralelisme sinkron
Ketika proses paralel disinkronkan,
berarti bahwa suatu proses harus
menunggu proses lainnya. Pada beberapa
program paralel, jumlah
waktu tunda dapat
menyebabkan bottleneck dan
mengurangi speedup keseluruhan. Load Imbalance dalam beberapa program paralel,
tugas komputasi dibangun
secara dinamis dan tidak dapat
diperkirakan sebelumnya. Karena itu harus selalu ditugaskan ke prosesor-prosesor sejalan dengan pembangunan tugas tersebut.
Hal ini dapat menyebabkan suatu prosesor tidak bekerja (idle),
sementara prosesor lainnya tidak dapat mengerjakan task yang ditugaskannya.
3) Komputasi pipeline
Pada komputasi pipeline, data dialirkan melalui seluruh struktur
proses, di mana masing- masing proses membentuk
tahap-tahap tertentu dari keseluruhan komputasi. Algoritma ini dapat
berjalan dengan baik pada multikomputer, karena adanya
aliran data dan tidak banyak memerlukan akses ke data bersama.
4) Partisi data
Partisi data menjadi
salah satu teknik khusus dari paralelisme data, di mana data disebar ke dalam memori-memori lokal
multikomputer dan sebuah proses paralel ditugaskan untuk mengoperasikan masing-masing bagian data.
Oleh karena itu,
komunikasi antarprosesor menyebabkan terjadinya waktu tunda (jeda),
maka penggunaan messsage passing
dilakukan dalam frekuensi kecil. Dalam hal ini, tujuan dari partisi data adalah untuk mereduksi waktu tunda yang diakibatkan komunikasi messsage passing antarprosesor. Algoritma paralel mengatur agar setiap proses dapat melakukan
komputasi dengan lokal data masing-masing.
5) Algoritma relaksasi
Setiap proses dalam algoritma relaksasi akan mengabaikan konsep sinkronisasi dan komunikasi
antarproses. Walaupun
prosesor mampu mengakses
data yang sama, setiap prosesor
dapat melakukan komputasi secara
mandiri tanpa harus
tergantung pada data yang dihasilkan oleh proses lain. Misalnya algoritma pengurutan dengan menggunakan metode Ranksort, perkalian
matrik, dan lain sebagainya
6)
c.
3.
Protocol Komputasi Network File System (NFS)
Salah satu protocol yang
dipergunakan pada komputasi
paralel adalah Network File
System (NFS), di mana NFS identik
dengan protokol yang dapat membagi
sumber daya melalui
jaringan. NFS dibuat agar
independen dari berbagai jenis mesin, jenis sistem operasi, dan jenis protokol
transport yang digunakan. Hal ini dilakukan dengan menggunakan RPC. NFS memperbolehkan user yang
telah diijinkan untuk mengakses file-file yang berada di remote host
seperti mengakses file yang berada di lokal.
Protokol mount digunakan
untuk menentukan host remote dan jenis file sistem yang akan diakses dan menempatkan di suatu
direktori, serta protokol NFS melakukan I/O pada remote file system.
Fungsi NFS pada komputasi paralel
adalah melakukan sharing data sehingga setiap node slave dapat mengakses program yang sama pada
node master. Protokol mount dan protokol NFS bekerja dengan menggunakan RPC dan mengirim
informasi melalui protokol TCP dan UDP. Software
yang diperlukan untuk komputasi paralel adalah PGI CDK yang telah dilengkapi dengan Cluster Development
Kit. Cluster Development Kit memiliki feature yang lengkap bila ingin melakukan komputasi dengan paralel
prosessing, karena software ini
telah mensupport MPI dalam melakukan perhitungan komputasi.
Pada sistem komputasi paralel
terdiri dari beberapa
unit prosesor dan memori. Dua teknik berbeda dalam mengakses data di unit memori berupa shared
memory address dan message passing. Sedangkan
cara mengorganisasikan memori komputer paralel
dikategorikan menjadi shared memory
paralel machine dan distributed memory paralel machine.
Dalam hal ini, prosesor dan memori di dalam mesin paralel dapat dihubungkan
(interkoneksi) secara statis maupun dinamis. Interkoneksi statis umumnya digunakan
oleh distributed memory system (sistem
memori terdistribusi) sedangkan interkoneksi dinamis
umumnya menggunakan switch untuk menghubungkan antarprosesor dan memori.
Mengkomunikasikan
:
Buatlah makalah tentang protocol
komputasi Network File System
(NFS), kemudian presentasikan di depan kelas!
4.
Standar MPI (Message Passing Interface)
Adapun sambungan langsung peer to peer digunakan untuk menghubungkan semua prosesor. Dalam hal ini, komunikasi data pada sistem
paralel memori terdistribusi memerlukan alat bantu komunikasi yang digunakan pada PC jaringan
berupa standar MPI (Message Passing Interface) atau standar PVM (Paralel Virtual Machine) sebagai paket software yang
mendukung pengiriman pesan untuk komputasi paralel antarkomputer. Keduanya
piranti tersebut bekerja
di atas TCP/IP communication layer sehingga memerlukan fungsi remote access agar dapat menjalankan program pada masing-masing unit prosesor.
Komponen tersebut dapat berjalan di berbagai jenis variasi UNIX dan Windows serta besifat portable untuk
berbagai arsitektur seperti
PC, workstation, multiprosesor dan superkomputer. Sistem
PVM dikategorikan sebagai berikut.
a. Daemon pvmd yang berjalan pada mesin virtual untuk setiap komputer. Pada saat mesin virtual akan dibuat, maka pada saat itulah User mampu mengeksekusi aplikasi PVM melalui
prompt UNIX di semua host.
b. Library interface routine yang memiliki
berbagai fungsi untuk komunikasi antartask. Library ini berisikan routine yang dapat dipanggil untuk pengiriman pesan,
membuat proses baru,
koordinasi task dan
konfigurasi mesin virtual.
Salah aturan mendasar
dalam PVM (Paralel
Virtual Machine) adalah adanya
mekanisme program master dan slave (worker). Programmer harus membuat kode master sebagai
koordinator proses dan kode
slave yang menerima,
menjalankan, dan mengembalikan hasil proses ke komputer master. Kode master dieksekusi paling awal dan kemudian
melahirkan proses lain dari kode master. Masing-masing
program dapat ditulis menggunakan bahasa Fortran/C serta dikompilasi di setiap komputer. Jika arsitektur komputer untuk komputasi paralel
semua sama (misalnya semuanya menggunakan core i7), maka program yang bersangkutan cukup
dikompilasi dalam satu komputer saja.
Selanjutnya hasil kompilasi didistribusikan ke komputer lain yang akan menjadi node komputasi paralel.
Hal mendasar yang perlu
dipahami adalah program
master hanya berada pada satu node sedangkan program slave berada pada
semua node. Dengan demikian, komunikasi dapat berlangsung bila masing-masing komputer
memiliki hak akses ke files ystem semua
komputer. Akses ke files ystem dilakukan melalui protokol rsh yang berjalan di unix atau Windows.
Ada pun langkah pengaturan pada masing-masing
komputer adalah sebagai berikut.
a. Membuat file hostfile yang berisi daftar node komputer
dan nama user yang
akan dipakai untuk komputasi paralel. Hostfile ini dapat digunakan bila nama user di masing-masing komputer berbeda.
Bila nama user pada
semua komputer sama misalnya nama user riset pada komputer Q1, Q2,Q3
dan Q4, maka hostfile bisa diabaikan.
b. Mendaftarkan IP masing-masing komputer
pada file /etc/hosts/hosts.allow dan /etc/hosts/hosts.
equiv.
c. Penambahan dan penghapusan host secara dinamis
dapat dilakukan melalui
konsole PVM. Bila IP
tidak didefinisikan pada hostfile¸ maka langkah ini dapat digunakan.
PVM memanggil rutin pvm_spawn() untuk melahirkan satu atau dua proses lebih yang sama. Misalnya
fungsi-fungsi PVM dalam versi bahasa
C memiliki rutin
awalan pvm. Pengiriman dan penerimaan task
diidentifikasi dengan TID (Task Identifier) yang bersifat unik dan digenerate oleh pvmd lokal.
PVM berisi beberapa rutine yang mengembalikan nilai TID sehingga
aplikasi user dapat mengidentifikasi task lain di sistem.
Secara umum, langkah-langkah dalam menjalankan
komputasi paralel sebagai berikut.
a. Menjalankan PVM daemon
pada setiap mesin dalam cluster.
b. Menjalankan program
master pada master daemon.
c. Master daemon akan
menjalankan proses slave.
Guna
mengimplementasikannya, dapat memakai tools-tools berikut.
5.
Tidak ada komentar:
Posting Komentar