Minggu, 17 Desember 2023

Entitas pelanggan dan pemesanan tiket kereta api

 

NAMA : Ikbal Maulana Yusuf

KELAS : IF22G

NIM : 22416255201072

 

Gambarkan hubungan antara entitas pelanggan dan pemesanan tiket kereta api. Tentukan tingkat partisipasi dan kardinalitas untuk hubungan tersebut. 



 Hubungan antara kedua entitas :

·         Satu pelanggan dapat membuat banyak pemesanan tiket (one to many)

·         Satu pemesan tiket hanya dilakukan oleh satu pelanggan (many to one )

Tingkat Partisipasi:

·         Pelanggan : optional (seorang pelanggan mungkin belum tentu membuat pemesanan tiket)

·         Pemesan_tiket : mandatory (setiap pemesanan tiket harus dilakukan oleh seorang pelanggan)

Kardinalitas:

Pelanggan: 0..(nol atau lebih pemesanan tiket)

Pemesanan_Tiket: 1..1 (tepat satu pelanggan)

Jadi hubungan antara kedua entitas adalah one-to-many dengan tingkat partisipasi optional pada entitas Pelanggan dan mandatory pada entitas Pemesanan_Tiket. Kardinalitas Pelanggan 0.. dan Pemesanan_Tiket 1..1.

Kamis, 16 November 2023

Apa itu denormalisasi

 

Arti Denormalisasi Data

Dikutip Indeed, denormalisasi data adalah proses mengambil data normal untuk kemudian membuat duplikat dan mengelompokkannya.

Dengan kata lain, denormalisasi menggabungkan data dalam jumlah besar dalam tabel tertentu.

Berbeda dengan normalisasi data yang mengurangi penyimpanan dengan menyingkirkan duplikat pada database terpisah.

Geeks for Geeks menjelaskan bahwa tujuan proses ini adalah memperkenalkan kembali pengulangan atau duplikasi data untuk mengeksekusi permintaan dengan lebih cepat.

Jika normalisasi data dapat mengoptimalkan ruang penyimpanan dan kinerja, melakukan denormalisasi pada data yang sama akan meningkatkan kinerja operasi gabungan dan read performance.

Normalisasi data akan membutuhkan waktu yang lebih lama untuk menggabungkan dan memproses data yang ada, maka dari itu terkadang dibutuhkan teknik denormalisasi ini untuk mempercepat prosesnya.

Contoh Denormalisasi Data

Berikut adalah contoh dari denormalisasi data:

1. Membuat hierarki data

Data dalam hierarki yang sama cenderung memiliki nilai yang sama pula.

Melalui hierarki data dengan nilai utama yang tidak berubah, kamu bisa menggabungkan tabel berbeda pada satu tabel hierarki.

Membuat hierarki data dapat membantu pemrosesan data lebih cepat dan efisien karena berkurangnya kelompok tabel. 

2. Hard-code data

Contoh teknis denormalisasi data yang lain adalah dengan menggunakan hard-code data.

Kamu bisa membuat hard-code data secara langsung pada sistem untuk mengurangi munculnya tabel data baru.

Teknik ini baik diterapkan untuk nilai yang berada dalam kelompok dalam kecil.

3. Simpan salinan master data

Database master menyimpan semua data, tabel, dokumen, dan lokasinya pada server yang spesifik. 

Menyimpan master data akan membantu kamu menerapkan aturan serta batasan penggunaan data untuk pengguna lainnya.

Jika informasi yang tersimpan dalam master database ini digunakan atau diubah maka kamu akan menerima informasi dari pengguna tersebut. 

4. Short-circuit data

Melakukan short-circuit data dapat membantu memastikan hubungan di antara tabel data pada beberapa level yang berbeda.

Short-circuit menyediakan shortcut yang menggabungkan data relevan untuk meminimalisir jumlah operasi gabungan yang dilakukan database untuk menjalankan permintaan.

Ini akan mempermudah database dengan lebih dari 3 tingkatan tabel data untuk memberikan respons yang lebih cepat terhadap permintaan.

5. Memisahkan tabel data

Kamu bisa memisahkan tabel data, secara vertikal dan horizontal, menjadi unit yang lebih kecil.

Dengan memisahkan tabel data ini, kamu bisa mempercepat pemrosesan data.

Untuk manajemen database, kamu bisa memisahkan tabel sesuai dengan jenis informasi maupun spesifikasi data serta melengkapinya dengan lokasi penyimpanan.

6. Simpan data yang dapat diturunkan

Data yang dapat diturunkan memungkinkan pengguna untuk membuat kesimpulan informasi titik data dari tabel data.

Hal ini bisa dilakukan tanpa menyimpan data tertentu sebagai nilai yang terpisah.

Contohnya, saat kamu merilis suatu produk pada tanggal tertentu, maka kamu akan memiliki data nomor seri serta tanggal stok dalam database.

Dari data yang tersimpan ini, database dapat menyediakan informasi berapa lama produk tersedia. 

Tips Melakukan Denormalisasi Data

1. Periksa penyimpanan database

Denormalisasi data adalah teknik yang membuat value dan tabel tambahan pada data sehingga membutuhkan penyimpanan besar.

Memastikan ruang penyimpanan masih tersedia dalam jumlah besar adalah hal krusial.

Jika ruang penyimpanan tersisa sedikit maka akan memengaruhi proses operasional.

Periksa kembali penyimpanan database jika kamu ingin menggunakan teknik denormalisasi untuk optimalisasi proses.

2. Pastikan kembali data normalisasi

Proses denormalisasi akan membuat salinan data untuk mengoptimasi respons. Oleh karena itu, penting untuk menerapkannya dalam data normalisasi yang tidak lagi memiliki salinan.

Hal ini dilakukan untuk mencegah duplikasi data lebih lanjut dan mengoptimalkan ruang penyimpanan database.

3. Lakukan tes teknis denormalisasi terlebih dulu

Sebelum melakukan proses ini, kamu sebaiknya melakukan tes denormalisasi pada jumlah data yang sedikit untuk melihat potensi optimisasi terlebih dahulu.

Melakukan tes ini akan membantu kamu menganalisis waktu proses yang dibutuhkan untuk jumlah data tertentu.

4. Memahami penggunaan data secara umum

Untuk menghindari salinan data yang tidak perlu dan menghabiskan ruang pentimpanan, penting untuk mengetahui penggunaan data dalam database.

Kamu bisa mengumpulkan informasi data seperti frekuensi data, data apa saja yang tergabung, serta waktu respons data.

Ini akan memudahkan kamu memutuskan penggunaan teknik denormalisasi data nantinya.

5. Gunakan database management system

Tergantung dengan DBMS (database management system) apa yang kamu punya, desain serta batasan apa yang memungkinkan, kamu bisa membuat sistem menyimpan salinan data.

DBMS akan secara otomatis menyimpan salinan data untuk konsistensi dan optimisasi waktu respons.

Saat nilai data berubah, DBMS akan membantu memastikan keakuratan data.

Minggu, 29 Oktober 2023

Apa itu normalisasi pada erd

Normalisasi dalam ERD (Entity-Relationship Diagram) adalah proses perancangan basis data yang bertujuan untuk mengurangi redundansi data dan memastikan integritas data. Tujuan utama normalisasi adalah mengorganisasi struktur basis data agar data tersimpan dengan cara yang efisien, dan meminimalkan anomali data, seperti data yang tidak konsisten atau tidak benar.

Normalisasi melibatkan pemisahan data menjadi tabel yang lebih kecil, dan menghubungkan tabel tersebut menggunakan hubungan yang sesuai. Ada sejumlah bentuk normalisasi, yang disebut "bentuk normal," yang digambarkan sebagai tingkatan, seperti Normalisasi Tingkat Pertama (1NF), Normalisasi Tingkat Kedua (2NF), Normalisasi Tingkat Ketiga (3NF), dan seterusnya.

Setiap tingkatan normalisasi memiliki aturan tertentu yang harus diikuti untuk memastikan bahwa basis data Anda terorganisasi dengan baik. Beberapa aturan umum termasuk:

  1. -1NF (Normalisasi Tingkat Pertama): Memastikan setiap kolom dalam tabel hanya berisi nilai atomik (nilai tunggal), dan tidak ada kelompok nilai dalam satu kolom.


  2. -2NF (Normalisasi Tingkat Kedua): Memisahkan data yang tidak sepenuhnya bergantung pada kunci utama tabel, sehingga tidak ada redundansi data.


  3. -3NF (Normalisasi Tingkat Ketiga): Menghilangkan dependensi transitif, yaitu memastikan bahwa setiap kolom dalam tabel hanya bergantung pada kunci utama dan bukan pada kolom lain dalam tabel.

Normalisasi membantu meminimalkan kesalahan dalam basis data, meningkatkan efisiensi penyimpanan data, dan memudahkan pemeliharaan dan manajemen basis data. Namun, terlalu banyak normalisasi juga bisa mengakibatkan kompleksitas yang berlebihan. Oleh karena itu, perancangan basis data yang baik mempertimbangkan keseimbangan antara normalisasi dan kinerja. 

Apa itu relarion dalam ERD dan mengapa many-to-many tidak baik digunakan pada ERD

ERD 

digunakan untuk menggambarkan bagaimana entitas berinteraksi satu sama lain dalam basis data, dan “Relation” menggambarkan cara entitas tersebut terhubung atau berhubungan satu sama lain. Hubungan ini dapat menggambarkan berbagai tingkat keterkaitan antara entitas, seperti one-to-one, one-to-many, atau many-to-many.

Saat menggambarkan hubungan antara entitas dalam ERD, ada tiga jenis hubungan utama:

1. One-to-One (1:1): Ini berarti satu entitas dalam satu tabel berhubungan dengan satu entitas dalam tabel lain. Misalnya, satu karyawan dapat memiliki satu nomor identifikasi unik.

2. One-to-Many (1:N): Ini berarti satu entitas dalam satu tabel berhubungan dengan banyak entitas dalam tabel lain. Misalnya, satu kategori produk dapat memiliki banyak produk yang terkait.

3. Many-to-Many (N:N): Ini berarti banyak entitas dalam satu tabel dapat berhubungan dengan banyak entitas dalam tabel lain. Contoh klasik dari ini adalah hubungan antara entitas “Mahasiswa” dan “Kelas” dalam sistem pengelolaan sekolah. Banyak mahasiswa dapat mendaftar untuk banyak kelas, dan sebaliknya.

mengapa many-to-many tidak baik digunakan pada ERD

Hubungan many-to-many dalam Entity-Relationship Diagram (ERD) tidak secara inheren “buruk,” tetapi bisa memperkenalkan kompleksitas dan tantangan dalam desain dan pemeliharaan basis data. Berikut beberapa alasan mengapa hubungan many-to-many bisa menjadi masalah dalam ERD:

1. Kompleksitas Implementasi: Dalam sistem basis data relasional, hubungan many-to-many tidak dapat direpresentasikan secara langsung dalam tabel. Anda perlu membuat tabel perantara, sering disebut sebagai tabel junction atau linking, untuk menyelesaikan hubungan many-to-many. Ini menambah lapisan kompleksitas pada skema basis data.

2. Integritas Data: Mengelola integritas data menjadi lebih sulit saat menggunakan hubungan many-to-many. Lebih mudah untuk secara tidak sengaja memasukkan data duplikat atau inkonsisten ke dalam tabel perantara, yang dapat menyebabkan anomali data.

3. Kompleksitas Kueri: Mengkueri basis data dengan hubungan many-to-many bisa lebih rumit. Menggabungkan beberapa tabel, terutama dalam skema yang kompleks, dapat menghasilkan kueri SQL yang sulit dibaca dan dipelihara.

4. Masalah Kinerja: Hubungan many-to-many dapat mengakibatkan kinerja kueri yang lebih lambat, terutama ketika berhadapan dengan kumpulan data besar. Kebutuhan akan beberapa operasi penggabungan dapat mempengaruhi kinerja basis data.

5. Beban Pemeliharaan: Saat membuat perubahan pada skema basis data, seperti menambah atau menghapus entitas atau atribut, Anda mungkin perlu memperbarui tabel-tabel perantara dan memodifikasi kueri yang ada. Ini meningkatkan beban pemeliharaan.

6. Tantangan Skalabilitas: Ketika volume data tumbuh, hubungan many-to-many dapat menjadi bottleneck dalam skalabilitas, mengakibatkan waktu respons yang lebih lambat dan penggunaan sumber daya yang lebih besar.

Sabtu, 28 Oktober 2023

Apa itu PrimaryKey, Foregent Key dan Candidate Key. berikan masing-masih 5 contoh pada penerapan ERD


 
A. Apa itu Primary key ?

Primary key (kunci utama) adalah sebuah candidate key yang telah dipilih untuk mengidentifikasi setiap record secara unik. Primary key harus merupakan field yang benar-benar unik dan tidak boleh ada nilai NULL. Pengertian lainya primary key adalah suatu nilai dalam basis data yang digunakan untuk mengidentifikasi suatu baris dalam tabel.

Berikut adalah Contoh Primary key :



Untuk kolom ID adalah primary key pada tabel di atas. Itu karena ID tersebut bersifat unik dan setiap data (row) memiliki nilai ID yang berbeda-beda.

Fungsi Primary Key

Dalam database relasional, tabel berfungsi untuk menyimpan nilai di dalamnya. Tabel ini terdiri dari kombinasi kolom yang terdapat kunci primer untuk menentukan tingkat integritas tabel. Pemilihan primary key adalah langkah penting untuk mencapai tujuan database yang benar dan valid

Syarat Primary Key

  • Tabel hanya bisa memiliki satu kunci primer.
  • Jumlah maksimal kunci primer yaitu 16 kolom dengan panjang kunci 900 byte.
  • Kolom kunci utama perlu Anda definisikan “NOT NULL” yang artinya memastikan bahwa nilai dalam kolom tersebut tidak boleh kosong. Jika Anda tidak memasukkan nilai atau data dalam kolom tersebut, maka akan terjadi kesalahan pada database.
  • Tidak boleh berisi nilai yang sama antara baris satu dengan baris lain.
  • Tipe data yang Anda gunakan untuk kunci primer tidak boleh tipe BLOB, melainkan INT, BIGINT, TINYINT, SMALLINT, dan sejenisnya.

Kolom kunci primer pada SQL biasanya memiliki atribut bernama AUTO_INCREMENT yang akan menghasilkan urutan naik dari kunci tersebut secara otomatis. Dengan kata lain, kunci utama baris berikutnya akan lebih besar nilainya dari baris sebelumnya.

Kelebihan dan kekurangan Primary Key

Diantara kelebihan dari primary key adalah:

· Primary key bisa menghindari kemungkinan terjadinya duplikasi data atau kesamaan antara data satu dengan lainnya.

· Primary key bisa membantu untuk melakukan pencarian data secara lebih cepat dan efisien.

· Primary key mencegah dari kesalahan memasukkan data kosong atau lupa memasukkan data, sebab primary key tidak boleh bernilai null.

Adapun kekurangan dari primary key adalah bahwa tidak setiap data bisa digunakan sebagai primary key. Hal ini dikarenakan primary key memiliki sejumlah syarat atau ketentuan yang harus dipenuhi agar tidak terjadi eror pada database

5 contoh penerapan Primary Key pada ERD:

1. Basis Data Perpustakaan Digital:

- Entitas: Buku

- Primary Key: ISBN (International Standard Book Number)

- Atribut lainnya: Judul, Penulis, Penerbit, Tahun Terbit, dll.

2.. Basis Data Film:

- Entitas: Film

- Primary Key: ID Film

- Atribut lainnya: Judul, Sutradara, Genre, Tahun Rilis, dll.

3. Sistem Manajemen Pesanan Restoran:

- Entitas: Pesanan

- Primary Key: ID Pesanan

- Atribut lainnya: Tanggal Pesanan, Meja, Daftar Menu, dll.

4. Daftar Kontak pada Aplikasi Ponsel:

- Entitas: Kontak

- Primary Key: ID Kontak

- Atribut lainnya: Nama Kontak, Nomor Telepon, Alamat Email, dll.

5. Sistem Manajemen Pasien di Rumah Sakit:

- Entitas: Pasien

- Primary Key: Nomor Rekam Medis

- Atribut lainnya: Nama, Tanggal Lahir, Jenis Kelamin, dll.


B. Candidate Key

Candidate key adalah salah satu atau lebih atribut dalam sebuah tabel yang dapat digunakan sebagai primary key potensial. Sama seperti primary key, candidate key juga harus unik untuk setiap baris dalam tabel. Dalam ERD, candidate key adalah atribut yang dapat diidentifikasi sebagai potensial primary key, dan penggunaannya bergantung pada aturan bisnis dan kebutuhan desain.

Berikut adalah 5 contoh penerapan candidate key dalam ERD:

  1. 1. Tabel Mahasiswa (Student): Candidate key dalam tabel mahasiswa bisa termasuk atribut seperti "NIM" (Nomor Induk Mahasiswa) dan "Nomor Kartu Identitas" (seperti KTP). Kedua atribut ini memiliki potensi untuk menjadi primary key, dan desainer dapat memilih salah satu dari mereka sesuai dengan kebutuhan.


  2. 2. Tabel Barang (Item): Candidate key dalam tabel barang bisa mencakup atribut seperti "Kode Barang" dan "Nomor Seri". Kedua atribut ini mungkin unik untuk setiap barang dan dapat dianggap sebagai candidate key.


  3. 3. Tabel Karyawan (Employee): Selain "ID Karyawan" (primary key), atribut seperti "Nomor Karyawan" atau "Nomor Identifikasi Pajak" juga dapat dianggap sebagai candidate key, karena mereka unik untuk setiap karyawan.


  4. 4. Tabel Pesanan (Order): Selain "ID Pesanan" (primary key), atribut seperti "Nomor Pesanan Pelanggan" atau "Nomor Resi Pengiriman" dapat digunakan sebagai candidate key, karena mereka unik untuk setiap pesanan.


  5. 5. Tabel Penerbit (Publisher): Candidate key dalam tabel penerbit bisa mencakup atribut seperti "Kode Penerbit" atau "Nama Penerbit". Kedua atribut ini mungkin unik untuk setiap penerbit dan dapat digunakan sebagai candidate key.


C. Candidate key

Candidate key adalah atribut-atribut yang memiliki potensi untuk menjadi primary key, tetapi keputusan akhir untuk menggunakan salah satu dari mereka sebagai primary key biasanya bergantung pada kebutuhan dan aturan bisnis yang ada. Dalam ERD, candidate key dapat ditampilkan sebagai atribut yang memiliki potensi untuk menjadi primary key, tetapi tidak selalu digunakan sebagai primary key. Berikut adalah 5 contoh penerapan candidate key dalam Entity-Relationship Diagram (ERD):

  1. 1. Tabel Mahasiswa (Student): Candidate key dalam tabel mahasiswa dapat mencakup atribut seperti "Nomor Induk Mahasiswa (NIM)" atau "Nomor Kartu Identitas (KTP)". Kedua atribut ini memiliki potensi untuk menjadi primary key.


  2. 2. Tabel Produk (Product): Candidate key dalam tabel produk bisa menjadi "Kode Produk" atau "Nomor Seri Produk". Kedua atribut ini harus unik dan dapat digunakan sebagai primary key.


  3. 3. Tabel Karyawan (Employee): Selain primary key seperti "ID Karyawan", atribut seperti "Nomor Karyawan" atau "Nomor Identifikasi Pajak" bisa menjadi candidate key, karena setiap karyawan harus memiliki nilai unik.


  4. 4. Tabel Pesanan (Order): Candidate key dalam tabel pesanan bisa mencakup atribut seperti "Nomor Pesanan Pelanggan" atau "Nomor Resi Pengiriman". Kedua atribut ini unik dan dapat digunakan sebagai primary key.


  5. 5. Tabel Buku (Book): Candidate key dalam tabel buku dapat mencakup atribut seperti "ISBN" atau "Nomor Katalog Perpustakaan". Kedua atribut ini harus unik dan dapat digunakan sebagai primary key.

Candidate key adalah atribut atau kombinasi atribut yang memiliki potensi untuk memastikan keunikan dalam tabel, dan pemilihan primary key dari candidate key sering tergantung pada kebutuhan aplikasi dan model data yang diimplementasikan. Dalam ERD, candidate key dapat ditampilkan sebagai atribut yang memiliki potensi untuk menjadi primary key, tetapi keputusan akhirnya akan bergantung pada desain basis data dan aturan bisnis yang ada.

Entitas pelanggan dan pemesanan tiket kereta api

  NAMA : Ikbal Maulana Yusuf KELAS : IF22G NIM : 22416255201072   Gambarkan hubungan antara entitas pelanggan dan pemesanan tiket ke...