Pengantar Sistem Terdistribusi & Overview

0 komentar

Senin, 25 Maret 2013

Definisi dan contoh Sistem Terdistribusi

DEFINISI :
Sebelum menjelaskan tentang definisi dari sistem terdistribusi, saya akan menjelaskan lagi tentang apa itu sistem. Sistem adalah suatu kesatuan yang terdiri komponen atau elemen yang dihubungkan bersama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu tujuan tertentu.
Sedangkan definisi dari sistem terdistribusi adalah sebuah sistem dimana komponen software atau hardware-nya terletak di dalam jaringan komputer dan saling berkomunikasi menggunakan message passing (Message passing adalah sebuah teknik untuk melakukan sinkronisasi dan komunikasi antara proses-proses yang saling berinteraksi). Ada juga yang mengatakan Sistem Terdistribusi adalah sebuah sistem yang terdiri dari beberapa komponen yang terdapat di dalam sebuah jaringan komputer. Komponen-komponen tersebut saling berinteraksi dan berkomunikasi hanya dengan melalui pengiriman pesan.

Contoh Sistem Terdistribusi :
  • Internet.
  • Mobile Computing.
  • Sistem Otomasi Bank.
  • Deteksi Roaming Pada Telepon Seluler.
  • GPS (Global Positioning System).
  • Retail Point-of-Sale Terminals.

PENJELASAN :
Internet
  • Jaringan komputer dan aplikasi yang heterogen.
  • Mengimplementasikan protokol Internet.

Intranet

  • Jaringan yang teradministrasi secara local.
  • Terhubung ke internet melalui firewall.
  • Menyediakan layanan internal dan eksternal.

Mobile Computing (Sistem Komunikasi Telepon Seluler)

  • Menggunakan frekuensi radio sebagai media transmisi.
  • Perangkat dapat bergerak kemanapun asal masih terjangkau dengan frekuensinya.
  • Dapat menghandle/dihubungan dengan perangkat lain.

Contoh lain Sistem Terdistribusi

  • Sistem Telepon : ISDN, PSTN.
  • Network File System (NFS). (Arsitektur untuk mengakses sistem file melalui jaringan).
  • www. (Arsitektur client server yang diterapkan dalam infrastruktur internet).

Pengenalan Pemrograman Berorientasi Obyek

0 komentar
    OOP berputar pada konsep dari obyek yang merupakan elemen dasar dari program Anda. Ketika kita membandingkan dengan dunia nyata, kita dapat menemukan beberapa obyek disekitar kita seperti mobil, singa, manusia dan seterusnya. Obyek ini dikarakterisasi oleh atribut dan tingkah lakunya.
Contohnya, objek sebuah mobil mempunyai atribut tipe transmisi, warna dan manufaktur. Mempunyai tingkah laku berbelok, mengerem dan berakselerasi. Dengan cara yang sama pula kita dapat mendefinisikan perbedaan sifat dan tingkah laku dari singa. Coba perhatikan tabel dibawah ini sebagai contoh perbandingan :
     Dengan deskripsi ini, obyek pada dunia nyata dapat secara mudah asumsikan sebagai obyek perangkat lunak menggunakan atribut sebagai data dan tingkah laku sebagai method. Data dan method dapat digunakan dalam pemrograman game atau perangkat lunak interaktif untuk membuat simulasi obyek pada dunia nyata. Contohnya adalah perangkat lunak obyek mobil dalam permainan balap mobil atau perangkat lunak obyek singa dalam sebuah perangkat lunak pendidikan interaktif pada kebun binatang untuk anak anak.
Perbedaan Class dan Object
      Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang  stukturnya mirip dengan obyek pada dunia nyata. Setiap obyek dibangun dari sekumpulan data (atribut) yang disebut variabel untuk menjabarkan karakteristik khusus dari obyek, dan juga terdiri dari sekumpulan method yang menjabarkan tingkah laku dari obyek. Bisa dikatakan bahwa obyek adalah sebuah perangkat lunak yang berisi sekumpulan variabel dan
method yg berhubungan. Variabel dan method dalam obyek Java secara formal diketahui sebagai variabel instance dan method instance. Hal ini dilakukan untuk membedakan dari variabel class dan method class, dimana akan dibahas kemudian. Class adalah sturktur dasar dari OOP. Class terdiri dari dua tipe dari anggota dimana disebutdengan field (attribut/properti) dan method. Field merupakan tipe data yang didefinisikan oleh class, sementara method

Pemrograman berorientasi objek

0 komentar

Minggu, 17 Maret 2013

Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.

Konsep dasar

  • Kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
  • Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
  • Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
  • Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
  • Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.

Bahasa pemrograman

Bahasa pemrograman yang mendukung OOP antara lain:
  1. Visual Foxpro
  2. Java
  3. C++
  4. Pascal (bahasa pemrograman)
  5. SIMULA
  6. Smalltalk
  7. Ruby
  8. Python
  9. PHP
  10. C#
  11. Delphi
  12. Eiffel
  13. Perl
  14. Adobe Flash AS 3.0

Perbedaan antara jaringan Peer-to-peer dan Client-Server

0 komentar
Berdasarkan typenya jaringan di bagi menjadi dua jenis yaitu:

1.   1. Peer to Peer,  telah kita bahas secara ringkas di atas bahwa jaringan  Peer to Peer adalah jaringan dimana hanya terdapat dua computer yang saling berhubungan, maksud di sini adalah umumnya pada jaringan type ini mengunakan dua komputer bukan maksimum hanya bisa dua computer, bisa saja tiga atau empat tetapi pada jaringan yang terhubung tersebut tidak ada satu computer pun yang berperan sebagai sever murninya (computer yang menyediakan layanan atau fasilitas kepada client). Bisa saja semua computer berperan sebagai server dan begitu juga berperan sebagi Client. Mengapa demikian? Karena setiap computer bertanggung jawab atas file dan data-datanya masing-masing, tidak ada computer khusus(server) yang menyimpan resource setiap computer yang ada di jaringan sehingga akan lebih sulit dalam menata file pada type jaringan ini dan biasanya di sebut dengan jaringan non-dedicated server.
2.      Client-Server, adalah jaringan yang terdiri dari Client dan server dimana pada jaringan tersebut terdapat sebuah computer yang berperan sebagai pusat pelayanan(server) memberi layanan dan fasilitas untuk client sedangkan computer yang lain berperan sebagai client(computer yang mengunakan fasilitas yang di sediakan oleh Server). Sehingga di sebut dengan server murni atau Dedicated server dalam bahasa inggris.
Penjelasan Singkat
Client  Adalah pengguna(user), computer yang mengunakan fasilitas yang di sediakan  oleh computer server.
Server adalah computer yang menyediakan layanan kepada client-clientnya.
       Dari segi tipenya, kedua buah jaringan tersebut memiliki kelebihan dan kekurangan masing-masing, sesuai dengan apa yang kita ketahui bahwa setiap hal yang ada di dunia ini, asalkan masih di tegakan oleh hukum alam, maka pasti memiliki dua sisi, dengan kata lain, jika ada positifnya pasti ada negatifnya, jika ada baiknya pasti ada jahatnya, jika ada optimisnya pasti ada persimisnya. Benar bukan?
Di sini kita akan bahas satu persatu keuntungan, kerugian dari jaringan peer to peer dan jaringan client-server:
1.      Kelebihan jaringan Peer to Peer:
·        kerja tidaknya setiap computer tidak bergantung pada sebuah computer(Server), dengan kata lain, setiap client atau computer yang terhubung di dalam jaringan dapat bekerja walaupun salah satu dari computer yang merupakan bagian dari jaringan tersebut tidak hidup atau pun rusak.
·      Biaya operasionalnya relative lebih murah di bandingkan dengan jaringan computer Client-server karena tidak memerlukan perangkat tambahan untuk sebagai perantara, seperti Hub, switch, dll dan juga tidak memerlukan computer server yang harus memiliki spesifikasi hardware yang relative lebih mahal dibandingkan dengan client lainya.
·        Antar client dapat berperan sebagai server sendiri, artinya setiap client dapat mengsharing data dan fasilitas hardware dengan mudah, seperti contoh mengsharing printer, harddisk, dan lain-lain
·     Pada system jaringan ini tidak membutuhkan system operasi Jaringan, karena layanan yang di sediakan pada jaringan terdapat pada masing-masing client atau user.
Kelemahan Jaringan Peer to peer:
·         Semua aplikasi dan pengolahan harus di lakukan sendiri sehingga mengakibatkan kualitas pekerjaan lebih rendah di bandingkan dengan jaringan client-server
·         Sistem keamanan tidak terpusat, dengan kata lain, system keamanan dari setiap client harus di atur oleh masing-masing user dengan mengunakan fasilitas atau aplikasi sendiri.
·         System backup dan  restore harus di lakukan oleh masing-masing user karena jaringan ini bersifat privat, artinya, data-data jaringan berada di setiap user berbeda, sehingga perlu perawatan di user masing-masing.
·     Jika terjadi gangguan atau masalah pada jaringan maka akan lebih sulit untuk mencari masalahnya (troubleshooting) karena pada jaringan ini, semua computer terlibat dalam proses komunikasi antara satu dengan yang lain, tidak sama seperti type jaringan client-server yang komunikasinya hanya antar setiap workstation dan server.
·         Tidak sesuai atau tidak cocok untuk jaringan yang berskala besar, karena pada system jaringan ini, administrasi atau cara kerjanya tidak tercontrol.
Penjelasan singkat
Backup adalah sebuah aktivitas untuk menyimpan data dengan cara mengduplikasikan data tersebut dan kemudian di simpan di tempat yang lebih aman, sehingga jika suatu hari terjadi kerusakan pada data yang di gunakan maka data yang kita simpan dapat di panggil kembali dengan mengunakan Restore.
Restore adalah aktivitas memanggil kembali yang kita simpan (Backup)
Troubleshooting adalah sebuah tindakan yang di lakukan untuk mendiagnosa atau mencari masalah yang terjadi di dalam sebuah computer maupun jaringan computer.
Workstation biasanya di sebut juga dengan Client.
                  Kelebihan Jaringan Client-Server
·   Sistem keamanan yang terdapat pada jaringan ini lebih aman dan terjamin karena controlnya terpusat, dengan kata lain semua fasilitas untuk keamanan jaringan ini di handle atau di tangani oleh sebuah Komputer yang berperan sebagai server.
·      Kecepatan akses lebih tinggi karena penyediaan fasilitas  jaringan dan pengolahanya di lakukan khusus oleh sebuah computer.
·         Untuk melakukan Backup dan Restore akan sangat mudah karena terpusat, dengan kata lain, semua data yang terdapat di dalam jaringan dapat tersimpan di dalam satu computer, sehingga dapat menghindari kehilangan data yang bersebaran di mana-mana.
·      Jika terjadi sebuah kesalahan atau gangguan pada jaringan ini, akan lebih mudah untuk melakukan Troubleshooting karena komunikasi terjadi hanya antar client tertentu dan server.
·         Semua jaringan yang berskala besar mengunakan type jaringan ini.
                  Kelemahan jaringan Client-Server
·    Dapat atau tidak dapat kerjanya jaringan tergantung pada server, dengan kata lain jika computer server mati, maka semua client tidak dapat bekerja. Karena semua layanan dan fasilitas jaringan tersedia di server.
·       Untuk biaya operasionalnya akan relative lebih mahal karena di perlukan perlatan jaringan yang khusus, seperti Hub, switch, dan lain-lain, di samping itu sangat perlu juga sebuah computer yang memiliki spesifikasi lebih tinggi di bandingkan computer client untuk di jadikan sebagai server.
·         Di perlukan sebuah  system operasi jaringan yang khusus untuk server.