Selasa, 18 Mei 2010

Apakah Hard Computing itu??

Hard computing atau bahasa indonesianya komputasi keras adalah komputasi konvensional yang membutuhkan model analitik yang tepat dan memerlukan banyak waktu komputasi.

Banyak model analitis yang tepat untuk kasus-kasus yang ideal. Permasalahan dunia nyata yang ada saat ini berada di lingkungan non ideal. Pembangunan dan prinsip-prinsip untuk panduan dari hard computing adalah presisi, kepastian dan tindakan.

Banyak masalah kontemporer tidak menempatkan dirinya pada solusi yang tepat seperti:
Pengenalan masalah dapat berupa tulisan tangan, ucapan, benda, dan gambar. Juga contoh lain yaitu robot mobile koordinasi, peramalan, masalah pengkombinasian dan lain - lain.


Ada juga pengertian lain dari hard computing yaitu metode komputerisasi secara kovensional atau boleh dibilang tradisional. Belum terotomatisasi dan masih menkhususkan pada suatu masalah tertentu. Hard computing membuat model dan pencarian masalah masih menggunakan metode analitis dan numeris (tradisional)

Contoh dari hard computing adalah software untuk melakukan perhitungan matriks, persamaan linier atau persamaan matematis lain. Atau beberapa aplikasi yang digunakan untuk menyelesaikan masalah tertentu di dalam kondisi real kehidupan.

Berbeda dengan hard computing, soft computing merupakan perkembangan dari hard computing dimana metode yang dilakukan adalah koleksi dari beberapa metodologi yang bertujuan untuk mengeksploitasi adanya toleransi terhadap ketidaktepatan, ketidakpastian, dan kebenaran parsial untuk dapat diselesaikan dengan mudah, robustness, dan biaya penyelesaiannya murah. Atau bisa kita sebut soft computing seperti Artificial Intelegence yang bertindak seperti pikiran manusia.

Minggu, 25 April 2010

Mobile Computing

Perkembangan komputer notebook kian menarik untuk disimak. Perlahan tapi pasti, keberadaan komputer notebook mulai menggantikan komputer desktop. Jika dahulu, kita menggambarkan seperangkat komputer terdiri dari monitor berukuran 15 inci, casing setinggi badan, keyboard sepanjang lengan, dan mouse sebesar telapak tangan. Semua dalam satu rangkaian. Gambaran itu tergantikan oleh kehadiran komputer notebook.

Kini, beberapa periferal komputer sudah menyatu dalam satu bentuk yang kompak, ukuran yang semakin mengecil sehingga layak dibawa-bawa, dan terpenting kemampuannya untuk menjadi pengganti komputer desktop menghadirkan kesamaan fitur yang selama ini hanya didapat pada komputer-komputer besar yang ada di kantor atau rumah. Komputer notebook menawarkan sebuah perspektif berbeda, melakukan aktivitas komputasi di mana-mana, kapan saja, siapa saja. Dari sinilah kemudian muncul istilah mobile computing. Jadi, mobile computing adalah sebuah teknologi yang memungkinkan penggunanya bisa memanfaatkan kemampuan komputer secara optimal, meski dalam posisi berpindah-pindah. Banyak kalangan menilai bahwa mobile computing akan menggeser keberadaan desktop atau PC yang selama ini kita kenal.

Besarnya kebutuhan masyarakat akan perangkat mobile membuat perusahaan-perusahaan berlomba-lomba melakukan inovasi di berbagai hal yang intinya lebih kecil dan performa yang dapat diandalkan. Pada bagian layar, komputer notebook menggunakan monitor LCD yang jauh lebih ramping dibanding monitor CRT yang digunakan pada komputer desktop. Harddisk, CD ataupun DVD ROM pada komputer notebook juga lebih ringkas.

Berbicara mengenai mobilitas, hal yang menjadi kritis adalah tenaga. Komponen-komponen kini memiliki performa yang terus meningkat baik dari segi kecepatan maupun kualitas, mengakibatkan kebutuhan akan tenaga listrik meningkat. intel® Corporation, mengambil inisiatif menciptakan terobosan dalam hal power management dengan menghadirkan platform intel® centrino® Mobile Technology. Pada platform centrino® generasi pertama intel® menggunakan prosesor intel® Pentium® M yang mampu bekerja dengan asupan daya rendah dan memiliki internal L2 Cache sebesar 1 MB. intel® Pentium M ini bekerja pada FSB 400 MHz dan dengan kecepatan antara 1,3 GHz sampai 1,7 GHz. intel® kemudian meng-upgrade platform ini dengan prosesor Pentium M dengan code "Dothan". Meskipun prosesor ini bekerja pada FSB 400 MHz tapi prosesor Pentium M ini memiliki internal L2 Cache sebesar 2 MB dengan kecepatan antara 1,5 GHz sampai 2,1 GHz.

Lalu dilanjutkan dengan platform mobile baru yang dinamakan Next Generation intel® centrino® Mobile Technology (sering dikenal dengan nama "Sonoma") dengan prosesor Pentium M dengan FSB 533MHz dan chipset intel® 915GM/PM , dan terakhir intel® meluncurkan platform mobile intel® centrino® Duo yang telah menggunakan prosesor intel® Core™ Duo yang merupakan generasi prosesor mobile dengan dua inti (dual-core).

Power management di mobile computing akan mengatur power sesuai utilitas yang digunakan. Pada saat semua resource digunakan, baru penggunaan atau konsumsi daya mencapai 100 %. Jika utilitas hanya digunakan sedikit saja, maka konsumsi daya juga hanya sedikit.

Perkembangan teknologi notebook yang mendukung mobile computing dipertegas dengan realisasi dari konektifitas nirkabel/wireless. Perpaduan kedua hal tersebut memberikan perubahan mendasar akan cara kita berkomputasi, berkomunikasi, dan berinteraksi dengan menghilangkan batasan geografis. Berbagai perusahaan pun berlomba-lomba menciptakan berbagai produk yang memanjakan pengguna menghadirkan dukungan pada pekerjaan dan hiburan.

Kendala perkembangan mobile computing pada komputer notebook adalah kecilnya peluang untuk mengubah notebook sesuai yang kita inginkan. Di lain hal, semua komputer notebook yang ada di pasaran saat ini menggunakan desain propietary. Popietary tidak menguntungkan bagi pengguna karena tidak memberikan keleluasaan memilih komponen sesuai yang mereka butuhkan dan inginkan. Dari sisi harga juga memberatkan pengguna karena pola pemasaran dan distribusi yang tidak efisien menyebabkan harga yang tinggi dibebankan pada pengguna. Kendala lainnya adalah kecilnya kesempatan untuk pemain-pemain lain untuk berpartisipasi karena secara finansial membutuhkan investasi yang tidak kecil dimana hal ini hanya dapat dipenuhi oleh perusahaan-perusahaan multinasional (Multinational Company/MNC).

Tantangannya, ke depan, tampaknya akan semakin sangat kompetitif mengingat teknologi notebook dirasakan telah mencapai tingkat matang dimana antar notebook tidak memiliki perbedaan yang mendasar. Perusahaan TI ditantang untuk menghadirkan inovasi yang berpihak pada pengguna.

Kembali, intel® Corporation menghadirkan tren terbaru yaitu standarisasi komponen dimana komponen-komponen dari model berbeda dapat saling dipertukarkan (interchangeable). Standarisasi yang kemudian disebut Common Building Blocks (CBB) ini berlaku di seluruh dunia.

Dengan konsep interchangeability, para pengguna mobile mendapatkan manfaat-manfaat seperti:

  • Spesifikasi notebook juga dapat disesuaikan dengan keinginan penggunanya.
  • Komponen kualitas terbaik dari manufaktur terbaik di bidangnya.
  • Biaya perawatan notebook akan lebih hemat, karena semua komponen utama akan lebih murah jika pengguna perlu mengganti atau menambahkan dan terjaminnya ketersediaan suku cadang
  • Pembeli akan selalu mendapatkan harga jual notebook yang terkini, karena harganya akan selalu mengikuti pergerakan harga pasar komponen-komponen utama tersebut.
  • Personalisasi akan keunikan, selera dan kepribadian Anda dapat dituangkan ke notebook (Customizable Notebook Panel / CNP), menjadikan BYON notebook yang anda miliki sebagai yang pertama dan satu-satunya di dunia.
Tidak hanya bagi pengguna, standarisasi CBB juga menguntungkan pihak-pihak lain seperti industri lokal yang akan dapat berpartisipasi memproduksi komponen-komponen standar ini di masa mendatang. Dengan terbukanya peluang investasi bagi pemain lokal, pemerintah juga akan mendapatkan manfaat berupa solusi penciptaan lapangan pekerjaan. Beberapa negara telah mulai mensosialisasikan konsep ini dengan mengusung merek mereka masing-masing. Seperti di Indonesia memiliki PT. Leadvision Technology dengan merek BYON.

BYON merupakan singkatan dari Build Your Own Notebook. Dengan demikian, BYON dapat dipersonalisasikan atau diupgrade oleh pengguna agar sesuai dengan kebutuhan dan keinginan pengguna.

Di tahun-tahun mendatang, mobilitas dan kapasitas komputasi menjadi isu yang akan terus bergulir dan menarik minat siapa saja sebagai solusi bagi berbagai kebutuhan dan situasi.

Sumber : http://www.byon.co.id/about/?act=detail&p_id=15

bahasa pemrograman ruby

Variable

Berbeda dengan bahasa pemrograman seperti C dan Java, di dalam Ruby kita dapat
langsung mendefinisikan sebuah variable tanpa menentukan tipenya. Anda dapat
mencobanya langsung melalui irb2 .
$irb> a = 2
$irb> b = 2
$irb> a + b
$=> 4
Bukan hanya tipe data numeric, anda juga bisa membuat tipe data string secara langsung.
$irb> a = “hehe”
$irb> a.length
$=> 4
$irb> a.reverse
$=> “eheh”
$irb> a
$=> “hehe”
Di dalam Ruby kita mengenal istilah symbol. Symbol ini akan sering sekali anda temui di
dalam Rails. Sering digunakan sebagai semacam konstanta pengganti string.
$irb> a = :test
$irb> a != :test
$=> false
$irb> a == :test
$=> true
Symbol ini bisa dibilang lebih hemat memori dibandingkan dengan String. Di dalam Ruby kita
akan sering menemukan symbol dalam sebuah pemanggilan method. Selain itu kita juga
akan sering menggunakan symbol sebagai sebuah key dalam hash. Kedua hal ini sering
membuat bingung orang-orang yang pertama kali mempelajari Ruby.

Array dan Hash
Bagi anda yang sudah akrab dengan pemrograman pasti sudah mengenal apa yang
dimaksud dengan array dan hash. Di dalam Ruby saya bisa mengatakan bahwa array sangat
terkait dengan simbol [] sedangkan hash dengan {}. Mengapa? Karena memang itulah salah
satu cara untuk menginisialisasi array dan hash.
$irb> a = []
$=> []
$irb> a = Array.new
$=> []
$irb> a = [47, 77, 17]
$=> [47, 77, 17]
$irb> a << 107
$=> [47, 77, 17, 107]
$irb> a.length
$=> 4
$irb> a.sort
$=> [17, 47, 77, 107]
Pada contoh diatas terlihat bahwa kita bisa juga melakukan inisialisasi array dengan
memanggil method new(). Selanjutnya kita bisa menambahkan elemen pada array dengan
menggunakan operator <<.
Berbeda dengan array, pada hash kita memiliki pasangan key dan value. Sebagaimana yang
telah saya sebutkan sebelumnya, dalam Ruby hash ini seringkali dipakai sebagai parameter
dalam pemanggilan sebuah method.
$irb> a = {}
$=> {}
$irb> a = Hash.new
$=> {}
$irb> a = {:keren => “abis”}
$=> {:keren => “abis”}
$irb> a[:manthab] = “jaya”
$=> “jaya”
$irb> a[:keren]
$=> “abis”
$irb> a[:manthab]
$=> “jaya”

Pada contoh di halaman sebelumnya terlihat bahwa kita bisa menggunakan symbol sebagai
key. Namun, ternyata kita juga bisa melakukan hal yang sebaliknya sebaimana yang terlihat
pada contoh berikut ini.
$irb> a[“keren”] = :jaya
$=> :jaya
$irb> a
$=> {:keren=>"abis", "keren"=>:jaya, :manthab=>"jaya"}
Sama seperti array kita bisa menggunakan method length() untuk melihat jumlah data yang
ada di dalam hash.
$irb> a.length
$=> 3

Control Structure
Sekarang kita akan mempelajari control structure di Ruby. Sampai sini kita sebenarnya
masih bisa menggunakan irb. Namun agar lebih jelas dan mudah dimengerti kita akan
membuat sebuah file Ruby bernama coba1.rb.
a = ARGV[0].to_i
if a > 7
puts "#{a} lebih besar dari 7"
elsif a < 7
puts "#{a} lebih kecil dari 7"
else
puts "#{a} sama dengan 7"
end
Perhatikan bahwa Ruby mengenali elsif bukan else if. Pada kode diatas kita melakukan
substitusi nilai a di dalam tanda kutip dengan cara “#{a}”. Sekarang coba jalankan program
di atas dan masukkan nilai sembarang sebagai argumen.
$ruby coba1.rb 8
$8 lebih besar dari 7
Kita akan sering menggunakan looping di dalam aplikasi kita. Salah satu caranya adalah
dengan menggunakan for. Sekarang mari kita buat file baru coba2.rb yang di dalamnya kita
isi dengan code berikut:
for i in 1..10 do
puts "#{i}"
end
Ketika dijalankan, program ini akan mencetak angka 1 sampain dengan 10 ke layar.
Selain for kita juga bisa menggunakan while untuk melakukan looping. Berikut ini adalah
contoh penggunaannya dalam file coba3.rb
i = 1
while i <= 10
puts i
i = i + 1
end
Ketika dieksekusi program ini akan memberikan output yang sama dengan coba2.rb.

Method
Sebuah method dideklarasikan dengan menggunakan keyword def dan diakhiri dengan end.
Sebagai contoh buatlah file baru coba4.rb.
def coba_method(name)
puts "coba #{name}"
end
a = "Jaya!"
coba_method(a)
coba_method("Dunks!")
Ketika dieksekusi, program diatas akan mengahasilkan output sebagai berikut:
coba Jaya!
coba Dunks!
Untuk me-return sebuah nilai, kita hanya perlu menuliskan nilai (atau variable) tersebut di
dalam method.
def kali_dua(nilai_awal)
kali_dua = nilai_awal * 2
kali_dua
end
kali_dua = kali_dua(4)
puts "kali dua #{kali_dua}"
Hasil eksekusi dari program ini adalah:
kali dua 8
Sebenarnya bisa saja kita menggunakan keyword return untuk mereturn sebuah nilai dari
method. Namun, di sini saya hanya ingin menunjukkan alternatif dari cara tersebut.

Classes
Deklarasi sebuah kelas dimulai dengan class dan diakhiri dengan end. Sebagai contoh kita
akan membuat sebuah kelas Mahasiswa pada file mahasiswa.rb.
class Mahasiswa
def initialize(nama, npm)
@nama = nama
@npm = npm
end
def cetak_info
puts "Nama: #{@nama}"
puts "NPM: #{@npm}"
end
end
Instance variable dari sebuah kelas dideklarasikan dengan ‘@’ yang akan membuatnya bisa
diakses oleh semua instance method yang ada di kelas tersebut. Namun instance variable
tersebut tidak akan bisa diakses dari luar kelas. Untuk bisa melakukan itu kita perlu
membuat accessor method. Tambahkan kedua method ini pada kelas Mahasiswa yang telah
kita buat.
def nama=(nama_baru)
@nama = nama_baru
end
def nama
@nama
end
Anda bisa menguji method ini dengan melakukan pemanggilan method seperti dibawah ini.
mhs = Mahasiswa.new("Si Bocung","1203000439")
mhs.cetak_info
mhs.nama = "Si Bocah" # mengubah nama menjadi Si Bocah
mhs.cetak_info
nama = mhs.nama # method ini akan mereturn Si Bocah sebagai nama
puts nama
Namun untuk mendefinisikan method setter dan getter bagi setiap variable adalah pekerjaan
yang melelahkan. Oleh karena itu Ruby menyediakan method attr_accessor() untuk
memudahkan kita.
class Mahasiswa
attr_accessor :npm
attr_accessor :nama

Selain accessor method ada lagi yang akan sering anda temukan di Rails, yaitu class
method.
def self.whatami
puts “Saya Mahasiswa”
end
Method ini diakses dengan diawali oleh nama kelasnya.
Mahasiswa.whatami # akan mencetak Saya Mahasiswa

sumber : http://worldfriend.web.id/pemrograman-ruby