Anda di halaman 1dari 13

MODUL 7

CASSANDRA: CRUD

CAPAIAN PEMBELAJARAN

1. Mahasiswa mengerti dan bisa menerapkan tentang CRUD dengan menggunakan


DBMS Cassandra.

KEBUTUHAN ALAT/BAHAN/SOFTWARE

1. Koneksi internet
2. Virtual Machine CentOS 7
3. Virtualbox v6, Putty
4. java-1.8.0-openjdk-devel, Pyton 2.7, Apache Cassandra 3.11

DASAR TEORI

Gambar 7.1

54
Cluster adalah kumpulan node yang mewakili satu sistem. Sebuah cluster di Cassandra adalah
salah satu shell di seluruh database Cassandra (gambar 7.1). Banyak Kluster Cassandra yang
digabungkan untuk membentuk database di Cassandra. Cluster pada dasarnya adalah shell
terluar atau unit penyimpanan dalam database. Cluster Cassandra berisi banyak lapisan unit
penyimpanan yang berbeda. Setiap lapisan berisi lapisan lainnya.

Dalam data model Cassandra, Keyspace Cassandra adalah sebuah kontainer untuk data.
Keyspace tersebut mengandung banyak atribut. Atribut-atribut dasarnya adalah:
1. Replication Factor
Replication Factor pada dasarnya menandakan jumlah salinan data. Dengan kata lain,
jumlah node dalam cluster yang merupakan salinan dari suatu data.
2. Replication Strategy
Replication Strategy akan menggandakan data didalam sebuah cluster Cassandra.
Terdapat dua tipe strategi yaitu:
 Simple Strategi (untuk data center tunggal)
 Network Topologi Strategi (untuk multi data center)
3. Cassandra Column Families
Column Family di Cassandra adalah kumpulan baris, yang berisi kolom terurut. Column
Family mewakili struktur data yang disimpan. Cassandra Column Families ini ada di
Keyspace. Setidaknya terdapat satu Column Families di setiap Keyspace (gambar 7.2).

Gambar 7.2 Cassandra column family

CQL menyimpan data dalam tabel, yang skemanya menentukan tata letak data tersebut
dalam tabel, dan tabel tersebut dikelompokkan dalam Keyspace (gambar 7.3). Sebuah
Keyspace mendefinisikan sejumlah opsi yang berlaku untuk semua tabel yang dikandungnya,
yang paling sering digunakan oleh Keyspace adalah replication strategy.

55
Gambar 7.3 Arsitektur Data model Cassandra

Operasi Keyspace:
 Describe, melihat keyspace yang sudah ada

 Create, membuat keyspace

 Use, menggunakan keyspace tertentu

 Alter, merubah keyspace

 Drop, menghapus keyspace

Operasi tabel. Sebelum menjalankan operasi tabel, diharuskan untuk menggunakan perintah
“USE <Keyspace name>” terlebih dahulu:
 Create, membuat tabel

56
 Alter, merubah tabel

 Drop, menghapus tabel

Operasi CRUD. Sebelum menjalankan operasi CRUD, diharuskan untuk menggunakan


perintah “USE <Keyspace name>” terlebih dahulu:
 Create, memasukkan data

 Read, membaca data

 Update

 Delete

57
PRAKTIK

1. Dari Virual Machine yang sudah terinstall cassandra pada praktikum sebelumnya.
Jalankan VM kemudian Start service cassandra dengan menggunakan perintah “service”.

# service cassandra start

2. Setelah cassandra berhasil dijalankan, tunggu kurang lebih 1 menit untuk proses
bootstrapping. Selanjutnya cek status dari cassandra. Jika status tidak sama seperti pada
gambar, maka ditunggu dan diulang lagi beberapa menit kemudian.

# nodetool status

3. Selanjutnya koneksi ke database dengan menggunakan perintah “cqlsh”.

# cqlsh

4. Bagian pertama yang perlu dibuat pada cassandra adalah Keyspace. Perintah yang
digunakan adalah “CREATE KEYSPACE”. Untuk menampilkan atau memverifikasi hasil
keyspace yang telah dibuat, perintah yang digunakan adalah “DESCRIBE KEYSPACES”

58
atau “SELECT * FROM system_schema.keyspaces;”. Kita akan membuat 2 keyspace
sebagai berikut:
Nama KeySpace Strategy Name Strategy_options Durable_writes
ksstudent SimpleStrategy 'replication_factor' : 1 True (default)
test NetworkTopologyStrategy "datacenter1" : "3" false

cqlsh> CREATE KEYSPACE ksstudent WITH replication =


{'class':'SimpleStrategy', 'replication_factor' : 1};
cqlsh> CREATE KEYSPACE test WITH REPLICATION = { 'class' :
'NetworkTopologyStrategy', 'datacenter1' : 3 } AND DURABLE_WRITES =
false;
cqlsh> DESCRIBE keyspaces;
cqlsh> SELECT * FROM system_schema.keyspaces;
cqlsh> DESCRIBE keyspace ksstudent;
cqlsh> DESCRIBE keyspace test;

59
5. Merubah konfigurasi keyspace tertentu dengan menggunakan perintah “ALTER”. Pada
langkah ini kita akan melakukan perubahan dari langkah 4 sebelumnya, dengan
sebagaimana berikut:

Setelah dilakukan perubahan:


Nama KeySpace Strategy Name Strategy_options Durable_writes
ksstudent SimpleStrategy 'replication_factor' : 3 True (default)
test NetworkTopologyStrategy "datacenter1" : "3" True

cqlsh> ALTER KEYSPACE ksstudent WITH REPLICATION =


{'class':'SimpleStrategy', 'replication_factor' : 3};
cqlsh> ALTER KEYSPACE test WITH REPLICATION = { 'class' :
'NetworkTopologyStrategy', 'datacenter1' : 3 } AND DURABLE_WRITES =
true;
cqlsh> SELECT * FROM system_schema.keyspaces;

60
6. Kita bisa menghapus (drop) KeySpace dengan menggunakan perintah "DROP". Pada
langkah ini kita akan men-drop KeySpace “test”. Perintah yang digunakan adalah “DROP
KEYSPACE <KeySpace name>”.

cqlsh> DROP KEYSPACE test;


cqlsh> DESCRIBE keyspaces;

7. Membuat tabel dengan perintah “CREATE”. Sebelum melakukan operasi pada tabel kita
harus menggunakan (mengaktifkan) terlebih dahulu salah satu dari KeySpace yang akan
digunakan dengan menggunakan perintah “USE <KeySpace name>”. Setelah membuat
tabel kita bisa melakukan verifikasi dengan perintah “DESCRIBE <Nama Tabel>”. Pada
langkah ini kita akan membuat tabel “emp” dan “employee”.

cqlsh> USE ksstudent;


cqlsh:ksstudent> CREATE TABLE emp(
emp_id int PRIMARY KEY,
emp_name text,
emp_city text,
emp_sal varint,
emp_phone varint
);
cqlsh:ksstudent> DESCRIBE emp;

cqlsh> USE ksstudent;

61
cqlsh:ksstudent> CREATE TABLE employee(
emp_id int PRIMARY KEY,
emp_name text,
emp_city text,
emp_phone varint
);
cqlsh:ksstudent> DESCRIBE employee;

8. Kita bisa melakukan perubahan terhadap tabel, menambah (ADD) dan mengurangi
(DROP) column dengan menggunakan perintah “ALTER”. Pada langkah ini kita akan
menambahkan column “emp_email” yang bertipe “text”.

cqlsh:ksstudent> ALTER TABLE emp ADD emp_email text;


cqlsh:ksstudent> DESCRIBE emp;

cqlsh:ksstudent> ALTER TABLE emp ADD emp_email text;


cqlsh:ksstudent> DESCRIBE emp;

62
9. Pada langkah 7 kita telah membuat dua tabel, pada langkah ini kita akan menghapus
salah satu dari tabel tersebut. Tabel yang akan dihapus adalah tabel “employee”.
Perintah yang digunakan untuk menghapus tabel adalah “DROP TABLE <Nama Tabel>”.
kita bisa melihat keseluruhan tabel yang ada dengan menggunakan perintah “DESCRIBE
TABLES”.

cqlsh:ksstudent> DESCRIBE TABLES;


cqlsh:ksstudent> DROP TABLE employee;

10. Pada langkah ini kita akan melakukan operasi CRUD, untuk operasi Insert (CREATE).
Perintah yang digunakan adalah “INSERT INTO”.

Sebagai contoh kita akan memasukkan record sebagai berikut ke dalam tabel emp:

cqlsh:ksstudent> INSERT INTO emp (emp_id, emp_name, emp_city,


emp_phone, emp_sal) VALUES(1,'ram', 'Hyderabad', 9848022338, 50000);
cqlsh:ksstudent> INSERT INTO emp (emp_id, emp_name, emp_city,
emp_phone, emp_sal) VALUES(2,'robin', 'Hyderabad', 9848022339,
40000);
cqlsh:ksstudent> INSERT INTO emp (emp_id, emp_name, emp_city,
emp_phone, emp_sal) VALUES(3,'rahman', 'Chennai', 9848022330,
45000);

63
11. Selanjutnya kita akan melakukan operasi CRUD, untuk operasi Select (READ). Perintah
yang digunakan adalah “SELECT * FROM <Nama Tabel>” untuk menampilkan record
yang sudah kita insert pada langkah sebelumnya.

cqlsh:ksstudent> SELECT * FROM emp;

12. Selanjutnya kita akan melakukan operasi CRUD, untuk operasi Update (UPDATE).
Perintah yang digunakan adalah “UPDATE <Nama Tabel> SET <Nama Kolom> = <Nilai
baru> WHERE <Kondisi>” untuk menampilkan record yang sudah kita update, perintah
yang digunakan adalah “SELECT * FROM <Nama Tabel>”. Sebagai contoh pada langkah
ini kita akan mengupdate nilai pada kolom “emp_city='Delhi'” dan “emp_sal=50000”,
dimana “emp_id=2”. Hasilnya dapat kita bandingkan dengan langkah 12.

cqlsh:ksstudent> UPDATE emp SET emp_city='Delhi',emp_sal=50000


WHERE emp_id=2;
cqlsh:ksstudent> SELECT * FROM emp;

13. Selanjutnya kita akan melakukan operasi CRUD, untuk operasi Delete (DELETE). Perintah
yang digunakan adalah “DELETE FROM <identifier> WHERE <Kondisi>” untuk
menampilkan record yang sudah kita update, perintah yang digunakan adalah “SELECT *
FROM <Nama Tabel>”. Sebagai contoh pada langkah ini kita akan menghapus
“emp_sal”, dimana “emp_id=3”. Hasilnya dapat kita bandingkan dengan langkah 13.

64
cqlsh:ksstudent> DELETE emp_sal FROM emp WHERE emp_id=3;
cqlsh:ksstudent> SELECT * FROM emp;

14. Seteleh selesai, untuk keluar dan kembali ke terminal gunakan perintah “exit”.

> exit

15. Menghentikan service cassandra dengan menggunakan perintah “service”.

# service cassandra stop

16. Setelah selesai kita shutdown Virtual Machine Centos Cassandra dengan menggunakan
perintah “shutdown -h now”.

# shutdown -h now

65
LATIHAN

1.

TUGAS

1.

REFERENSI

https://cassandra.apache.org/doc/latest/cql/index.html

https://data-flair.training/blogs/cassandra-data-model/

https://cassandra.apache.org/doc/latest/cql/ddl.html

https://www.tutorialspoint.com/cassandra/cassandra_create_keyspace.htm

https://www.tutorialspoint.com/cassandra/cassandra_create_table.htm

https://www.tutorialspoint.com/cassandra/cassandra_create_data.htm

66