Sabtu, 30 Maret 2013



Multi Thread dapat di download (versi odt)



MultiThread

Konsep Thread

1.1. Pendahuluan
Pada bab sebelumnya kita telah mempelajari tentang proses, namun seiring berjalannya waktu dan tuntutan teknologi ternyata ditemukan kelemahan yang sebenarnya bisa diminimalisir pada proses. Untuk itulah diciptakan thread yang merupakan cara dari komputer untuk menjalankan dua atau lebih task dalam waktu bersamaan, sedangkan multithreading adalah cara computer untuk membagi-bagi pekerjaan yang dikerjakan sebagian-sebagian dengan cepat sehingga menimbulkan efek seperti menjalankan beberapa task secara bersamaan walaupun otaknya hanya satu. Di sini kita akan belajar mengapa harus ada thread, perbedaan thread dengan proses, keuntungan dan kerugian pengimplementasian thread, model-model multithreading, pengimplementasian pustaka thread, pembatalan thread, thread pools, penjadwalan thread dan thread di Linux.

1.2. Keuntungan dan Kerugian MultiThreading
Multiprocessing merupakan penggunaan dua atau lebih CPU dalam sebuah sistem komputer.
Multitasking merupakan metode untuk menjalankan lebih dari satu proses dimana terjadi
pembagian sumberdaya seperti CPU. Multithreading adalah cara pengeksekusian yang
mengizinkan beberapa thread terjadi dalam sebuah proses, saling berbagi sumber daya tetapi
dapat dijalankan secara independen.

Keuntungan dari sistem yang menerapkan multithreading dapat kita kategorikan menjadi 4
bagian:
a. Responsif. Aplikasi interaktif menjadi tetap responsif meskipun sebagian dari program sedang diblok atau melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara thread yang lain berusaha menampilkan gambar.
b. Berbagi sumber daya. Beberapa thread yang melakukan proses yang sama akan berbagi
sumber daya. Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
c. Ekonomis. Pembuatan sebuah proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan menggunakan thread, karena thread membagi memori dan sumber daya yang dimilikinya sehingga lebih ekonomis untuk membuat thread dan context switching thread. Akan susah mengukur perbedaan waktu antara thread dan switch, tetapi secara umum pembuatan dan pengaturan proses akan memakan waktu lebih lama dibandingkan dengan thread. Pada Solaris, pembuatan proses memakan waktu 30 kali lebih lama dibandingkan pembuatan thread sedangkan proses context switch 5 kali lebih lama dibandingkan context switching thread.
d. Utilisasi arsitektur multiprosesor. Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprosesor, dimana setiap thread dapat berjalan secara paralel di atas procesor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi paralel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu.

Adapun kerugian dari multithreading adalah :
1. Jika digunakan secara berlebihan, multithreading akan berdampak pada pemborosan resource dan CPU yang dialokasikan untuk switching threads. Misalnya jika heavy disk I/O terlibat, akan lebih cepat jika hanya memiliki 1 atau 2 thread yang melaksanakan tugas secara berurutan, daripada menggunakan multithread yang masing-masing mengeksekusi sebuah task pada waktu yang sama.
2. Sistem yang memiliki kecepatan prosesor dan memory yang cenderung sama, sehingga tidak ada efisiensi yang hilang (mengacu kepada latency), tidak akan memperoleh peningkatan bandwidth yang signifikan jika menggunakan multithreading.
3. Multithreading menghasilkan program yang lebih kompleks. Menggunakan multiple thread sendiri tidak akan menciptakan kerumitan, tapi interaksi antar thread-lah yang mengakibatkan kompleksitas tersebut.
4. Thread yang banyak bisa saling berinterferensi ketika saling berbagi sumber daya hardware seperti cache.

1.3. Model MultiThreading
Beberapa terminologi yang akan dibahas:
a. Thread pengguna: Thread yang pengaturannya dilakukan oleh pustaka thread pada tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.
b. Thread Kernel: . Thread yang didukung langsung oleh kernel. Pembuatan, penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space. Karena dilakukan oleh system operasi, proses pembuatannya akan lebih lambat jika dibandingkan dengan thread pengguna.


Model-Model MultiThreading:
a. Model Many-to-One. Model ini memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Kekurangannya adalah ketika ada satu blocking systemc call, semua akan menjadi terblok juga. Contoh: Solaris Green Threads dan GNU Portable Threads.
b. Model One-to-One. Model ini memetakan setiap thread tingkatan pengguna ke setiap thread.

Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread pengguna memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows NT/XP/2000 , Linux, Solaris 9, OS/2.

c. Model Many-to-Many. Model ini memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara paralel pada multiprosessor dan lebih efisien. Contoh : Solaris 2, IRIX, HPUX.

1.4. Pustaka Thread
Pustaka Thread atau yang lebih familiar dikenal dengan Thread Library bertugas untuk
menyediakan API untuk programmer dalam menciptakan dan memanage thread. Ada dua cara dalam mengimplementasikan pustaka thread:
a. Menyediakan API dalam level pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi tidak melalui system call. Jadi, jika kita memanggil fungsi yang sudah ada di pustaka, maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call.
b. Menyediakan API di level kernel yang didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call akan melibatkan system call ke kernel.

Ada tiga pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java, dan Win32. Implementasi POSIX standard dapat dengan cara user level dan kernel level, sedangkan Win32 adalah kernel level. Java API thread dapat diimplementasikan oleh Pthreads atau Win32.

1.5. Pembatalan Thread
Thread Cancellation ialah pembatalan thread sebelum tugasnya selesai. Misalnya hendak
mematikan Java Virtual Machine (JVM) pada program Java. Maka sebelum JVM dimatikan
seluruh thread yang berjalan harus dibatalkan terlebih dahulu. Contoh lain adalah pada masalah search. Apabila sebuah thread mencari sesuatu dalam database dan menemukan serta mengembalikan hasilnya, thread sisanya akan dibatalkan. Thread yang akan diberhentikan biasa disebut target thread.

Pemberhentian target Thread dapat dilakukan dengan 2 cara:
a. Asynchronous cancellation. Suatu thread seketika itu juga membatalkan target thread.
b. Deferred cancellation. Suatu thread secara periodik memeriksa apakah ia harus batal, cara
ini memperbolehkan target thread untuk membatalkan dirinya secara terurut.

Hal yang sulit dari pembatalan thread ini adalah ketika terjadi situasi dimana sumber daya sudah dialokasikan untuk thread yang akan dibatalkan. Selain itu kesulitan lain adalah ketika thread yang dibatalkan sedang meng-update data yang ia bagi dengan thread lain. Hal ini akan menjadi masalah yang sulit apabila digunakan asynchronous cancellation. Sistem operasi akan mengambil kembali sumber daya dari thread yang dibatalkan tetapi seringkali sistem operasi tidak mengambil kembali semua sumber daya dari thread yang dibatalkan.

Alternatifnya adalah dengan menggunakan deffered cancellation. Cara kerja dari deffered
cancellation adalah dengan menggunakan satu thread yang berfungsi sebagai pengindikasi
bahwa target thread hendak dibatalkan. Tetapi pembatalan hanya akan terjadi jika target thread memeriksa apakah ia harus batal atau tidak. Hal ini memperbolehkan thread untuk memeriksa apakah ia harus batal pada waktu dimana ia dapat dibatalkan secara aman yang aman. Pthread merujuk sebagai cancellation points. Pada umumnya sistem operasi memperbolehkan proses atau thread untuk dibatalkan secara asynchronous. Tetapi Pthread API menyediakan deferred cancellation. Hal ini berarti system operasi yang mengimplementasikan Pthread API akan mengizinkan deferred cancellation.

1.6. Thread Pools
Pada web server yang menerapkan multithreading ada dua masalah yang timbul:
 a. Ukuran waktu yang diperlukan untuk menciptakan thread yang melayani permintaan yang
     diajukan pada kenyataannya thread dibuang seketika sesudah ia menyelesaikan tugasnya.
 b. Pembuatan thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem.

Solusinya adalah dengan penggunaan Thread Pools, yaitu sekumpulan thread yang mengantri untuk mengerjakan tugas Cara kerjanya adalah dengan membuat beberapa thread pada proses startup dan menempatkan mereka ke pools, dimana mereka duduk diam dan menunggu untuk bekerja. Jadi, ketika server menerima permintaan, ia akan membangunkan thread dari pool dan jika thread tersedia maka permintaan tersebut akan dilayani. Ketika thread sudah selesai mengerjakan tugasnya maka ia kembali ke pool dan menunggu pekerjaan lainnya. Bila tidak ada thread yang tersedia pada saat dibutuhkan maka server menunggu sampai ada satu thread yang bebas.

Keuntungan thread pool adalah:
a. Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibandingkan menunggu thread baru dibuat.
b. Thread pool membatasi jumlah thread yang ada pada suatu waktu. Hal ini penting pada system yang tidak dapat mendukung banyak thread yang berjalan secara concurrent. Jumlah thread dalam pool dapat tergantung dari jumlah CPU dalam sistem, jumlah memori fisik, dan jumlah permintaan klien yang concurrent.
c. Pembuatan jumlah thread yang tepat dapat meningkatkan performa serta sistem yang lebih stabil

1.7. Penjadwalan Thread
Begitu dibuat, thread baru dapat dijalankan dengan berbagai macam penjadwalan. Kebijakan
penjadwalanlah yang menentukan setiap proses, di mana proses tersebut akan ditaruh dalam
daftar proses sesuai proritasnya dan bagaimana ia bergerak dalam daftar proses tersebut.

Untuk menjadwalkan thread, sistem dengan model multithreading many to many atau many to
one menggunakan:
 a. Process Contention Scope (PCS). Pustaka thread menjadwalkan thread pengguna untuk
     berjalan pada LWP (lightweight process) yang tersedia.
 b. System Contention Scope (SCS). SCS berfungsi untuk memilih satu dari banyak thread,
     kemudian menjadwalkannya ke satu thread tertentu (CPU / Kernel).

11.8. Thread Linux
Ketika pertama kali dikembangkan, Linux tidak didukung dengan threading di dalam kernelnya, tetapi dia mendukung proses-proses sebagai entitas yang dapat dijadwalkan melalui clone() system calls. Sekarang Linux mendukung penduplikasian proses menggunakan system call clone() dan fork(). Clone() mempunyai sifat mirip dengan fork(), kecuali dalam hal pembuatan salinan dari proses yang dipanggil dimana ia membuat sebuah proses yang terpisah yang berbagi address space dengan proses yang dipanggil. Pembagian address space dari parent process memungkinkan cloned task bersifat mirip dengan thread yang terpisah. Pembagian address space ini dimungkinkan karena proses direpresentasikan di dalam Kernel Linux. Di dalam Kernel Linux setiap proses direpresentasikan sebagai sebuah struktur data yang unik.
Jadi, daripada menciptakan yang baru maka struktur data yang baru mengandung pointer yang menunjuk ke tempat dimana data berada. Jadi ketika fork() dipanggil, proses yang baru akan tercipta beserta duplikasi dari segala isi di struktur data di parent process, namun ketika clone() dipanggil, ia tidak menduplikasi parent process-nya tetapi menciptakan pointer ke struktur data pada parent process yang memungkinkan child process untuk berbagi memori dan sumber daya dari parent process-nya. Project Linux Thread menggunakan system call ini untuk mensimulasi thread di user space. Sayangnya, pendekatan ini mempunyai beberapa kekurangan, khususnya di area signal handling, scheduling, dan interprocess synchronization primitive.
Untuk meningkatkan kemampuan Thread Linux, dukungan kernel dan penulisan ulang pustaka thread sangat diperlukan. Dua project yang saling bersaing menjawab tantangan ini. Sebuah tim yang terdiri dari pengembang dari IBM membuat NGPT (Next Generation POSIX Threads). Sementara pengembang dari Red Hat membuat NPTL (Native POSIX Thread Library). Sebenarnya Linux tidak membedakan antara proses dan thread. Dalam kenyataannya, Linux lebih menggunakan istilah task dibandingkan proses dan thread ketika merujuk kepada pengaturan alur pengontrolan di dalam program.
Pada sistem operasi lain seperti Mac OS X, terdapat lima thread API yang berbeda, yaitu: Mach thread, POSIX thread (pthreads), Cocoa thread (NSThreads), Carbon MP tasks, dan Carbon
Thread Manager. Akan tetapi tidak mudah untuk menentukan suatu thread mengerjakan tugas yang mana, sehingga dibuatlah suatu siklus yang membuat masing-masing thread bekerja secara bergantian.

1.9. Rangkuman

Thread adalah alur kontrol dari suatu proses.
Keuntungan menggunakan Multithreading:
 a. Meningkatkan respon dari pengguna.
 b. Pembagian sumber daya.
 c. Ekonomis.
 d. Mengambil keuntungan dari arsitektur multiprosessor.

Tiga model Multithreading:
 a. Model Many-to-One.
 b. Model One-to-One.
 c. Model Many-to-Many.
Pustaka Thread bertugas untuk menyediakan API untuk programmer dalam menciptakan dan
memanage thread. Cara untuk mengimplementasikannya yaitu:
 a. Menyediakan API dalam level pengguna tanpa dukungan dari kernel.
 b. Menyediakan API di level kernel yang didukung secara langsung oleh system operasi.
Pembatalan Thread: Tugas untuk membatalkan Thread sebelum menyelesaikan tugasnya.
Pembatalan Thread terdiri dari 2 jenis:
 1. Asynchronous cancellation.
 2. Deffered cancellation.
Thread Pools menciptakan sejumlah Thread yang ditempatkan di dalam pool dimana Thread
menunggu untuk dipanggil.

Thread Schedulling ada 2 macam:
 1. Local Schedulling.
 2. Global Schedulling.
Istilah thread di Linux adalah task.
Pembuatan Thread di Linux menggunakan system call clone(). Sedangkan di Mac sekumpulan
thread yang ada akan mengerjakan tugas bergantian dengan menggunakan siklus.

Evan Christian O
Sistem Informasi / kelas C (04212084)

BlankOn Linux - Tugas Sistem Operasi


BlankOn Linux
BlankOn Linux merupakan salah satu distro Linux yang berisikan perangkat lunak (software) yang dapat digunakan untuk keperluan desktop, laptop, dan workstation. Dengan dipadukan oleh berbagai pernak–pernik khas Indonesia, distro ini sangat cocok digunakan untuk pengguna komputer di Indonesia. BlankOn Linux dikembangkan oleh Yayasan Penggerak Linux Indonesia (YPLI) bersama Tim Pengembang BlankOn. Pengembangan BlankOn dilakukan secara terbuka dan gotong royong, sehingga siapa saja bisa turut berkontribusi untuk mengembangkan BlankOn agar menjadi lebih baik. BlankOn Linux juga bisa didapatkan oleh siapa saja tanpa perlu membayar untuk mengunduhnya. Bahkan, Anda bisa mendistribusikannya dan membagi-baginya secara bebas tanpa batas kepada siapa saja.

Pengembangan BlankOn bukan semata-mata ingin membuat distribusi Linux baru, namun lebih dimotivasi oleh keinginan untuk meningkatkan kualitas dan kuantitas dalam kemampuan pengembangan perangkat lunak bebas/terbuka, yang pada hakikatnya merupakan salah ciri khas bangsa Indonesia yang memiliki semangat bergotong-royong. Tim pengembang BlankOn percaya bahwa bangsa Indonesia mampu dan tidak kalah dengan bangsa-bangsa lain di dunia dan oleh karena itu aktif mengundang siapa pun yang berminat dan memiliki semangat yang sama untuk bergabung dalam pengembangan BlankOn.

1.    B.   Asal nama BlankOn Linux
Nama BlankOn berasal dari nama penutup kepala beberapa suku/budaya yang ada di Indonesia, antara lain suku Jawa, suku Sunda, dan daerah lainnya. Dari asal kata tersebut, BlankOn diharapkan menjadi penutup atau pelindung dari ketergantungan dengan perangkat lunak tertutup. Selain itu, nama BlankOn juga bisa diartikan menjadi Blank (angka biner 0) danOn (angka biner 1). BlankOn diharapkan menjadikan orang yang belum sadar menjadi sadar bahwa Linux bisa dimanfaatkan untuk meningkatkan keterampilan dalam bidang Teknologi Informasi.

1.    C.   Sejarah BlankOn Linux
BlankOn Linux pertama kali dikembangkan oleh YPLI pada tahun 2004 dengan nama kode “Bianglala“. Pada saat itu, BlankOn merupakan turunan dari distro Fedora Core 3. Namun, rilis BlankOn pada saat itu berakhir sampai versi 1.1 dan akhirnya mati suri. Beberapa tahun kemudian, yaitu pada tahun 2007, pengembangan BlankOn Linux mulai dibangkitkan kembali oleh YPLI. BlankOn Linux yang sebelumnya diturunkan dari Fedora Core kini diganti menjadiUbuntu. BlankOn Linux direncanakan akan dirilis sesuai dengan siklus rilis Ubuntu, yaitu setiap 6 bulan sekali atau 2 kali setahun. Setiap rilis BlankOn Linux akan diberi tema dan ciri khas yang berbeda sesuai dengan budaya yang ada di Indonesia.

Akhirnya, pada akhir tahun 2007, BlankOn Linux versi 2.0 dirilis dengan nama kode “Konde“. Versi ini diturunkan dari Ubuntu versi 7.10. Kemudian, pada pertengahan tahun 2008, BlankOn Linux versi 3.0 dirilis dengan nama kode “Lontara“. Versi yang berbasis Ubuntu 8.04 LTS ini menggunakan tema khas Sulawesi Selatan, terlihat dari pengunaan karya seni Kapal Pinisi pada gambar latar belakangnya. Anda juga dapat menulis aksara Lontara‘ yang merupakan aksara khas suku Bugis.
Pada bulan November 2008, BlankOn Linux 4.0 dirilis dengan nama kode “Meuligoe“. Ciri khas yang digunakan pada versi ini adalah Aceh, dengan warna dominan hijau. Pada rilis berikutnya 5.0 menggunakan nama Nanggar dengan khas Batak, pada rilis ini lah Logo BlankOn diganti sehingga lebih modern. Rilis terakhir pada saat buku ini ditulis adalah BlankOn Linux 6.0, dengan nama kode “Ombilin“. Versi ini tidak murni berbasis Ubuntu 10.04 dan mulai rilis ini BlankOn tidak lagi mengikuti budaya mutlak Ubuntu, sehingga sudah banyak program yang diambil dari pembuatnya langsung. Sejak versi 6.0 ini, siklus rilis dilonggarkan menjadi setahun sekali.


Gambar Blankon 6.0
1.    D.   Fitur BlankOn 6.0
BlankOn 6.0 berisikan berbagai perangkat lunak bebas dan terbuka untuk keperluan desktop, laptop dan workstation. Perangkat lunak yang tersedia juga bisa ditambah dengan perangkat lunak lainnya agar sesuai dengan keperluan.
Secara umum, fitur-fitur dari BlankOn versi 6.0 adalah sebagai berikut :
§  Menggunakan kernel Linux versi 2.6.32 yang sangat stabil dengan dukungan perangkat keras yang sangat banyak,
§  Perangkat lunak untuk keperluan Anda berkomputer, seperti keperluan perkantoran, grafis, internet, multimedia, dsb.
§  Antarmuka menggunakan Bahasa Indonesia, sehingga bisa lebih dimengerti oleh orang awam,
§  Sudah menyertakan dukungan format multimedia yang lengkap, seperti untuk memutar mp3, DVD, dan format lainnya,
§  Menggunakan tema dan tampilan grafis khas Indonesia.
§  Desktop berkonteks, di mana layar komputer akan berubah sejalan dengan perubahan konteks di luar komputer.
Saat ini hanya konteks waktu dan konteks cuaca yang dapat merubah tampilan komputer. Artinya tampilan di pagi hari akan berbeda dengan di malam hari, juga demikian misalnya bila di luar sedang terang benderang atau sedang hujan disertai petir maka BlankOn akan menyesuaikan. Fitur ini hanya terdapat di BlankOn dan tidak tersedia di distro lainnya.
§  GNOME versi 2.30 sebagai lingkungan desktop atau desktop environment yang sangat sederhana, kaya fitur dan mudah digunakan,
§  OpenOffice.org 3.2.0 untuk keperluan perkantoran yang sangat mirip dan kompatibel dengan Microsoft Office,
§  GIMP 2.6.8 dan Inkscape 0.47 untuk kebutuhan grafis,
§  Peramban web chromium-browser untuk mengakses situs Internet,
§  Aplikasi surat elektronik Evolution,
§  dan berbagai perangkat lunak lainnya.

1.    1.     Pengertian KDE
KDE adalah desktop yang memiliki sistem multiple desktop dengan sangat baik. Anda bisa memiliki banyak desktop sekaligus, dengan pengaturan yang berbeda untuk setiap desktop, termasuk background-nya. Di sini, Anda bisa mengatur apakah ingin mengatur background yang sama untuk setiap wallpaper, apakah yang ingin ditampilkan pada wallpaper, dan opsi-opsi lainnya. Yang menarik pada bagian ini adalah penggunaan slide show untuk desktop. Anda bisa mengatur gambar-gambar apa saja yang ingin dimasukkan dalam slide show, dan berapa lama interval slide show. Urutan penampilan gambar juga bisa di atur. KDE juga memiliki alpha blending yang menarik untuk latar belakang anda. Dan, ketika mengklik pada tombol Advanced Options, anda akan mendapatkan bahwa sebenarnya desktop KDE bisa digambar dengan aplikasi lain, seperti KwebDektop yang memungkinkan kita menampilkan isi halaman web sebagai desktop KDE.

1.    2.     Pengertian GNOME
BlankOn menyediakan lingkungan kerja atau destop environment yang sangat mudah digunakan bernama GNOME (http://www.gnome.org). Destop ini juga sangat sederhana, namun sangat lengkap dari sisi fitur.
Saat komputer dinyalakan akan masuk ke dalam sistem BlankOn. 
Destop BlankOn terdiri dari dua bagian utama, yaitu Area Kerja dan Panel. Area kerja merupakan tempat dimana jendela-jendela aplikasi ditempatkan serta ikon-ikon destop ditampilkan. Sedangkan panel berisikan ikon-ikon dan objek yang membantu Anda dalam bekerja. Panel bawaan di BlankOn ada dua, yaitu panel atas dan panel bawah.



Kelebihan BlankOn Linux
BlankOn Linux merupakan salah satu distribusi Linux yang berhasil dikembangkan di Indonesia, secara sekilas BlankOn Linux memang tidak jauh berbeda dengan distribusi induknya yaitu Ubuntu, namun ada beberapa point penting yang menjadi kelebihan dari BlankOn Linux[2]:
·         Merupakan distribusi Linux yang aktif dikembangkan secara terbuka oleh komunitas dan merupakan salah satu yang terbesar di Indonesia.
·         Menerapkan konsep Indonesia (Bahasa, Tema Seni dan Budaya, Aksara Nusantara dan Aplikasi Khas)
·         BlankOn memiliki repositori dengan jumlah aplikasi yang besar dan semua aplikasi tersebut berada di server lokal[3] sehingga waktu download lebih cepat.
·         Memiliki fokus membuat segalanya siap pakai (wifi, dukungan multimedia).
·         Panduan, bantuan dan dukungan penggunaan BlankOn mudah diperoleh yang tentu saja menggunakan Bahasa Indonesia.

Penutup
BlankOn adalah sebuah contoh proyek FOSS di Indonesia yang berhasil karena dapat tetap konsisten melakukan pengembangan hingga mencapai enam kali rilis. Pengamatan terhadap sejumlah faktor yang dapat dilihat pada empat waktu jalannya proyek menunjukkan bahwa BlankOn memuiliki karakteristik dan bias memajukan teknologi di Indonesia
Sumber: Google image
Sumber: Wikipedia
Sumber: Artikel Mahasiswa Universitas Indonesia

 Evan Christian O
Sistem Informasi / Kelas C (04212084)

Ujian Praktikum Tekpro


Evan Christian Oetama / 04212084

Ujian Praktikum Tekpro

Kalkulator

Ket:
- 1 buah JComboBox dengan nama Variabel: cbOperator.
- 3 buah TextField dengan nama Variabel Masing”: tfBl1, tfBl2, tfNilai.
- 2 buah JButton dengan nama Variabel masing”:  btnHapus, btnHitung.
- 5 buah J label sesuaikan namanya dengan form diatas.

dan berikut scrptnya:

* pada btnHitung isi dengan:
int bil1 = Integer.parseInt(tfBl1.getText());
int bil2 = Integer.parseInt(tfBl2.getText());
double hasil=0;
int op = cbOperator.getSelectedIndex();
switch(op){
case 0 : nilai = bl1 + bl2 ;
break ;
case 1 : nilai = bil1 – bil2 ;
break ;
case 2 : nilai = bil1 * bil2 ;
break ;
case 3 : nilai = bil1 / bil2 ;
break ; }
tfnilai.setText(String.valueOf(nilai));

* pada btnClear isi dengan:
tfBl1.setText(“”);
tfBl2.setText(“”);
tfNilai.setText(“”);

tfBl1.requestFocus();

* pada btnExit isi dengan:
System.exit(0);

catatan: pada cbOpertor atur propertisnya disebelah kanan form dan cari yang namanya Model isi dengan karakter berikut: tambah (+), kurang (-), kali (*), bagi (/)

dapat di download kalkulator

download