Sabtu, 05 Mei 2012

Pembuatan Aplikasi Android 'Menghitung Masa Subur Wanita'

Aplikasi Menghitung Masa Subur Wanita ini merupakan suatu aplikasi sederhana yang digunakan untuk melakukan perhitungan kapan waktu masa subur seorang wanita dalam satu kali siklus menstruasi.
Aplikasi ini saya buat sebagai bahan Penulisan Ilmiah untuk mendapatkan gelar D3 yang sudah saya selesaikan pada tahun lalu.
Aplikasi ini didalamnya memiliki dua buah menu utama. Tampilan menu pertama berisikan rumus Siklus Haid Normal menggunakan sistem kalender dengan rumus yang sudah ada dan ditentukan sebelumnya sedangkan tampilan menu yang kedua adalah dengan menggunakan rumus Ogino Knouss untuk Siklus Haid Tidak Teratur. Untuk menu kedua ini memerlukan jangka waktu yang lumayan lama karena diperlukan data siklus minimal 6 bulan sampai satu tahun. Dicari siklus terpendek berapa hari dan siklus terpanjang berapa hari. Maksudnya adalah sang wanita/istri harus mengamati masa menstruasinya selama 6 bulan terakhir dan selama masa itu dia harus menghitung berapa hari jangka waktu terpendek menstruasi hingga jangka waktu terpanjang menstruasi, diambil menurut berbagai sumber bahwa siklus wanita normal berlangsung antara 28-30 hari ada pula ahli yang berpendapat antara 22-35 hari bahkan lebih.
Gambaran umum yang ada di dalam aplikasi ini dijelaskan melalui struktur navigasi yang berfungsi untuk menceritakan struktur atau alur cerita dari suatu program dan struktur navigasi tersebut dapat di lihat pada gambar di bawah ini.
___________









Berikut adalah tampilan yang dirancang untuk bagian menu aplikasi.
Rancangan Tampilan Halaman Utama
_


________







Gambar di atas merupakan rancangan menu awal untuk aplikasi Menghitung Masa Subur Wanita dimana pada tampilan menu utama ini terdapat empat images_button yang disediakan yaitu Siklus Haid Normal, Siklus Haid tidak Teratur, Info dan Keluar.

Rancangan Tampilan Halaman Siklus Haid Normal
___
_








Pada gambar di atas merupakan rancangan halaman siklus haid normal dimana pada layar ini berisi proses penginputan tanggal kemudian perhitungan dan hasil perhitungan. Pada halaman ini terdapat textview, edittext dan dua images_button.
Rancangan Tampilan Halaman Siklus Haid Tidak Teratur_____











Pada gambar di atas merupakan rancangan halaman siklus haid tidak teratur dimana pada layar ini berisi beberapa textview, edittext dan images_button. Untuk penginputan siklus terpendek dan terpanjang haid menggunakan edittext sedangkan untuk tombol melihat hasil dan tombol kembali ke halaman utama menggunakan images_button.

Rancangan Tampilan Halaman Info
___












Pada gambar di atas adalah rancangan halaman info yang berisi tentang keterangan – keterangan mulai dari cara penggunaan, fungsi dan tujuan dari aplikasi, serta identitas dari pembuat aplikasi ini. Untuk layar tentang dibuat dengan sederhana yaitu hanya dengan textview dan satu buah images_button yang berfungsi untuk kembali ke halaman menu utama.
Untuk pembuatan program marilah kita bahas sedikit di bawah ini
Pembuatan Kode Program
Pada tahapan ini akan dijelaskan tentang pembuatan kode program aplikasi Menghitung Masa Subur Wanita secara garis besar dengan menggunakan program Eclipse Galileo yang didalamnya sudah terinstal Android SDK dan ADT yang dimulai dari pengkodean menu utama, menu Siklus Haid Normal, dan tampilan Info.

Pembuatan Menu Utama
Pada pemrograman Android untuk pembuatan program dan tampilan dilakukan pada dua bagian yang berbeda. Untuk pembuatan tampilan layout dilakukan seluruhnya pada file XML. Pada bagian rancangan menu utama ini terbagi atas 2 bagian, yaitu tombol dan background. Untuk membuat tombol dipergunakan file menu.xml yang terdapat pada folder layout. Lalu kode yang digunakan adalah sebagai berikut :
android:id="@+id/button_men"
android:layout_width="60px"
android:layout_height="60px"
android:src="@drawable/cincin"
android:layout_x="41dip"
android:layout_y="122dip">


Pada penggalan kode di atas menandakan bahwa pada @+id akan membuat sebuah identifier dengan nama button_men.
Setelah melakukan pengkodean pada file xml, saatnya mendefinisikan view pada kelas menu untuk menggunakan layout yang ada pada file menu.xml. Penggalan kode programnya sebagai berikut.
setContentView(R.layout.menu);

Dari kode di atas bahwa kelas menu diatur layout-nya berdasarkan file menu.xml yang ada di dalam folder res/layout. Berikut output dari beberapa kode di atas
_


Tombol Siklus Haid Normal
Sedangkan untuk pengaturan penampilan, posisi dan background dari menu utama terdapat pada kode berikut :
android:layout_height="match_parent" android:layout_width="wrap_content" android:background="@drawable/android1">

Secara garis besar penggalan kode di atas akan mengambil gambar dari folder drawable dengan nama android1 lalu dipasang sebagai background.
Satu hal yang tidak boleh terlupakan adalah bahwa setiap aktifitas atau service yang dibuat harus didefinisikan di dalam file AndroidManifest.xml dan penggalan kode program tersebut adalah sebagai berikut :
android:label="@string/app_name">




Kode di atas mendefinisikan aktivitas dengan nama menu pada file yang bertujuan untuk mengenalkan kepada Android bahwa ada aktifitas menu. Hal ini dapat dilihat ketika pengguna mengklik button Siklus Haid Normal maka aplikasi Menghitung Masa Subur Wanita akan dapat mengenali aktifitas selanjutnya dan menjalankannya. Lalu gaya tema yang digunakan adalah fullscreen.



Pada penggalan kode di atas akan mendefinisikan aktifitas Siklus Haid Normal sehingga ketika pengguna menekan tombol Siklus Haid Normal, maka Android dapat mengenali aktivitas tersebut dan manjalankannya.

Pembuatan Tampilan Siklus Haid Normal
Pada bagian rancangan halaman Siklus Haid Normal aplikasi Menghitung Masa Subur Wanita ini membutuhkan file class java dan file xml. Untuk pembuatannya dipergunakan file kalkulasi.xml dan potongan listing xml-nya adalah sebagai berikut :


xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="match_parent"
android:background="@drawable/android1">
android:id="@+id/label1"
android:text="Masukan Tanggal Menstruasi"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content>
android:id="@+id/edTanggal"
android:text=""
android:layout_width="50px"
android:layout_gravity="center_horizontal"
android:inputType="numberSigned|numberDecimal" android:layout_height="wrap_content">




Pada penggalan kode di atas dijelaskan tentang pembuatan tombol, text dan background yang ada di dalam tampilan Siklus Haid Normal dibuat menggunakan textview dan button.
Seperti yang sudah dijelaskan pada pembuatan program sebelumnya yaitu dengan pembuatan class java yang dilakukan dengan cara pengkodean pada class java. Pengkodean yang dilakukan adalah pada file men.java dan berikut adalah penggalan kode tersebut:
package com.mens;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Men extends Activity{
private EditText edTanggal;
private Button btnKalkulasi;
private Button btnKembali;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.kalkulasi);
edTanggal = (EditText) findViewById(R.id.edTanggal);
btnKalkulasi = (Button) findViewById(R.id.btnKalkulasi);
btnKembali = (Button) findViewById(R.id.btnKembali);
}
public void doKalkulasi(View view){
int Tanggal = Integer.parseInt(edTanggal.getText().toString());
String rt = "1";
String st = " 9";
int rutin = (int)(Tanggal + 10);
int rutin1 = (int)(Tanggal + 10 - 31);
int rutin2 = (int) (Tanggal + 18);
int rutin3 = (int) (Tanggal + 18 - 31);
{
if (rutin >= 32)
{
rt = " "+rutin1+"";
st = " "+rutin3+"";
}
if (rutin < 32)
{
rt = " "+rutin+"";
st = " "+rutin2+"";
}
}
Toast.makeText(this, "Masa subur anda adalah antara tanggal" + rt + " sampai tanggal" + st, Toast.LENGTH_LONG).show();
}
public void BackMainMenu(View view){
finish();
}
}

Setiap listing java ini akan berhubungan dengan layout xml yang sama dengan nama file class java dengan file xml-nya dan jika pengguna akan memilih button Kembali maka aktifitas di setiap tampilan ini akan di tutup dan balik ke Halaman awal dan jika mau keluar maka di tampilan awal ini tinggal di pilih button Keluar.

Pembuatan Activity Pada Android Manifest
Untuk dapat mengaktifkan class-class baru yang telah dibuat, buat aktifitinya pada AndroidManifest.xml. Urutkan activity berdasarkan urutan tampilan.
Implementasi
Setelah proses kompilasi berhasil dan melihat hasilnya pada emulator Android, saatnya mengimplementasikan aplikasi Menghitung Masa Subur Wanita pada ponsel Android.

Berikut adalah gambaran aplikasi yang telah jadi.
___

Rabu, 18 April 2012

Konsep Dasar Nama Service


Name Service dalam Sistem Terdistribusi merupakan layanan penamaan yang berfungsi untuk menyimpan naming context, yakni kumpulan binding nama dengan objek, tugasnya untuk me-resolve nama.

Pengaksesan resource pada sistem terdistribusi yang memerlukan:
- Nama resource (untuk pemanggilan),
- Alamat (lokasi resource tsb),
- Rute (bagaimana mencapai lokasi tsb).
Name Service memiliki konsentrasi pada aspek penamaan dan pemetaan antara nama & alamat, bukan pada masalah rute, yang dibahas di Jaringan Komputer. Resource yang dipakai dalam Name Service adalah: komputer, layanan, remote object, berkas, pemakai.

Contoh penamaan pada aplikasi sistem terdistribusi:
– URL untuk mengakses suatu halaman web.
– Alamat e-mail utk komunikasi antar pemakai.

Name Resolution, Binding, Attributes
– Name resolution: Nama ditranslasikan ke data ttg resource/object tsb.
– Binding: Asosiasi antara nama & obyek, dan biasanya nama diikat (bound) ke
attributes dr suatu obyek.
– Address: atribut kunci dari sebuah entitas dalam sistem terdistribusi.
─ Attribute: nilai suatu object property.

Tujuan atau manfaat penamaan antara lain adalah:
• Identifikasi:
Seorang pemakai menginginkan obyek/layanan A, bukan obyek/layanan B.
• Memungkinkan terjadinya sharing
Lebih dari satu pemakai dapat mengindentifikasikan resource dengan nama yang sesuai
(tidak harus nama yang sama).
• Memungkinkan location independence:
Perubahan lokasi tidak menuntut perubahan nama, asalkan lokasi tidak menjadi bagian
dari nama resource tsb.
• Memberikan kemampuan keamanan (security)
- Jika sebuah nama dipilih secara acak dari himpunan besar interger, maka nama tsb
hanya bisa diketahui dari legitimate source, bukan dari menebak.
- Jadi jika seseorang mengetahui nama obyek tsb, maka dia memang diberitahu,
karena sulit sekali menebak nama tsb.

Jenis nama
User names:
• Dibuat oleh pemakai (user).
• Merujuk pada suatu obyek atau layanan.
• Terdiri dari strings of characters.
Contoh: hp201 untuk pencetak, ~bettyp/tmp/test.c untuk berkas.
System names:
- Terdiri dari bit string.
- Internal untuk sistem, tidak ditujukan untuk manusia.
- Lebih compact dari user names, shg dapat dibandingkan dengan lebih efisien.
• Pure name : nama yang tidak perlu di terjemahkan, karena pada nama tersebut sudah
menunjuk alamat objek langsung.
– Contoh : IP
• non-pure name : dalam nama mengandung suatu informasi (atribut misalnya) tentang
suatu objek.
– Contoh : URL, alamat email, X.500 Directory Service, IOR (Interoperability Object
Reference).

Kebutuhan terhadap name service
• penamaan unik yang standard
• scalability
• Consistency
• performance dan availability
• mudah menyesuaikan terhadap perubahan perlindungan kegagalan

Struktur nama
Primitive/‡at names (Unique Identi…ers = UIDs)
a. Tanpa struktur internal, hanya string of bits.
b. Digunakan utk perbandingan dengan UID lain.
c. Tidak membawa informasi lain -> pure names.
d. Sangat berguna & banyak digunakan karena:
• Location & application independent, shg tidak menjadi masalah bagi mobilitas obyek.
• Seragam, fixed size.
• Compact: mudah disimpan, di-pass, & jika cukup besar menjadi sulit ditebak.
a) Partitioned Names (PN)
- Komposisi dari beberapa nama primitif, biasanya disusun secara hirarkis. Contoh:
www.gunadarma.ac.id/cs/docs/akademik/SisDis/naming.ppt.
- Membawa informasi -> impure names.
- Biasanya tidak secara unik mengidenti…kasikan obyek, beberapa nama bisa
dipetakan ke satu obyek (e.g. UNIX file links).
b) Descriptive names (DN)
- Daftar atribut yang secara bersama-sama mengidentifikasikan obyek secara unik.
- Membawa informasi -> impure names.
- DN adalah superset dari PN.

Tujuan fasilitas Penamaan
a. Efisien, karena fasilitas penamaan merupakan dasar pada sisdis & digunakan secara terus menerus.
b. Terdistribusi. Renungkan jika UIDs dibangkitkan oleh centralized generator.
• Bottleneck.
• Node tempat generator tsb mengalami kegagalan.
c. Tampak seperti global space, tidak tergantung konekti…tas, topologi, dan lokasi
obyek.
d. Mendukung pemetaan 1:many antara nama & obyek, untuk memungkinkan multicast.
e. Mendukung dynamic relocation of objects, jika obyek/proses potensial untuk mobile
(berpindah-pindah). Jadi diperlukan dynamic binding antara nama & alamat, juga
antara alamat & rute.
f. Memungkinkan local aliases, shg pemakai dapat mengekspresikan interpretasi
semantik mereka thdp suatu obyek. Tentu saja diperlukan pemetaan antara aliases dan
full names.


Source:
- http://sisterfrisca.blogspot.com/
- http://teg849.wordpress.com/2011/04/27/name-service/
- http://blogerahman.staff.unisbank.ac.id/files/2011/07/Sist-Terdistribusi-Anton-Pres10.pdf

Kamis, 05 April 2012

Proses Threading dalam Pemrograman


Suatu thread merupakan suatu alur instruksi yang di eksekusi. Program yang melakukan lebih dari satu alur instruksi biasa disebut melakukan multithreading.
Contoh, kita ingin membuat suatu aplikasi untuk meng-import file yang besar sementara memungkinkan user untuk menekan tombol “Batal”, seorang developer akan membuat thread tambahan untuk melakukan proses import. Dengan melakukan proses import di thread yang lain, aplikasi bisa menerima pesan pembatalan dari user daripada harus menyebabkan aplikasi menjadi “Not Responding” sampai proses upload selesai.
Suatu sistem operasi men-simulasikan beberapa thread melalui mekanisme yang disebut “time slicing”. Time Slicing adalah mekanisme dimana sistem operasi mengalihkan eksekusi dari satu thread (urutan instruksi) ke thread berikutnya sehingga proses eksekusi perintah secara terus menerus akan tetap berlanjut dengan cepat.
Efeknya hampir sama dengan efek dalam kabel fiber optic dari telepon, dimana kawat dari fiber optic mewakili processor dan setiap percakapan yang terjadi mewakili suatu thread. Satu (single-mode) kawat fiber optic telepon hanya bisa mengirimkan 1 sinyal  pada sekali pakai, tetapi banyak orang bisa saling melakukan percakapan secara terus menerus. Channel-channel dalam fiber optic cukup cepat dalam melakukan pergantian antar percakapan. Hampir sama, setiap thread dari suatu proses multithread selalu berjalan terus menerus secara paralel dengan thread yang lain.
Suatu thread seringkali menunggu event-event yang berbeda, seperti operasi I/O, mengganti ke suatu thread yang berbeda menyebabkan lebih efisiennya proses eksekusi perintah, karena processor tidak perlu idle untuk menunggu sampai operasi selesai.
Tetapi, mengganti proses dari satu thread ke thread yang lain akan bisa menyebabkan “overhead”. Jika terlalu banyak thread, pengalihan overhead akan membanjiri bagian dari proses thread yang sedang di eksekusi, juga, sistem akan mulai berjalan lambat – mulai melakukan proses pergantian antar thread daripada menyelesaikan proses dari thread sebelumnya terlebih dahulu.
Yang baru mengenal programming-pun pasti pernah mendengar istilah multithreading sebelumnya, seringkali mengenai kerumitannya.
Pemrograman,  betapapun, meninggalkan suatu kerumitan yang patut dipertimbangkan, tidak sebanyak seperti membuat aplikasi yang memiliki banyak thread.
Atomicity (Valensi)
Pikirkan suatu kode program yang melakukan proses transfer dari suatu rekening. Pertama, pastikan apakah dananya cukup, jika cukup, proses transfer terjadi. Jika sesudah mengecek dana, eksekusi diganti dengan thread untuk menghapus dana tersebut, maka akan menyebabkan proses transfer yang invalid ketika proses eksekusi kembali ke thread awal. Mengatur akses rekening sehingga hanya satu thread yang bisa mengakses rekening tersebut, dalam satu waktu akan memperbaiki masalah dan menjadikan transfer tersebut “atomic”.
Suatu operasi atomic adalah satu, yang mana menyelesaikan seluruh prosesnya sampai selesai, atau mengembalikan sistem ke kondisi awal. Operasi transfer pada bank pastinya merupakan suatu operasi atomic karena melibatkan 2 langkah. Dalam proses melakukan langkah-langkah tersebut, sangat mungkin kehilangan operasi atomicity jika thread yang lain melakukan modifikasi terhadap rekening sebelum proses transfer selesai.
Identifikasi dan implementasi atomicity merupakan salah satu kerumitan utama dalam pemrograman multithreading.
Kerumitannya bertambah karena secara umum statemen dalam C# tidak secara penuh memerlukan atomic. _Count++, sebagai contohnya, merupakan statemen dalam C#, tetapi diterjemahkan menjadi beberapa instruksi untuk processor.
1. Proses membaca data dalam Count.
2. Processor mengkalkulasikan nilai yang baru.
3. Nilai baru diberikan pada Count (walaupun ini mungkin bukan atomic).
Sesudah data diakses, tetapi sebelum nilai baru diberikan, thread yang lain mungkin akan memodifikasi nilai aslinya.
Deadlock
Untuk menghindari kondisi yang tidak diinginkan, bahasa pemrograman mendukung kemampuan untuk mengunci dan membatasi kode untuk dijalankan pada thread tertentu, umumnya satu. Tetapi, jika perintah penguncian dijalankan pada thread berbeda, suatu deadlock bisa terjadi, seperti thread menjadi berhenti, masing-masing menunggu yang lain untuk melepaskan penguncian.
Contohnya :
Pada poin ini, setiap thread menunggu thread lain sebelum memulai proses, jadi setiap thread dikunci, sehingga mengakibatkan deadlock secara keseluruhan dalam proses eksekusi kode yang dijalankan.
Masalah dari code yang tidak atomic atau menyebabkan deadlock adalah bahwa kode tersebut tergantung pada  urutan terjadinya instruksi dalam processor pada beberapa thread.
Sekilas pemrograman multithreading memang agak susah dan rumit, semua tergantung bagaimana logika programmer dalam mengatasinya. Salam

Software, Teknologi dan Bahasa Komunikasi Agent


Software
Perangkat Lunak merupakan suatu program yang dibuat oleh pembuat program untuk menjalankan perangkat keras komputer. Perangkat Lunak adalah program yang berisi kumpulan instruksi untuk melakukan proses pengolahan data. Perangkat lunak sebagai penghubung antara manusia sebagai pengguna dengan perangkat keras komputer, berfungsi menerjemahkan bahasa manusia ke dalam bahasa mesin sehingga perangkat keras komputer memahami keinginan pengguna dan menjalankan instruksi yang diberikan dan selanjutnya memberikan hasil yang diinginkan oleh manusia tersebut.
Perangkat lunak komputer berfungsi untuk :
1.    Mengidentifikasi program
2.    Menyiapkan aplikasi program sehingga tata kerja seluruh perangkat komputer terkontrol.
3.    Mengatur dan membuat pekerjaan lebih efisien.

Macam-macam Perangkat Lunak
1.    Sistem Operasi (Operating System),
2.    Program Aplikasi (Application Programs),
3.    Bahasa Pemrograman (Programming Language),
4.    Program Bantu (Utility)

Teknologi

 Teknologi adalah metode ilmiah untuk mencapai tujuan praktis; ilmu pengetahuan terapan atau dapat pula diterjemahkan sebagai keseluruhan sarana untuk menyediakan barang-barang yg diperlukan bagi kelangsungan dan kenyamanan hidup manusia.
Ada tiga klasifikasi dasar dari kemajuan teknologi yaitu :
§  Kemajuan teknologi yang bersifat netral (bahasa Inggrisneutral technological progress)
Terjadi bila tingkat pengeluaran (output) lebih tinggi dicapai dengan kuantitas dan kombinasi faktor-faktor pemasukan (input) yang sama.
§  Kemajuan teknologi yang hemat tenaga kerja (bahasa Inggrislabor-saving technological progress)
Kemajuan teknologi yang terjadi sejak akhir abad kesembilan belas banyak ditandai oleh meningkatnya secara cepat teknologi yang hemat tenaga kerja dalam memproduksi sesuatu mulai dari kacang-kacangan sampai sepeda hingga jembatan.
§  Kemajuan teknologi yang hemat modal (bahasa Inggriscapital-saving technological progress)
Fenomena yang relatif langka. Hal ini terutama disebabkan karena hampir semua riset teknologi dan ilmu pengetahuan di dunia dilakukan di negara-negara maju, yang lebih ditujukan untuk menghemat tenaga kerja, bukan modalnya.

Bahasa Komunikasi Agent

 Komunikasi antar agent terjadi ketika mereka akan menyampaikan pesan atau informasi tertentu. Dalam berkomunikasi, agent memiliki cara tersendiri yang simulasinya dapat kita lihat pada pemakaian netlogo. Komunikasi bisa di definisikan sebagai proses bertukar informasi antar agent. Agent memperlihatkan cara berkomunikasinya ketika akan menyampaikan informasi pada agent lainnya.
 Bahasa di definisikan sebagai satu set simbol yang dikomunikasikan oleh agent untuk menyampaikan informasi. Dalam artificial intelligent bahasa manusia sering disebut bahasa alami sebagai pembeda dengan bahaa pemrograman komputer. Bahasa juga didefinisikan sebagai satu set aturan sosial bersama yang diterima dan dibatasi oleh aturan tata bahasa.

sumber :

Kamis, 29 Maret 2012

BioInformatika



Apa yang dimaksud dengan BioInformatika ?
Sebutkan bidang-bidang yang terkait dengan BioInformatika !
Artikel di bawah ini menjelaskan semua pertanyaan yang ada di atad
BioInformatika adalah istilah yang berasal dari bahasa Inggris yaitubioinformatics, yang artinya ilmu yang mempelajari tentang penerapan teknik komputasional untuk mengelola dan menganalisis informasi biologis .Akan tetapi kalau saya boleh sederhanakan menggunakan kata-kata sendiri, bioinformatika adalah segala bentuk penggunaan komputer dalam menangani masalah-masalah biologi. Dalam prakteknya, definisi yang digunakan oleh kebanyakan orang adalah satu sinonim dari komputasi biologi molekul (penggunaan komputer dalam menandai karakterisasi dari komponen-komponen molekul dari makhluk hidup). Sedangkan menurut Fredj Tekaia dari Institut Pasteur [TEKAIA 2004], Bioinformatika (Klasik) adalah “metode matematika, statistik dan komputasi yang bertujuan untuk menyelesaikan masalah-masalah biologi dengan menggunakan sekuen DNA dan asam amino dan informasi-informasi yang terkait dengannya”.
Jadi, Bioinformatika ini merupakan ilmu terapan yang lahir dari perkembangan teknologi informasi dibidang molekular. Pembahasan dibidang bioinformatika 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).
Bidang-bidang yang terkait dengan BioInformatika
Dari pengertian Bioinformatika yang telah dijelaskan, kita dapat menemukan banyak terdapat banyak cabang-cabang disiplin ilmu yang terkait dengan Bioinformatika, terutama karena bioinformatika itu sendiri merupakan suatu bidang interdisipliner. Hal tersebut menimbulkan banyak pilihan bagi orang yang ingin mendalami Bioinformatika.
Biophysics
Adalah sebuah bidang interdisipliner yang mengalikasikan teknik-teknik dari ilmu Fisika untuk memahami struktur dan fungsi biologi (British Biophysical Society). 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.
Medical Informatics
Menurut Aamir Zakaria [ZAKARIA2004] Pengertian dari medical informatics adalah “sebuah disiplin ilmu yang baru yang didefinisikan sebagai pembelajaran, penemuan, dan implementasi dari struktur dan algoritma untuk meningkatkan komunikasi, pengertian dan manajemen informasi medis.” 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”.
Cheminformatics
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). Kemungkinan penggunaan TI untuk merencanakan secara cerdas dan dengan mengotomatiskan proses-proses yang terkait dengan sintesis kimiawi dari komponenkomponen pengobatan merupakan suatu prospek yang sangat menarik bagi ahli kimia dan ahli biokimia.
Genomics
Genomics adalah bidang ilmu yang ada sebelum selesainya sekuen genom, kecuali dalam bentuk yang paling kasar. Genomics adalah setiap usaha untukmenganalisa atau membandingkan seluruh komplemen genetik dari satu spesies atau lebih. Secara logis tentu saja mungkin untuk membandingkan genom-genom dengan membandingkan kurang lebih suatu himpunan bagian dari gen di dalam genom yang representatif.
Mathematical Biology
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.
Menurut Alex Kasman [KASMAN2004] Secara umum mathematical biology melingkupi semua ketertarikan teoritis yang tidak perlu merupakan sesuatu yang beralgoritma, dan tidak perlu dalam bentuk molekul, dan tidak perlu berguna dalam menganalisis data yang terkumpul.
Proteomics
Istilah proteomics pertama kali digunakan untuk menggambarkan himpunan dari protein-protein yang tersusun (encoded) oleh genom. Michael J. Dunn [DUNN2004], mendefiniskan kata “proteome” sebagai: “The PROTEin complement of the genOME“. Dan mendefinisikan proteomics berkaitan dengan: “studi kuantitatif dan kualitatif dari ekspresi gen di level dari protein-protein fungsional itu sendiri”. Yaitu: “sebuah antarmuka antara biokimia protein dengan biologi molekul”.
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 diagnosa (kemungkinan untuk mengejar target potensial terapi kanker).
Istilah pharmacogenomics digunakan lebih untuk urusan yang lebih “trivial” — tetapi dapat diargumentasikan lebih berguna– dari aplikasi pendekatan Bioinformatika pada pengkatalogan dan pemrosesan informasi yang berkaitan dengan ilmu Farmasi dan Genetika, untuk contohnya adalah pengumpulan informasi pasien dalam database.
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.
Gambaran dari sebagian bidang-bidang yang terkait dengan Bioinformatika di atas memperlihatkan bahwa Bioinformatika mempunyai ruang lingkup yang sangat luas dan mempunyai peran yang sangat besar dalam bidangnya. Bahkan pada bidang pelayanan kesehatan Bioinformatika menimbulkan disiplin ilmu baru yang menyebabkan peningkatan pelayanan kesehatan.


Paralel Processing


Apa yang kamu ketahui tentang komputasi ?
Apa yang kamu ketahui tentang paralel processing ?
Jelaskan hubungan antara komputasi modern dengan paralel processing !

Artikel di bawah ini menjawab semua pertanyaan yang ada di atas

Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. 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 berbea-beda tanpa berkaitan di antaranya.

Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanyadiperlukan saat kapasitas yang iperlukan 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 Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.

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.


sumber :

Komputasi Modern


Apa yang kamu ketahui tentang komputasi modern ?
Jelaskan sejarah komputasi modern !
Sebutkan macam-macam komputasi modern !

Artikel di bawah ini dapat menjawab semua pertanyaan yang ada di atas
Tentunya kita sudah akrab dengan istilah ‘komputer’ atau ‘ilmu komputer’. Hal ini disebabkan karena dalam kehidupan sehari-hari kita sudah sering menggunakan komputer untuk melakukan suatu atau beberapa pekerjaan yang dapat meringankan beban kita. Penggunaan tersebut atau cara yang dapat digunakan untuk melakukan pemrosesan dan menemukan suatu solusi dari data yang telah kita input dengan algoritma dan menggunakan komputer, disebut dengan ‘komputasi’. Dewasa ini, teknologi—terutama di bidang komputer –mengalami kemajuan pesat, sehingga proses pengolahan dengan menggunakan teknologi komputer terbaru mendapat sebutan sebagai ‘Komputasi Modern’.
Secara lengkap, pengertian dari komputasi modern adalah sebuah konsep sistem yang menerima intruksi-intruksi dan menyimpannya dalam sebuah memory—dalam hal ini, yang dimaksud adalah memory komputer. Komputasi modern tentunya jauh lebih baik dari komputasi tradisonal, baik dari segi ukuran, kecepatan proses maupun daya tampung data.
Komputansi modern mempunyai karakteristik tertentu yang terdiri atas 3 macam, yaitu :
  • Komputer-komputer penyedia sumber daya bersifat heterogenous karena terdiri dari berbagai jenis perangkat keras, sistem operasi, serta aplikasi yang terpasang.
  • Komputer-komputer terhubung ke jaringan yang luas dengan kapasitas bandwidth yang beragam.
  • Komputer maupun jaringan tidak terdedikasi, bisa hidup atau mati sewaktu-waktu tanpa jadwal yang jelas.
Komputasi modern bekerja dengan menghitung dan mencari solusi dari masalah yang ada,  meliputi :
  • Akurasi (big, Floating point)
  • Kecepatan (dalam satuan Hz)
  • Problem Volume Besar (Down Sizzing atau pararel)
  • Modeling (NN & GA)
  • Kompleksitas (Menggunakan Teori big O)
Komputasi modern dibagi menjadi tiga jenis, yaitu :
1. Mobile computing
Mobile computing atau komputasi bergerak merupakan kemajuan teknologi komputer yang memungkinkan untuk berkomunikasi menggunakan jaringan tanpa kabel dan mudah dibawa atau berpindah tempat (tetapi berbeda dengan komputasi nirkabel). Contoh dari perangkat komputasi bergerak adalah GPS dan smartphone.
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 digunakan untuk mengenali sistem komputasi grid, yaitu:
  • 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
Cloud Computing merupakan gaya komputasi yang terukur dinamis dan sumber daya virtual yang sering menyediakan layanan melalui internet. Cloud Computing ini 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. Dalam istilah yang lebih populer, Cloud Computing adalah sebuah trend teknologi dengan media internet sebagai tempat menyimpan data, applications dan lainnya yang dapat dengan mudah mengambil data, download applikasi dan berpindah ke cloud lainnya, Hal ini memungkinkan kita dapat memberikan layanan secara mobile di masa depan. Trend ini akan memberikan banyak keuntungan baik dari sisi pemberi layanan (provider) ataupun dari sisi user. Penggunaan istilah Cloud (awan) mengacu kepada ‘internet’ yang digunakan sebagai media untuk menampung data. Cloud Computing menerapkan konsep abstraksi dalam lingkungan komputasi fisik, dengan menyembunyikan proses yang benar dari pengguna. Dalam lingkungan komputasi awan, data bisa berada pada beberapa server, rincian koneksi jaringan yang tersembunyi dan pengguna tidak ada yang tahu.
http://dl.dropbox.com/u/8047198/ilhamsk.com/Cloud%20Computing.png
Titik-titik komputer/server pada ilustrasi di atas adalah sebagai gabungan dari sumber daya yang akan dimanfaatkan. Lingkaran-lingkaran sebagai media aplikasi yang menjembatani sumber daya dan cloud-nya adalah internet. Semuanya tergabung menjadi satu kesatuan dan inilah yang dinamakan cloud computing.
Adapun perbedaan antara komputasi mobile, komputasi  grid dan komputasi cloud, dapat dilihat penjelasannya dibawah ini :
  1. Komputasi mobile menggunakan teknologi komputer yang bekerja seperti handphone, sedangkan komputasi grid dan cloud menggunakan komputer.
  2. Biaya untuk tenaga komputasi mobile lebih mahal dibandingkan dengan komputasi grid dan cloud. Hal ini tentu saja dipengaruhi device fisik yang lebih kecil ukurannya.
  3. Komputasi mobile tidak membutuhkan tempat dan mudah dibawa kemana-mana, sedangkan grid dan cloud membutuhkan tempat yang khusus.
  4. Untuk masalah pengaksesan, komputasi mobile proses tergantung si pengguna, komputasi grid proses tergantung pengguna mendapatkan server atau tidak, dan komputasi cloud prosesnya
Cloud computing mempunyai 3 tingkatan layanan yang diberikan kepada pengguna, yaitu:
  • Infrastructure as service, hal ini meliputi Grid untuk virtualized server, storage & network. Contohnya seperti Amazon Elastic Compute Cloud dan Simple Storage Service.
  • Platform as a service, hal ini memfokuskan pada aplikasi dimana dalam hal ini seorang developer tidak perlu memikirkan hardware dan tetap fokus pada pembuatan aplikasi tanpa harus mengkhawatirkan sistem operasi, infrastructure scaling, load balancing dan lain-lain. Contohnya yang sudah mengimplementasikan ini adalah Force.com dan Microsoft Azure investment.
  • Software as a service: Hal ini memfokuskan pada aplikasi dengan Web-based interface yang diakses melalui Web Service dan Web 2.0. Contohnya adalah Google Apps, SalesForce.com dan aplikasi jejaring sosial seperti FaceBook.
Kelebihan Cloud Computing
  • Menghemat biaya investasi awal untuk pembelian sumber daya.
  • Bisa menghemat waktu sehingga perusahaan bisa langsung fokus ke profit dan berkembang dengan cepat.
  • Membuat operasional dan manajemen lebih mudah karena sistem pribadi/perusahaan yang tersambung dalam satu cloud dapat dimonitor dan diatur dengan mudah.
  • Menjadikan kolaborasi yang terpercaya dan lebih ramping.
  • Mengehemat biaya operasional pada saat realibilitas ingin ditingkatkan dan kritikal sistem informasi yang dibangun.
Kekurangan Cloud Computing
  • Data yang kita upload ke database tempat kita melakukan cloud computing, bila terjadi maintenance dan tidak bisa di perbaiki, kemungkinan besar data-data kita akan hilang dan tidak bisa kembali;
  • Membutukan koneksi internet yang lumayan cepat;
  • Masalah keamanan data yang rawan di hack.
Sumber:

Jumat, 16 Maret 2012

Protokol Komunikasi Data

Definisi

Kumpulan aturan/prosedur yang mengedalikan pengoperasian unit-unit fungsional untuk melakukan hubungan komunikasi.

Komponen Protokol

1.     Aturan atau prosedur
o    Mengatur pembentukan/pemutusan hubungan
o    Mengatur proses transfer data
2.     Format atau bentuk
o    representasi pesan
3.     Kosakata (vocabulary)
o    Jenis pesan dan makna masing-masing pesan
Dalam bahasa pemrograman: (1) syntax, (2)grammar, (3)semantik.

Standarisasi Protokol (ISO 7498)

ISO (International Standard Organization) mengajukan struktur dan fungsi protocol komunikasi data. Model tersebut dikenal sebagai OSI (Open System Interconnection) Reference Model (FAQ:comp.protocols.iso).
Terdiri atas 7 layer (lapisan) yang mendefinisikan fungsi. Untuk tiap layernya dapat terdiri atas sejumlah protocol yang berbeda, masing-masing menyediakan pelayanan yang sesuai dengan fungsi layer tersebut.
1.     Application Layer: interface antara aplikasi yang dihadapi user and resource jaringan yang diakses. Kelompok aplikasi dengan jaringan:
o    File transfer dan metode akses
o    Pertukaran job dan manipulasi
o    Pertukaran pesan
2.     Presentation Layer: rutin standard me-presentasi-kan data.
o    Negosiasi sintaksis untuk transfer
o    Transformasi representasi data
3.     Session Layer: membagi presentasi data ke dalam babak-babak (sesi)
o    Kontrol dialog dan sinkronisasi
o    Hubungan antara aplikasi yang berkomunikasi
4.     Transport Layer:
o    Transfer pesan (message) ujung-ke-ujung
o    Manajemen koneksi
o    Kontrol kesalahan
o    Fragmentasi
o    Kontrol aliran
5.     Network Layer: Pengalamatan dan pengiriman paket data.
o    Routing
o    Pengalamatan secara lojik
o    setup dan clearing (pembentukan dan pemutusan)
6.     Data-link Layer: pengiriman data melintasi jaringan fisik.
o    Penyusunan frame
o    Transparansi data
o    Kontrol kesalahan (error-detection)
o    Kontrol aliran (flow)
7.     Physical Layer: karakteristik perangkat keras yang mentransmisikan sinyal data.
Setiap data yang lewat ke layer lebih rendah ditambah header kontrol yang sesuai dengan layernya. Sebaliknya data ke layer lebih tinggi setelah dikurangi dengan header kontrol.

Protocol TCP/IP

  • Aplication layer: telnet, ftp, dll.
  • Transport Layer:
    • TCP (Transmission Control Protocol) = mengirim data dengan deteksi dan koreksi kesalahan. Selalu memeriksa keterhubungan.
    • UDP (User Datagram Protocol) = mengirim data tanpa koneksi. Melemparkan data ke network begitu saja.
  • Network layer atau Internet: Internet Protocol (IP). Pelayanan pengiriman paket elementer. Definisikan datagram (jika alamat tujuan tidak dalam jaringan lokal, diberi gateway = device yang menswitch paket antara jaringan fisik yang beda; menentukan gateway yang digunakan).
  • Data-link layer: Melakukan fragmentasi atau defragmentasi datagram.
  • Physical layer: sarana sistem mengirimkan data ke device yang terhubung ke network.

Fungsi Lapisan Protokol Datalink

1.     Pembentukan frame (framing)
1.     Protokol berorientasi karakter (BSC = Binary Synchronous Control)
2.     Protocol berorientasi bit (HDLC = High Level Data Link Control)
2.     Transparansi data
1.     Transparansi data pada protokol berorientasi karakter
Format frame dalam bentuk transparans mode:
§  Data Link Escape (DLE)
§  Start Of Header (SOH)
§  Header
§  DLE
§  Start of TeXt (STX)
§  Data
§  DLE
§  End of TeXt (ETX)
§  Block of Check Character
Semua karakter kontrol didampingi DLE, sehingga ETX tanpa DLE tidak menimbulkan masalah.
Lihat kode ASCII untuk masing-masing DLE, SOH, STX, ETX.
2.     Transparansi data pada protokol berorientasi bit 
Format:
§  Flag sebagai pembatas
§  Header
§  data
§  Frame Check Sequence (FCS) untuk sinkronisasi
§  Flag
3.     Error Control
Derajat kesalahan, peluang kesalahan
Kesalahan disebabkan oleh transmisi dengan adanya gangguan (noise). Jenis:
1.     thermal/white : akibat sifat konduktor logam kawat yang dialiri listrik. Panas sebagai hambatan/tahanan
2.     Impulse : misalkan loncatan pulsa (pulse)
3.     Crosstalk
4.     Intermodulation noise, interferensi
Jenis kesalahan berdasarkan bit
5.     Single bit error (kesalahan tunggal)
6.     Even bit error (jumlah kesalahan genap)
7.     Burst error (kesalahan sejumlah bit yang beruntun)