Rabu, 26 Juni 2013

BioInformatika

SEJARAH
Bioinformatika pertamakali dikemukakan pada pertengahan 1980an untuk mengacu kepada penerapan ilmu komputer dalam bidang biologi. Meskipun demikian, penerapan bidang-bidang dalam bioinformatika seperti pembuatan pangkalan data dan pengembangan algoritma untuk analisis sekuens biologi telah dilakukan sejak tahun 1960an.

Kemajuan teknik biologi molekuler dalam mengungkap sekuens biologi protein (sejak awal 1950an) dan asam nukleat (sejak 1960an) mengawali perkembangan pangkalan data dan teknik analisis sekuens biologi. Pangkalan data sekuens protein mulai dikembangkan pada tahun 1960an di Amerika Serikat, sementara pangkalan data sekuens DNA dikembangkan pada akhir 1970an di Amerika Serikat dan Jerman pada Laboratorium Biologi Molekuler Eropa (European Molecular Biology Laboratory).

Penemuan teknik sekuensing DNA yang lebih cepat pada pertengahan 1970an menjadi landasan terjadinya ledakan jumlah sekuens DNA yang dapat diungkapkan pada 1980an dan 1990an. Hal ini menjadi salah satu pembuka jalan bagi proyek-proyek pengungkapan genom, yang meningkatkan kebutuhan akan pengelolaan dan analisis sekuens, dan pada akhirnya menyebabkan lahirnya bioinformatika.




PENGERTIAN
Bioinformatika merupakan ilmu terapan yang lahir dari perkembangan teknologi informasi dibidang molekular. Pembahasan dibidang bioinformatik ini tidak terlepas dari perkembangan biologi molekular modern, salah satunya peningkatan pemahaman manusia dalam bidang genomic yang terdapat dalam molekul DNA.

Kemampuan untuk memahami dan memanipulasi kode genetik DNA ini sangat didukung oleh teknologi informasi melalui perkembangan hardware dan soffware. Baik pihak pabrikan sofware dan harware maupun pihak ketiga dalam produksi perangkat lunak. Salah satu contohnya dapat dilihat pada upaya Celera Genomics, perusahaan bioteknologi Amerika Serikat yang melakukan pembacaan sekuen genom manusia yang secara maksimal memanfaatkan teknologi informasi sehingga bisa melakukan pekerjaannya dalam waktu yang singkat (hanya beberapa tahun).

Perkembangan teknologi DNA rekombinan memainkan peranan penting dalam lahirnya bioinformatika. Teknologi DNA rekombinan memunculkan suatu pengetahuan baru dalam rekayasa genetika organisme yang dikenala bioteknologi. Perkembangan bioteknologi dari bioteknologi tradisional ke bioteknologi modren salah satunya ditandainya dengan kemampuan manusia dalam melakukan analisis DNA organisme, sekuensing DNA dan manipulasi DNA.

Sekuensing DNA satu organisme, misalnya suatu virus memiliki kurang lebih 5.000 nukleotida atau molekul DNA atau sekitar 11 gen, yang telah berhasil dibaca secara menyeluruh pada tahun 1977. Kemudia Sekuen seluruh DNA manusia terdiri dari 3 milyar nukleotida yang menyusun 100.000 gen dapat dipetakan dalam waktu 3 tahun, walaupun semua ini belum terlalu lengkap. Saat ini terdapat milyaran data nukleotida yang tersimpan dalam database DNA, GenBank di AS yang didirikan tahun 1982.

Bioinformatika ialah ilmu yang mempelajari penerapan teknik komputasi untuk mengelola dan menganalisis informasi hayati. Bidang ini mencakup penerapan metode-metode matematika, statistika, dan informatika untuk memecahkan masalah-masalah biologi, terutama yang terkait dengan penggunaan sekuens DNA dan asam amino. Contoh topik utama bidang ini meliputi pangkalan data untuk mengelola informasi hayati, penyejajaran sekuens (sequence alignment), prediksi struktur untuk meramalkan struktur protein atau pun struktur sekunder RNA, analisis filogenetik, dan analisis ekspresi gen.

CABANG ILMU
Bioinformatika mempunyai peluang yang sangat besar untuk berkembang karena banyak sekali cabang-cabang ilmu yang terkait dengannya. Cabang-cabang ilmu menurut sumber yang saya dapat diantaranya:



- Biophysics
Biologi molekul sendiri merupakan pengembangan yang lahir dari biophysics. Biophysics adalah sebuah bidang interdisipliner yang mengaplikasikan teknik-teknik dari ilmu Fisika untuk memahami struktur dan fungsi biologi (British Biophysical Society). Sesuai dengan definisi di atas, bidang ini merupakan suatu bidang yang luas. Namun, secara langsung disiplin ilmu ini terkait dengan Bioinformatika karena penggunaan teknik-teknik dari ilmu Fisika untuk memahami struktur membutuhkan penggunaan TI.

- Computational Biology
Computational biology merupakan bagian dari Bioinformatika (dalam arti yang paling luas) yang paling dekat dengan bidang Biologi umum klasik. Fokus dari computational biology adalah gerak evolusi, populasi, dan biologi teoritis daripada biomedis dalam molekul dan sel. Tak dapat dielakkan bahwa Biologi Molekul cukup penting dalam computational biology, namun itu bukanlah inti dari disiplin ilmu ini. Pada penerapan computational biology, model-model statistika untuk fenomena biologi lebih disukai dipakai dibandingkan dengan model sebenarnya. Dalam beberapa hal cara tersebut cukup baik mengingat pada kasus tertentu eksperimen langsung pada fenomena biologi cukup sulit.

- Medical Informatics
Medical informatics lebih memperhatikan struktur dan algoritma untuk pengolahan data medis, dibandingkan dengan data itu sendiri. Disiplin ilmu ini, untuk alasan praktis, kemungkinan besar berkaitan dengan data-data yang didapatkan pada level biologi yang lebih "rumit" --yaitu informasi dari sistem-sistem superselular, tepat pada level populasi—di mana sebagian besar dari Bioinformatika lebih memperhatikan informasi dari sistem dan struktur biomolekul dan selular.

- Cheminformatics, Genomics
Cheminformatics adalah kombinasi dari sintesis kimia, penyaringan biologis, dan pendekatan data-mining yang digunakan untuk penemuan dan pengembangan obat (Cambridge Healthech Institute's Sixth Annual Cheminformatics conference). Pengertian disiplin ilmu yang disebutkan di atas lebih merupakan identifikasi dari salah satu aktivitas yang paling populer dibandingkan dengan berbagai bidang studi yang mungkin ada di bawah bidang ini.

- Mathematical Biology
Mathematical biology lebih mudah dibedakan dengan Bioinformatika daripada computational biology dengan Bioinformatika. Mathematical biology juga menangani masalah-masalah biologi, namun metode yang digunakan untuk menangani masalah tersebut tidak perlu secara numerik dan tidak perlu diimplementasikan dalam software maupun hardware. Bahkan metode yang dipakai tidak perlu "menyelesaikan" masalah apapun; dalam mathematical biology bisa dianggap beralasan untuk mempublikasikan sebuah hasil yang hanya menyatakan bahwa suatu masalah biologi berada pada kelas umum tertentu.

- Proteomics
Istilah proteomics pertama kali digunakan untuk menggambarkan himpunan dari protein-protein yang tersusun (encoded) oleh genom. Ilmu yang mempelajari proteome, yang disebut proteomics, pada saat ini tidak hanya memperhatikanbsemua protein di dalam sel yang diberikan, tetapi juga himpunan dari semua bentuk isoform dan modifikasi dari semua protein, interaksi diantaranya, deskripsi struktural dari protein-protein dan kompleks-kompleks orde tingkat tinggi dari protein, dan mengenai masalah tersebut hampir semua pasca genom.

- Pharmacogenomics
Pharmacogenomics adalah aplikasi dari pendekatan genomik dan teknologi pada identifikasi dari target-target obat. Contohnya meliputi menjaring semua genom untuk penerima yang potensial dengan menggunakan cara Bioinformatika, atau dengan menyelidiki bentuk pola dari ekspresi gen di dalam baik patogen maupun induk selama terjadinya infeksi, atau maupun dengan memeriksa karakteristik pola-pola ekspresi yang ditemukan dalam tumor atau contoh dari pasien untuk kepentingan diagnose (kemungkinan untuk mengejar target potensial terapi kanker)

- Pharmacogenetics
Pharmacogenetics adalah bagian dari pharmacogenomics yang menggunakan metode genomik/Bioinformatika untuk mengidentifikasi hubungan-hubungan genomik, contohnya SNP (Single Nucleotide Polymorphisms), karakteristik dari profil respons pasien tertentu dan menggunakan informasi-informasi tersebut untuk memberitahu administrasi dan pengembangan terapi pengobatan.

SOFTWARE BIOINFORMATIKA
Sehari-harinya bioinformatika dikerjakan dengan menggunakan software pencari sekuen (sequence search) seperti BLAST (Basic Local Alignment Search Tool), software analisa seken (sequence analysis) seperti EMBOSS (The European Molecular Biology Open Software Suite) dan Staden Package, software prediksi struktur seperti THREADER atau PHD atau software imaging/modelling seperti RasMol dan WHATIF.

Contoh-contoh di atas menunjukkan bahwa telah banyak software pendukung yang mudah diakses, open source, dan dapat dipelajari untuk mengembangkan Bioinformatika.

PENERAPAN BIOINFORMATIKA DI INDONESIA
Beberapa penerapan Bioinformatika di Indonesia, diantaranya sebagai berikut:
- Deteksi Jenis Kelamin
- Perkembangan Vaksin Hepatitis B Rekombinan
- Meringankan Kelumpuhan dengan Rekayasa RNA

PENUTUP
Oleh karena kajian ilmu Bioinformatika yang masih sangat luas dan dapat dikembangkan lebih jauh, maka dalam beberapa waktu ke depan ini, dapat kita lihat bagaimana perkembangan Bioinformatika. Seiring dengan perkembangan teknologi internet, Bioinformatika akan semakin berkembang.


REFERENSI
sumber 1
sumber 2

Senin, 13 Mei 2013

Komputasi Modern dan Parallel Processing

Paralel Processing

Paralel Processing atau Komputasi paralel adalah suatu bentuk komputasi dimana instruksi-instruksi dijalankan secara berkesinambungan. Masalah yang besar dapat dibagi menjadi beberapa masalah yang lebih kecil(submasalah), untuk kemudian diselesaikan secara serempak. Komputasi paralel telah digunakan untuk melakukan komputasi yang mensyaratkan unjuk kerja yang tinggi(high-performance computing). Teknik komputasi ini semakin berkembang dewasa ini, hal ini disebabkan oleh batasan fisik di dalam penskalaan frekuensi(frequency scaling1). Komputasi paralel telah menjadi paradigma yang mendominan di dalam arsitektur komputer, yaitu misalnya prosesor multicore.

Program komputer paralel lebih susah untuk dibangun dibandingkan dengan program komputer serial, hal ini disebabkan keserempakan menimbulkan masalah yang potensial di dalam membagi pekerjaan menjadi subpekerjaan dan menggabungkan kembali subpekerjaan tersebut menjadi hasil oleh perangkat lunak, diantaranya kondisi berebut(race condition). Komunikasi dan sinkronisasi diantara unit pemroses(processing unit) menjadi satu diantara tantangan terbesar untuk menghasilkan program paralel dengan performa yang baik.

Konsep dari pemrosesan paralel yaitu dengan penggunaan lebih dari satu CPU untuk menjalankan program secara simulasi dan membuat program berjalan lebih cepat seiring banyaknya CPU yang digunakan. Komputasi paralelsendiri adalah salah satu teknik untuk melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer dan CPU secara bersamaan. Untuk melakukan aneka jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan masalah. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam satu komputer ataupun banyak komputer (paralel). Tujuan utamanya adalah untuk meningkatkan performa komputasi,semakin banyak yang bisa dilakukan secara bersamaan semakin banyak pekerjaan yang bisa diselesaikan.

Komputasi Modern

Komputasi modern adalah sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory, memory disini bisa juga dari memory komputer. Oleh karena pada saat ini kita melakukan komputasi menggunakan komputer maka bisa dibilang komputer merupakan sebuah komputasi modern. Konsep ini pertama kali digagasi oleh John Von Neumann (1903-1957). Beliau adalah ilmuan yang meletakkan dasar-dasar komputer modern. Von Neumann telah menjadi ilmuwan besar abad 21. Von Neumann memberikan berbagai sumbangsih dalam bidang matematika, teori kuantum, game theory, fisika nuklir, dan ilmu komputer yang di salurkan melalui karya-karyanya . Beliau juga merupakan salah satu ilmuwan yang terkait dalam pembuatan bom atom di Los Alamos pada Perang Dunia II lalu. Kegeniusannya dalam matematika telah terlihat semenjak kecil dengan mampu melakukan pembagian bilangan delapan digit (angka) di dalam kepalanya.

Dalam kerjanya komputasi modern menghitung dan mencari solusi dari masalah yang ada, dan perhitungan yang dilakukan itu meliputi:

- Akurasi (big, Floating point)
- Kecepatan (dalam satuan Hz)
- Problem Volume Besar (Down Sizzing atau pararel)
- Modeling (NN & GA)
- Kompleksitas (Menggunakan Teori big O)


hubungan antara Komputasi Modern dengan Paralel Processing?

Hubungannya adalah penggunaan komputer saat ini / komputasi dianggap lebih cepat dibandingkan dengan penyelesaian masalah secara manual. Oleh sebab itu, peningkatan kinerja atau proses komputasi semakin diterapkan, salah satunya adalah dengan cara meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat keras komputer adalah processor. Sedangkan parallel processing adalah penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan banyak processor) agar kinerja computer semakin cepat.


Implementasi Komputasi Parallel pada Dunia Perfilman

Pada bagian ini penulis akan membahas salah satu implementasi komputasi parallel pada dunia bisnis yaitu pada dunia perfilman yaitu rendering film. Kemajuan di bidang komputasi, khususnya dalam bidang komputer grafis memberikan kemudahan untuk memodelkan suatu benda dalam alam 3 dimensi virtual di komputer. Kita dapat membuat suatu benda dalam wujud 3 dimensi dan mengubah-ubah sudut pandang, menentukan pencahayaan, bahkan menyusun gerakan benda dalam alam 3 dimensi virtual tersebut. Perkembangan ini muncul dari kebutuhan di bidang manufaktur untuk memiliki komputer yang dapat membantu perancangan (computer aided design-CAD). Ditemukannya teknik-teknik dan metoda rendering suatu obyek 3 D ke dalam media 2 D membuat benda yang dihasilkan oleh perangkat lunak ini menjadi semakin nyata dan menyerupai aslinya.

Komputasi Paralel mempunyai prinsip yang bersesuaian dengan algoritma Divide and Conquer, yaitu membagi-bagi proses menjadi bagian-bagian yang cukup kecil dan memungkinkan untuk dikerjakan oleh sebuah unit komputasi. Terdapat 2 klasifikasi parallel computer yang penting, yaitu : Sebuah komputer dengan banyak unit komputasi internal, atau lebih dikenal sebagai Shared Memory Multiprocessor. Beberapa komputer yang terhubung melalui sebuah jaringan, atau lebih dikenal sebagai Distributed Memory Multicomputer.

Pada bagian ini yaitu pada rendering Film digunakan unit Komputasi parallel Distributed Memory Multicomputer. Hal ini dikarenakan computer yang digunakan untuk membuat rendering filmnya adalah Kluster Komputer. Kluster computer adalah proses menghubungkan beberapa computer agar dapat bekerja secara bersama-sama dengan sebuah jaringan sebagai media penghubungnya.

Komponen kluster biasanya saling terhubung dengan cepat melalui sebuah interkoneksi yang sangat capat, atau juga melalui jaringan local (LAN). Keuntungan memakai Kluster Komputer ini yaitu pemrosesan dapat dilakukan lebih cepat karena mempunyai mesin-mesin yang masing-masing multiprocessor. Terdapat incremental Scalability dimana penambahan system-sistem baru dengan inkremen yang kecil. Dalam Kluster Komputer kegagalan yang terjadi di dalam satu node tidak berarti atau disebut dengan “Loss of service”. Dan yang terakhir yaitu biaya yang dibutuhkan lebih murah, hal ini dikarenakan Kluster computer dapat menghasilkan power komputasi yang sama atau lebih tinggi dari computer parallel sebenarnya.

3D Rendering merupakan salah satu proses yang sangat penting dalam melakukan pengolahan gambar 3D. Tanpa dirender suatu gambar yang diolah oleh perangkat lunak animasi 3D hanya akan tampil dalam bentuk kumpulan point dan wireframe sederhana. Proses render melakukan “pembungkusan” tekstur pada objek yang bersesuaian sesuai cahaya yang datang pada objek tersebut. Namun proses render membutuhkan daya komputasi yang sangat besar karena banyaknya titik koordinat yang harus dikomputasi, terutama jika data 3D yang diolah cukup rumit. 3D Rendering terdiri dari proses yang bertujuan untuk membentuk sebuah gambar dari sebuah model yang dibentuk oleh perangkat lunak animasi, model tersebut berisi data geometri, titik pandang, tekstur dan cahaya yang diperlukan untuk membuat gambar yang utuh.3D Rendering merupakan proses yang sangat penting dan telah digunakan untuk berbagai macam penggunaan, seperti program permainan komputer, efek spesial pada film dan program simulasi.

Salah satu cara untuk memecahkan masalah tersebut adalah dengan menggunakan algoritma Divide and Conquer yang diterapkan kedalam metode Komputasi Parallel. Divide and Conquer merupakan salah satu strategi algoritma yang memecah suatu masalah besar menjadi beberapa bagian untuk kemudian dikerjakan satu persatu. Dalam Komputasi Parallel tiap-tiap bagian dikerjakan oleh unit pemrosesannya masing-masing, sesuai dengan kesepakatan Divide pada awal komputasi. Komputasi Parallel terbukti jauh lebih efektif untuk melakukan rendering objek 3D dibanding hanya menggunakan sebuah unit komputasi. Sebagai contoh suatu perusahaan animasi asal Jepang, membutuhkan waktu 165 tahun jika proses render yang dilakukan untuk membuat animasi berdurasi 100 menit hanya menggunakan sebuah unit komputasi. Sedangkan ketika perusahaan tersebut menggunakan metode Komputasi Parallel, proses tersebut hanya membutuhkan waktu 1 tahun saja. Salah satu masalah kompleks yang hingga kini masih membutuhkan kemampuan komputasi yang besar adalah melakukan proses render terhadap objek 3D. Proses render objek 3D sendiri membutuhkan waktu yang cukup lama, terlebih jika objek yang diberikan cukup rumit.

Sebenarnya operasi render objek 3D hanya merupakan kumpulan dari beberapa operasi primitif, namun operasi primitif yang dilakukan pada proses render sangatlah banyak. Untuk itu digunakan metode Komputasi Parallel sehingga tiap-tiap operasi primitif yang dilakukan dapat dikerjakan dengan menggunakan algoritma Divide and Conquer agar tiap bagian dari operasi Divide pada perhitungan yang dilakukan dapat dikerjakan oleh masing-masing unit komputasi. Beberapa operasi primitif yang digunakan dalam 3D Rendering adalah operasi penghitungan jarak antara 2 titik,operasi perkalian bilangan bulat yang besar. Tentunya hampir kesemua operasi primitif tersebut dapat dipecahkan dengan menggunakan algoritma Divide and Conquer sehingga menjadikan proses 3D Rendering sangat cocok untuk diselesaikan dengan algoritma Divide and Conquer. Selain itu, perfilman yang mengandalkan spesial efek merupakan salah satu industri yang paling banyak mengandalkan HPC Cluster. Rangkaian film The Lord of the Ring yang akan diputar pada pertengahan Desember ini merupakan salah satu film yang paling banyak mengandalkan digital content creation (DCC) dan menuntut kapasitas pemrosesan yang besar untuk rendering gambar- gambar beresolusi tinggi dalam berbagai format. WETA Digital, sebuah perusahaan animasi dan spesial efek yang bermarkas di Selandia Baru, membangun fasilitas render farm berbasis cluster hingga skalabilitas ribuan prosesor untuk mengerjakan film ini. Jika sekuel Lord of The Ring dikerjakan dengan personal computer (PC) yang tercepat saat ini, dibutuhkan waktu lebih dari 10 tahun untuk menyelesaikan proses rendering. Bagi para artis grafis 3D atau animator, hal yang paling menyita waktu adalah menunggu proses rendering.

Beberapa waktu lalu Pixar, sebuah studio 3D spesial efek membangun HPC Cluster baru berbasis 1.920 prosesor Intel Xeon untuk menggantikan mesin Sun Enterprise Render Server yang dipakai untuk produksi film Monster Inc.Oracle, vendor aplikasi database terkemuka telah mendukung teknologi cluster dengan meluncurkan Oracle 9i.

Berpikir sedikit optimistis, dengan dukungan ini setidaknya kita bisa mengevaluasi ulang kebutuhan kita membeli mainframe yang mahal untuk menjalankan aplikasi enterprise Anda dan menggantikan dengan mesin berbasis HPC Cluster. Dan mungkin, dengan sedikit percaya diri, mesin tersebut dapat merupakan produk rakitan sendiri. Selain dapat menjadi indikasi kegiatan riset dan pencapaian teknologi kepemilikan superkomputer, hal itu juga merupakan masalah prestisius bangsa. Salah satu proyek yang cukup ambisius tahun ini adalah RedGrid, sebuah supercluster RRC yang dibangun oleh Cray dengan prosesor AMD Opteron dan diprediksikan menjadi superkomputer nomor dua tercepat di dunia.

Di negara tetangga seperti Thailand, Malaysia, dan Singapura terdapat banyak sekali proyek HPC Cluster yang dibangun untuk kebutuhan riset dan industri. Bagaimana dengan Indonesia? Mungkin sampai saat ini belum ada satu lembaga penelitian atau universitas pun yang memiliki HPC Cluster. Pertanyaan perlu atau tidak merupakan hal yang relatif dan mengingat bahwa di negara kita hampir tidak ada riset teknologi maju ataupun dasar. Kecenderungan kita adalah membeli sebuah solusi jadi dan bukan know-how, membuat bangsa ini sangatlah sukar untuk maju secara teknis dalam bidang teknologi.

Pemodelan merupakan bagian yang terpenting dalam proses pembuatan gambar 3D dalam komputer. Dari model inilah semuanya bermula. Semakin baik dan presisi proses modeling semakin baik pula kualitas gambar/animasi yang dihasilkan. Pemodelan dapat dilakukan dengan alat bantu seperti digitizer 2D/3D atau scanner 3D maupun dibuat secara manual di komputer. Demi kecepatan dan ketelitian memang akan lebih baik jika kita menggunakan alat bantu, tetapi karena harga perangkat digitizer ini tidak dapat dibilang murah, maka pemodelan secara manual kadang menjadi pilihan yang paling tepat.

Objek-objek sederhana seperti bola, silinder, tube, prisma, kotak, limas, kerucut, dan benda geometris semacam ini biasanya telah disediakan fasilitas pembuatannya dalam program 3D Modelling komersial. Kita cukup menentukan parameter-parameter benda tersebut seperti koordinat pusat, tinggi, lebar, jari-jari, tebal dan lain-lain. Untuk bentuk-bentuk objek yang lebih kompleks, kita coba uraikan dengan maksud mencari kemungkinan pembuatannya dari operasi logika objek-objek geometri sederhana seperti di atas. Misalkan, bentuk barbel beban bulat, bisa dibentuk dari operasi logika ADD antara 2 buah bola dengan sebuah silinder. Bentuk manik kalung mutiara dapat dibuat dari operasi SUB antara objek bola dengan objek silinder. Masih ada lagi jenis logika yang dapat digunakan untuk pembentukan objek misalkan INTERSECTION yakni untuk membentuk objek yang merupakan pepotongan volume 2 buah benda 3 dimensi. Bentuk piring terbang misalnya, dapat dibuat dengan operasi INTERSECTION dari dua buah objek bola besar.

Untuk benda-benda yang lebih kompleks lagi, maka kita mengenal metoda lain yang dalam paket program Autodesk 3D Studio dikenal dengan nama Loftering. Objek 3D dapat dibentuk dengan proses loftering dari objek 2 dimensi yang telah ada. Objek 2D ini dapat dibuat dari bentuk bangun 2D dasar, digambar bebas (freehand), gabungan antara gambar bebas dan bentuk geometri dasar, maupun dibuat melalui persamaan-persamaan matematis. Loftering secara awam dapat diartikan sebagai proses memberikan komponen ketebalan dari objek 2D menurut suatu path yang kita tentukan.

Proses pemberian ketebalan yang paling sederhana contohnya jika kita membuat suatu logo/teks dalam 2D, misalkan logo perusahaan, dan kita menginginkan memberikan ketebalan tertentu, maka dengan program Lofter cukup kita load objek 2D tersebut dan kita beri path garis lurus sepanjang ketebalan yang diinginkan dalam vektor arah ketebalan, lalu kita lakukan proses loftering. Maka jadilah objek 3D yang kita inginkan. Contoh variasi bentuk path lain yang dapat kita terapkan adalah lingkaran (untuk membuat objek putar misalnya pion catur seperti pada gallery), helix (membuat model DNA misalnya), spyline, dan lain-lain. Ini tergantuk kreativitas kita sendiri.

Fasilitas lain yang dapat membantuk kita memodelkan suatu benda adalah fasilitas deformasi, untuk mengisi keterbatasan path sederhana. Contoh deformasi adalah scaling (misalkan kita membuat terompet, maka ukuran irisan lingkaran pada ujung satu tentu akan berbeda dengan di ujung lainnya), beveling (memodifikasi sudut-sudut benda), rotation, leveling (misalkan untuk membuat benda yang ujungnya berupa bujur sangkar dan pangkalnya berbentuk lingkaran/bentuk 2D lainnya), dan lain-lain.

Dari pemodelan ini hasil akhirnya berupa meshes file yang berisikan informasi koordinat-kordinat vertex (titik sudut) suatu objek 3D serta wireframenya (rangka kawat yang menghubungkan antar titik sudut). Representasi objek dalam tahap ini masih berupa kerangka objek tersebut.

Objek 3D yang telah ada harus didefinisikan kembali propertiesnya, misalkan material penyusun objek itu (kadang-kadang berarti juga kita harus membuat materialnya), mapping/pemetaan ukuran pola material (misalkan material ubin marmer, maka harus kita definisikan berapa besar ubin marmer relatif terhadap objek yang akan diset dengan material tersebut). Material selain berisi pola material (optional), mencakup juga sifat-sifat transparansi, pemantulan cahaya, efek cermin, warna, sifat pendar, dan lain-lain.

Setelah objek kita berikan sifat-sifatnya, maka lingkungan objek juga harus didefinisikan. Pertama kita harus menentukan sifat lingkungan (berkabut tidaknya, sifat penyerapan cahaya oleh lingkungan), kemudian latar belakang lingkungan juga kita harus set yang dapat berupa warna/gradasi warna maupun berupa gambar. Pencahayaan menjadi hal yang penting juga karena merupakan komponen yang dijadikan dasar dalam melakukan rendering. Pencahayaan umumnya meliputi 3 jenis:

· Cahaya Lingkungan
· Cahaya Lampu Penerang
· Cahaya Lamput Sorot

Dari sini juga kita tentukan apakah kita gunakan efek bayangan atau pun tidak. Lampu-lampu yang dipasang juga harus kita perhatikan letak, arah sorot dan lebar sorot(untuk lampu sorot), warna dan terangnya lampu. Yang terakhir kita perlu juga untuk menentukan sudut pandang kita terhadap objek yang kita buat. Untuk ini kita perlu meletakkan kamera yang kita gunakan untuk melihat. Properties dari kamera ini meliputi letak, arah sorot, ukuran lensa, dan lain-lain. Pandangan kamera ini yang akan kita gunakan untuk merepresentasikan objek dalam hasil rendering.

Untuk mendapatkan hasil rendering yang berupa file animasi (gambar bergerak) maka kita perlu menentukan pergerakan 3 unsur pembentuk gambar 3D yakni objek, lampu, dan kamera.Gambar bergerak/animasi sebenarnya adalah kumpulan gambar-gambar diam yang ditampilkan secara sekuensial dalam kecepatan tertentu (misalkan 25 gambar per menit). Untuk mendapatkan kumpulan gambar-gambar itu, maka kita mendefinisikan dulu berapa gambar yang ingin kita buat. Untuk kecepatan gambar yang normal (dengan tidak mengorbankan kemulusan gerak) biasanya berkisar 30 gambar per detik. Jadi jika kita membuat animasi sepanjang 5 detik paling tidak dibutuhkan 150 gambar.

Posisi ketiga unsur pembentuk gambar 3D di atas pada setiap gambarnya (lebih sering kita sebut frame) secara sederhana ditentukan dengan mengeset posisi awal dan posisi akhir ketiga unsur tersebut dalam setiap range urutan gambar. Frame yang menjadi acuan baik posisi awal dan posisi akhir 3 unsur di atas sering dinamakan dengan keyframe.

Dengan didefinisikannya seluruh gerak dari 3 unsur di atas, maka sampailah kita pada langkah terakhir yang membutuhkan kerja keras perangkat lunak dan perangkat keras komputer. Pada proses ini komputer akan menerjemahkan pixel per pixel yang merepresentasikan proyeksi/pandangan dari dunia 3 dimensi yang telah kita buat menjadi sebuah gambar bitmap utuh dengan ukuran dan resolusi yang kita tentukan. Ada banyak metoda rendering yang menentukan bagaimana representasi ketiga komponen tersebut pada pixel gambar, misalnya wireframe, flat, gourad, phong, metalic, dan lain-lain yang akan kita bahas secara lebih detail pada artikel terpisah.

Untuk rendering gambar diam, hanya dibutuhkan rendering 1 frame saja, sementara untuk gambar bergerak, kita mestilah lebih sabar, karena komputer harus melakukan rendering untuk seluruh gambar/frame yang kita telah tentukan.

Terdapat banyak hasil yang dapat diperoleh dan ditampilkan dari proses 3D Rendering pada suatu sketsa wireframe, diantaranya :

1. Shading ; “Variasi warna dan kecerahan yang timbul pada suatu permukaan berdasarkan pencahayaan yang dilakukan”
2. Texture-Mapping ; “Detail yang muncul pada suatu permukaan”
3. Bump-Mapping ; “Kontur yang muncul pada suatu permukaan”
4. Fogging / Participating Medium ; “Bagaimana berkas cahaya berubah jika melewati udara yang tidak murni”
5. Shadows ; “Efek dari cahaya yang terhalang”
6. Soft Shadows ; “Variasi efek dari cahaya yang terhalang tidak sempurna”
7. Reflection ; “Refleksi yang tampak pada permukaan kaca atau gelas”
8. Transparency ; “Transmisi cahaya yang berbeda-beda jika melewati medium tertentu”
9. Translucency ; “Transmisi cahaya yang berbeda-beda jika memantul pada medium tertentu”
10. Refraction ; “Cahaya yang berubah arahnya karena efek transparency”
11. Indirect Illumination ; “Cahaya yang datang pada suatu objek namun tidak berasal dari sumber cahaya yang sebenarnya melainkan refleksi dari permukaan objek lain”
12. Caustics ; “Pantulan cahaya menyilaukan yang timbul pada suatu objek”
13. Depth Of Field ; “Objek yang berada jauh di depan maupun di belakang objek yang menjadi fokus akan tampak buram”
14. Motion Blur ; “Objek yang bergerak dengan kecepatan tinggi atau objek yang direkam oleh kamera yang berada dalam kecepatan tinggi akan tampak buram”
15. Photorealistic Morphing ; “Teknik yang memungkinkan hasil proses render objek 3D menjadi tampak terlihat lebih nyata”
16. Non-Photorealistic Rendering ; “Teknik yang memungkinkan hasil proses render objek 3D menjadi terlihat seperti hasil lukisan atau gambar”

Melakukan 3D Rendering tentu akan merupakan masalah yang sangat merepotkan jika tidak menggunakan algoritma memadai, dikarenakan banyaknya point dan polygon yang harus dikalkulasi setiap proses. Penggunaan algoritma Divide and Conquer tentu sangat membantu agar pekerjaan penghitungan yang sangat banyak dalam proses render dapat dikerjakan oleh beberapa unit komputasi sekaligus secara bersamaan. Hal ini juga telah dibuktikan dengan banyaknya perusahaan animasi dan film yang sering melakukan pekerjaan proses render menggunaan sistem komputasi paralel di dalam perusahaan mereka.


Referensi

Referensi 1
Referensi 2
Referensi 3
Referensi 4

Minggu, 07 April 2013

Komputasi Modern

Komputasi modern mungkin merupakan kalimat yang jarang terdengar di telinga masyarakat Indonesia pada umumnya. Komputasi modern pengertian nya adalah cara untuk menemukan pemecahan masalah/solusi dari data input dengan menggunakan suatu algoritma tertentu. Komputasi merupakan suatu sub-bidang dari ilmu komputer dan matematika.
Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Sebenarnya sudah lama komputasi modern ini di cetuskan dan tokoh di balik semua ini yaitu John Von Neumann, Beliau merupakan ilmuan besar saat ini. Beliaulah yang pertama kali menggagaskan konsep sebuah sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory dan dikenal sebagai arsitektur komputer modern.

Komputasi modern digunakan untuk memecahkan suatu masalah yang ada, perhitungan komputasi modern yaitu seperti :
Akurasi (bit, floating point)
Kecepatan (dalam satuan Hertz – Hz.)
Problem volume besar (paralel)
Modeling (NN dan GA), dan
Kompleksitas (menggunakan Teori Bog O)

Seiring dengan terus berkembangnya komputasi, tentunya akan berpengaruh terhadap penggunaan hardware dan software yang digunakan untuk komputasi tersebut. Sehingga hal ini membuat adanya sebuah evolusi mesin yang digunakan untuk pemrosesan tersebut.

Sejarah komputasi modern

Sejarah komputer modern dimulai dengan dua teknologi yang terpisah, perhitungan otomatis dan dapat diprogram, tetapi tidak ada satu perangkat pun yang dapat dikatakan sebagai komputer, karena sebagian penerapan yang tidak konsisten terhadap istilah tersebut.
Salah satu tokoh yang paling berpengaruh terhadap perkembangan komputasi modern adalah John Von Neumann (1903-1957). John Von Neumann adalah salah satu ahli matematika terbesar abad ini. Beliaulah yang pertama kali menggagas konsep sebuah sistem yang menerima instruksi-instruksi dan menyimpannya dalam sebuah memori. Konsep inilah yang menjadi dasar arsitektur komputer hingga saat ini.
Sejarah dari komputasi modern sangat lah panjang perjalannya. Dari seorang John Von Neumann komputasi modern tersebut bisa berkembang sampai saat ini yang kita kenal dan kita tahu. Dari ilmu komputasi dan dikembangkan menjadi komputasi yang modern dengan menggunakan komputer yaitu Komputasi Modern.

Jenis-Jenis Komputasi Modern

1. Mobile computing
Mobile computing atau komputasi bergerak memiliki beberapa penjelasan, salah satunya komputasi bergerak merupakan kemajuan teknologi komputer sehingga dapat berkomunikasi menggunakan jaringan tanpa menggunakan kabel dan mudah dibawa atau berpindah tempat, tetapi berbeda dengan komputasi nirkabel. Contoh dari perangkat komputasi bergerak seperti GPS, juga tipe dari komputasi bergerak seperti smart phone, dan lain sebagainya.

2. Grid computing
Komputasi grid menggunakan komputer yang terpisah oleh geografis, didistibusikan oleh jaringan untuk menyelasaikan masalah komputasi skala besar. Ada beberapa daftar yang dapat dugunakan untuk mengenali sistem komputasi grid, adalah :
· Sistem untuk koordinat sumber daya komputasi tidak dibawah kendali pusat.
· Sistem menggunakan standard dan protocol yang terbuka.
· Sistem mencoba mencapai kualitas pelayanan yang canggih, yang lebih baik diatas kualitas komponen individu pelayanan komputasi grid.

3. Cloud computing
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 dari keterukuran dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet.
Adapun perbedaan antara komputasi mobile, komputasi grid dan komputasi cloud, dapat dilihat penjelasannya dibawah ini :
· Komputasi mobile menggunakan teknologi komputer yang bekerja seperti handphone, sedangkan komputasi grid dan cloud menggunakan komputer.
· Biaya untuk tenaga komputasi mobile lebih mahal dibandingkan dengan komputasi grid dan cloud.
· Komputasi mobile tidak membutuhkan tempat dan mudah dibawa kemana-mana, sedangkan grid dan cloud membutuhkan tempat yang khusus.
· Untuk komputasi mobile proses tergantung si pengguna, komputasi grid proses tergantung pengguna mendapatkan server atau tidak, dan komputasi cloud prosesnya membutuhkan jaringan internet sebagai penghubungnya.

Referensi :
sumber 1
sumber 2
sumber 3
sumber 4
sumber 5
sumber 6