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: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 :
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 :
android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="match_parent"
android:background="@drawable/android1">
android:text="Masukan Tanggal Menstruasi"
android:layout_width="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_height="wrap_content>
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.
___
Robi Juliansyah Blog
Sabtu, 05 Mei 2012
Pembuatan Aplikasi Android 'Menghitung Masa Subur Wanita'
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
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”.
2. Processor mengkalkulasikan nilai yang baru.
3. Nilai baru diberikan pada Count (walaupun ini mungkin bukan atomic).
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.
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.
Software, Teknologi dan Bahasa Komunikasi Agent
Terjadi bila tingkat pengeluaran (output) lebih tinggi dicapai dengan kuantitas dan kombinasi faktor-faktor pemasukan (input) yang sama.
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.
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.
Kamis, 29 Maret 2012
BioInformatika
Apa yang dimaksud dengan BioInformatika ?
Paralel Processing
Apa yang kamu ketahui tentang paralel processing ?
Jelaskan hubungan antara komputasi modern dengan paralel processing !
Komputasi Modern
Jelaskan sejarah komputasi modern !
Sebutkan macam-macam komputasi modern !
- 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.
- Akurasi
(big, Floating point)
- Kecepatan
(dalam satuan Hz)
- Problem
Volume Besar (Down Sizzing atau pararel)
- Modeling
(NN & GA)
- Kompleksitas
(Menggunakan Teori big O)
- 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.
- 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. Hal ini tentu saja dipengaruhi device fisik yang lebih
kecil ukurannya.
- Komputasi
mobile tidak membutuhkan tempat dan mudah dibawa kemana-mana, sedangkan
grid dan cloud membutuhkan tempat yang khusus.
- Untuk
masalah pengaksesan, komputasi mobile proses tergantung si pengguna,
komputasi grid proses tergantung pengguna mendapatkan server atau tidak,
dan komputasi cloud prosesnya
- 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.
- 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.
- 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.