Senin, 22 Februari 2021

Berpikir Komputasional (Tematis)

 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 Zuses 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 Armys 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

MODUL INFORMATIKA KELAS 9 SMT 5 TP 2425

  BAB I Berpikir Komputasional   A.   Struktur Data (Pengertian, Jenis, dan Fungsinya) 1.    Struktur Data List (Daftar) 2.    S...