Senin, 31 Mei 2021

Prosedur Standar dalam Menyelesaikan Persoalan Komputasi

Prosedur Penyelesaian Masalah Komputasi Teknik Cara menilai kemampuan : perubahan pada diri yang dinilai. Muhasabah adalah evaluasi / koreksi / instropeksi pada diri sendiri agar dapat melakukan lebih baik ke depan. Frekuensi pribadi atau natural adalah frekuensi di mana sistem berosilasi ketika sistem itu terganggu. Frekuensi yang dapat ditangkap sinyalnya adalah frekuensi sebesar mendekati 10 Hz, sehingga betapa kaku/rigid suatu benda ketika terjadi resonansi dengan frekuensi tersebut maka benda tersebut akan disintegrate (hancur). Tidak pernah suatu benda mampu mencapai frekuensi 1 Hz. Dimana 1 Hz adalah satu putaran per detik. Frekuensi eksitasi merupakan frekuensi putar. Resonansi adalah akibat yang dihasilkan pada sebuah benda apabila frekuensi pribadi sama dengan frekuensi eksitasi. Metode Urutan Berpikir Dalam Komputasi Teknik : DATA => INFORMASI => PENGETAHUAN => ILMU => HIKMAH (WISDOM) (kebaikan) Referensi dasar dari Komputasi Teknik adalah Kitab Suci, dimana Kitab Suci adalah kumpulan dari hikmah. Yang dapat merasakan perubahan diri kita adalah kita sendiri, perubahan itulah yang kita evaluasi tentang keterampilan konsep, menganalisa masalah, pemodelan, simulasi dll, apakah perubahan tersebut menjadi lebih paham dan mengubah sikap menjadi lebih baik ataukah menjadi menurun. Radikal adalah proses berpikir secara kompleks sampai ke akar – akarnya, sampai pada esensi, hakikat atau substansi yang dipikirkan. Prosedur Pemecahan Masalah Dengan Komputasi Teknik : Tugas-2b.jpg Masalah dalam teknik ada 2 macam, yaitu : - Terstruktur adalah sudah ada standar dan langkah – langkah (prosedur) penyelesaian - Tidak terstruktur adalah tidak ada standar penyelesaiannya sehingga menggunakan cara analisis. Analisis adalah suatu usaha pemikiran untuk menyelesaikan langkah – langkah penyelesaian, hasil dari analisis adalah berupa prosedur menyelesaikan masalah. Pemodelan adalah model matematik yang siap dihitung komputer berupa matriks atau perhitungan aritmatik sederhana, penjumlahan, pengurangan, pengalian, yang dibundle pada salah satu software. Simulasi dilakukan oleh computer. Verifikasi adalah pengecekan/memeriksa apakah pemecahan model matematik tersebut dengan benar, betul secara teoritis tapi secara kenyataan di riil belum tentu benar. Validasi adalah apakah kita memecahkan persamaan model matematik tersebut yang benar, artinya mendekati kenyataan (lebih aktual). Kinerja Komputasi dengan Parallel Processing frisellamariana frisellamariana 10 years ago Sebelum membahas mengenai Kinerja Komputasi dengan Parallel Processing, maka kita lihat dahulu satu persatu makna dari kata perkata. Kinerja berarti hasil kerja. Komputasi adalah cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Parallel berarti ganda. Processing adalah proses. Dengan demikian dapat diartikan bahwa Kinerja Komputasi dengan Parallel Processing adalah teknik melakukan komputasi (cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma) secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Komputasi paralel membutuhkan: · algoritma · bahasa pemrograman · compiler Sebagai besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer dengan ribuan CPU. Komputer dengan satu CPU dapat melakukan parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software canggih yang disebut distributed processing software. Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing. Contoh Gambar struktur pengiriman permintaan dan jawaban dari parallel processing. Dalam Kinerja Komputasi terdapat 2 model penyelesaian masalahnya, yaitu : 1. Dengan cara Komputasi Tunggal (terdiri dari 1 cpu yg menyelesaikan masalah) 2. Dengan cara Komputasi Parallel (terdiri dari beberapa cpu yg menyelesaikan masalah) Network File System (NFS) By Muhammad Mufid Luthfi Network File System (NFS) NFS NFS (Network File System) adalah sebuah protokol berbagi pakai berkas melalui jaringan. NFS ini meng-share file ataupun resource melalui network atau jaringan tanpa peduli sistem operasi yang digunakan apa. Sederhananya NFS (Network File System) Merupakan komputer/host yang menyediakan sistem file(via direktori) yang dapat diakses oleh komputer lain. Langkah server adalah menyiapkan direktori yang akan di-share, kemudian melakukan konfigurasi sharing direktori yang sudah disiapkan. NFS merupakan sebuah sistem berkas terdistribusi yang dikembangkan oleh Sun Microsystems Inc. pada awal dekade 1980-an yang menjadi standar de facto dalam urusan sistem berkas terdistribusi. NFS didesain sedemikian rupa untuk mengizinkan pengeksporan sistem berkas terhadap jaringan yang heterogen (yang terdiri dari sistem-sistem operasi yang berbeda dan platform yang juga berbeda). Teknologi NFS ini dilisensikan kepada lebih dari 200 vendor komputer dan jaringan, dan telah dibuat implementasinya pada banyak platform dan sistem operasi, termasuk di antaranya adalah UNIX, GNU/Linux, Microsoft Windows, dan lingkungan mainframe. MPI ( Message Passing Interface) By ketutrare 1 comment Pengertian MPI (Message Passing Interface) MPI (Message Passing Interface) adalah spesifikasi API (Application Programming Interface) yang memungkinkan terjadinya komunikasi antar komputer pada network dalam usaha untuk menyelesaikan suatu tugas. Paradigma Message - Passing dengan implementasi MPI memberikan suatu pendekatan yang unik dalam membangun suatu software dalam domain fungsi tertentu, yang dalam hal ini pada lingkungan sistem terdistribusi, sehingga memberikan kemampuan pada produk software yang dibangun diatas middleware tersebut untuk dapat mengeksploitasi kemampuan jaringan komputer dan komputasi secara paralel. MPI adalah standar interface dari model message - passing yang didefenisikan oleh sebuah grup yang terdiri dari 60 orang yang berasal dari 40 organisasi baik vendor komersil maupun dari kalangan peneliti akademisi yang berada di Amerika Serikat dan Eropa. Dalam grup tersebut mereka mencoba merumuskan dan membuat sebuah "standard by consensus" untuk pustaka message - passing yang dapat digunakan dalam komputasi paralel. MPI menjadi standar defacto yang banyak digunakan dalam komunikasi proses pada model dari program paralel pada sistem memori terdistribusi, yang mana banyak diimplementasikan oleh pada super komputer dan computer cluster. Pada spesifikasi MPI-1 tidak memiliki konsep tentang shared memory, kemudian pada spesifikasi selanjutnya MPI-2 sudah mendukung konsep distributed shared memory. Dengan kemampuan tersebut MPI dapat mengeksploitasi arsitektur lingkungan yang sifatnya heterogen atau bersifat arsitektur NUMA (Non-Uniform Memory Access). Implementasi MPI merupakan sebuah API yang dapat dipanggil dari beberapa bahasa pemrograman seperti Fortran, C, ataupun C++, dan bersifat portable. Terdapat dua versi standar yang pada saat ini populer digunakan, yaitu versi 1.2 (MPI-1) yang berfokus pada message passing dan memiliki static runtime enviroment, dan MPI-2.1 (MPI-2) yang memasukkan fitur - fitur baru seperti parallel I/O, dynamic process management, remote memory operation dsb. MPI ( Message Passing Interface) By ketutrare 1 comment Pengertian MPI (Message Passing Interface) MPI (Message Passing Interface) adalah spesifikasi API (Application Programming Interface) yang memungkinkan terjadinya komunikasi antar komputer pada network dalam usaha untuk menyelesaikan suatu tugas. Paradigma Message - Passing dengan implementasi MPI memberikan suatu pendekatan yang unik dalam membangun suatu software dalam domain fungsi tertentu, yang dalam hal ini pada lingkungan sistem terdistribusi, sehingga memberikan kemampuan pada produk software yang dibangun diatas middleware tersebut untuk dapat mengeksploitasi kemampuan jaringan komputer dan komputasi secara paralel. MPI adalah standar interface dari model message - passing yang didefenisikan oleh sebuah grup yang terdiri dari 60 orang yang berasal dari 40 organisasi baik vendor komersil maupun dari kalangan peneliti akademisi yang berada di Amerika Serikat dan Eropa. Dalam grup tersebut mereka mencoba merumuskan dan membuat sebuah "standard by consensus" untuk pustaka message - passing yang dapat digunakan dalam komputasi paralel. MPI menjadi standar defacto yang banyak digunakan dalam komunikasi proses pada model dari program paralel pada sistem memori terdistribusi, yang mana banyak diimplementasikan oleh pada super komputer dan computer cluster. Pada spesifikasi MPI-1 tidak memiliki konsep tentang shared memory, kemudian pada spesifikasi selanjutnya MPI-2 sudah mendukung konsep distributed shared memory. Dengan kemampuan tersebut MPI dapat mengeksploitasi arsitektur lingkungan yang sifatnya heterogen atau bersifat arsitektur NUMA (Non-Uniform Memory Access). Implementasi MPI merupakan sebuah API yang dapat dipanggil dari beberapa bahasa pemrograman seperti Fortran, C, ataupun C++, dan bersifat portable. Terdapat dua versi standar yang pada saat ini populer digunakan, yaitu versi 1.2 (MPI-1) yang berfokus pada message passing dan memiliki static runtime enviroment, dan MPI-2.1 (MPI-2) yang memasukkan fitur - fitur baru seperti parallel I/O, dynamic process management, remote memory operation dsb. Tujuan MPI MPI merupakan sebuah protokol komunikasi yang sifatnya language-independent, portable dalam mensupport berbagai platform, dan memiliki spesifikasi semantic yang mengatur bagaimana perilaku setiap impelementasinya. MPI mendukukung komunikasi baik dengan tipe point-to-point maupun yang bersifat kolektif. Secara umum MPI memliki tujuan sebagai berikut : MPI akan menjadi sebuah library untuk membangun program aplikasi dan bukan distributed operating system. MPI akan mendukung thread-safe yang penting dalam symmetric multiprocessor pada lingkungan jaringan komputer yang heterogen. MPI akan mampu untuk men-deliver high-performance computing. MPI akan bersifat modular, untuk mengakselerasi development pustaka paralel yang portable. MPI akan bersifat extensible, sehingga dapat terus dikembangkan dan memenuhi kebutuhan komputasi masa akan datang. MPI akan mendukung heterogeneos komputasi. MPI akan memiliki semantic behavior yang telah terspesifikasi dengan jelas, sehingga dapat menghindari beberapa permasalahan kritis seperti race-conditions, dead-lock dsb. Tipe Komunikasi MPI a. Point-to-Point Communication Pada implementasi program berbasis message-passing, point-to-point communication adalah komunikasi yang paling sederhana dimana akan melibatkan sepasang proses yang saling bekerjasama. Pada API dari MPI, secara sederhana dapat digunakan MPI_Send atau MPI_Recv, dimana akan mengizinkan terjadinya sebuah proses spesifik yang satu dapat mengirimkan data pesan ke sebuah proses spesifik yang lain. Operasi point-to-point communication secara khusus berguna dalam komunikasi yang irregular ataupun yang berpola. Contoh: sebuah arsitektur data paralel dimana setiap prosessor secara rutin melakukan pertukaran region data dengan sebuah prosessor spesifik lainnya pada setiap langkah kalkulasi, atau pada arsitektur master-salve dimana sang master akan mengirim task data baru ke proses slave pada saat task data sebelummnya telah selesai. b. Collective Communication Berbeda dengan point-to-point communication, collective communication pada MPI API melibatkan komunikasi antara semua proses dalam sebuah group proses (dalam artian keseluruhan pool Proses atau sebuah subset terdefinisi pada program). Fungsi interface yang sederhana dapat berupa MPI_Bcast (broadcast) yang melakukan pengiriman data dari sebuah proses ke semua proses lainnya pada group, dan fungsi MPI_Reduce untuk melakukan kebalikannya. Tipe komunikasi memberikan dua keuntungan, yaitu pertama, operasi komunikasi tersebut mengizinkan programmer untuk mengekspresikan operasi yang kompleks dengan menggunakan semantik yang sederhana, kedua, implementasi dapat melakukan pengoptimasian operasi melalui cara yang tidak disediakan oleh tipe operasi point-to-point communication.

Ruang Lingkup Informatika

B. Ruang Lingkup Informatika Computational thinking menggunakan abstraksi dan dekomposisi pada saat merancang sebuah sistem besar yang kompleks atau pun memecahkan tugas besar yang kompleks. CT mulai diintegrasikan ke dalam semua mata pelajaran, bahkan di beberapa negara untuk membantu serta mempercepat pengintegrasian dan penetrasi ke arah computational thinking dengan memasukan Computer Science (ICT) sebagai sebuah mata pelajaran wajib dalam kurikulum nasional. Karakteristik berpikir komputasi (CT) dalam merumuskan masalah dengan menguraikan masalah tersebut ke segmen yang lebih kecil dan lebih mudah dikelola. Strategi ini memberi peluang pada siswa untuk mengubah masalah yang kompleks menjadi beberapa prosedur yang bukan hanya lebih mudah untuk dilaksanakan, tetapi juga menyediakan cara efisien dalam berpikir kreatif. Gambar Bentuk pemodelan Computational thinking 1. Program Komputer dan Model Komputasi Problem Based Learning (PBL) merupakan elemen penting dari science, technology, engineering, dan Matematika (STEM) yang digunakan pada mayoritas pendidikan di Indonesia, bahkan sudah berkembang menjadi STEAM di mana huruf “A” mewakili “Arts” (seni). Hal ini menjadi pilihan representasi yang sesuai untuk masalah mau pun aspek pemodelan yang relevan dari masalah untuk membuatnya menjadi mudah dikerjakan. Dalam pendidikan STEM, berpikir komputasi (CT) didefinisikan sebagai seperangkat keterampilan kognitif yang memberi peluang pada pendidik mengidentifikasi pola, memecahkan masalah selain kompleks menjadi langkah-langkah kecil, mengatur dan membuat serangkaian langkah untuk memberikan solusi, serta membangun representasi data melalui simulasi. Mengasosiasi Lakukan analisa tentang model komputasi pada program komputer! Manakah model komputasi yang menurut kalian penggunaannya paling efektif? Diskusikan dengan teman sebangku kalian, kemudian buatlah laporan diskusi! Kumpulkan hasilnya pada guru untuk dinilai! a. Metodologi Langkah pertama dalam sebagian besar proyek-proyek pengembangan perangkat lunak formal adalah analisis persyaratan, diikuti dengan pengujian untuk menentukan model nilai, pelaksanaan, dan kegagalan penghapusan (debug). Terdapat perbedaan mendasar untuk setiap tugas yang ada, misalnya pendekatan dengan teknik pemodelan Object-Oriented Analysis and Design (OOAD) dan Model-Driven Architecture (MDA). Adapun sebuah notasi yang digunakan untuk kedua OOAD dan MDA yaitu UML (The Unified Modeling Language) dan teknik sejenis yang digunakan untuk desain database dapat menggunakan Entity-Relationship Modeling (ER Modeling). Dalam hal ini, pelaksanaan teknik termasuk bahasa imperatif (object-oriented atau prosedural), fungsional bahasa, dan logika bahasa. b. Model komputasi Hal mendasar yang perlu dipahami adalah satuan nilai-nilai dan operasi yang berhubungan dengan setiap model komputasi memiliki satu set operasi yang digunakan untuk menggambarkan komputasi. Secara mendasar, model komputasi dikategorikan sebagai berikut. 1) Model imperatif Model imperatif sebagai pendekatan paling tepat untuk pemodelan perangkat keras yang mengeksekusi program. Model jenis ini termasuk jenis model berubah dan perubahan yang terjadi dinyatakan sebagai bagian dari lingkungan. Model imperatif terdiri dari satu set nilai yang mencakup kondisi/keadaan dan operasi dalam memodifikasi pernyataan. Definisi pernyataan adalah set pasangan nilai-nama dari konstanta dan variabel. Termasuk di dalamnya tata urutan tugas komputasi dalam sebuah pernyataan. 2) Model fungsional Suatu program pada dasarnya berupa sekumpulan definisi fungsi sedangkan suatu komputasi adalah aplikasi fungsi. Model jenis ini sebagai bentuk metode dasar dari sebagian besar metode penyelesaian masalah. Model fungsional terdiri dari satu set nilai-nilai yang mencakup fungsi-fungsi, operasi aplikasi fungsi, dan komposisi fungsi. Dalam hal ini, fungsi (function) dapat mengambil fungsi lain yang berperan sebagai argumentasi dan mengembalikan fungsi tersebut sebagai hasil (higher-order function). 3) Model logika Model jenis ini bisa diterjemahkan sebagai proses perumusan yang berhubungan dengan relational database dan expert system. Dalam hal ini, program terdiri dari definisi hubungan dan bukti komputasi yang digunakan dalam bentuk suatu urutan kesimpulan. Dalam perencanaan, model logika menyajikan rerangka dan proses untuk perencanaan yang menjembatani gap antara kondisi saat ini dengan kondisi yang diinginkan. Model logika terdiri dari satu set nilai￾nilai yang mencakup definisi hubungan dan kesimpulan logis. Model logika dalam evaluasi digunakan untuk menjelaskan, menelusuri, serta mengawasi operasi, proses, dan fungsi evaluasi. Model logika dapat membantu dalam menentukan kapan dan bagaimana evaluasi dijalankan sehingga sumber daya dapat dikatakan telah efektif dan efisien penggunaannya. Dalam hal ini, model logika dapat digunakan dalam perencanaan, manajemen program, evaluasi, dan komunikasi. c. Pemrograman Guna melakukan prosedur pemrograman memerlukan keterampilan dalam algoritma, logika, bahasa pemrograman, dan berbagai pengetahuan lain. Pemrograman dinyatakan sebagai seni menggunakan satu atau lebih algoritma yang saling berhubungan satu sama lain menggunakan suatu bahasa komputer tertentu sehingga menjadi aplikasi komputer yang relevan. Secara mendasar, pemrograman termasuk sebagau sebuah proses menulis, menguji dan memperbaiki (debug), serta memelihara kode yang membangun suatu program komputer. Adapun pemrogram komputer (programmer) adalah orang-orang yang menulis perangkat lunak komputer, di mana pekerjaan mereka meliputi coding, kompilasi, dokumentasi, integrasi, pemeliharaan, persyaratan analisis, software arsitektur, software pengujian, spesifikasi, dan debugging. 1) Komponen pemrograman Beberapa komponen mendasar yang selalu muncul di hampir setiap bahasa pemrograman adalah sebagai berikut. No. Komponen Keterangan 1. Pengulangan Melakukan beberapa tindakan berulang-ulang, biasanya dengan beberapa variasi. 2. Output Menampilkan data pada layar atau pun mengirim data ke file atau perangkat lain. 3. Berhitung Melakukan operasi aritmatika dasar seperti penjumlahan, perkalian, pertambahan, dan pengurangan. 4. Eksekusi bersyarat Memeriksa kondisi tertentu dan melaksanakan urutan sesuai pernyataan. 5. Input Mengambil data dari keyboard, file, atau beberapa perangkat lain. 2) Konsep dasar pemrograman Program dapat didefinisikan sebagai kumpulan instruksi tertulis yang dibuat oleh programmer atau pun menjadi bagian executable dari suatu software (perangkat lunak). Hal ini tentu saja berbeda dengan definisi pemrograman sebagai proses mengimplementasikan urutan langkah dalam menyelesaikan suatu masalah menggunakan bahasa pemrograman tertentu. Secara umum bahasa pemrograman dikategorikan sebagai berikut. a) Object Oriented Language, seperti Visual dBase, Visual FoxPro, Delphi, dan Visual C. b) High Level Language, seperti Pascal dan Basic. c) Middle Level Language, seperti pada bahasa C. d) Low Level Language, seperti pada bahasa Assembly. Low Level Language dikategorikan sebagai berikut. (1) Tipe pemrograman dikategorikan menjadi 7 jenis sebagai berikut. (a) Pemrograman fungsional Pemrograman jenis ini menjadi salah satu bahasa pemrograman yang memberlakukan proses komputasi sebagai evaluasi fungsi matematika. Misalnya LISP, Scheme, ML, dan Haskell. (b) Pemrograman berorientasi Obyek misalnya C++, SmallTalks, dan Java. (c) Pemrograman procedural Procedural merupakan tahap-tahap kegiatan untuk menyelesaikan suatu aktivitas yang metode penyelesaiannya dilakukan langkah demi langkah secara eksak. Bahasa tingkat tinggi seperti Cobol, Basic, Pascal, Fortran dan C bisa juga dinamakan sebagai bahasa procedural. (d) Pemrograman even-driven Merupakan sebuah program yang menggunakan konsep OOP di mana pemrograman dapat dimulai dari obyek yang diinginkan tanpa harus terurut, misalnya program Visual Basic, Visual C++, dan Delphi. (e) Pemrograman visual Merupakan suatu program yang programnya menggunakan ekspresi visual seperti grafik, gambar, dan ikon tertentu. (f) Pemrograman terstruktur Pemrograman terstruktur adalah bahasa pemrograman yang mendukung pembuatan program sebagai kumpulan prosedur misalnya Pascal, Cobol, RPG, ADA, dan C. (g) Pemrograman modular Pemrograman modular dapat didefinisikan sebagai program yang dipecah-pecah ke dalam modul, di mana setiap modul menunjukkan fungsi dan tugasnya. Dengan begitu masalah akan menjadi lebih sederhana dan program dapat lebih mudah disusun dan dipahami. (2) Kriteria bahasa pemrograman Kriteria untuk penilaian suatu bahasa pemrograman antara lain biaya penggunaan, kemudahan untuk verifikasi program, kewajaran untuk aplikasi, lingkungan pemrograman, mendukung abstraksi, orthogonality, dan portabilitas program. Dalam hal ini, objek data adalah pengelompokkan satu atau lebih potongan data di dalam virtual komputer pada saat run-time. Objek data yang muncul selama program dieksekusi merupakan objek data buatan programmer yang secara eksplisit membuat dan memanipulasi melalui deklarasi dan statement di dalam program misalnya variable, konstanta, array, file, dan seterusnya. Beberapa elemen tipe data memiliki syarat-syarat sebagai berikut. (a) Attribute untuk membedakan objek-objek data dari tipe tersebut misalnya nama objek data. (b) Nilai yang dipengaruhi oleh hardware computer yang melandasinya. (c) Operasi yang digunakan secara matematika Tipe data merupakan suatu kelas objek data dengan kumpulan operasi untuk membentuk dan memanipulasinya. Tipe data dibagi menjadi beberapa bagian sebagai berikut. (a) Tipe data abstrak Tipe data jenis ini dinyatakan sebagai suatu fasilitas dari bahasa pemrograman yang menampung aspirasi para programmer. (b) Tipe data dasar Tipe data dasar sebagai jenis tipe data primitive tidak terstruktur yang didefinisikan oleh bahasa pemrograman. Beberapa tipe data dasar sebagai berikut. (1) Tipe data numerik yang terdiri atas enumerasi, boolean, character, dan internationalization. (2) Tipe data terstruktur yang dapat dikategorikan menjadi vector, array, recordlist, character string, pointer, objek data programmer-constructed, serta himpunan. 3) Persyaratan Kualitas Berbagai bentuk pendekatan pengembangan perangkat lunak harus memenuhi beberapa sifat mendasar (property). Beberapa properti yang paling relevan adalah sebagai berikut. a) Kegunaan (ergonomi) sebuah program Kemudahan dalam menggunakan program pada tujuan tertentu yang dalam beberapa kasus bahkan terjadi tanpa diduga. Rata-rata melibatkan tekstual, grafis, maupun elemen￾elemen piranti keras untuk meningkatkan kejelasan, intuitif, kekompakan, dan kelengkapan program antarmuka pengguna. b) Efisiensi/kinerja Jumlah sumber daya sistem program yang mengonsumsi waktu proses, ruang memori, perangkat bawaan seperti disk, bandwidth jaringan bahkan sampai batas tertentu interaksi dari pemakai. Termasuk di dalamnya pembersihan file-file sementara dan tidak adanya kebocoran memori. c) Reliabilitas Hal ini tergantung pada kebenaran konseptual algoritma dan pemrograman dalam meminimalisasi kesalahan seperti kesalahan dalam manajemen sumber daya misalnya buffer overflows dan kondisi tertentu sehingga kesalahan logika seperti pembagian dengan nol. d) Modifikasi Kemudahan sebuah program yang dapat dimodifikasi dalam rangka membuat perbaikan atau penyesuaian, memperbaiki bug dan lubang keamanan, atau menyesuaikan dengan lingkungan baru. e) Portabilitas Kisaran perangkat keras komputer dan platform sistem operasi dengan kode sumber dari program dapat dikompilasi/ditafsirkan dan dijalankan (run). Hal ini tergantung pada perbedaan-perbedaan dalam fasilitas pemrograman yang disediakan oleh platform berbeda, termasuk di dalamnya hardware dan sistem operasi sumber daya, perilaku yang diharapkan dari hardware dan sistem operasi, ketersediaan platform compiler tertentu dan library sebagai mekanisme memanggil function untuk bahasa dari source code. 4) Kompleksitas algoritma Bidang akademik dan praktik teknik pemrograman komputer berkaitan dengan menemukan dan menerapkan algoritma paling efisien untuk suatu masalah. Untuk tujuan tersebut, maka algoritma dapat diklasifikasikan berdasarkan notasi Big O (n) dengan tujuan mengungkapkan penggunaan sumber daya, misalnya waktu eksekusi atau pemakaian memori, maupun ukuran sebuah input. Seorang programmer yang akrab dengan berbagai jenis algoritma beserta kompleksitasnya akan menggunakan pengetahuan tertentu dalam memilih algoritma paling cocok dengan keadaan yang diinginkan. 5) Mengukur pemakaian bahasa pemrograman Sangat sulit untuk menentukan bahasa pemrograman modern paling populer. Beberapa bahasa sangat populer untuk jenis aplikasi tertentu seperti COBOL yang banyak digunakan di data center perusahaan maupun mainframe besar, FORTRAN dalam aplikasi teknik, bahasa scripting dalam pengembangan web, dan C dalam aplikasi embedded. Adapun metode yang digunakan untuk mengukur popularitas bahasa pemrograman di antaranya menghitung jumlah iklan lowongan kerja yang menyebutkan bahasa tertentu, jumlah buku pelatihan pada bahasa yang bersangkutan, hingga perkiraan jumlah baris kode yang ditulis dalam bahasa tersebut. 2. Perbaikan Model Komputasi Dengan computational thinking, maka seseorang dapat mengembangkan proses berpikir yang melibatkan proses formulasi sebuah permasalahan beserta solusinya. Adapun tugas debugging sangat penting dalam proses pengembangan perangkat lunak, karena program yang salah memiliki konsekuensi signifikan bagi user. Beberapa bahasa pemrograman yang lebih rentan terhadap beberapa jenis kesalahan. Penyebabnya adalah tidak adanya spesifikasi kompiler dalam melakukan pengecekan sebanyak bahasa lainnya. Penggunaan perangkat analisis static membantu mendeteksi berbagai kemungkinan masalah yang ada, salah satunya penggunaan debug IDE pada Microsoft Visual Studio, NetBeans, dan Eclipse. Standalone debugger seperti gdb jarang disediakan dalam lingkungan visual, karena pada umumnya menggunakan baris perintah. Gambar seorang programmer sedang bekerja Mengomunikasikan Buatlah makalah tentang pengalaman berpikir komputasional, kemudian presentasikan di depan kelas! Mintalah tanggapan dari teman dan gurumu! 3. Pengalaman Berpikir Komputasional Komputasi modern memiliki karakteristik tertentu, di antaranya komputer terhubung ke jaringan luas dengan kapasitas bandwidth beragam, komputer maupun jaringan tidak terdedikasi di mana bisa hidup atau mati sewaktu-waktu tanpa jadwal yang jelas, serta komputer penyedia sumber daya bersifat heterogenous yang berarti terbagi menjadi berbagai jenis perangkat keras, sistem operasi, dan aplikasi yang terpasang. Pengalaman berpikir komputasional lebih mengacu pada penerapan komputasi secara realistis, di antaranya sebagai berikut. a. Penerapan komputasi modern pada website mataharimall.com Mataharimall.com adalah situs belanja online No. #1 dan terbesar di Indonesia. MatahariMall memberikan fasilitas pelayanan yang terbaik untuk mendukung kalian belanja online dengan aman, nyaman dan terpercaya. Mataharimall.com menawarkan beragam kemudahan untuk bertransaksi, seperti transfer antarbank, kartu kredit dengan cicilan 0%, O2O (Online-to-Offline), COD (Cash On Delivery), dan metode lainnya. Mataharimall.com menyediakan ratusan ribu pilihan produk dengan harga terbaik dari segala kebutuhan, mulai dari fashion wanita, fashion pria, produk kecantikan, smartphone, elektronik, hobi, makanan dan minuman, dan lainnya. Mataharimall.com menawarkan 24 jam non-stop discount dan puluhan promo menarik setiap harinya. Dengan begini, belanja online murah bisa jadi pilihan menarik yang sayang jika kalian lewatkan. b. Penerapan komputasi modern pada perusahaan EIGER Salah satu website yang mengaplikasikan komputasi modern adalah website dari perusahaan EIGER (http://eigeradventure.com ). Kita pasti sudah tidak asing dengan merk ini, EIGER sendiri adalah merk dari alat perlengkapan outdoor. Di website ini kita bisa melihat sedikit tentang perusahaan EIGER, produk-produk yang dijual dan berbagai kegiatan yang dilakukan EIGER. Website EIGER sudah termasuk ke dalam penerapan komputasi modern yang terdapat pada layanan pemesanan online. User/customer dapat memesan produk secara virtual/online tanpa harus datang langsung ke toko tersebut. Sistem layanan pada website perusahaan ini telah mengandung unsur-unsur yang merupakan penerapan dari komputasi modern. 1) Tampilan halaman utama Pada halaman utama ditampilkan tentang kegiatan yang dilakukan EIGER, produk terbaru serta harganya dan akses ke menu lainnya. 2) Tampilan login Untuk dapat melakukan pemesanan kita harus membuat akun terlebih dahulu, dengan cara register dan jika sudah kita dapat Login dan melakukan pemesanan. 3) Tampilan list produk Di bagian ini menampilkan produk-produk yang dijual oleh EIGER, jika kita memilih salah satu produknya maka akan muncul pilihan untuk pembelian, atau memasukkan barang ke wishlist, dan jika di kilik pilihan quick buy maka akan tampil menu jumlah barang dan add to bag. 4) Tampilan order Setelah kita memastikan jenis barang yang dibeli kita akan diminta memasukkan data diri dan alamat lengkap serta metode pembayaran dan kode pemesanan barang. 5) Tampilan menu user Pada bagian ini ditampilkan barang yang sudah kita pesan dan status pengiriman barang, jika pembayaran sudah dilakukan maka barang akan seegra di proses dan dikirim ke alamat yang tertera. 6) Tampilan track your order Pada menu ini kita dapat melihat di mana pesanan kita sudah di proses, apakah sudah di kirim atau masih dalam pemrosesan. 7) Tampilan our store Di sini akan ditampilkan peta dunia serta marker yang menunjukkan di mana saja outlet EIGER Store berada, di sini juga diberikan alamat dari Store tersebut.

Praktik Lintas Bidang (Tematis)

Komputasi dan Ruang Lingkupnya Di masa sekarang, mayoritas orang sudah mengenali komputer berukuran kecil yang disebut Personal Computer (PC) atau komputer mikro. Disebut personal, karena pengoperasiannya cukup membutuhkan satu orang saja, beda dengan komputer pada zaman dahulu yang butuh banyak orang. Kecepatan, biaya komunikasi, dan prosesor komputer memengaruhi penggunaan sumber-sumber daya tersebut. Dalam hal ini, warganet di seluruh dunia memiliki akses yang mudah atas beraneka ragam informasi dengan hanya berpandukan pada sebuah mesin pencari (search engine) seperti Google. Dibanding dengan buku dan perpustakaan, penggunaan internet melambangkan penyebaran (decentralization) informasi dan data secara ekstrem. Gambar Kemenkominfo ajak warganet bijak gunakan internet 1. Budaya Informatika Lewat Berpikir Komputasional Computational thinking diperkenalkan oleh Seymour Papert pada tahun 1980 dan 1996. Pemerintah Inggris pada tahun 2014 memasukkan materi pemrograman ke dalam kurikulum sekolah dasar dan menengah dengan tujuannya mengenalkan computational thinking sejak dini kepada siswa. Hal tersebut karena adanya anggapan bahwa hal tersebut dapat membuat siswa menjadi lebih cerdas dan lebih cepat memahami teknologi yang ada di lingkungan sekitar. Jeannette M. Wing menyatakan bahwa computational thinking dibangun di atas kekuatan dan batas-batas proses komputasi yang akan dieksekusi oleh manusia atau oleh sebuah mesin. Berpikir komputasi adalah teknik pemecahan masalah yang sangat luas wilayah penerapannya. Tidak mengherankan bahwa memiliki kemampuan tersebut adalah sebuah keharusan bagi seseorang yang hidup pada Abad ke-21. Computational thinking melatih otak untuk terbiasa berpikir secara logis, terstruktur dan kreatif, misalnya dalam bermain musik dan belajar bahasa asing. CT memang memiliki peran penting dalam pengembangan aplikasi komputer, namun CT juga dapat digunakan untuk mendukung pemecahan masalah di semua disiplin ilmu, termasuk humaniora, matematika dan ilmu pengetahuan. Siswa yang belajar di mana CT diterapkan dalam kurikulum (proses pembelajaran) dapat melihat hubungan antara mata pelajaran, serta antara kehidupan di dalam dengan di luar kelas. 2. Kolaborasi Informatika Lewat Tematik Salah satu aspek informatika yang banyak digunakan pada kolaborasi lewat tematik berkaitan dengan struktur untuk menggambarkan bentuk relasi (graf). Graf bisa diterjemahkan sebagai salah satu sarana dalam informatika untuk menggambarkan jaringan sosial. Graf sederhana terdiri dari node (menyatakan orang) dan garis (menyatakan relasi teman). a. Sejarah teori graf Seorang matematikawan Swiss dinyatakan sebagai orang yang pertama kali (1736) menulis artikel ilmiah di bidang teori graf adalah Leonhard Euler. Artikel dengan judul “Seven Bridges of Königsberg” yang ditulisnya membahas permasalahan ada atau tidaknya struktur yang saat ini dikenal sebagai sirkuit Euler pada graf keterhubungan daratan kota Königsberg (sekarang Kaliningrad, Russia) dan pulau kecil di tengah sungai Pregel yang dihubungkan oleh tujuh buah jembatan. Pada masa berikutnya, disiplin ilmu teori graf belum meraih perhatian besar para matematikawan penting dalam sejarah sampai kurang lebih seratus tahun kemudian, masalah pewarnaan peta diperkenalkan oleh Francis Guthrie. Pada tahun 1852, Francis Guthrie menyadari adanya empat warna berbeda yang dibutuhkan untuk mewarnai peta wilayah Britania Raya dengan setiap dua daerah bersebelahan selalu memiliki dua warna berbeda. Hingga pada awal Abad Keduapuluh, para saintis menemukan banyak manfaat dari teori graf di bidang-bidang lain seperti ilmu komputer, kimia teoretik, transportasi, dan lain-lain. b. Perkembangan teori graf Berbagai bentuk struktur dapat direpresentasikan dengan graf, dan berbagai jenis masalah dapat diselesaikan dengan bantuan graf. Teori graf atau teori grafik dalam matematika dan ilmu komputer adalah cabang kajian yang mempelajari sifat-sifat graf (grafik) dan hal ini ini tidak sama dengan grafika. Pengertian graf secara informal adalah himpunan benda-benda yang disebut simpul (vertex atau node) yang terhubung oleh sisi (edge) atau busur (arc). Biasanya graf digambarkan sebagai kumpulan titik-titik (melambangkan simpul) yang dihubungkan oleh garis-garis (melambangkan sisi) atau garis berpanah (melambangkan busur). Suatu sisi dapat menghubungkan suatu simpul dengan simpul sejenis yang disebut gelang (loop). Misalnya jaringan pertemanan Facebook yang bisa direpresentasikan dengan graf, berupa simpul-simpul yang mereprentasikan para pengguna Facebook dan ada sisi antarpengguna jika dan hanya jika mereka berteman. Perkembangan algoritme untuk menangani graf akan berdampak besar bagi ilmu komputer. Sebuah struktur graf bisa dikembangkan dengan memberi bobot pada tiap sisi. Graf berbobot dapat digunakan untuk melambangkan banyak konsep berbeda. Misalnya sebuah graf melambangkan jaringan jalan maka bobotnya bisa berarti panjang jalan maupun batas kecepatan tertinggi pada jalan tertentu. Ekstensi lain pada graf adalah dengan membuat sisinya berarah, yang secara teknis disebut graf berarah atau digraf (directed graph). Digraf dengan sisi berbobot disebut jaringan. Jaringan banyak digunakan pada cabang praktis teori graf yaitu analisis jaringan. Perlu dicatat bahwa pada analisis jaringan, definisi kata “jaringan” bisa berbeda, dan sering berarti graf sederhana (tanpa bobot dan arah). c. Implementasi teori graf Metode otomatis pada program komputer bertujuan untuk menganalisis relasi (graf) dalam menganalisis jaringan sosial. Metode analisis graf bermanfaat dalam aplikasi GPS, di mana persimpangan jalan diwakili oleh node dan jalur-jalur yang bersesuaian dengan edge. Program komputer untuk menganalisis graf dapat dipakai untuk mencari jalan terpendek antara dua tempat. Contoh paling mudah dapat dilihat ketika seseorang mengunggah foto pribadi ke internet, maka harus berpikir hati-hati tentang siapa saja yang mungkin melihat gambar. Karena sangat sulit untuk mengontrol siapa saja yang bisa melihat gambar, maka langkah terbaik adalah tidak pernah meng￾upload gambar ke internet kecuali gambar yang dapat untuk konsumsi publik, di stasiun bus lokal, atau sekolah Guna merepresentasikan pengguna media sosial dengan topik yang dia minati, digunakan graf tidak berarah. Begitu juga dengan hubungan pengguna media sosial dengan jenis kelamin, lokasi dan usianya digunakan graf tak-berarah. Pada fitur iklan berbayar pada media sosial, pengiklan dapat menetapkan target pemasarannya dari aspek minat, lokasi, usia, dan jenis kelamin. Hal ini dapat dilihat pada layanan iklan berbayar di Facebook. Facebook menawarkan pengiklan untuk menetapkan anggaran yang dimiliki oleh pengiklan, lalu Facebook akan menetapkan biayanya dengan paid per click sehingga biayanya langsung dipotong dari anggaran yang ditetapkan oleh pengiklan. Di sini Facebook akan berusaha seefektif mungkin agar banyak orang yang membuka iklan dari pengiklan tersebut. Ketika anggarannya habis, iklan akan dihentikan. Berbeda dengan Facebook, Twitter menyediakan layanan iklan bayaran yang lebih beragam salah satunya Followers Campaigns. Pengiklan juga akan menetapkan anggaran untuk beriklan. Lalu Twitter akan mengenakan biaya untuk tiap satu akun yang mengikuti (follow) akun twitter pengiklan. Guna bentuk balasan, retweet, klik pada tweet pengiklan tidak dikenakan biaya. 3. Problema Model Komputasi menggunakan Kalkulasi Integrasi Numerik Integrasi numerik merupakan suatu metode untuk menghitung luasan di bawah suatu fungsi pada grafik pada selang (jeda) yang diberikan, misalnya selang waktu. Jika suatu benda memiliki bentuk tetap dan telah diketahui secara massal misalnya segitiga, trapesium, bujur sangkar dan lain sebagainya akan dengan mudah untuk menghitung luas benda tersebut. Hal ini akan berbeda jika suatu benda yang dimaksud terdapat pada fungsi dan tidak mengetahui luas di bawah fungsi tersebut, maka cara paling mudah adalah menggunakan metode integral numerik. Hal tersebut dikarenakan untuk benda yang telah diketahui secara umum memiliki rumus yang selama ini dikenal, misalnya bujur sangkar = sisi × sisi, persegi panjang = panjang × lebar, trapesium = jumlah sisi sejajar × tinggi × ½, dan segitiga = ½ × alas × tinggi. Dengan demikian, integrasi numerik sebagai salah satu metode alternatif untuk mengintegrasikan suatu persamaan tanpa mengesampingkan integrasi analitis. Integrasi analitis sebagai cara integrasi yang sulit, terutama pada persamaan-persamaan yang kompleks dan rumit. Secara mendasar, aturan Simpson memerlukan satu set data yang berjumlah ganjil. Oleh karena itu, jika data yang tersedia berjumlah genap, maka proses perhitungannya adalah data pertama dan kedua dihitung berdasarkan aturan Trapezoidal dan sisanya dihitung berdasarkan aturan Simpson. Aturan Simpson adalah suatu aturan yang digunakan untuk menghitung luas suatu kurva polinom berderajat dua atau berderajat tiga dengan pendekatan yaitu pendekatan menggunakan partisi berbentuk parabola. Dalam metode Simpson ada dua jenis yaitu metode Simpson 1 per 3 dan metode Simpson 3 per 8. Beberapa hal yang berhubungan dengan integrasi numerik adalah sebagai berikut. a. Bentuk umum persamaan integrasi numerik pada aturan Trapezoidal adalah sebagai berikut. 1 1 234 2 2 n f f S f f f ... h b. Bentuk umum persamaan integrasi numerik pada aturan Simpson adalah sebagai berikut. ( 12 3 4 5 6 1) 3 n h S f f f f f f ... f = +++++++ + Hal mendasar yang perlu diketahui bahwa satu set data x sama dengan satu set data yang memiliki deret beraturan atau memiliki rentang yang sama (h) pada setiap datanya. Pada saat persamaan tersebut ingin diintegrasikan, maka integrasi numerik menjadi langkah alternatif yang digunakan. Adapun pokok inti dari integrasi numerik adalah menghitung integrasi suatu persamaan dari satu set data yang melingkupi satu set data nilai x dan satu set data nilai f(x). Dua teknik yang biasa digunakan pada integrasi numerik adalah aturan Trapezoidal dan aturan Simpson. Guna mempermudah perhitungan menggunakan aturan di atas dibantu menggunakan bahasa pemrograman. Pada dasarnya, metode Trapezoidal maupun metode Simpson memang memberikan hasil yang hampir sama. Bentuk pembuatan program kalkulasi integrasi numerik paling mudah menggunakan program Microsoft Visual Basic, walaupun tidak menutup kemungkinan menggunakan aplikasi berbasis teks yang lain. Dalam hal ini, penggunaan metode yang digunakan berupa kombinasi antara metode Trapezoidal dan Simpson, sebab metode Simpson memerlukan kumpulan data ganjil, maka perhitungan integrasi dua data awal menggunakan metode Trapezoidal dengan integrasi data yang selanjutnya dilakukan dengan menggunakan metode Simpson. Sebagian besar data diintegrasikan dengan metode Simpson yang lebih akurat, dikarenakan integrasinya berdasarkan pendekatan fungsi kuadrat untuk setiap tiga set data pada kumpulan data yang ingin diintegralkan. a. Persamaan integrasi Beberapa persamaan integrasi yang digunakan adalah sebagai berikut. 1) Jika menggunakan persamaan integrasi Trapezoidal, maka bentuk persamaannya sebagai berikut. ( ) 1 1 1 234 2 2 n x n x f f S f x dx f f f ... +   = = +++++     ∫ Persamaan integrasi Trapezoidal 2) Jika menggunakan persamaan integrasi Simpson, maka bentuk persamaannya sebagai berikut. ( ) ( ) 1 1 12 3 4 5 6 1 42 424 3 x nh x n S fx h f f f f f f ... f + + = = + + ++ + + + + ∫ b. Pembuatan program integrasi numerik Pembuatan program integrasi numerik dapat mengggunakan pemrograman C/C++ untuk menghitung luas suatu daerah di bawah fungsi yang biasa dilakukan adalah menghitung nilai integral di bawah fungsi dengan batas atas dan batas bawah yang telah ditetapkan. Namun, komputer tidak mengenal integral. Komputer hanya mengenal operasi bilangan yang dasar seperti tambah, kali, bagi, dan lain-lain. Metode integrasi numerik memberikan prosedur dalam menghitung nilai integral tersebut dengan perhitungan biasa. Terdapat banyak metode dalam integrasi numerik, di antaranya metode jumlah atas dan jumlah bawah, metode simpson 1/3, metode trapezoidal, dan metode gauss quadrature. 4. Mengembangkan dan Menggunakan Abstraksi Empat kemampuan dasar dalam computational thinking (CT) yaitu decomposition, pattern generalization, abstraction, dan algorithm design. Pattern generalization dan abstraction sebagai kemampuan untuk menyaring informasi yang tidak perlu untuk menyelesaikan jenis permasalahan tertentu dan menggeneralisasi informasi yang diperlukan. Computational thinking (CT) sebagai sebuah pendekatan dalam proses pembelajaran dan berperan penting dalam pengembangan aplikasi komputer serta dapat digunakan untuk pendukung pemecahan masalah pada semua disiplin ilmu. Beberapa metode yang digunakan, antara lain sebagai berikut. a. Decomposition Kemampuan memecah data, proses, atau masalah (kompleks) menjadi bagian-bagian yang lebih kecil atau menjadi tugas-tugas yang mudah dikelola. Misalnya memecah ‘drive/folder’ dalam sebuah komputer berdasarkan komponen penyusunnya, yaitu file dan folder. b. Pattern recognition Metode jenis ini dapat digunakan untuk melihat perbedaan maupun persamaan pola, tren, dan keteraturan dalam data yang nantinya akan digunakan dalam membuat prediksi dan penyajian data. Misalnya mengenali pola file document, system file, file eksekusi, atau struktur data/file. c. Abstraction Abstraksi bermanfaat dalam melakukan generalisasi dan identifikasi prinsip-prinsip umum untuk menghasilkan pola, tren, dan keteraturan tersebut. Misalnya menempatkan semua file sistem di folder Windows, file program di folder Program Files, file data/ dokumen di folder Mydocuments dan file pendukung di Drive/Folder terpisah. d. Algorithm design Algorithm design bermanfaat dalam mengembangkan petunjuk pemecahan masalah yang sama secara step-by-step, sehingga orang lain dapat menggunakan informasi tersebut untuk menyelesaikan permasalahan yang sama. Misalnya langkah-langkah dalam mencari file-file dokumen yang ada dalam sebuah komputer. 5. Penerapan Computational Thinking (CT) Dengan menerapkan computational thinking, seorang siswa bisa mengerjakan laporannya secara efisien dan efektif terhadap waktu. a. Dekomposisi Laporan terdiri dari berbagai bagian sehingga seorang siswa sebaiknya melihat laporan bukan sebagai satu kesatuan tetapi dari bagian-bagiannya. Sehingga ketika pengerjaan akan berfokus pada laporan tidak sebagai satu tugas yang besar, melainkan sebagai kumpulan tugas-tugas kecil. b. Pengenalan pola Kerap laporan yang kita kerjakan meliput sebuah materi pemrograman yang harus dibuat, tes dan kemudian dijelaskan. Biasanya seorang siswa akan memulai dengan bagian pemodelan dari materi pemrograman tersebut, baru berlanjut ke bagian algoritmanya dan kemudian materi pemrogramannya itu sendiri dan berakhir baru penjelasan dari materi pemrograman. c. Abstraksi Abstraksi yang dapat diambil adalah ketika pengerjaan laporan, apa yang diminta oleh materi pemrograman serta bentuk narasi dan penjelasannya nanti. d. Penciptaan algoritma Digunakan sebagai langkah-langkah yang perlu diambil ketika mengerjakan laporan, seperti pembuatan model dahulu, baru algoritma kemudian materi pemrograman beserta narasi dan penjelasannya. Berdasarkan informasi tersebut, maka cara mengimplementasikan computational thinking adalah dengan memahami masalah, mengumpulkan semua data, lalu mulai mencari solusi sesuai dengan masalah. Dalam computational thinking, ada yang disebut dengan dekomposisi yaitu kita memecah suatu masalah yang kompleks menjadi masalah-masalah yang kecil untuk diselesaikan. Terdapat berbagai contoh sehari-hari yang dapat menjadi tempat untuk menerapkan computational thinking. Hal pokok yang kerap dihadapi siswa adalah perihal tugas-tugas berbentuk laporan yang diberikan oleh guru setelah pembelajaran.

Berpikir Komputasional (Tematis)

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. Gambar Z3 Konrad Zuse’s electromechanical 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 e. 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. Gambar komputasi cloud (awan) 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). 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. Gambar komputer ENIAC 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. Gambar Grafik kompleksitas pada teori big O 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. No. Kelompok Algoritma Nama 1. O(1) Konstan 2. O(log n) Logaritmik 3. O(n) Linear 4. O(n log n) N log n 5. O(n2 ) Kuadratik 6. O(n3 ) Kubik 7. O(2n ) Eksponensial 8. O(n!) Faktorial 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 analog. 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. 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. Gambar modeling (NN & GA) 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. No. Jenis Penggunaan Keterangan 1. Keterbatasan kapasitas memori Pada mesin jenis komputasi serial dan sumber daya nonlokal yang dapat digunakan melalui jaringan atau internet. 2. Permasalahan besar Terkadang sumber daya komputasi yang ada sekarang belum cukup mampu untuk mendukung penyelesaian terhadap permasalahan tersebut. 3. Penghematan biaya Dijumpai pada pengadaan perangkat keras dengan menggunakan beberapa mesin yang murah sebagai alternatif penggunaan satu mesin yang bagus tapi mahal, walaupun menggunakan n buah prosesor. 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. 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. 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. Gambar penggunaan biosensor 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. Gambar tren penggunaan biometrik 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. No. Pangkalan Data Keterangan 1. Primer Menyimpan sekuens primer asam nukleat dan protein. 2. Sekunder Menyimpan motif sekuens protein. 3. Struktur Menyimpan data struktur protein dan asam nukleat. 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).