Kompetensi Dasar :
CT untuk persoalan komputasi yang lebih kompleks dari sebelumnya Menyelesaikan persoalan komputasi
yang mengandung jejaring, pola, algoritmik.
Tujuan Pembelajaran :
Menyelesaikan persoalan komputasi yang lebih kompleks dari sebelumnya Menyelesaikan persoalan
komputasi yang mengandung jejaring, pola, algoritmik.
PETA KONSEP
PENDAHULUAN
Teori Komputasi
dan Komputasi
Modern
adalah cara pemecahan masalah, merancang sistem, dan memahami perilaku manusia dengan memanfaatkan
ilmu komputer.
Menurut Jeanette,
1. Berpikir komputasi adalah ketrampilan mendasar bagi semua orang, bukan hanya ilmuwan
komputer, dan pentingnya mengintegrasikan gagasan komputasi ke dalam displin ilmu lain.
2. Berpikir komputasi adalah proses berpikir yang terlibat dalam merumuskan masalah dan
solusinya , sehingga solusi diwakili dalam bentuk yang efektif dilakukan agen pengelola informasi.
Adalah proses untuk mengenali pola/kesamaan umum dari masalah-masalah lain dengan
masalah yang ditemukan dari proses dekomposisi. Pengenalan pola ini akan membantu dalam
menentukan alternatif penyelesaian dari masalah yang dihadapi itu karena ada contoh
masalah yang telah diselesaikan. Contoh : pola file dokumen, file sistem, file execution atau
struktur data/file.
Tujuan Pengenalan pola :
1. dapat memprediksi hal yang akan terjadi setelahnya
2. Membuat sebuah aturan khusus
3. Memudahkan memecahkan masalah dengan pola yang hampir sama.
Menurut KBBI (kamus besar bahasa Indonesia) Abstraksi merupakan proses atau
perbuatan pemisahan.
Dalam CT, Abstraksi adalah salah satu metode berpikir yang dipakai programmer ketika
menulis program. Metodenya berupa generalisasi dan mengidentifikasi prinsip- prinsip
umum yang menghasilkan pola, tren dan keteraturan tersebut. Metode ini membutuhkan
kemampuan menyaring informasi yang dibutuhkan, memilah informasi yang kompleks
menjadi lebih sederhana dan membuat informasi lebih bersifat general sehingga
memudahkan menjelaskan ide. Contoh : menentukan posisi di bumi dapat digeneralisasi
dengan menggunakan titik koordinat bujur dan lintang.
Algoritma sering digunakan untuk perhitungan, penalaran otomatis hingga pemrosesan data.
Sehingga merupakan pilihan dari berbagai metode CT yang ada dan sangat mudah diterapkan
terhadap peserta didik, karena algoritma mudah didesain dan dipahami contoh : penggunaan
skema/flowchart/diagram alur.
Dalam menulis algoritma membutuhkan perencanaan yang panjang agar dapat berfungsi
dengan benar. Solusi yang ditawarkan komputermu sebaiknya algoritma yang kamu tulis. Jika
algoritmanya tidak bagus, maka solusi kamu juga tidak akan bagus.
Algorithm Design adalah : kemampuan mengembangkan pemecahan masalah yang sama
secara langkah demi langkah sehingga orang lain dapat menggunakan informasi tersebut untuk
menyelesaikan masalah yang sama. Misalnya jika ingin membuat secangkir teh maka kamu
akan menggunakan gelas, menyiapkan air mendidih, tuangkan air mendidih itu ke dalam ge las,
taruh gula kemudian mengaduknya sampai rata agar teh itu menjadi manis saat diminum.
a. Percaya diri dalam berhadapan dengan kompleksitas masalah yang lebih besar dan
leih sulit.
b. Toleransi terhadap ambiguitas.
c. Mampu berhubungan dengan masalah yang open-ended.
d. Mampu berkomunikasi dan bekerjasama untuk mencapai tujuan yang sama.
B. Pemetaan Permasalahan dan Solusi dengan Komputasi
Apapun masalah yang kamu hadapi, beberapa langkah mendasar yang menjadi panduan sbb:
- Identifikasi masalahnya.
- Tentukan masalahnya.
- Periksa pilihannya.
- Bertindak dalam sebuah rencana.
- Lihatlah konsekuensinya.
1. Mengevaluasi Masalah
a. Mengklarifikasi sifat suatu masalah
b. Merumuskan pertanyaan.
c. Mengumpulkan informasi secara sistematis.
d. Mengumpulkan dan mengatur data.
e. Meringkas informasi.
f. Mendefinisikan tujuan yang diinginkan.
2. Mengelola Masalah
a. Menggunakan informasi yang dikumpulkan secara efektif.
b. Memecah masalah menjadi bagian yang lebih kecil dan lebih mudah diatur.
c. Menggunakan teknik seperti brainstorming dan pemikiran lateral untuk
mempertimbangkan pilihan.
d. Menganalisis pilihan ini secara lebih mendalam.
e. Mengidentifikasi langkah-langkah yang bisa ditempuh untuk mencapai tujuan.
3. Pengambilan Keputusan
a. Memutuskan antara pilihan yang mungkin untuk tindakan apa yang harus diambil.
b. Memutuskan informasi lebih lanjut untuk dikumpulkan sebelum mengambil tindakan.
c. Menentukan sumber daya ( waktu, pendanaan, staf dan lain-lain) untuk
dialokasikan untuk masalah ini.
4. Menyelesaikan Masalah
a. Menerapkan tindakan.
b. Memberikan informasi kepada pemangku kepentingan lainnya; mendelegasikan tugas.
c. Meninjau kemajuan.
5. Meneliti Hasilnya
a. Pemantauan hasil tindakan yang dilakukan.
b. Mengkaji ulang masalah dan proses pemecahan masalah untuk menghindari situasi serupa di
masa depan.
Seseorang dikatakan sudah berpikir secara computational thinking jika pada penerapan kehidupan
sehari-hari sudah bisa menerapkan metode CT dalam memecahkan masalah. Contohnya dalam
hal prakiraan cuaca, jika orang sekarang tinggal di zaman dulu, maka orang itu dikatakan hebat /
dewa jika bisa memprediksi kondisi cuaca, tetapi bukanlah memprediksi secara asal tapi orang itu
telah menggunakan pola dalam memikirkan dan menghitung prakiraan tersebut sehingga kurang
lebih hasil akhir dalam masalah itu bisa terselesaikan dengan mendekati benar. Begitu juga hal lain
didunia ini yang mengandung pola tersendiri tanpa kita sadari. Karena yang tidak tampak itu
sebenarnya tampak, tergantung kita melihat dari sudut pandang mana.
6. Contoh Computational Thinking (CT)
CT adalah sebuah kemampuan berpikir untuk menyelesaikan masalah secara menyeluruh,
logis , dan teratur. Berpikir komputasi adalah teknik pemecahan masalah yang sangat luas wilayah
penerapanny, bukan hanya untuk menyelesaikan masalah seputar ilmu komputer saja, melainkan
juga menyelesaikan masalah didalam kehidupan sehari-hari.
Contoh yang paling mudah dalam kehidupan sehari-hari adalah menanak nasi yang
melibatkan CT. Pertama adalah dekomposisi. Tentu kita pecahkan dulu masalah besar menjadi
masalah kecil seperti menyiapkan beras, air, tempat nasi dan rice cooker.
Kemudian ada pengenalan pola. Seperti harus memasak air dulu dulu baru memasak beras atau
menyalakan rice cooker. Metode ketiga adalah abstraksi, berapa banyak beras yang kita
butuhkan untuk makan nant. Dan yang terakhir adalah algoritma, pertama-tama memasukkan
beras sebanyak yang dibutuhkan, kemudian masukkan air lalu nyalakan rice cooker.
Cara mengimplementasikan CT adalah dengan memahami masalah, emngunpulkan semua
data, lalu mencari solusi sesuai dengan masalah. Dalam CT ada yang disebut dekomposisi yaitu
memecah suatu masalah kompleks menjadi masalah masalah yang kecil untuk diselesaikan.
Contoh : ketika kita membuat nasi goreng, kita harus memahami cara
membuat nasi goreng, lalu kita
mengumpulkan bahan-bahannya,
kemudian kita mulai membuat nasi goreng
sesuai dengan langkah- langkahnya. Dalam
membuat nasi goreng, kita harus
menyiapkan kompor, wajan, spatula,
minyak goreng, nasi telur, bumbu
dan
lainnya yang semua itu merupakan sebuah proses bernama dekomposisi.
Kemudian didalam CT ada yang disebut pengenalan pola. Karena kita pernah membuat nasi
goreng, kita juga dapat membuat kwetiau karena proses pembuatannya hampir mirip. Kita bisa
melihat bahwa pola untuk membuat nasi goreng dan kwetiau hampir sama walaupun bahan yang
dipakai berbeda.
Lalu ketika kita membuat nasi goreng, kita tidak memperhatikan bagaimana proses kompor bisa
menyala, karena hal tersebut menurut kita tidak penting. Hal itu sudah terkait dengan abtraksi
didalam CT.
Selanjutnya adalah berpikir dengan algoritma, dimana kita berpikir dengan mengurutkan
langkah-langkah dalam menyelesaikan masalah agar menjadi logis, berurutan, teratur, dan
mudah dipahami oleh orang lain. Dalam hal membuat nasi goreng, kita juga harus bisa
mengurutkan langkah-langkah secara logis, berurutan, dan rinci mulai dari proses awal
pembuatan sampai proses penyajiannya.
Contoh lain yaitu dalam membuat kue brownies. Bagaimana cara membuat kue brownies yang
lezat sebanyak 100 boks dengan efektif dan efisien?
Berikut pemecahan masalahnya menggunakan teknik computational thinking :
a. Decomposition
Kemampuan memecah data, proses
atau masalah (kompleks) menjadi
bagian- bagian yang lebih kecil /
menjadi tugas – tugas yang mudah
dikelola. Misalnya, memecah
struktur komponen dasar
pembentuk brownies menjadi
tepung, telur, gula, mentega,
cokelat, susu, keju, backing powder,
dan air.
Atau memecah proses dasar pembuatan brownies, menjadi penyiapan bahan, pencampuran
adonan, pengembangan adonan(emulsi), memasak/memanggang, topping/rias, dan
packing/pengepakan.
b. Pattern Recognition
Kemampuan untuk melihat persamaan atau bahkan perbedaan pola, tren, dan keteraturan
dalam data yang nantinya akan digunakan dalam membuatprediksidan penyajian dat.
Misalanya , mengenali pola dan proses pembuatan satu box kue brownies yang dimulai dari
tahap persiapan hingga packing memerlukan waktu 60 menit dengan menggunakan 1 unit
oven.
c. Abtraksi
Melakukan generalisasi dan mengidentifikasi prinsip-prinsip umum yang menghasilkan pola,
tren, dan keteraturan tersebut. Misalnya dengan melihat dan mengidentifikasi pola
pembuatan brownies secara umum. Jika dalam 1 jam dengan 1 unit oven/pemanggang
diperoleh 1 box brownies, maka perlu 100 jam (4,16 hari ) untuk menghasilkan 100 box
brownies yang tentunya tidak efektif dan efisien.
Karena proses pembuatan brownies ini merupakan proses yang berulang, maka kita dapat
melakukan generalisasi bahwa proses ini tidak harus menunggu semua proses selesai baru
dilakukan dari awal. Dengan kata lain, saat brownies sudah masuk ke oven, kita bisa
melakukan proses pembuatan adonan kembali tanpa harus menunggu hingga semua proses
selesai dilaksanakan. Dengan demikian 60 menit >= 3 box/1 jam. Sehingga untuk
menghasilkan 100 box brownies dengan 1 unit oven diperlukan waktu 33 jam atau 1,3 hari.
Pertanyaan selanjutnya, bagaimana jika disediakan 2 buah oven? Maka jawabannya kita
hanya memerlukan waktu 16,5 jam untuk menghasilkan 100 box brownies.
d. Algorithm Design
Mengembangkan petunjuk pemecahan masalah yang sama secara langkah demi langkah
sehingga orang lain dapat menggunakan langkah/informasi tersebut untuk menyelesaikan
permasalahan yang sama. Misalnya langkah dan tahapan membuat kue brownies yang paling
efektif dan efisien sesuai dengan pola dan abstraksi sebelumnya hingga tahap packing,
diurutkan secara lengkap, terukur dan kreatif.
C. Hubungan antara Algoritma dengan Pemikiran Komputasi
Sudah diketahui bersama bahwa algoritma digunakan untuk memecahkan masalah yang ada dalam
kehidupan. Namun kita juga dapat menggunakan konsep pemikiran computational thinking dalam
menentukan sebuah keputusan untuk mencapai penyelesaian akhir dari suatu masalah. Dengan
demikian, apakah ada hubungan antara algoritma dengan CT didalam mengambil keputusan?
Algoritma adalah suatu urutan dari beberapa langkah yang logis guna menyelesaikan masalah untuk
mencapai tujuan tertentu. Pada saat kita memiliki masalah, maka kita harus dapat menyelesaikan
masalah tersebut dengan menggunakan langkah-langkah yang logis dan disusun secara sistematis.
Dalam matematika dan ilmu komputer, Algoritma adalah urutan atau langkah-langkah untuk
penghitungan atau untuk menyelesaikan suatu masalah yang ditulis secara berurutan. Sehingga
algoritma pemrogaman adalah urutan atau langkah
– langkah untuk menyelesaikan masalah pemrograman komputer. Namun pemrograman tidak
hanya diterapkan pada dunia komputasi saja, tetapi juga diterapkan dalam kehidupan sehari-hari.
CT adalah sebuah pendekatan dalam proses pembelajaran.Ct memang memiliki peranan penting
dalam pengembangan aplikasi komputer, namun Ct juga dapat digunakan untuk mendukung
pemecahan masalah disemua disiplin ilmu, termasuk humaniora, matematika dan ilmu
pengetahuan. Dalam ilmu komputer CT adalah sebuah metode pemecahan masalah dengan
melibatkan teknik yang digunakan oleh software engineer dalam menulis program. Dalam berpikir
komputasi seseorang dituntut untuk memformulasikan masalah dalam bentuk masalah komputasi
dan menyusun solusi komputasi yang baik (dalam bentuk algoritma)atau menjelaskan mengapa
tidak ditemukan solusi yang sesuai.
Lantas apakah ada keterkaitan antara algoritma dengan CT didalam pengambilan keputusan?
Tentu saja antara algoritma dengan CT saling berkaitan. Seperti yang telah dijelaskan pada
pengertian berpikir komputasi, seseorang diminta dapat menyusun solusi komputasi yang baik yang
tersusun dalam bentuk algoritma. Yang berarti menyusun solusi komputasi dengan memakai
langkah-langkah yang logis dan disusun secara sistematis untuk
mencapai tujuan. Dalam membuat langkah-langkah itu dapat memakai metode-metode
yang ada pada CT. Beberapa metode itu antara lain decomposition, pattern recognition,
abtraksi, dan algorithm design.
Bila terdapat suatu masalah kita dapat melakukan decomposition terlebih dahulu, yaitu
memecah masalah menjadi bagian bagian yang lebih kecil sehingga lebih mudah
dikelola. Lalu berlanjut ke pattern recognition atau melihat persamaan ataupun
perbedaan pola yang nantinya digunakan dalam membuat prediksi penyelesaian
masalah. Berlanjut abstraksi/generalisasi dan mengidentifikasi prinsip-prinsip
umumyang menghasilkan pola dan terakhir algorithm design/ mengembangkan
petunjuk pemecahan masalah yang sama secara langkah demi langkahsehingga orang
lain dapat memakai langkah/informasi tersebut untuk menyelesaikan masalah yang sam.
Dan pada akhirnya dengan menggunakan cara berpikir algoritma kita dapat melakukan
otomatisasi solusi/ mendapatkan solusi secara otomatis. Dengan menggunakan metode-
metode computational thinking kita dapat menyusun solusi dalam bentuk
algoritmadengan baik untuk mengambil keputusan dalam menyelesaikan masalah.
D. Mengajarkan Kemampuan CT kepada Siswa
Berpikir komputasional CT adalah metode menyelesaikan masalah dengan menerapkan
teknik ilmu komputer (informatika). Berpikir komputasi ditujukan untuk menyelesaikan
masalah, bukan hanya seputar ilmu komputer melainkan juga beragam masalah. Saat ini
setiap orang dituntut untuk berpikir kreatif dan kritis dalam menyelesaikan masalah
dengan menerapkan konsep-konsep berpikir komputasional.
Computational Thinking (CT) sekarang ini sudah menjadi dasar dan pemikiran yang baru
dan harus dipahami , CT tidak hanya diperuntukkan bagi beberapa kalangan seperti
programmer, melainkan harus diterapkan pada setiap orang.
CT mampu membantu kita dalam hal menyelesaikan sebuah masalah kompleks yang
dihadapi secara mudah dan efektif. Dengan CT membantu otak untuk terbiasa berpikir
kreatif, logis, dan terstruktur.
Lantas bagaimana mengajarkan kemampuan Ct pada setiap individu terutama peserta
didik?Ct dapat diajarkan jika setiap pendidikan formal maupun informal menerapkan
konsep CT itu sendiri. Konsep CT adalah bagaimana setiap masalah yang dihadapi dapat
dipecahkan secara lebih mudah dengan menerapkan langkah-langkah secara terstruktur,
yakni dari dekomposisi hingga perancangan algoritma. Penerapan konsep pada setiap
kasus/ disiplin ilmu menjadi kuncinya, sehingga peserta didik mampu terbiasa dalam hal
CT. Semakin terbiasa dalam hal CT maka kemampuan berpikirnya akan meningkat dalam
beberapa hal.
Seperti dalam hal kemampuan mengidentifikasi data, menganalisa data, berpikir algoritma (sekumpulan
langkah terurut) dan generalisasi solusi.
CT saat ini digadang – gadang akan menjadi pemikiran masa depan. Pemikiran yang berawal dari
orang – orang yang berprofesi sebagai programmer saat ini sudah tidak memandang profesi lagi.
Dokter, pengacara, guru, petani atau apapun pekerjaannya sudah harus mengenali apa itu CT.
Dalam bidang ilmu apapun kita juga dituntut untuk berpikir secara ct. Oleh karena itu, berpikir
secara CT lebih baik diajarkan sejak dini atau anak-anak. Pada usia belia otak manusia akan
cenderung lebih mudah menyerap informasi yang didapat. Seorang anak kecil yang dibiasakan
sesuatu akan selalu mengingatnya dalam jangka waktu yang lama hingga puluhan tahun. Sehingga
membiasakan sejak dini untuk berpikir secara CT sangat dianjurkan.
Cara mengajarakannya pun dapat dilakukan dalam hal-hal yang sederhana di kehidupan sehari-
hari.Contoh kasusnya seperti kita mau sarapan. Saat sarapan, misalnya kita memeilih menu nasi
dan telur mata sapi. Lalu orang yang kita suruh untuk membuat langkah-langkah dalam membuat
sarapn pagi dengan menu tersebut. Tentu kita mulai dari menanak nasi, dilanjutkan menggoreng
telur mata sapi. Contoh lain seperti langkah-langkah mandi, langkah-langkah berangkat sekolah dll.
Dengan melatih otak untuk berpikir seperti ini maka otak kita akan terbiasa berpikir sistematis, logis
dan juga kreatif.
Selain itu, cara belajar terbaik adalah dengan cara mengajari. Nilai lebih yang kamu dapatkan ketika
mengajari seseorang untuk berpikir secara ct adalah kamu juga akan berpikir seperti itu bahkan
lebih kompleks dari cara berpikir yang kamu ajarkan.
Belajar mengajar biasanya dilakukan dengan seorang guru atau dengan seorang yang lebih
berpengalaman,namun belajar CT bisa diajarkan dengan orang yang sudah berpikir secara CT. Di
negara maju, sejak dini atau masih SD sudah diajarkan CT di sekolahnya.
Berikut adalah cara mengajarkan Computational Thinking (CT) :
1. Belajar langsung dengan orang orang profesional
Kebanyakan orang-orang profesional di dunia ini sudah berpikir secara CT, dikarenakan mereka
ingin menjadi lebih baik lagi dan memikirkan masa depan dengan matang. Dengan belajar
bersama orang-orang yang sudah berpikir secara CT kita dapat mengambil pengalaman dan
ilmu tentang CT dari orang tersebut.
2. Sering Membaca tentang Hal yang berkaitan dengan CT
Dengan membaca segala hal yang kita baca dapat langsung disimpan dalam memori otak kita.
Orang yang sudah berpikir dengan CT sering sekali membaca karena membaca
adalah sumber terbesar ilmu. Membaca bisa dari mana saja sumbernya, misalnya buku,
majalah, koran, webbook, dan lain-lain.
3. Melihat lalu dipikirkan secara kritis
Orang-orang kebanyakan berpikir secara kritis dan dengan melihat suatu hal kita dapat
mengingatnya, dengan mengingatnya kita dapat berpikir tentang apa yang kita lihat tadi.
Setelah dipikirkan lalu kita coba pikir lagi, lalu apa yang bisa kita perbuat dengan hal yang kita
lihat itu.
4. Belajar dari pengalaman dan kesalahan
Pengalaman pasti ada dalam setiap diri manusia, dari pengalaman itu kita dapat sesuatu yang
berharga. Belajar dari pengalaman yang sudah kita alami lalu kita evaluasi pengalaman
tersebut, begitu pula kesalahan yang telah kita buat. Jangan mengulang lagi kesalahan kita dan
buat lebih baik lagi. Dengan belajardari pengalaman kita dapat berpikir secara CT.
E. Teori Komputasi dan Komputasi Modern
1. Teori Komputasi
Adalah cara menemukan pemecahan masalah dari data input dengan menggunakan algoritma.
Hal ini ialah apa yang disebut dengan teori komputasi, suatu subbidang dari ilmu komputer dan
matematika. Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan
menggunakan pena dan kertas, atau kapur dan batu tulis, atau dkerjakan secara mental,
kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah
dilakukan dengan menggunakan komputer.
Secara umum ilmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan
model matematika dan teknik penyelesaian numerik serta penggunaan komputeruntuk
menganalisis dan memecahkan masalah-masalah ilmu (sains). Dalam penggunaan praktis,
biasanya berupa penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk
menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam
perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar
dalam ilmu.
Teori komputasi berkaitan dengan studi bagaimana masalah dapat diselesaikan pada sebuah
model dnengan menggunakan algoritma. Model itu dinamakan model komputasi. Ada
beberapa model yang digunakan, namun yang paling umum dipelajari adalah mesin turing.
Mesin itu dipikirkan sebagai komputer pribadi dengan kapasitas memori tak terhingga, namun
dapat diakses dalam bagian bagian terpisah dan diskret. Ilmuwan mempelajari mesin Turing
karena mudah dirumuskan, dianalisis, dan digunakan untuk pembuktian, dan karena mesin ini
mewakili model komputasi yang dianggap sebagai model paling masuk akal yang paling ampuh
yang dimungkinkan. Kapasitas memori tak terbatas mungkin terlihat sebagai sifat yang tidak
mungkin terwujudkan, namun setiap masalah yang “terputuskan “ (decidable) yang
dipecahkan oleh mesin Turing selalu hanya akan memerlukan jumlah memori terhingga. Jadi
pada dasarnya setiap masalah yang dapat dipecahkan (diputuskan) oleh mesin Turing dapat
dipecahkan oleh komputer yang memiliki jumlah memori terbatas.
Teori komputasi dapat dianggap sebagai model peciptaan dari seluruh cabang dalam bidang
ilmu komputer (computer science). Maka dari itu, logika dan matematika dapat digunakan
dalam teori komputasi. Pada abad ini, teori komputasi menjadi disiplin akademik mandiri dan
telah terpisah dari matematika. Beberapa pencetus dalam bidang teori komputasi, yaitu Alonzo
Church, Kurt Godel, Alan Turing, Stephen Kleene, John Von Neumann, dan Claude Shannon.
Teori komputasi dibagi menjadi 3 ranting sbb :
a. Teori Otomata (Automata Theory)
Adalah teori mengenai mesin-mesin abstrak dan berkaitan erat dengan teori bahas formal.
Ada beberapa hal yang berkaitan dengan otomata, yaitu grammar. Grammar adalah bentuk
abstrak yang dapat diterima (accept) untuk membangkitkan suatu kalimat otomata
berdarkan suatu aturan tertentu.
b. Teori komputabilitas (Computability Theory)
Bertujuan untuk memerika apakah persoalan komputasi dapat dipecahkan pada suatu
model komputasi teoritis. Dengan kata lain, teori komputabilitas mengklasifikasikan
masalah sebagai dapat dipecahkan (solvable) atau persoalan yang tidak dapat dipecahkan
(unsolvable). Teori komputabilitas memperkenalkan beberapa konsep yang digunakan
didalam teori kompleksitas.
c. Teori Kompleksitas (Computational Complexity Theory)
Bertujuan untuk mengkaji kebutuhan waktu dan ruang untuk memecahkan persoalan yang
diselesaikan dengan pendekatan yang berbeda beda. Dengan kata lain, teori kompleksitas
mengklasifikasikan persoalan sebagai persoalan yang mudah (easy) adat persoalan sulit
(hard).
2. Komputasi Modern
Adalah sebuah konsep sistem yang menerima instruksi-instruksi dan menyimpannya dalam
sebuah memori, memori disini bisa juga dari memori komputer. Oleh karena pada
saat ini kita melakukan komputasi menggunakan komputer, maka bisa dikatakan komputer
merupakan sebuah komputasi modern.
Dalam kerjanya, komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan
perhitungan yang dilakukan itu sebagai berikut.
a. Akurasi (Bit, Floating Point)
Akurasi tentu merupakan masalah yang paling penting dalam memecahkan masalah.
Karena itu pada komputasi modern dilakukan perhitungan bagaimana bisa menghasilkan
suatu jawaban yang akurat dari sebuah masalah. Tentu kita pernah mendengar type data
floating point yang biasa digunakan untuk menyimpan data numerik dalam bentuk
pecahan. Type data tersebut memiliki range penyimpanan numerik yang besar, sehingga
dapat digunakan oleh komputer untuk melakukan komputasi yang akurat.
b. Kecepatan (dalam Satuan Hz)
Manusia pasti menginginkan sebuah masalah dapat diselesaikan dengan cepat. Oleh karena
itu, perhitungan masalah kecepatan adalah suatu hal yang penting. Komputasi harus dapat
dilakukan dalam waktu yang cepat ketika mengolah suatu data. Sehingga perlu metode
kecepatan untuk mengolah perhitungan dalam waktu yang singkat.
c. Problem Volume Besar (Down Sizzing atau Prallel)
Data yang besar tentu membutuhkan suatu cara penyelesaian yang khusus. Karena data
yang besar dapat menjadi masalah jika ada yang terlewatkan. Oleh karena itu digunakan
metode down sizzing atau parallel pada komputasi modern untuk menangani masalah
volume yang besar. Dengan metode ini data yang besar diparallelkan dalam pengolahannya
sehingga dapat diorganisir dengan baik.
d. Modelling (NN & GA)
Modelling merupakan suatu hal yang penting dalam melakukan suatu perhitungan yang
rumit. Bayangkan saja jika kita dihadapkan dalam suatu masalah perhitungan yang banyak
dan kompleks, tetapi tidak ada model matematika yang kita miliki. Perhitungan akan
berjalan berantakan dan tidak akan mendapatkan hasil yang akurat. Maka dari itu,
komputasi modern membutuhkan modelling sebelum melakukan perhitungan.
e. Kompleksitas (Teori Big O)
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
sering dihadapi.
Karakteristik komputasi modern ada 3 macam sbb :
a. Komputer-komputer penyedia sumber daya bersifat heterogeneous karena terdiri atas
berbagai jenis perangkat kersa, sistem operasi, serta aplikasi yang terpasang.
b. Komputer-komputer yang terhubung ke jaringan yang luas dengan kapasitas bandwith yang
beragam.
c. Komputer maupun jaringan tidak terdedikasi, bisa hidup atau mati sewaktu-waktu tanpa jadwal
yang jelas.
persoalan komputasi
skala besar.
Beberapa konsep dasar dari
grid computing sbb :
1) Sumber daya dikelola dan dikendalikan secara lokal.
2) Sumber daya berbeda dapat mempunyai kebijakan dan mekanisme berbeda,
mencakup sumber daya komputasi dikelola oleh sistem batch berbeda, sistem storage
berbeda pada node berbeda, kebijakan berbeda dipercayakan kepada user yang sama
pada sumber daya berbeda pada grid.
3) Sifat alami dinamis (sumber daya dan pengguna dapat sering berubah).
4) Lingkungan kolaboratif bagi e-comunity (komunitas elektronik di internet).
5) Tiga hal yang disharing dalam sebuah sistem grid, antara lain resource, network,
dan proses. Kegunaan/layanan dari sistem grid sendiri adalah melakukan high
throughput computing di bidang penelitian, ataupun proses komputasi lain yang
memerlukan banyak resource komputer.
Ian Foster (bapak grid computing)menyatakan bahwa terdapat 3 hal yang
mengidentifikasi bahwa suatu sistem termasuk sebuah komputasi grid sebagai
berikut.
1) Sistem itu berkoordinasi terhadap sumber daya komputasi tidak berada dalam satu
kendali pusat. Misalnya komputer di Jakarta terhubung dengan komputer di Jayapura,
Manado, dan Semarang.
2) Sistem tersebut menggunakan protokol yang standar dan terbuka, tidak terpaut
dengan suatu perusahaan atau produk tertentu. Standar itu dibutuhkan dibagian
autentifikasi, otorisasi, pencarian sumber daya yang tersedia dan pengaksesan sumber
daya.
3) Sistem itu bersifat nontrivial (tidak biasa-biasa saja) untuk mencapai kualitas
layanan yang canggih.
Di indonesia sendiri sudah menggunakan sistem grid dan diberi nama InGrid (Inherent
Grid). Sistem komputasi grid mulai beroperasi pada bulan maret 2007 dan terus
dikembangkan hingga saat ini. In Grid ini menghubungkan beberapa perguruan tinggi
negeri dan swasta yang tersebar di seluruh indonesia dan beberapa instansi
pemerintahan seperti Badan Meteorologi, Klimatologi dan Geofisika (BMKG).
c. Cloud Computing
1) Pengertian cloud computing
mungkin masih samar terdengar
bagi orang awam. Tetapi
keberadaannya di era digital kini
sebenarnya telah terasa di tengah
masyarakat dalam kehidupan
sehari-hari seperti penggunaan
email dan juga media sosial.
Secara umum, definisi cloud
computing (komputasi awan) merupakan gabungan pemanfaatan teknologi
komputer (komputasi) dalam suatu jaringan dengan pengembangan berbasis
internet (awan) yang berfungsi untuk menjalankan program/aplikasi melalui
komputer yang terkoneksi pada waktu yang sama, tetapi tidak semua yang
terkoneksi melalui internet menggunakan cloud computing.
Teknologi komputer berbasis sistem cloud ini meruoakan sebuah teknologi yang
menjadikan internet sebagai pusat server untuk mengelola data dan juga aplikasi
pengguna. Teknologi ini mengizinkan pengguna untuk menjalankan program tanpa
installasi dan untuk mengakses datapribadi mereka melalui komputer berakses
internet.
Cloud /awan merupakan metafora dari internet. Sebagaimana awan yang sering
digambarkan di diagram jaringan komputer. Menurut jurnal yang dipublikasikan
IEEE, Internet computing adalah suatu paradigma dimana informasi secara
permanen tersimpan di server internet dan tersimpan sementara di komputer
pengguna (client) termasuk didalamnya adalah desktop, komputer tablet,
notebook, handheld, sensor-sensor, monitor dll. Komputasi cloud merupakan gaya
komputasi yang terukur, dinamis dan sumber daya virtual yang sering
menyediakan layanan melalui internet.
Komputasi cloud menggambarkan pelengkap baru, konsumsi dan layanan IT
berbasis model dalam internet dan biasanya melibatkan ketentuan dan
keterukuran dinamis dan sumber daya virtual yang sering menyediakan layanan
melalui internet.
Wikipedia mendefinisikan cloud computing sebagai komputasi berbasis
internet, ketika banyak server digunakan bersama untuk menyediakan sumber
daya, perangkat lunak, dan data pada komputer/perangkat lain pada saat
dibutuhkan sama seperti jaringan listrik.
Gartner mendefinisikannya sebagai cara komputasi ketika layanan berbasis TI
yang mudah dikembangkan dan lentur disediakan sebagai sebuah layanan untuk
pelanggan menggunakan teknologi internet.
Forester mendefinisikannya sebagai standar kemampuan TI, seperti perangkat
lunak, platform aplikasi, atau infrastruktur yang disediakan menggunakan
teknologi internet dengan cara swalayan dan bayar per pemakaian.
2) Karakteristik cloud computing
Bahwa tidak semua aplikasi berbasis web dapat dimasukkan kedalam kategori
cloud computing. Ada lima kriteria yang harus dipenuhi oleh sebuah sistem untuk
bisa dimasukkan dalam keluarga cloud computing. Adapun 5 kriteria yang
dimaksud sbb :
a) Swalayan (on demand self service)
Pelanggan mungkin secara langsung “memesan” sumber daya yang
dibutuhkan, seperti processor time dan kapasitas penyimpanan melalui control
panel elektronis yang disediakan, jadi tidak perlu berinteraksi dengan personel
customer service jika perlu menambah/ mengurangi sumber daya komputasi
yang diperlukan.
b) Akses pita lebar (broadband network access)
Layanan yang tersedia terhubung melalui jaringan pita lebar, terutama dapat
diakses secara memadai elalui jaringan internet, baik menggunakan thin client,
thick client ataupun media lain seperti smartphone.
c) Sumber daya terkelompok (resource pooling)
Penyedia layanan cloud memberikan layanan melalui sumber daya yang
dikelompokkan di satu atau berbagai lokasi data enter yang terdiri ata
sejumlah serber dengan mekanisme multi-tenant. Mekanisme ini
memungkinkan sejumlah sumber daya komputasi itu digunakan bersama-
sama oleh sejumlah user, dimana sumber daya tersebut baik yang berbentuk
fisik maupun virtual dapat dialokasikan secara dinamis untuk kebutuhan
pengguna/pelanggan sesuai permintaan.
Dengan demikian, pelanggan tidak perlu tahu bagaimana dan darimana
permintaan akan sumber daya komputasinya dipenuhi oleh penyedia layanan.
Yang penting, setiap permintaan dapat dipenuhi. Sumber daya komputasi ini
meliputi media penyimpanan, memori, processor, pita jaringan, dan mesin
virtual.
d) Elastis (rapid elasticity)
Kapasitas komputasi yang disediakan dapat secara elastis dan cepat
disediakan, baik itu dalam bentuk penambahan ataupun pengurangan
kapasitas diperlukan. Untuk pelanggan sendiri, dengan kemampuan ini seolah-
olah kapasitas yang tersedia tak terbatas besarnya, dan dapat “dibeli” kapan
saja dengan jumlah berapa saja.
e) Layanan yang terukur (measured service)
Sumber daya cloud yang tersedia harus dapat diatur dan dioptimasi
penggunaannya, dengan suatu sistem pengukuran yang dapat mengukur
penggunaan dari setiap sumber daya komputasi yang digunakan(penyimpanan,
memori, processor, lebar pita, aktivitas user, dll). Dengan demikian jumlah
sumber daya yang digunakan dapat secara transparan diukur yang akan
menjadi dasar bagi user untuk membayar biaya penggunaan layanan.
3) Jenis penyebaran cloud computing
Ada 3 cara yang berbeda untuk menggunakan sumber daya cloud computing, yaitu
public cloud, private cloud, dan hybrid cloud.
a) Public cloud
Dimiliki dan dioperasikan oleh penyedia layanan cloud pihak ketiga, yang
memberikan sumber daya komputasi mereka seperti server dan storage
melalui internet. Contoh : Microsoft Azure. Dengan public cloud semua
Hardware, Software dan infrastrukturpendukung lainnyadimiliki dan dikelola
oleh penyedia cloud. Kamu dapat mengakses layanan ini dan mengelola akun
menggunakan web browser.
b) Private cloud
Mengacu pada sumber daya komputasi yang digunakan secara eksklusif oleh
satu bisnis atau organisasi. Private cloud dapat secara fisik terletak di tempat
data center milik perusahaan. Beberapa perusahaan juga membayar penyedia
layanan pihak ke3 untuk host private cloud mereka. Private cloud adalah salah
satu yang layanan dan infrastrukturnya dikelola di jaringan pribadi.
c) Hybrid cloud
Adalah kombinasi dari public cloud dan private cloud, terikat bersama oleh
teknologi yang memungkinkan data dan aplikasi untuk dibagi diantara
keduanya. Dengan memungkinkan data dan aplikasi untuk bergerak diatara
private cloud dan public cloud, hybrid cloud memberikan perusahaan
fleksibilitas dan opsi penerapan yang lebih besar.
4) Struktur cloud
computing Cloud
computing terdiri atas 2
komponen, yaitu front
end dan back end. Front
end terdiri atas
klien cloud computing
systemnya.
Kemudian idbagi lagi
menjadi 2, yaitu interface
dan aplikasi yang
diperlukan dalam
mengakses platform cloud computingnya. Sementara back end mengacu pada
cloud itu sendiri, yaitu yang terdiri atas sumber daya yang diperlukan bagi layanan
komputasi awan. Ada berbagai layanan yang disediakan teknologi komputasi awan,
yaitu virtual machine, server, data storage, security mechanism, dll. Jadi semua
layanan itu berada di bawah kendali provider/penyedia komputasi awan. Cloud
computing bisa mendistribusikan sistem file yang kemudiandeibar kebanyak
hardisk maupun mesin. Datanya tidak pernah disimpan di satu tempat saja. Selain
itu, jika 1 unit gagal bekerja/ memproses, maka yang lain akan mengambil alih
secara otomatis. Inilah canggihnya teknologi cloud. Ruang disk pengguna dapat
dialokasikan ke sistem file terdistribusi, sementara komponen penting lainnya
semacam
algoritma dimanfaatkan untuk alokasi sumber daya intinya, teknologi komputasi
awan ini merupakan sistem distribusi yang kuat dan sangat tergantung pada
lagoritma yang kuat pula.
5) Kelebihan dan kekurangan cloud computing
a) Kelebihan :
1) Kemudahan dalam mengatur untuk mengakses software, aplikasi dan
layanan tanpa perlu intalasi. Pengguna tidak perlu melakukan
pemeliharaan karena penyedia layanan cloud sudah menyederhanakan
proses tersebut melalui sumber daya yang ada.
2) Menghemat biaya teknologi dalam perusahaan, karena untuk memilih
server in-house membutuhkan biaya modal yang besar. Selain itu, biaya
listrik dan pendingin ruang server dapat dialokasikan ke biaya lain.
3) Cloud computing adalah sistem yang fleksibel, jika data yang tersimpan
terlalu besar, maka dengan otomatis menambah kapasitasnya tanpa perlu
menambah jumlah komputer.
4) Keunggulan keunggulan strategis dari cloud computing, perkembangan
teknologi secara terus-menerus mampu memberi keunggulan perusahaan
dibanding pesaing. Pengguna diperkirakan mampu fokus terhadap
kegiatan dan tujuan bisnis yang utamadengan waktu yang lebih banyak.
b) Kekurangan :
1) Provider dari perusahaan cloud dapat mengakses data yang tersimpan
didalam komputer server. Keamanan data inilah yang dapat menimbulkan
resiko lain.
2) Banyak client dari provider penyedia layanan cloud mampu membuat
gangguan teknis seperti server down yang mengakibatkan tidak dapat
mengakses aplikasi hingga data.
3) Memutuskan untuk beralih ke layanan komputasi awan perlu dipikirkan
dengan matang, karena cloud belum sepenuhnya terintegrasi dan
compatible dengan platform lain.
4) User harus selalu terkoneksi dengan internet, akan menyulitkan jika
sedang berada diluar jangkauan provider penyedia internet.
6) Layanan Cloud Computing
a) Software as a Service
(Saas) Jenis layanan
yang satu ini
menyediakan aplikasi
yang siap pakai
yang ditujukan untuk
end user
atau pengguna
terakhir. Sehingga
user tidak perlu lagi membuat aplikasi baru. Contoh dari layanan SaaS, yaitu
gmail, twitter, facebook, dll. Pada layanan itu, siapa saja dapat
memanfaatkannya untuk berbagai keperluan tanpa harus repot membangun
server/infrastruktur baru.
Di dunia bisnis, kita mungkin familiar dengan salesforce.com atau Microsoft
CRM yang merupakan layana aplikasi CRM. Di sini, perusahaan tidak perlu
setup hardware dan software CRM diserver sendiri. Cukup berlangganan sales
force.com maupun Microsoft CRM, kita bisa menggunakan aplikasi CRM kapan
dan dari mana saja melalui internet. Kita tidak perlu melakukan investasi
server maupun aplikasi. Kita juga akan mendapat aplikasi terbaru jika terjadi
upgrade. Intinya kita benar-benar hanya tinggal menggunakan aplikasi
tersebut. Pembayaran biasanya dilakukan bulanan, dan sesuai jumlah pemakai
aplikasi tersebut. Dengan kata lain, pay as you go, pay per use, per seat.
Semua layanan ini, dimana suatu aplikasi software tersedia dan bisa langsung
dipakai oleh seorang pengguna, termasuk dalam kategori software as a
Service (SaaS). Secara sederhana, kita langsung mengonsumsi layanan aplikasi
yang ditawarkan.
b) Platform as a Service (PaaS)
Layanan ini berfungsi untuk menyewakan tempat kepada para pengguna
aplikasi untuk menjalankan aplikasi tersebut. Contohnya seperti penyediaan
database, framework atau sistem operasi lainnya yang merupakan suatu
platform untuk menjalankan aplikasi.
Jadi pada layanan ini, pengguna tidak perlu melakukan pengecekan
/maintenance pada platform itu karena hal itu sudah diatur dalam layanan
ini. Pengguna bisa fokus untuk membangun aplikasi dan
mengembangkannya saja. Beberapa layanan yang menyediakan Paas,
diantaranya Amazon web service, Windows Azure, Google App Engine. Pada
Paas kita membuat aplikasi sofware yang kita inginkan, termasuk skema
database yang diperlukan. Skema itu kemudian kita pasang (deploy) di server-
server milik penyedia jasa PaaS. Penyedia PaaS itu juga menyediakan layanan
platform, mulai dari mengatur server-server mereka secara virtualisasi
sehingga sudah menjadi cluster sampai menyediakan sistem operasi
diatasnya. Kita sebagai pengguna hanya perlu memasang aplikasi yang kita
buat diatasnya.
c) Infrastructure as a Service (Laas)
Layanan ini menyediakan infrastruktur It untuk para pengguna akhir yang
mana dalam layanan itu berbasis data cloud. Infrastruktur yang disediakan
bisa bersifat hardware, seperti memori, harddisk atau jenis server tertentu.
Cloud provider pada layanan ini hanya menyediakan infrastruktur sesuai
dengan permintaan pengguna. Jadi bila ingin melakukan upgrade/
penamabahan infrastruktur tertentu bisa langsung menghubungi penyedia
layanan. Contoh penyedia layanan Laas seperti Rackspace cloud, Amazon EC2,
dll.
Pada laaS, penyedia layanan hanya menyediakan sumber daya komputasi
seperti prosesor, memori, dan storage yang sudah tervirtualisasi. Akan tetapi,
penyedia layanan tidak memasang sistem operasi maupun aplikasi diatasnya.
Pemilihan OS, aplikasi maupun konfigurasi lainnya sepenuhnya berada pada
kendali kita. Jadi layanan LaaS dapat dilihat sebagai prose migrasi server-
server kita dari on premise ke data center milik penyedia LaaS ini. Para vendor
cloud computing lokal rata-rata menyediakan layanan model LaaS ini dalma
bentuk virtual private server.
Perbedaan antara komputasi mobile, grid dan cloud sbb :
a. Komputasi mobile menggunakan teknologi komputer yang bekerja seperti
handphone, sedangkan komputasi grid dan cloud menggunakan komputer.
b. Biaya untuk tenaga komputasi mobile lebih mahal dibandingkan dengan komputasi grid
dan cloud.
c. Komputasi mobile tidak membutuhkan tempat danmudah dibawa kemana-ma,
sedangkan grid dan cloud membutuhkan tempat yang khusus.
d. Untuk komputasi mobile, proses tergantung pengguna, komputasi grid proses
tergantung pengguna mendapatkan server atau tidak, dan komputasi cloud prosesnya
membutuhkan jaringan internet sebagai penghubungnya.
Persamaan antara komputasi mobile, komputasi grid, dan komputasi cloud
sbb:
a. Ketiganya merupakan metode untuk melakukan komputasi, pemecahan masalah, dan
pencarian solusi.
b. Ketiganya memerlukan alat proses data yang modern seperti komputer, laptop atau
telepon genggam untuk menjalankannya.