ARNOLD'S BLOG WORLD

BLOK INI MEMAUT PENULISAN DAN SEMUA YANG TELAH DIKERJAKAN OLEH SANG PENULIS ARNOLD. DALAM BLOG INI JUGA TERDAPAT ILMU YANG MUNGKIN BISA ANDA AMBIL DARI PENULISA-PENULISANNYA

BAHASA PEMROGRAMAN RUBY

1.1 Pengenalan Ruby

Ruby merupakan bahasa scripting yang memiliki string processing yang sangat akurat misalnya regular expression sehingga sangat cocok untuk administrator sistem untuk membuat shell script yang powerfull. Di pihak lain, bahasa scripting menawarkan pengembangan aplikasi yang cepat misalnya pembuatan aplikasi GUI, web scripts, system utilities, dan aplikasi yang membutuhkan pemrosesan string ataupun perhitungan yang akurat. Pencipta Ruby, Yukihiro Matsumoto (Matz), menggabungkan bagian-bagian dari bahasa-bahasa favorit beliau (Perl, Smalltalk, Eiffel, Ada dan Lisp) untuk membentuk bahasa baru yang seimbang antara pemrograman fungsional dengan pemrograman imperatif.

1.1.1 Perkembangan Ruby

Sejak Ruby pertama kali dirilis ke publik pada tahun 1995, banyak programmer profesional dari seluruh dunia serius ikut mengembangkan Ruby. Pada tahun 2006, Ruby diterima oleh banyak orang. Dengan komunitas pengguna Ruby yang aktif di banyak kota-kota di seluruh dunia dan konferensi-konferensi beserta pertemuan Ruby terkait.

Ruby-Talk, milis utama untuk diskusi Ruby (dalam bahasa Inggris) telah mencapai kisaran 200 email setiap hari. TIOBE index, yang menghitung perkembangan bahasa-bahasa pemrograman, menempatkan Ruby pada peringkat ke 10 diantara bahasa-bahasa pemrograman di seluruh dunia. Melihat pada perkembangan ini, mereka memperkirakan, “Kesempatan Ruby memasuki peringkat atas 10 besar adalah dalam waktu setengah tahun.” Kebanyakan dari perkembangan Ruby beratribut pada terkenalnya software yang ditulis dengan Ruby, terutama framework web Ruby on RailS. Ruby juga sepenuhnya bebas. Tidak hanya gratis, tetapi juga bebas untuk menggunakan, memodifikasi dan mendistribusikan Ruby.

1.1.2 Kelebihan Ruby

Pertama kali, Matz melihat bahasa-bahasa lain untuk mencari sintaks yang ideal. Terkenang pencariannya, Matz berkata, “Saya mau bahasa scripting yang lebih hebat daripada Perl dan lebih berorientasi obyek daripada Python.” Di Ruby, semua adalah obyek. Setiap informasi dan kode bisa diberi property dan action. Pemrograman berorientasi obyek memanggil property dengan nama variabel instant dan action, yang disebut sebagai metode. Pendekatan murni berorientasi obyek terutama terlihat pada demonstrasi sedikit kode yang diberikan pada number.

Di banyak bahasa-bahasa lain, number dan tipe primitif bukan obyek. Ruby mengikuti pengaruh bahasa Smalltalk dengan memberikan metode dan variabel instant pada semua tipe. Ini memudahkan menggunakan Ruby, karena peraturan-peraturan mengenai obyek semua berlaku pada Ruby. Ruby dianggap sebagai bahasa yang fleksibel, karena bagian-bagian dari Ruby bisa diubah-ubah dengan bebas. Bagian-bagian yang esensi di Ruby bisa dihapus maupun didefinisikan ulang. Bagian-bagian yang sudah ada bisa ditambahkan. Ruby mencoba untuk tidak membatasi programmer.

Misalnya, penambahan dilakukan dengan operator plus (+). Tetapi, jika ingin menggunakan kata plus yang lebih mudah dibaca, maka dapat menambahkan metode tersebut pada kelas Numeric.

class Numeric

def plus(x)
self.+(x)
end
end

y = 5.plus 6
# y sekarang adalah 11

Demi kemudahan, operator-operator Ruby adalah juga metode. Kita juga bisa mendefinisikan ulang operator. Blok Ruby juga dianggap sebagai sumber kekuatan Ruby yang sangat fleksibel. Programmer dapat menyertakan closure pada setiap metode, menjelaskan bagaimana metode yang bersangkutan seharusnya berperilaku. Closure disebut blok dan telah menjadi satu diantara banyak fitur-fitur Ruby yang paling populer pada banyak pendatang baru Ruby dari bahasa-bahasa imperatif lain seperti PHP atau Visual Basic.

Blok terinspirasi dari bahasa-bahasa fungsional. Matz berkata, “Saya ingin menghormati kultur Lisp di closure Ruby.”

search_engines = 

%w[Google Yahoo MSN].map do |engine|
"http://www." + engine.downcase + ".com"
end

Pada kode diatas, blok dijelaskan dalam bentuk do ... end. Metode map memberlakukan blok agar menerima array kata-kata (Google, Yahoo dan MSN). Banyak metode-metode lain di Ruby dibiarkan mempunyai hole yang dibuka untuk programmer agar menulis blok mereka sendiri untuk mengisi dengan lebih lengkap apa saja yang seharusnya sebuah metode lakukan.

Tidak seperti banyak bahasa-bahasa berorientasi obyek lain, Ruby hanya menyediakan single inheritance dengan sengaja. Tetapi Ruby mengetahui konsep module (disebut sebagai Categories di Objective-C). Module merupakan kumpulan dari metode-metode.

Kelas dapat menggabungkan sebuah module dan menerima semua metode-metode (dari module yang bersangkutan) dengan bebas. Contoh, setiap kelas yang mengimplementasikan metode each bisa mixin module Enumerable, yang menambahkan banyak metode-metode yang menggunakan each untuk melakukan perulangan.

Secara umum, Rubyist menganggap ini sebagai cara yang lebih jelas ketimbang multiple inheritance, yang rumit dan bahkan terlalu membatasi. Ruby jarang menggunakan tanda baca dan biasanya cenderung menggunakan keyword berbahasa Inggris, biasanya beberapa tanda baca digunakan untuk memperjelas kode Ruby

Ruby tidak perlu deklarasi variabel. Ruby menggunakan aturan penamaan yang mudah untuk menyatakan scope suatu variabel.

  • var adalah variabel lokal.
  • @var adalah variabel instant.
  • $var adalah variabel global.

Simbol-simbol tersebut bertujuan untuk memudahkan dan memperjelas ketika dibaca bagi programmer untuk mengidentifikasi fungsi dari setiap variabel. Sigil juga bisa menjadi hal yang tidak perlu bila harus digunakan pada setiap member instant.

Ruby kaya fitur, antara lain sebagai berikut:

  • Ruby merupakan bahasa interpreter.
  • Ruby memiliki sintaks yang sederhana, mudah dipelajari dan dipahami.
  • Ruby memiliki fitur-fitur yang menangani exception, seperti Java atau Python, untuk mempermudah menangani error.
  • Ruby menyediakan mark-and-sweep garbage collector untuk semua obyek Ruby. Tidak perlu me-maintain reference count pada library extension.
  • Menulis extension C di Ruby lebih mudah daripada di Perl ataupun di Python, dengan API yang elegan untuk memanggil Ruby dari C. Ini termasuk memanggil Ruby embedded di software, untuk digunakan sebagai bahasa scripting. Interface SWIG juga tersedia.
  • Ruby bisa load library extension secara dinamis jika Sistem Operasi mengijinkan.
  • Ruby menyediakan fitur OS threading yang independent. Maka, untuk semua platform dimana Ruby berjalan, kita juga punya multithreading, terlepas dari apakah Sistem Operasi mendukung multithreading atau tidak, bahkan pada MS-DOS sekalipun.
  • Ruby sangat portable: Ruby kebanyakan dikembangkan di GNU/Linux, tetapi juga berjalan di banyak tipe UNIX, Mac OS X, Windows 95/98/Me/NT/2000/XP, DOS, BeOS, OS/2, dan lain-lain.
  • Dan yang terakhir, tentunya Ruby gratis bahkan untuk aplikasi komersial.

1.1.3 Dasar Pemrograman Ruby

Sebagai bahasa scripting yang berbasis interpreter, Ruby menawarkan modus interaktif, yakni Interactive Ruby yang disingkat dengan irb. Untuk masuk ke modus interaktif Ruby, cukup mengetikkan irb pada command prompt, untuk keluar cukup menekan tombol Ctrl-D atau ketikkan “exit”. Dapat juga menambahkan opsi ”—simple-prompt” pada irb agar bentuk prompt-nya berubah menjadi >>.

Di samping itu, tentunya program Ruby juga dapat disimpan dalam file berextension ‘.rb’. Sama halnya seperti Python, modus interaktif Ruby juga dapat digunakan sebagai kalkulator untuk perhitungan sederhana. Kemampuan menghitung Ruby tidak kalah jika dibandingkan dengan Python. Konon, Ruby memiliki kecepatan eksekusi program yang lebih cepat dibandingkan dengan Python.

Gambar 2.1 Contoh Penulisan Sintax Ruby pada Command Prompt

1. Aturan penamaan variabel

Karena Ruby bersifat dynamic-typing, Kita tidak perlu mendeklarasikan tipe dan variable yang ingin kita gunakan seperti pada bahasa C. Kita cukup memasukkan nilai ke variable yang ingin kita pakai. Aturan penamaan variabel sama dengan aturan penamaan variabel pada umumnya, yakni tidak boleh dimulai dengan angka dan tidak memakai keyword penting dari bahasa tersebut.

Berikut contoh deklarasi variabel:

Contoh variabel yang benar:

x = 888

ini_variabel_string = “halo”

Contoh variabel yang tidak benar:

8x = 888

while = “halo” # while adalah reserved keyword

2. Konstanta

Konstanta tidak lain adalah sebuah variabel yang isinya tetap (tidak berubah). Konstanta di Ruby dideklarasikan dengan huruf kapital pada huruf pertama. Suatu konstanta tetap dapat diubah nilainya. Pemberian status konstanta pada suatu variabel hanya akan memberikan suatu peringatan apabila kita mengubah isi konstanta tersebut.

3. Input Output

Untuk meminta input-an dari user, kita menggunakan perintah gets. Sedangkan untuk output ke layar monitor, kita dapat menggunakan puts, print maupun printf.

>> puts “Halo, pa kabar ?”

Halo, pa kabar?

=> nil

>> print “Halo, pa kabar ?”

Halo, pa kabar ?=> nil

>> nama = gets

Eric

=> “Eric\n”

>> printf “Nama saya %s”, nama

printf “Nama saya %s”, nama

Nama saya Eric

=> nil

Adapun perbedaan antara puts , print dan printf yakni di mana puts akan menambahkan karakter newline (‘\n’) pada akhir string dan parameternya harus string, sedangkan print hanya mencetak string tanpa menambahkan karakter newline, printf sama dengan print; bedanya printf mengenal formatting seperti %s untuk string,%f untuk float, %d untuk integer, dan seterusnya. Perintah printf ini sama dengan perintah printf di bahasa C.

4. Struktur program

Program Ruby umumnya juga memakai indentasi seperti bahasa Python. Akan tetapi indentasi tidak mutlak harus dilakukan, karena Ruby menggunakan keyword end untuk menandakan akhir dari suatu bagian program.

5. Lain-lain

Mungkin pada beberapa contoh di atas, sering melihat tulisan nil. Nil berarti suatu objek di Ruby sama dengan NULL di bahasa C. Nil berarti hasil eksekusi perintah tersebut tidak mengembalikan objek apapun alias nil (tidak memiliki return value). Misalkan perintah puts hanya mencetak string ke layar dan tidak mengembalikan objek apapun untuk disimpan alias nil. Akan tetapi lainnya halnya dengan a = “halo” akan mengembalikan objek String “halo” yang akan disimpan dalam variabel a. Untuk komentar pada program Ruby, Kita dapat menggunakan tanda # . Untuk lebih dari satu statement pada satu baris , Kita dapat menggunakan pemisah ‘;’. Sedangkan untuk statement yang lebih dari satu baris, Kita dapat menggunakan tanda ‘\’.

>> a = 1#Variabel a berisi 1
=> 1
>> print “Halo “; puts “ apa
kabar ?”
Halo apa kabar ?
=> nil
>> b = 1 + 3 + 5 \
?> + 7 + 9
=> 25

1.1.4 Tipe Data Dasar

Setelah berkenalan dengan dasar-dasar interpreter Ruby, selanjutnya dibahas beberapa tipe data dasar yang disediakan Ruby yang tentunya merupakan instansi dari kelas–kelas mengingat Ruby adalah bahasa berorientasi objek yang murni. Di samping itu, akan dibahas beberapa metode yang umum dari kelas– kelas tersebut.

1. Angka

Ruby dapat menangani angka baik yang bertipe integer maupun float. Untuk tipe data Integer di Ruby, kelas Integer dibagi dalam dua kelas yakni FixNum dan BigNum. Angka dengan batas -230 sampai 230–1 tergolong dalam kelas FixNum; apabila suatu angka telah melampaui batas tersebut, maka akan digolongkan dalam kelas BigNum. Karena Ruby bersifat dynamic–typing, Kita tidak perlu melakukan konversi dari FixNum ke BigNum karena konversi akan dilakukan secara otomatis. Sedangkan untuk angka yang bertipe float, Ruby akan menganggap objek angka tersebut merupakan instansi dari kelas Float.

Seperti bahasa pemrograman umumnya, pada Ruby dapat menggunakan prefiks (awalan) untuk menandakan arti angka tersebut, misalya untuk menyatakan bilangan negatif, 0 untuk bilangan oktal , 0b untuk bilangan biner dan 0x untuk bilangan heksadesimal serta e untuk bilangan eksponensial. Untuk mempermudah penulisan suatu angka dengan nilai yang sangat besar, Kita dapat membubuhkan karakter _ pada penulisan angka (karakter _ tidak akan disimpan, hanya untuk membantu saja).

>> a = 2
=> 2
>> a.class
=> FixNum
>> a = a ** 31
=> 2147483648
>> a.class
=> BigNum
>> 188_888_000_000
=> 188888000000
>> 0x6AF
=> 1711
>> 1.89e+18
=> 1.89e+18
>> b = 1.4
=> 1.4
>> b.class
=> Float

2. String

Tipe data String di Ruby sama dengan tipe data String pada bahasa pemrograman lain umumnya. Untuk membuat tipe data String, kita dapat menggunakan kutip satu ‘ ataupun kutip dua “ . Adapun perbedaan di antara keduanya, yakni di mana objek String yang dibuat dengan kutip dua “ akan mengerti karakter khusus seperti ‘\n’,’\r’,’\b’ ,dsb. ; sedangkan karakter dengan objek String yang dibuat dengan kutip satu ‘ tidak bisa menerjemahkan karakter khusus di atas.

Perhatikanlah contoh berikut:

>> a = “Hello\n”
=> “Hello\n”
>> print a
Hello
=> nil
>> b = ‘Hello\n’
=> “Hello\\n”
>> print b
Hello\n=> nil

Kelas String kaya akan metode-metode yang powerful. Kita dapat mencoba beberapa di antaranya seperti berikut ini:

· Length : untuk mengetahui panjang suatu string.

· Capitalize : untuk mengubah huruf pertama pada awal kalimat menjadi huruf kapital.

· Downcase : mengubah string menjadi huruf kecil.

· Upcase : mengubah string menjadi huruf besar.

· Swapcase : mengubah objek string dengan huruf kecil diubah menjadi huruf kapital dan sebaliknya.

· Strip : membuang karakter whitespace di awal dan akhir string.

· Reverse : membalikkan string.

· Include ? str : mengembalikan true jika substring str terdapat dalam string dan false jika tidak ada.

· Chop : membuang karakter terakhir dari string.

Salah satu hal yang unik dari Ruby adalah Kita dapat menambahkan tanda ‘!’ di akhir metode untuk menandakan metodenya bersifat destruktif di mana hasil metode tersebut berdampak langsung pada objeknya.

>> “Hello”.length
=> 5
>> “hello”.capitalize
=> “Hello”
>> “HELlo”.downcase
=> “hello”
>> “HeLLo”.upcase
=> “HELLO”
>> “hElLo”.swapcase
=> “HeLlO”
>> “hello”.reverse
=> “olleh”
>> “ hello “.strip
=> “hello”
>> “helloo”.chop
=> “hello”
>> “hello”.include? “h”
=> true
>> a = “ Hello “
=> “ Hello “
>> a.strip
=> “Hello”
>> a
=> “ Hello “
>> a.strip!
=> “Hello”
>> a
=> “Hello”

3. Array
Tipe data Array di Ruby hampir sama dengan tipe data array pada bahasa pemrograman lain umumnya. Tipe data Array di Ruby sama dengan tipe data list di Python. Untuk membuat suatu objek Array baru, Kita dapat menggunakan literal Array [] ataupun konstruktor Array.new. Isi array dapat berupa objek apapun baik angka, string, maupun objek lain termasuk objek array itu sendiri. Untuk mengakses elemen objek Array ini, kita menggunakan indeks di mana indeks awal dimulai dari 0 sampai panjang array – 1. Kita juga dapat menggunakan indeks negatif di mana indeks -1 berarti elemen terakhir , -2 berarti elemen kedua terakhir, dan seterusnya.

Apabila kita mencoba mengakses elemen Array pada indeks yang di luar jangkauan, pernyataan tersebut tidak akan menyebabkan error seperti IndexError : list index out of range di Python, Ruby akan mengembalikan objek nil. Untuk mengubah isi array ataupun menambahkan data pada objek Array dengan indeks tertentu, kita bisa menggunakan statement biasa seperti array[indeks] = nilai baru. Apabila kita ingin membuat objek Array yang berisi string, akan repot sekali untuk menambahkan tanda kutip pada setiap elemen Array. Hal tersebut dapat diatasi dengan menggunakan prefiks %w. Untuk jelasnya, lihat contoh berikut:

>> a = []
=> []
>> a = [1,2,”m”,[3,4,5]]
=> [1, 2, “m”, [3, 4, 5]]
>> a[0]
=> 1
>> a[3]
=> [3, 4, 5]
>> a[3][1]
=> 4
>> a[-1]
=> [3, 4, 5]
>> a[6]
=> nil
>> a[1] = 88
=> 88
>> a
=> [1, 88, “m”, [3, 4, 5]]
>> c = %w(Anto, Eric, Isabel)
=> [“Anto,”, “Eric,”, “Isabel”]

Metode-metode pada kelas Array :

  • Length : untuk mengetahui ukuran array.
  • Push(nilai_baru) : untuk menambah data pada array. Data terbaru akan ditempatkan paling akhir.
  • Pop : mengembalikan data pada indeks terakhir array dan menghapus data pada indeks terakhir.
  • Reverse : membalik isi data array.
  • Sort : mengurut isi array secara ascending.
    >> a = [“a”,”b”,”c”]
    => [“a”, “b”, “c”]
    >> a.length
    => 3
    >> a.push(“d”)
    => [“a”, “b”, “c”, “d”]
    >> a.pop
    => “d”
    >> a
    => [“a”, “b”, “c”]
    >> a.reverse
    => [“c”, “b”, “a”]
    >> a.sort
    => [“a”, “b”, “c”]

4. Hash
Tipe data hash di Ruby sama dengan tipe data dictionary di Python. Untuk membuat objek hash yang baru, Kita dapat menggunakan literal hash {} ataupun konstruktor Hash.new. Lain halnya dengan array, untuk mengakses elemen objek Hash kita tidak menggunakan indeks seperti array. Kita dapat mendefinisikan kunci(key) yang unik untuk setiap elemen. Sama halnya seperti array, apabila kita mengakses elemen dengan key yang tidak tercantum di hash, maka akan mengembalikan nilai nil.

>> alamat = {
?> “Amat” => “Kemanggisan Raya
50”,
?> “Budi” => “Sudirman 80”,
?> “Eric” => “Sandang 9A”,
?> “Melissa” => “Pandu 77”
?> }
=> {“Eric”=>”Sandang 9A”,
“Budi”=>”Sudirman 80",
“Amat”=>”Kemanggisan Raya 50",
“Melissa”=>”Pandu 77"}
>> alamat[“Eric”]
=> “Sandang 9A”
>> alamat[“Dani”]
=> nil

5. Range
Objek range di Ruby merupakan suatu barisan di mana terdapat nilai awal dan nilai akhir dari barisan tersebut. Objek Range ini sama dengan perintah range() di Python. Untuk membuat suatu objek Range, kita dapat menggunakan operator range ‘..’ dan ‘...’. Format ‘..’ akan menciptakan objek Range yang ikut menyertakan elemen terakhirnya, sedangkan format ‘...’ akan menghilangkan elemen terakhirnya. Range di Ruby tidak dianggap sebagai objek Array melainkan dianggap sebagai suatu objek Range sendiri. Untuk menjadikannya objek Array, Kita dapat menggunakan metode to_a . Untuk lebih jelasnya, perhatikanlah contoh berikut.

>> a = (1..5)
=> 1..5
>> a.class
=> Range
>> (1..5).to_a
=> [1, 2, 3, 4, 5]
>> (1...5).to_a
=> [1, 2, 3, 4]

1.1.5 Seleksi dan Perulangan

Dalam pemrograman, kita tentunya mengenal istilah seleksi dan perulangan. Untuk seleksi kita akan menggunakan if, sedangkan untuk perulangan kita akan menggunakan for dan while. Penulis tidak akan lagi menjelaskan detail sintaks if, for, while karena sintaksnya hampir sama seperti umumnya.

1. Seleksi If

#if.rb
#!/usr/bin/env ruby
print “Masukkan nilai Anda : “
nilai = gets
nilai.chop!
if nilai.to_i >= 85
puts “Anda mendapat grade A”
elsif nilai.to_i >= 75
puts “Anda mendapat grade B”
elsif nilai.to_i >= 65
puts “Anda mendapat grade C”
else
puts “Anda mendapat grade D”
end #end untuk if
$ ruby if.rb
Masukkan nilai Anda : 80
Anda mendapat grade B

2. Perulangan Times

>> 3.times { print “Hi “ }
Hi Hi Hi=> 3
>> 3.times do
?> print “Hi “
?> end
Hi Hi Hi=> 3

3. Perulangan While

#while.rb
#!/usr/bin/env ruby
i = 1
while i<= 5
printf “%d “, i
i = i + 1
end # end untuk while
$ ruby while.rb
1 2 3 4 5

4. Perulangan For

#for.rb
#!/usr/bin/env ruby
for i in 1..5
if i%2 == 1
puts i.to_s + “ ganjil”
else
puts i.to_s + “ genap”
end #end untuk if
end #end untuk for
$ ruby for.rb
1 ganjil
2 genap
3 ganjil
4 genap
5 ganjil

1.1.6 Fungsi

Untuk mendefinisikan suatu fungsi, kita menggunakan kata kunci def diakhiri dengan end. Kita akan membuat fungsi faktorial.

#faktorial.rb
#!/usr/bin/env ruby
def faktorial(n)
hasil = 1
ctr = 0
n.times do
ctr += 1
hasil *= ctr
end #end untuk do
return hasil
end #end untuk def
puts “Faktorial 5 = “ +
faktorial(5).to_s
puts “Faktorial 10 = “ +
faktorial(10).to_s
$ ruby faktorial.rb
Faktorial 5 = 120
Faktorial 10 = 3628800

BlackBerry Enterprise Server

BlackBerry Enterprise Server (BES) adalah nama dari middleware paket perangkat lunak yang merupakan bagian dari BlackBerry platform nirkabel.

BES menghubungkan ke messaging dan kolaborasi perangkat lunak (Microsoft Exchange, Lotus Domino, Novell Group Wise dan lebih baru-baru ini Gmail melalui konektor BES mereka) di jaringan perusahaan untuk mengarahkan email dan sinkronisasi PIM informasi antara desktop dan mobile software

Beberapa pihak ke-3 alternatif untuk platform atas 3 surat ada (Scalix, Zarafa, Zimbra), tetapi tidak didukung oleh RIM

a. BES Komponen

BES terdiri dari serangkaian layanan Windows yang menjalankan operasi dasar dari system.

Windows Services ini dapat mencakup (layanan tambahan dapat dipasang tergantung pada konfigurasi) :

- BlackBerry Alert.

- BlackBerry Attachment Service

Mengambil dan mengubahnya ke format lampiran spesifik untuk perangkat BlackBerry. Untuk file dokumen dengan ekstensi. Doc,. Xls,. Ppt,. Pdf,. WPD, dan. Txt, Layanan Lampiran menerjemahkan konten ke format Stream Universal Content untuk dilihat pada perangkat

- Kolaborasi BlackBerry Service

Menyediakan layanan IM.

- BlackBerry Controller.

Memonitor status layanan BlackBerry Layanan mulai jika gagal atau berhenti sampai dengan sepuluh kali berturut-turut

- Layanan Konsistensi BlackBerry Database.

- BlackBerry operator.

Semua komunikasi antara komponen BlackBerry melalui layanan ini

- Pesan Instan BlackBerry Connector.

- Pesan BlackBerry Agen

Melakukan sinkronisasi kalender nirkabel. Menghasilkan kunci enkripsi awal. Menyediakan layanan email dan lookup.

- BlackBerry MDS Koneksi Layanan.

Layanan mendorong permintaan dari aplikasi intranet.

- BlackBerry MDS Jasa - Apache Tomcat Layanan.

Mengirim dan menerima internet / intranet web browsing ke perangkat melalui layanan operator BlackBerry Digunakan untuk aliran data dengan pihak ke-3 aplikasi Java pada perangkat.

- BlackBerry Policy Service BlackBerry Pelayanan Polis

Mendorong kebijakan TI nirkabel ke perangkat Melakukan Kunci Enkripsi baru Generasi Set perangkat perintah untuk menghapus kunci dan remote

- BlackBerry Router BlackBerry Router

Rute semua data untuk perangkat nirkabel Link antara BES (dapat diinstal pada server yang sama) dan SRP host

- BlackBerry Synchronization Service Sinkronisasi BlackBerry Service Performs. OTA melakukan backup dan sinkronisasi dari semua data PIM (kontak, tugas dan catatan) kecuali kalender.

- Administrasi Pengguna BlackBerry Service (Hanya 3,6 dan BlackBerry Resource Kit (York) di 4.0 dan 4.1)

a) BES juga menghasilkan seperangkat file log selama operasi, yang disebut BES Event Log. File log meliputi (untuk v4.0 dan 4.1 BES sistem yang menghubungkan ke Microsoft Exchange):

b) ALRT - BES Alert

c) BBIM - BlackBerry Instant Messenger (4.1)

d) BBUA - Administrasi User BlackBerry Service (York)

e) CBCK - Backup Connector

f) CEXC - PIM Exchange Connector

g) CMNG - Manajemen Connector

h) CTRL - BlackBerry Controller

i) Disp - BlackBerry operator

j) MAGT - BlackBerry Mailbox Agen (aka BlackBerry Pesan Agent)

k) MDAT - Mobile Data Services

l) MDSS - MDS Services (4.1)

m) MDSS-DISCOVERY - MDS Services (4.1)

n) POLC - Pelayanan Polis

o) ROUT - Router Rout - Router

p) SYNC - BlackBerry SyncServer

q) PhoneCallLog (4.1)

r) PINLog (4.1)

s) SMSLog (4.1)

b. Mengelola BES

. BES biasanya digunakan dan dikelola dalam perusahaan oleh administrator pesan (misalnya, orang-orang yang sudah bertanggung jawab untuk mengelola Microsoft Exchange, Lotus Domino, atau Novell Group Wise) atau kadang-kadang orang TI yang berdedikasi, biasanya disebut Administrator BlackBerry atau BES.

c. BPS

Pada Januari 2007, RIM menawarkan versi gratis dari BES disebut BlackBerry Professional Software, yang merupakan download gratis dari website BlackBerry dan termasuk 1 pengguna lisensi. " BPSE menyediakan "... komunikasi nirkabel dan kolaborasi solusi yang dirancang khusus untuk usaha kecil dan menengah.". Ia datang dengan satu CAL (Client Access License) - yang berarti satu BlackBerry handheld dapat diaktifkan pada Server, dan Anda dapat menambahkan hingga 29 tambahan CALs (untuk total 30) atau upgrade ke BlackBerry Enterprise Server pada setiap time. hanya tersedia untuk Notes dan Exchange lingkungan..

BPS didasarkan pada kode 4,1, tetapi dengan alat manajemen yang lebih sederhana, dan jumlah terbatas patch yang dirilis. (BPS adalah "terjebak" pada v 4.1.4, di mana BES penuh adalah pada pemeliharaan ditambah Releases 4.1.6).. BPS seperti itu hilang di beberapa fungsi-fungsi yang lengkap dari BES memang mendapatkan SP6 dan seterusnya, seperti konten yang kaya email, bebas / sibuk pencarian, penelusuran jarak jauh.

Untuk Groupwise RIM Blackberry ditawarkan Enterprise Server Express, yang pada dasarnya adalah BES penuh dengan pembatasan pengguna. BES Express untuk GW tidak terbatas dalam hal Manajer fungsionalitas, patch dan fungsionalitas terbaru.

Kedua BPS atau BES Express untuk Groupwise masih merupakan versi 4,1, tidak ada versi 5,0 tersedia waktu ini. BlackBerry Enterprise Server Resource Kit

The BlackBerry Enterprise Server Resource Kit (York) adalah suatu kumpulan alat yang berguna dan sumber daya lain yang dirilis untuk memperluas pengelolaan dari BlackBerry Enterprise Server. Setiap rilis York dikembangkan dan bersertifikat kompatibel untuk masing-masing paket layanan BES tidak peduli versi.

The BRK includes tools such as: The York mencakup perangkat seperti:

  • Administrasi Pengguna BlackBerry Service (BESUserAdmin) - Memungkinkan administrator untuk melakukan administrasi user dan smartphone pada baris perintah tingkat
  • NoResponseCheck Tool - Menganalisa benang log untuk pelaporan sebagai non-responsif untuk membedakan antara non-responsif dan lamban benang
  • MessageFlow Tool - Tracks aliran mail dari server mail melalui BlackBerry Enterprise Server ke smartphone BlackBerry dan menyediakan statistik dalam sebuah file csv
  • AvailIndex Tool - Menganalisa file log dan menghasilkan laporan snapshot aktivitas pengguna selama waktu tertentu dalam sebuah file csv
  • HistoricalStats Tool - Cek pola penggunaan individu pengguna dan menyediakan statistik per-hari per-user basis
  • OutOf Tool - Cek untuk pengguna yang belum dikirim / diterima dalam jangka waktu tertentu
  • Menunggu Perangkat - Trek pengiriman pesan tertunda BlackBerry Enterprise Server.
  • Memungkinkan administrator untuk mendeteksi ketika BlackBerry Enterprise Server tidak lagi menerima pemberitahuan email baru secara tepat waktu.

  • MapiCdoErrors Tool - Memungkinkan administrator untuk memindai MAPI Common log / cdo kesalahan dan kegiatan adat mereka ingin memilih
  • MDSPush vs Perangkat - Mengaktifkan Administrator untuk memantau apakah BlackBerry Mobile Data Service adalah memproses lebih banyak data dengan mendorong atau menarik
  • BlackBerry syslog Layanan - Menyediakan Administrator dengan real-time monitoring BlackBerry Enterprise Server Log aktivitas.
  • BlackBerry Domain Sejarah Administrasi Perangkat - Audit perubahan konfigurasi dengan BlackBerry Enterprise Server lingkungan dan output ke sebuah file csv
  • Monitor log Tool - Monitor sebuah file teks untuk satu atau lebih peristiwa dan memungkinkan Administrator untuk menentukan tindakan yang mereka menginginkan alat untuk melakukan setelah ia menemukan suatu nilai yang memenuhi kriteria
  • Penerimaan pesan Perangkat - Menyediakan Administrator dengan real-time verifikasi bahwa BlackBerry Enterprise Server adalah mengirimkan pesan ke perangkat BlackBerry
  • Aktivasi Status Enterprise Perangkat - Menyediakan kemampuan untuk memantau perubahan status aktivasi BlackBerry smartphone dan memecahkan masalah aktivasi.
  • Upgrade Template Kebijakan TI Perangkat - Memungkinkan administrator untuk meng-upgrade kebijakan TI template untuk BlackBerry Konfigurasi Database dengan smartphone BlackBerry baru aturan kebijakan tanpa meningkatkan perangkat lunak BlackBerry Enterprise Server.

Ada juga alat bantuan khusus tersedia bagi mereka yang menghubungi kelompok pendukung.

tugas pengantar kecerdasan buatan

A. Ubahlah pernyataan berikut dalam bentuk representasi logika proposisi dan predikat
1. Karjo adalah seorang laki-laki
2. Karjo adalah orang Jawa
3. Karjo lahir pada tahun 1840
4. Setiap laki-laki pasti akan mati
5. Semua orang Jawa mati pada saat Krakatau meletus tahun 1883
6. Setiap orang pasti mati setelah hidup lebih dari 150 tahun
7. Sekarang tahun 2010
8. Mati berarti tidak hidup
9. Jika seseorang mati, maka beberapa waktu kemudian dia pasti dianggap mati
B. Apakah Karjo masih hidup sekarang dengan metode Backward ?

Jawaban:
A.
1. Laki-laki(Karjo)
2. Jawa(Karjo)
3. Lahir(Karjo,1840)
4. ∀x : laki-laki(x) → pastimati(x)
5. Meletus(Krakatau, 1883) ∧ ∀x : [Jawa(x) → mati(x, 1883)
6. ∀x : ∀thn1 : ∀thn2 : pastimati(x) ∧ lahir(x, thn1) ∧ lahir(x, thn2) ∧ lebihdari(thn2 – thn1, 150) → mati(x, thn2)
7. Sekarang ≡ 2010
8. ∀x : ∀y : [mati(x,y) → ¬hidup(x,y) ] ∧ [¬hidup(x,y) → mati(x,y)]
9. ∀x : ∀thn1 : ∀thn2 : mati(x, thn1) ∧ lebihdari(thn2 – thn1) → mati(x, thn2)

B.
Dari pernyataan diatas akan dibuktikan Karjo tidak hidup sekarang dengan penalaran backward : ¬hidup (karjo, sekarang)

¬hidup (karjo, sekarang)
↑ (8, subtitusi)
Mati(karjo, sekarang)
↑ (9, subtitusi)
Mati(karjo, thn1) ∧ lebihdari(sekarang, thn1)
↑ (5, subtitusi)
Jawa(Karjo) ∧ lebihdari(sekarang, 1883)
↑ (2)
Lebihdari(sekarang, 1883)
↑ (7, subtitusi)
Lebihdari(2010, 1883)
↑ (menghitung lebihdari)
Nil

KOMPUTASI

Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan suatu algoritma. Hal ini ialah apa yang disebut dengan teori komputasi, suatu sub-bidang dari ilmu komputer dan matematika. Selama ribuan tahun, perhitungan dan komputasi umumnya dilakukan dengan menggunakan pena dan kertas, atau kapur dan batu tulis, atau dikerjakan secara mental, kadang-kadang dengan bantuan suatu tabel. Namun sekarang, kebanyakan komputasi telah dilakukan dengan menggunakan komputer.
Secara umum iIlmu komputasi adalah bidang ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numerik serta penggunaan komputer untuk menganalisis dan memecahkan masalah-masalah ilmu (sains). Dalam penggunaan praktis, biasanya berupa penerapan simulasi komputer atau berbagai bentuk komputasi lainnya untuk menyelesaikan masalah-masalah dalam berbagai bidang keilmuan, tetapi dalam perkembangannya digunakan juga untuk menemukan prinsip-prinsip baru yang mendasar dalam ilmu.
Bidang ini berbeda dengan ilmu komputer (computer science), yang mengkaji komputasi, komputer dan pemrosesan informasi. Bidang ini juga berbeda dengan teori dan percobaan sebagai bentuk tradisional dari ilmu dan kerja keilmuan. Dalam ilmu alam, pendekatan ilmu komputasi dapat memberikan berbagai pemahaman baru, melalui penerapan model-model matematika dalam program komputer berdasarkan landasan teori yang telah berkembang, untuk menyelesaikan masalah-masalah nyata dalam ilmu tersebut.

Komputasi awan (bahasa Inggris: cloud computing) adalah gabungan pemanfaatan teknologi komputer ('komputasi') dan pengembangan berbasis Internet ('awan'). Awan (cloud) adalah metefora dari internet, sebagaimana awan yang sering digambarkan di diagram jaringan komputer. Sebagaimana awan dalam diagram jaringan komputer tersebut, awan (cloud) dalam Cloud Computing juga merupakan abstraksi dari infrastruktur kompleks yang disembunyikannya. Ia adalah suatu moda komputasi di mana kapabilitas terkait teknologi informasi disajikan sebagai suatu layanan (as a service), sehingga pengguna dapat mengaksesnya lewat Internet ("di dalam awan") tanpa pengetahuan tentangnya, ahli dengannya, atau memiliki kendali terhadap infrastruktur teknologi yang membantunya. Menurut sebuah makalah tahun 2008 yang dipublikasi IEEE Internet Computing "Cloud Computing adalah suatu paradigma di mana informasi secara permanen tersimpan di server di internet dan tersimpan secara sementara di komputer pengguna (client) termasuk di dalamnya adalah desktop, komputer tablet, notebook, komputer tembok, handheld, sensor-sensor, monitor dan lain-lain."
Komputasi awan adalah suatu konsep umum yang mencakup SaaS, Web 2.0, dan tren teknologi terbaru lain yang dikenal luas, dengan tema umum berupa ketergantungan terhadap Internet untuk memberikan kebutuhan komputasi pengguna. Sebagai contoh, Google Apps menyediakan aplikasi bisnis umum secara daring yang diakses melalui suatu penjelajah web dengan perangkat lunak dan data yang tersimpan di server.
Komputasi sains
Komputasi sains merupakan salah satu cabang ilmu komputasi. Secara umum komputasi sains mengkaji aspek-aspek komputasi untuk aplikasi / memecahkan masalah di bidang sains lain, seperti fisika, kimia, biologi dan lain-lain.
Di Indonesia sudah banyak pertemuan atau kegiatan ilmiah terkait dengan komputasi, tetapi umumnya lebih terkait dengan aspek teknologi informasi. Sedangkan kajian di komputasi sains masih sangat kurang. Hal ini tidak mengherankan karena komputasi sains lebih condong sebagai kajian teori murni, sehingga komunitasnya masih sangat terbatas seperti halnya fisika teori. Hanya ada satu kegiatan ilmiah yang terkait langsung dan fokus pada kajian komputasi sains, yaitu Workshop on Computational Science yang diadakan rutin setiap tahun oleh konsorsium yang tergabung dalam Masyarakat Komputasi Indonesia - MKI[1].
Selain itu, telah tersedia juga portal ilmiah untuk publik terkait dengan komputasi sains, yaitu komput@si.
Jurnal di Indonesia yang fokus pada topik komputasi adalah Journal of Theoretical and Computational Studies JTCS. Jurnal ini merupakan kolaborasi dari MKI dan GFTI[2].