Jangan suka meremehkan orang, terkadang rejekimu justru datang dari orang-orang yang pernah kamu remehkan.

Kamis, 20 September 2012

Syntax SQL Server


Structured Query Language ata SQL adalah bahasa standar untuk mengambil data dari database,
dan juga sekaligus memanipulasi database.
Meskipun SQL menjadi bahasa standar, SQL masih memiliki bahasa yang berbeda-beda di beberapa platform.
Misalnya :
- SQL Server menggunakan Transact-SQL atau T-SQL,
- Microsoft Access menggunakan Jet-SQL

Untuk sample berikut ini akan saya perlihatkan syntax SQL pada SQL Server untuk beberapa kasus.

1. Perintah Select
Perintah select adalah perintah yang digunakan untuk mengambil data yang ada di dalam table. Sintax nya adalah : SELECT field-1, field-2, .... field-n FROM namatabel

Contoh :
ada 3 data dari tabel mahasiswa berupa nim, nama
data-1 : | 10104417 | Kurnia Hidayat |
data-2 : | 10104422 | Ekky Patria Kencana |
data-3 : | 10104427 | Ogan Sukmawan |

dengan menggunakan perintah "Select * From mahasiswa" maka akan didapatkan data2 tersebut,
| 10104417 | Kurnia Hidayat |
| 10104422 | Ekky Patria Kencana |
| 10104427 | Ogan Sukmawan |

2. Klausa Where
    Where digunakana untuk menyaring data dalam syntax/command SQL yg kita gunakan.
    Syntax : <arguments> WHERE <arguments> <operator> <arguments>

Tabel operator yang dapat digunakan :
>              Lebih besar
<              Lebih kecil
>=           Lebih besar sama dengan
<=           Lebih kecil sama dengan
=              Sama dengan
<>           Tidak sama dengan
Between x and y              Antara x dan y
Like        Seperti... bla bla bla... (dengan / mengandung format tertentu)
Is Null   Kosong / Tidak memiliki nilai
In            Nilai berada di dalam tanda ( dan tanda )


3. Klausa Where Lanjutan
Berikut ini adalah contoh-contoh penggunaan operator pembanding tersebut dalam query :

1. Ambil data "barang" yang "jml" nya lebih dari 20
     SQL = " SELECT * From barang WHERE jml > 20 "

2. Ambil data "nilai_mhs" yang "nilai" nya kurang dari 60
     SQL = " SELECT * From nilai_mhs WHERE nilai < 60 "

3. Ambil data "barang" yang "jml" nya lebih besar sama dengan 20
     SQL = " SELECT * From barang WHERE jml >= 20 "

4. Ambil data "nilai_mhs" yang "nilai" nya lebih kecil sama dengan 60
      SQL = " SELECT * From nilai_mhs WHERE nilai <= 60 "

5. Hapus data "mahasiswa" yang memili "NIM" sama dengan "10104422"
      SQL = " DELETE * From mahasiswa WHERE NIM = '10104422' "

6. Ambil data "barang" yang "nama_barang" nya mengandung kata "Ice"
      SQL = " SELECT * From barang WHERE nama_barang like '%Ice%' "

7. Ambil data "barang" yang "kode_brg" nya berawalan "C"
      SQL = " SELECT * From barang WHERE kode_brg like 'C%' "

8. Ambil data "barang" yang "kode_brg" nya berakhiran '2008'
      SQL = " SELECT * From barang WHERE kode_barang like '%2008' "

9. Ambil data "barang" yang "jml" nya bernilai null
      SQL = " SELECT * From barang WHERE jml is null "

10. Ambil data "mahasiswa" yang "usia" nya antara 17 - 19tahun
         SQL = " SELECT * From mahasiswa WHERE usia >=17 and usia<=19 "

3. Klausa Order By   
    Singkatnya, klausa ini digunakan untuk menrutkan data berdasarkan sesuatu / field.
    Order by ini secara defaultnya bersifat ascending (klo gak salah, hehe...)

Sejalan dengan order by, ada 2 buah variable lain yg dapat diikut serta kan, yakni ASC dan DESC.
    -ASC untuk mengurutkan data dari yang bernilai kecil hingga ke data yang bernilai besar
    -DESC untuk mengurutkan data dari yang bernilai besar hingga ke data yang bernilai kecil

    Syntax : <arguments> ORDER BY <field> <asc> / <desc>

contoh dari data mahasiswa pada contoh penggunaan select dapat dilakukan :

1. "SELECT * From mahasiswa ORDER BY NIM desc"
     hasilnya adalah :
      | 10104427 | Ogan Sukmawan |
      | 10104422 | Ekky Patria Kencana |
      | 10104417 | Kurnia Hidayat |

2. "SELECT * From mahasiswa ORDER BY nama asc"
     hasilnya adalah :
      | 10104422 | Ekky Patria Kencana |
      | 10104417 | Kurnia Hidayat |
      | 10104427 | Ogan Sukmawan |

4. Aritmethic Function
      Fungsi - fungsi aritmetika yang dapat dijalankan / diambil pada suatu SQL / data

Contoh : data awal berupa NIM, Nama Lengkap, Nilai

| 10104417 | Kurnia Hidayat | 80 |
| 10104422 | Ekky Patria Kencana | 85 |
| 10104427 | Ogan Sukmawan | 75 |

Beberapa eksekusi / function yang ada di T-SQL :

1. Sum : menjumlahkan suatu field
      syntax : "select sum(Nilai) from mahasiswa"
      result : 240

2. Max : mengambil data terbesar
       syntax : "select max(Nilai) from mahasiswa"
       result : 85

3. Min : mengambil data terkecil
       syntax : "select sum(Nilai) from mahasiswa"
       result : 75

4. Avg : menghitung nilai rata-rata
       syntax : "select avg(Nilai) from mahasiswa"
       result : 80

5. Count : menghitung banyak record
      syntax : "select count * from mahasiswa"
      result : 3

5. Klausa Alternatif

     - Group by : mengelompokkan pemanggilan data, biasanya dilakukan untuk mengelompokkan
                        hasil kalkulasi pada fungsi aritmetika sebelumnya.
        contoh : "SELECT kode_brg, SUM(jml) as total FROM penjualan GROUP BY kode_brg"

     - Distinct : membuang data yang sama (saat view mode)
        contoh tanpa distinct : A0001, A0001, A0002, A0003, A0002
        dengan distinct : "SELECT DISTINCT kode_brg FROM penjualan" maka hasil = A0001, A0002, A0003

6. Insert Command
      Insert disini berarti menambahkan sebuah record baru ke dalam tabel / database yang telah ada.


Ada 3 buah alternatif untuk melakukan perintah ini, yakni :
1. Alternatif 1 : mengikutsertakan nama field yang ada pada tabel

       "Insert into mahasiswa (NIM, Nama_Lengkap, Nilai) values ('10104417', 'Kurnia Hidayat', 80)"
       Hasilnya adalah
       | NIM         | Nama_Lengkap | Nilai |
       | 10104417 | Kurnia Hidayat  | 80   |

       "Insert into mahasiswa (NIM, Nama_Lengkap) values ('10104427', 'Ogan Sukmawan')"
        Hasilnya adalah
        | NIM         | Nama_Lengkap   | Nilai    |
        | 10104427 | Ogan Sukmawan | <null> |

2. Alternatif 2 : tidak mengikutsertakan nama field yang ada pada tabel
    (syaratnya adalah value sama dengan jumlah fieldnya)

        "Insert into mahasiswa values ('10104422', 'Ekky Patria Kencana', 85)"
        Hasilnya adalah sukses :
        | NIM         | Nama_Lengkap         | Nilai |
        | 10104422 | Ekky Patria Kencana  | 85   |

       "Insert into mahasiswa values ('10104422', 85)"
         Hasilnya adalah ERROR karena jumlah inputan tidak sama dengan jumlah field
       yang terdapat pada tabel.

3. Alternatif 3 : menyalin data dari table yang memiliki field / attribut yang sama dengan field yang akan disalin
    (minimal sama dari type field nya)

       "Insert into mahasiswa select * from mhs"
         Hasilnya adalah semua data yang ada di table mhs akan dimasukkan ke table mahasiswa

7. Update Command

Perintah update berarti mengubah isi field dari sebuah tabel.

Misalkan semua kuantitas barang yang ada di tabel master barang hendak direset / diubah menjadi 0,
maka dapat dilakukan dengan perintah :
     " Update msbarang set qty=0 "

Selain itu, kita juga dapat meng-update beberapa field sekaligus dengan perintah :
     " Update msbarang set qty=0, min_qty=5 "

Masih ada beberapa hal lainnya yang dapat kita lakukan dengan update data.
Seperti update data dengan situasi tertentu (misal kode_brg = 'A0001' lalu update harga jual menjadi 10000)
     " Update msbarang set harga_jual = 10000 where kode_brg = 'A0001' "

8. Delete Command

 Perintah delete berarti menghapus isi field dari sebuah tabel.

 Misalkan semua barang yang ada di tabel temporary barang hendak dihapus,
 maka dapat dilakukan dengan perintah :
      " Delete * from temp_barang"

 Masih ada beberapa hal lainnya yang dapat kita lakukan dengan delete data.
 Seperti delete data dg situasi tertentu
 (misal hapus semua record pada tabel barang dg kode_brg = 'A0001')
      " Delete * from barang 10000 where kode_brg = 'A0001' "


SQL Injection

SQL injection is a code injection technique that exploits a security vulnerability occurring in the database layer of an application. The vulnerability is present when user input is either incorrectly filtered for string literal escape characters embedded in SQL statements or user input is not strongly typed and thereby unexpectedly executed. It is an instance of a more general class of vulnerabilities that can occur whenever one programming or scripting language is embedded inside another. SQL injection attacks are also known as SQL insertion attacks.

Dengan kata lain, SQL injection dapat dikatakan sebagai suatu teknik yang dapat meng-ekploit sebuah keamanan pada suatu layer database aplikasi.


Contoh :
pada suatu kasus dalam form login terdapat syntax sebagai berikut :
Code: [Select]
statement = "SELECT * FROM users WHERE name = '" + userName + "';"

dengan mengubah username tersebut dengan statement lainnya yang memiliki nilai true (jika logic yang digunakan bernilai benar)
atau false (jika logic yg digunakan bernilai salah / berkebalikan dengan true), maka form / halaman login tersebut user dapat dengan mudah melakukan skip halaman login (jika setelah proses login berhasil tidak ada validasi lainnya)

Misal kita ubah username tadi dengan :
Code: [Select]
a' or 't' = 't

sehingga syntax yang di eksekusi menjadi :
Code: [Select]
statement = "SELECT * FROM users WHERE name = 'a' or 't' = 't';"

dengan kata lain,
walaupun tidak ada username dengan nama = 'a',
karena ada perintah 'or' dimana 't'='t',
maka syntax yang dihasilkan akan bernilai benar,
dan proses akan dilanjutkan ke tahapan berikutnya.


untuk lebih mengenal SQL injection,
silahkan baca kembali :
http://en.wikipedia.org/wiki/SQL_Injection

Minggu, 16 September 2012

Microsoft SQL Server


Microsoft SQL Serve

Microsoft SQL Server adalah sebuah sistem manajemen basis data relasional (RDBMS) produk Microsoft. Bahasa kueri utamanya adalah Transact-SQL yang merupakan implementasi dari SQL standar ANSI/ISO yang digunakan oleh Microsoft dan Sybase. Umumnya SQL Server digunakan di dunia bisnis yang memiliki basis data berskala kecil sampai dengan menengah, tetapi kemudian berkembang dengan digunakannya SQL Server pada basis data besar.
Microsoft SQL Server dan Sybase/ASE dapat berkomunikasi lewat jaringan dengan menggunakan protokol TDS (Tabular Data Stream). Selain dari itu, Microsoft SQL Server juga mendukung ODBC (Open Database Connectivity), dan mempunyai driver JDBC untuk bahasa pemrograman Java. Fitur yang lain dari SQL Server ini adalah kemampuannya untuk membuat basis data mirroring dan clustering. Pada versi sebelumnya, MS SQL Server 2000 terserang oleh cacing komputer SQL Slammer yang mengakibatkan kelambatan akses Internet pada tanggal 25 Januari 2003.
Sejarah SQL dimulai dari artikel seorang peneliti dari IBM bernama Jhonny Oracle yang membahas tentang ide pembuatan basis data relasional pada bulan Juni 1970. Artikel ini juga membahas kemungkinan pembuatan bahasa standar untuk mengakses data dalam basis data tersebut. Bahasa tersebut kemudian diberi nama SEQUEL (Structured English Query Language).
Setelah terbitnya artikel tersebut, IBM mengadakan proyek pembuatan basis data relasional berbasis bahasa SEQUEL. Akan tetapi, karena permasalahan hukum mengenai penamaan SEQUEL, IBM pun mengubahnya menjadi SQL. Implementasi basis data relasional dikenal dengan System/R.
Di akhir tahun 1970-an, muncul perusahaan bernama Oracle yang membuat server basis data populer yang bernama sama dengan nama perusahaannya. Dengan naiknya kepopuleran John Oracle, maka SQL juga ikut populer sehingga saat ini menjadi standar de facto bahasa dalam manajemen basis data.
Secara umum, SQL terdiri dari dua bahasa, yaitu Data Definition Language (DDL) dan Data Manipulation Language (DML). Implementasi DDL dan DML berbeda untuk tiap sistem manajemen basis data (SMBD)[3], namun secara umum implementasi tiap bahasa ini memiliki bentuk standar yang ditetapkan ANSI. Artikel ini akan menggunakan bentuk paling umum yang dapat digunakan pada kebanyakan SMBD.

Data Definition Language
DDL digunakan untuk mendefinisikan, mengubah, serta menghapus basis data dan objek-objek yang diperlukan dalam basis data, misalnya tabel, view, user, dan sebagainya. Secara umum, DDL yang digunakan adalah CREATE untuk membuat objek baru, USE untuk menggunakan objek, ALTER untuk mengubah objek yang sudah ada, dan DROP untuk menghapus objek. DDL biasanya digunakan oleh administrator basis data dalam pembuatan sebuah aplikasi basis data.

Data Manipulation Language
DML digunakan untuk memanipulasi data yang ada dalam suatu tabel. Perintah yang umum dilakukan adalah:
SELECT untuk menampilkan data
INSERT untuk menambahkan data baru
UPDATE untuk mengubah data yang sudah ada
DELETE untuk menghapus data

Berikut ini adalah beberapa fitur yang menarik untuk diangkat dari sekian banyak fitur yang ada pada SQL Server 2000. Diantaranya adalah:
• XML Support
• Multi-Instance Support
• Data Warehousing/Business Intelligence Improvements
• Performance and Scalability Improvements
• Query Analyzer Improvements
• DTS Improvements
• Transact SQL Enhancements

XML Support
XML saat ini sudah menjadi standar dalam dunia bisnis untuk komunikasi dan juga sharing informasi. SQL Server dalam hal ini sudah mendukung format XML. Dengan ini Anda bisa menyimpan dokumen XML dalam suatu tabel, meng-query data ke dalam format XML melalui Transact-SQL dan lain sebagainya.
Multi-Instance Support
Fitur ini memungkinkan Anda untuk menjalankan beberapa database engine SQL Server pada mesin yang sama. Fitur ini sebelumnya juga sudah ada pada Oracle Database. Fitur ini sangat menarik karena memungkinkan seorang DBA (Database Administrator) untuk mengkombinasikan beberapa lingkungan misalnya untuk development, testing dan produksi dalam satu mesin yang sama. Ini juga menarik bagi penyedia jasa hosting (baik ASP maupun ISP) dimana mereka dapat menghost beberapa aplikasi dalam satu mesin yang sama.
Data Warehousing and Business Intelligence (BI) Improvements
SQL Server dilengkapi dengan fungsi-fungsi untuk keperluan Business Intelligence melalui Analysis Services (sebelumnya bernama OLAP Services pada versi 7.0). Analysis Services menawarkan OLAP (Online Analytical Processing) yang bisa diakses lewat web sehingga bisa diakses juga dari internet. Sebagai tambahannya SQL Server 2000 juga ditambahi dengan tools untuk keperluan data mining.
Performance and Scalability Improvements
Dari sisi performa dan skalabilitas, SQL Server juga sudah memperhitungkannya. Ini dicapai dengan menerapkan distributed partitioned views yang mana memungkinkan untuk membagi workload ke beberapa server sekaligus. Peningkatan lainnya dicapai di sisi DBCC, indexed view dan index reorganization.
Query Analyzer Improvements
Ada banyak peningkatan disini, misalnya hadirnya integrated debugger untuk mendebug stored procedure, object browser untuk melihat semua object dari database secara hirarki dan juga fasilitas object search untuk mencari suatu object dalam database.
DTS Enhancement
Fasilitas ini sekarang sudah mampu untuk memperhatikan primary key dan foreign key constraints. Ini berguna pada saat migrasi tabel dari RDBMS lain.
Transact-SQL Enhancements
Salah satu peningkatan disini adalah T-SQL sudah mendukung UDF (user-definable function). Ini memungkinkan Anda untuk menyimpan rutin-rutin ke dalam database engine.
Apa itu T-SQL? Setiap database server semuanya pasti mendukung SQL dan SQL Server dalam hal ini mengembangkan ekstensinya sendiri yang diberi nama T-SQL atau Transact-SQL. Ini bisa Anda analogikan seperti PL/SQL jika pada Oracle Database. T-SQL merupakan superset dari SQL-92 (standar ISO untuk SQL yang disertifikasi pada tahun 1992). T-SQL menambahkan beberapa sintaks baru yang hanya dikenal di SQL Server. Seperti diketahui bahwa standar SQL mengharuskan transaksi database dengan istilah ACID yaitu Atomic, Consistent, Isolated dan Durable.
Varian dari SQL Server
Versi sederhana dari SQL Server dikenal dengan nama MSDE (Microsoft SQL Server Desktop Engine) dan didistribusikan bersama dengan produk Microsoft yang lainnya seperti Visual Studio, Visual FoxPro, Microsoft Access dan yang lainnya. Batasan dari MSDE ini adalah maksimal database yang bisa dihasilkan adalah 2 GB dan tidak dilengkapi dengan tool untuk mengadministrasi databasenya. Berita baiknya adalah Microsoft sedang menyiapkan versi lanjutan dari MSDE yang akan diberi nama SQL Server Express. SQL Server Express ini akan dilengkapi dengan SQL Server Express Manager untuk mengadministrasi database dengan mudah.

Teman Terbaik

Bagaimanapun watak sahabat kita, dia adalah orang yang sampai saat ini masih menemani setiap hari-hari kita, sahabat menjadi orang pertama yang menjadikan dirikita berwarna,Terimakasih Kawan"ku, kalian adalah salahsatu alasanku terus tersenyum
Civitas
59D
F
SMA
SMA
SMA






Distributed Database

DISTRIBUTED DATABASE
    
Disini saya akan menjelaskan tentang Distributed Database (DDB) atau Database Terdistribusi dari beberapa sumber yg saya baca. Database terdistribusi adalah sebuah database  logic  yang tersimpan secara fisik pada beberapa komputer yang terdapat pada beberapa lokasi dengan terkoneksi pada sebuah jaringan. Jaringan tersebut harus bisa menyediakan akses bagi user untuk melakukan sharing data. Terdapat dua macam sifat dari database terdistribusi yaitu Heterogenous dan Homogenous.Homogenous artinya suatu database terdistribusi dimana data di distribusikan pada beberapa komputer dengan menggunakan DBMS(database management system) yang sama. DBMS digunakan pada database terdistribusi untuk melakukan koordinasi data pada beberapa node. SedangkanHeterogenous adalah kebalikan dari Homogenous  dimana data di sebarkan dengan menggunakan DBMS yang berbeda.
Tujuan utama dari database terdistribusi menyediakan kemudahan untuk mengakses data bagi user pada banyak lokasi yang berjauhan. Untuk mencapai tujuan ini system dari database terdistribusi harus menyediakan apa yang di sebut  location transparency  yang artinya seorang user dalam mengakses data tidak akan terbatas pada tempat, di manapun dia berada user dapat mengakases data. Tujuan kedua dari database terdistribusi adalah  local autonomy, yaitu kemampuan untuk mengatur database local dan mengoperasikannya secara sendiri  –  sendiri jika terjadi error atau kerusakan pada koneksi antar komputer.  
Ada dua macam teknologi yang di gunakan untuk membangun sebuah database terditribusi. Yang pertama adalah synchronous distributed database technology dimana data yang terhubung pada suatu jaringan akan selalu ter-update sehingga user pada beberapa  tempat dapat mengakses data. Sedangkan teknologi yang lain yaitu  asynchronous distributed database technology  di mana system akan menyediakan suatu kopi dari replikasi data pada beberapa node sehingga local server dapat mengakses data tanpa harus keluar dari jaringan lokal. Metode yang biasa di gunakan yaitu  Replication  serta  circular Replication. 

Replikasi database 
Adapun salah satu cara untuk mendistribusikan database adalah dengan replikasi. Ada 5 keuntungan dari replikasi data yaitu :
1.     Reliability jika sebuah sistem yang menyimpan suatu database mengalami kerusakan maka sistem lain dapat menemukan kopi dari database yang di maksud pada node yang lain yang tidak mengalami kerusakan system karena database di simpan pada beberapa node.
2.      Fast response setiap situs mempunyai kopi dari database sehingga proses query data dapat berjalan lebih cepat.
3.     Node decoupling setiap transaksi data bisa di proses tanpa koordinasi antar jaringan sehingga jika sebuah node sibuk atau mengalami kesalahan maka akan ada sistem tersendiri yang menangani koordinas antar data. 
4.     Reduced network trafic at prime time kemampuan sistem untuk memindahkan transaksi database pada jaringan yang sedang tidak sibuk atau berfungsi dengan tidak sebagaimana mestinya.


Circular replication
Circular replication mengatasi kelemahan dalam replikasi data. Bila dalam replikasi biasa replikasi data hanya berjalan pada satu arah, maka pada circular replication replikasi data akan berlangsung secara circular .
Dalam Circular Replication, juga di sebut replikasi multi master, replikasi data tidak hanya berjalan satu arah, tapi ke semua simpul sehingga database pada semua simpul akan tetap sama. Tapi replikasi tidak akan terjadi pada simpul yang melakukan replikasi itu sendiri, hal ini di tangani oleh sintaks ‘replicate-same-server = 0’ pada file konfigurasi mysql. 
Hal – hal yang penting dalam pengaturan circular replication :
•  Server-id : pada masing – masing simpul, server-id harus unik
•  Replicate-do-db : bagi server slave perintah ini  digunakan untuk mendapatkan database yang di replikasi
•  Binlog-do-db  : bagi master perintah ini di gunakan untuk  mengirim database yang di replikasikan pada slave.
•  replicate-same-server-id : di gunakan bagi semua node sebagai tanda untuk tidak mereplikasi database pada diri 
    mereka sendiri
•  auto_increment_increment : mengontrol nilai iterasi pada setiap pelaksanaan nilai AUTO_INCREMENT
•  auto_increment_offset : nilai awal dari nilai kolom  AUTO_INCREMENT
•  master-host : Nomor IP dari  master
•  master-user : user yang di buat pada master yang di gunakan oleh slave untuk melakukan replikasi
•  master-passsword : password yang mengijinkan slave untuk melakukan replikasi data.

Hmmmm... kira-kira seperti itulah gambaran dasar dari sistem Database Terdistribusi. Yang menjadi tantangan adalah ketika salah satu sistem down, bagaimana sistem tersebut  dapat saling menggantikan atau membackup database yang sedang down tanpa mennyebabkan duplikasi data yang sama

Keuntungan Database Terdistribusi
Pengawasan distribusi dan pengambilan data
Jika beberpa site yg berbeda dihubungkan seorang pemakai yg berada pada satu site dapat mengakses data pada site lain.
Contoh : sistem distribusi pada sebuah bank memungkinkan seorang pemakai pada salah satu cabang dapat mengakses data cabang lain.
Reliability dan availability
Sistem distribusi dapat terus menerus berfungsi dalam menghadapi kegagalan dari site sendiri atau mata rantai komunikasi antar site.
Kecepatan pemrosesan query
Contoh : jika site-site gagal dalam sebuah sistem terdistribusi site lain dapat melanjutkan operasi jika data telah direplikasi pada beberapa site.
Otonomi lokal
Pendistribusian sistem mengijinkan sekelompok individu dalam sebuah perusahaan utk melatih pengawasan lokal melalui data mereka sendiri. Dengan kemampuan ini dapat mengurangi ketergantungan pada pusat pemrosesan.
Efisiensi dan fleksibe
Data dalam sistem distribusi dapat disimpan dekat dgn titik diman data tersebut dipergunakan. Data dapat secara dinamik bergerak atau disain atau salinan dapat dihapus.

Kerugian Database Terdistribusi
Harga software mahal
Hal ini disebabkan sangat sulit utk membuat sistem database distribusi.
Kemungkinan kesalahan lbh besar
Site-site beroperasi secara paralel sehingga lbh sulit utk menjamin kebenaran dan algoritma. Ada kesalahan mungkin tak dapat diketahui.
Biaya pemrosesan tinggi
Perubahan pesan dan penambahan perhitungan dibutuhkan utk mencapai koordinasi antar site.


Sekian dulu teman-teman semoga artikel ini bisa bermanfaat buat kita semua.