Monday, March 19, 2012

BioInformatika

 Bioinformatika adalah kajian ilmu yang memadukan disiplin biologi molekul, matematika dan teknik informasi (TI). Ilmu ini didefinisikan sebagai aplikasi dari alat komputasi dan analisa untuk menangkap dan menginterpretasikan data-data biologi molekul. Pada saat ini, Bioinformatika ini mempunyai peranan yang sangat penting, diantaranya adalah untuk manajemen data-data biologi molekul, terutama sekuen DNA dan informasi genetika


Bidang-bidang yang terkait dengan bioinformatika, yaitu:

1.Bioinformatika dalam Bidang Klinis

Bioinformatika dalam bidang klinis sering disebut sebagai informatika klinis (clinical informatics). Aplikasi dari informatika klinis ini berbentuk manajemen data-data klinis dari pasien melalui Electrical Medical Record (EMR) yang dikembangkan oleh Clement J. McDonald dari Indiana University School of Medicine pada tahun 1972.

2.Bioinformatika untuk Identifikasi Agent Penyakit Baru

Bioinformatika juga menyediakan tool yang sangat penting untuk identifikasi agent penyakit yang belum dikenal penyebabnya. Banyak sekali penyakit baru yang muncul dalam dekade ini, dan diantaranya yang masih hangat adalah SARS (Severe  Acute Respiratory Syndrome).

3.Bioinformatika untuk Penemuan Obat

Cara yang digunakan pada contoh ini adalah dengan menganalisa struktur dan fungsi enzim-enzim yang diperlukan untuk perkembangbiakan suatu agent dimana agent tersebut adalah penyebab dari suatu penyakit. Kemudian mencari atau mensintesa zat/senyawa yang dapat menekan fungsi dari enzim-enzim tersebut.


Paralel Processing


Sekilas tentang Komputasi 

Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Hal ini biasa disebut dengan teori komputasi, suatu sub-bidang dari ilmu komputer dan matematika. Sebelum mengenal  computer,biasanya orang melakukan perhitungan menggunakan pena dan kertas, ataupun kapur
Pada Zaman dahulu,orang belum mengenal komputer sehingga perhitungan dan komputasi  dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan komputer.


Sekilas tentang Parallel Processing

Parallel Processing atau lebih dikenal dengan Pemrosesan Parallel adalah penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Jadi dapat dibayangkan bagaimana hasil kerjaan kita jika menggunaan pemrosessan parallel. Sudah pasti kerjaan tersebut cepat terselesaikan karena CPU yang bekerjapun banyak. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek, seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbeda-beda tanpa berkaitan di antaranya. Sebagian besar komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih dari satu. Bahkan juga ada komputer dengan ribuan CPU.Berarti parallel processing ini membuat program berjalan lebih cepat karena CPU yang digunakan semakin banyak. Tetapi kenyataannya, pada saat dilakukan pemrosesan parallel, program sering kali sulit dibagi sehingga dapat dieksekusi oleh CPU yang berbeda-beda tanpa adanya saling keterkaitan antara satu dan yang lainnya.

 

Hubungan antara Komputasi dengan paralel processing

Pada artikel sebelumnya kita telah memahami apa itu komputasi modern. Kali ini saya akan mengulas lebih lanjut mengenai kinerja komputasi tersebut dengan parallel processing. Terlebih dahulu kita mengerti konsep dari pemrosesan paralel (parallel processing), yaitu penggunaan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin banyak CPU yang digunakan.
Sedangkan komputasi paralel adalah salah satu teknik untuk melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan proses komputasi yang banyak. 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 satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
Komputasi Paralel merupakan salah satu teknologi paling menarik sejak ditemukannya komputer pada tahun 1940-an. Terobosan dalam pemorosesan parallel selalu berkembang dan mendapatkan tempat disamping teknologi-teknologi lainnya sejak Era Kebangkitan (1950-an), Era Mainframe (1960-an), Era Minis (1970-an), Era PC (1980-an), dan Era Komputer Paralel (1990-an). Dengan berbagai pengaruh atas perkembangan teknologi lainnya, dan bagaimana teknologi ini mengubah persepsi terhadap komputer, dapat dimengerti betapa pentingnya komputasi parallel itu.
Inti dari komputasi parallel yaitu hardware, software, dan aplikasinya. Paralel prosesing merupakan suatu pemrosesan informasi yang lebih mendekatkan pada manipulasi rata-rata dari elemen data terhadap satu atau lebih penyelesaian proses dari sebuah masalah. Dengan kata lain komputasi parallel adalah komputer dengan banyak processor dapat melakukan parallel processing dengan cara membagi-bagi proses ke source-source yang dimiliki.
Paradigma pemrosesan parallel bergantung pada model SIMD (single instruction multiple data), dan paradigma functional dataflow yang memperkenalkan konsep model MIMD (Multiple Instrution Multiple Data). Suatu program parallel memerlukan koordinasi ketika sebuah tugas bergantung pada tugas lainnya. Ada dua macam bentuk koordinasi pada komputer parallel : asynchronous dan synchronous. Bentuk synchronous merupakan koordinasi pada hardware yang memaksa semua tugas agar dilaksanakan pada waktu yang bersamaan dengan mengesampingkan adanya ketergantungan tugas yang satu dengan yang lainnya. Sementara bentuk asynchronous mengandalkan mekanisme pengunci untuk mengkoordinasikan processor tanpa harus berjalan bersamaan.
Kesimpulan :
Banyak perkembangan-perkembangan baru dalam arsitektur komputer yang didasarkan pada konsep pemrosesan paralel. Pemrosesan paralel dalam sebuah komputer dapat didefinisikan sebagai pelaksanaan instruksi-instruksi secara bersamaan waktunya. Hal ini dapat menyebabkan pelaksanaan kejadian-kejadian dalam interval waktu yang sama, dalam waktu yang bersamaan atau dalam rentang waktu yang saling tumpang tindih.
Sekalipun didukung oleh teknologi prosesor yang berkembang sangat pesat, komputer sekuensial tetap akan mengalami keterbatasan dalam hal kecepatan pemrosesannya. Hal ini menyebabkan lahirnya konsep keparalelan (parallelism) untuk menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang sangat tinggi, seperti misalnya prakiraan cuaca, simulasi pada reaksi kimia, perhitungan aerodinamika dan lain-lain. Konsep keparalelan itu sendiri dapat ditinjau dari aspek design mesin paralel, perkembangan bahasa pemrograman paralel atau dari aspek pembangunan dan analisis algoritma paralel. Algoritma paralel itu sendiri lebih banyak difokuskan kepada algoritma untuk menyelesaikan masalah numerik, karena masalah numerik merupakan salah satu masalah yang memerlukan kecepatan komputasi yang sangat tinggi.

 

 

Sunday, March 18, 2012

Open System Interconnection

OSI sendiri merupakan singkatan dari Open System Interconnection di mana osi ini merupakan sebuah modul arsitektur jaringan  yang dikembangkan oleh badan International Organization for Standardization (ISO) di Eropa pada tahun 1977. 
Ada 7 lapisan osi yang di antaranya yaitu :
 1. Physical layer
Berfungsi untuk mendefinisikan media transmisi jaringan, metode pensinyalan, sinkronisasi bit, arsitektur jaringan (seperti halnya Ethernet atau Token Ring), topologi jaringan dan pengabelan. Selain itu, level ini juga mendefinisikan bagaimana Network Interface Card (NIC) dapat berinteraksi dengan media kabel atau radio

2.Data-link layer
 Befungsi untuk menentukan bagaimana bit-bit data dikelompokkan menjadi format yang disebut sebagai frame. Selain itu, pada level ini terjadi koreksi kesalahan, flow control, pengalamatan perangkat keras (seperti halnya Media Access Control Address (MAC Address)), dan menetukan bagaimana perangkat-perangkat jaringan seperti hub, bridge, repeater, dan switch layer 2 beroperasi. Spesifikasi IEEE 802, membagi level ini menjadi dua level anak, yaitu lapisan Logical Link Control (LLC) dan lapisan Media Access Control (MAC).

3.Network layer
Berfungsi untuk mendefinisikan alamat-alamat IP, membuat header untuk paket-paket, dan kemudian melakukan routing melalui internetworking dengan menggunakan router dan switch layer-3. 

4.Transport layer
Berfungsi untuk memecah data ke dalam paket-paket data serta memberikan nomor urut ke paket-paket tersebut sehingga dapat disusun kembali pada sisi tujuan setelah diterima. Selain itu, pada level ini juga membuat sebuah tanda bahwa paket diterima dengan sukses (acknowledgement), dan mentransmisikan ulang terhadp paket-paket yang hilang di tengah jalan.

5. Session layer
Berfungsi untuk mendefinisikan bagaimana koneksi dapat dibuat, dipelihara, atau dihancurkan. Selain itu, di level ini juga dilakukan resolusi nama.

6. Presentation layer
 Berfungsi untuk mentranslasikan data yang hendak ditransmisikan oleh aplikasi ke dalam format yang dapat ditransmisikan melalui jaringan. Protokol yang berada dalam level ini adalah perangkat lunak redirektor (redirector software), seperti layanan Workstation (dalam Windows NT) dan juga Network shell (semacam Virtual Network Computing (VNC) atau Remote Desktop Protocol (RDP)).

7.  Application layer
Berfungsi sebagai antarmuka dengan aplikasi dengan fungsionalitas jaringan, mengatur bagaimana aplikasi dapat mengakses jaringan, dan kemudian membuat pesan-pesan kesalahan. Protokol yang berada dalam lapisan ini adalah HTTP, FTP, SMTP, dan NFS. 


Di bawah ini merupakan gambar model OSI  
 




sumber :

Wednesday, March 14, 2012

Komputasi Modern

Setelah saya berjalan dan menelusuri dari beberapa blog yang ada,dapat  saya simpulkan bahwa pengertian dari KOMPUTASI MODERN adalah suatu cara untuk menyelesaikan suatu masalah matematis dengan menggunakan suatu teknologi yang kita sebut computer  dengan cara menyusun algoritma yang dapat di mengerti oleh komputer sehingga dapat memudahkan suatu penyelesaian masalah manusia. So…dengan adanya komputasi modern maka manusia lebih mudah menyelesaikan suatu persoalan-persoalan yang ada dengan bantuan komputer.

Sejarah Singkat komputasi  modern
Alan Turing secara luas dianggap sebagai bapak ilmu komputer modern. pada tahun 1936 turing memberikan formalisasi berpengaruh tentang  konsep algoritma dan perhitungan dengan mesin turing. dari perannya dalam komputer modern, dya adalah salah satu dari 100 orang paling berpengaruh dari abad ke-20, dan dia menyatakan: “kenyataan tetap bahwa setiap orang yang kerandi keyboard, membuka spreadsheet atau program pengolah kata, adalah bekerja pada inkarnasi dari mesin turing. “
Secara internasional ,Goerge di akui sebagai ayah dari computer  digital modern. Pada  November  1937 dia berkerja  di sebuah perusahaan bel dimana ia menciptakan dan membangun sebuah relay berbasis kalkulator  sehingga ia di juluki dengan “Model K” . Dia adalah orang pertama yang menggunakan sirkuit biner untuk melakukan operasi aritmatika.Kemudian ia menambahkan kecanggihan yang lebih besar termasuk aritmatika dan kemampuan pemrograman kompleks.
Von Neumann  (Budapest,Hungaria  28 desember 1903)
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.
Von Neumann sangat tertarik pada hidrodinamika dan kesulitan penyelesaian persamaan diferensial parsial nonlinier yang digunakan, Von Neumann kemudian beralih dalam bidang komputasi. Von Neumann menjadi seorang konsultan pada pengembangan komputer ENIAC, dia merancang konsep arsitektur komputer yang masih dipakai sampai sekarang. Arsitektur Von Nuemann adalah seperangkat komputer dengan program yang tersimpan (program dan data disimpan pada memori) dengan pengendali pusat, I/O, dan memori.



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.
Dan berdasarkan penjelasan tersebut, untuk kemajuan teknologi ke arah yang lebih dinamis membutuhkan perubahan dari sisi manusia maupun alat. Dapat dilihat 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 dan terhubung 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.
Dampak dari adanya komputasi modern ialah semakin mempermudah manusia dalam menyelesaikan masalah-masalah perhitungan yang sangat kompleks dengan menggunakan komputer dan juga merupakan sebuah pengembangan dari sistem yang ada yang terus di perbarui hingga sekarang.
Sumber :

Monday, March 12, 2012

karakteristik sistem terdistribusi

Untuk membangun suatu sistem yang terdistribusi, hal-hal yang harus kita perhatikan adalah :
Transparency (kejelasan)
Access transparency : Sumber daya lokal dan remote di akses dengan menggunakan operasi yang sama.
 Location transparency : Pengguna sistem tidak mengetahui keberadaan hardware dan software (CPU, file dan data).
Migration (Mobility) transparency : Sumber daya (baik berupa Hardware dan/atau software) dapat bebas berpindah tanpa mengubah sistem penamaan.
Replication transparency : Sistem bebas untuk menambah  sumber daya tanpa diketahui oleh user (dalam rangkan meningkatkan kinerja)
Concurency transparency : User tidak akan mengetahui keberadaan user lain dalam sistem, walaupun user tersebut menggunakan sumber daya yang sama.
Failure transparency : Aplikasi harus dapat menyelesaikan proses nya walaupun terdapat kegagalan
pada beberapa pada komponen sistem.
Performance transparency : Beban kerja yang bervariasi tidak akan menyebabkan turunnya kinerja sistem, hal ini dapat di capai dengan melakukan automatisasi konfigurasi terhadap perubahan beban.
Communication (komunikasi)
Komponen2 pada sistem terdistribusi harus melakukan komunikasi dalam suatu urutan. Sebagai berikut :
- Infrastruktur jaringan (interkoneksi dan software jaringan)
- Metode dan Model komunikasi yang cocok
Metode komunikasi :
 Send
Receive
Remote Procedure Call
Model Komunikasi
- client – server communication : pertukaran pesan antara dua proses : dimana satu proses (client) menggunakan / meminta layanan pada server dan server menyediakan hasil dari proses tersebut.
- groupmulitcast : target dari pesan yang dikirimkan adalah gabungan dari proses, yang berasal dari suatu grup.

Performance & scalability (kinerja & ruang lingkup)
Ada beberapa faktor yang mempengaruhi kinerja (performance) dari pada sistem terdistribusi :
- Kinerja dari pada personal workstations
- Kecepatan infrastruktur komunikasi
- Fleksibilitas dalam membagi beban kerja : contoh, apabila terdapat prosesor (workstation) yang idle maka dapat dialokasikan secara otomatis untuk mengerjakan tugas – tugas user.
- Scalability : Sistem tetap harus memperhatikan efesiensi walaupun terdapat penambahan
secara signifikan user atau sumber daya yang terhubung :
- Cost (biaya) penambahan sumber daya (resources) harus reasonable.
- Penurunan kinerja (performance) diakibatkan oleh penambahan user atau sumber daya harus terkontrol.

Heteroginity (keanekaragaman)
Aplikasi yang terdistribusi biasa berjalan dalam keberagaman :
- Hardware : mainframes, workstations, PC’s, server dll.
- Software : UNIX, MS Windows, IMB OS/2, LINUX dll.
- Devices : teller machine, robot, sistem manufacturing dll.
- Network dan Protocol : Ethernet, FDDI, ATM, TCP/IP dll

Openess (keterbukaan)
Salah satu hal terpenting yang harus dimiliki oleh sistem terdistribusi adalah opennes (keterbukaan) dan flexibility (fleksibilitas) :
- Setiap layanan (services) harus dapat di akses oleh semua user.
- Mudah dalam implementasi, install dan debug services;
- User dapat membuat dan menginstall service yang telah dibuat oleh si user tersebut.
Aspek kunci pada opennes :
- Interface dan Protocol yang standard (seperti protokol komunikasi di internet)
- Support terhadap keanekaragaman. ( denganmembuatmidleware seperti CORBA)

Reliability & fault Tolerancy (kehandalan & toleransi kegagalan)
Salah satu tujuan dalam membangun sistem terdistribusi adalah memungkinkan untuk melakukan improvisasi terhadap kehandalan sistem.
Availability : kalau mesin mati (down), sistem tetap harus berjalan dengan jumlah layananan yang tersisa.
- Dalam sistem terdistribusi componen yang sangat vital (critical resources) berjumlah se minimal mungkin. Yang dimaksud dengan critical resources adalah komponen yang harus ada untuk menjalankan sistem terdistribusi.
- Masing – masing Software dan Hardware harus di replikasi : kalau terjadi kegagalan / error maka yang lain akan menangani.
Data dalam sistem tidak boleh hilang, copy dari file tersebut disimpan pada secara redundan pada server lain, tapi tetap harus dijaga konsistensi datanya.
Fault Tolerance : Sistemharus bisa mendeteksi kegagalan dan melakukan tindakan dengan dasar sebagai berikut :
- Mask the fault (menutupi kegagalan) : tugas harus dapat dilanjutkan dengan menurunkan kinerja tapi tanpa terjadi kehilangan data atau informasi.
- Fail Gracefully : membuat suatu antisipasi terhadap suatu kegagalan ke suatu prosedur yang telah di rencanakan dan memungkinkan untuk menghentikan proses dalam waktu yang singkat tanpa menghilangkan informasi atau data.

 Security ( keamanan)
- Confidentiality : keamanan terhadap data yang di akses oleh user yang tidak di perbolehkan (unauthorizes user)
- Integrity : keamanan terhadap kelengkapan dan autentikasi data.
- Availability : Menjaga agar resource dapat selalu di akses.
Sistem terdistribusi harus memperbolehkan komunikasi antara program/user/resources pada computer yang berbeda, maka resiko keamanan akan muncul apabila memberlakukan free access.
Dan ada hal lain juga yang harus dijamin dalam sistem terdistribusi, yaitu : penggunaan rerources yang tepat oleh user yang berlainan.

sumber :
http://www.scribd.com/doc/39508595/7/Karakteristik-Sistem-Terdistribusi