Selasa, 24 Maret 2020

Tugas 1 Pengantar Teknologi Game

Dalam rangka menyelesaikan tugas softskill: Pengantar Teknologi Game, berikut ini hasil video mengenai teori game dan penjelasannya. Semoga videonya dapat bermanfaat.


Selasa, 03 Desember 2019

Post Test NoSql

Apa itu database NoSQL?

Database NoSQL dibuat dengan tujuan khusus untuk model data spesifik dan memiliki skema fleksibel untuk membuat aplikasi modern. Database NoSQL dikenal secara luas karena kemudahan pengembangan, fungsionalitas, dan kinerja dalam berbagai skala. Database NoSQL menggunakan berbagai model data, termasuk dokumen, grafik, nilai kunci, dalam memori, dan pencarian. Halaman ini termasuk sumber daya untuk membantu Anda memahami lebih baik database NoSQL dan mulai menggunakannya.

Bagaimana Cara kerja Database (nonrelasional) NoSQL?

Database NoSQL menggunakan berbagai model data untuk mengakses dan mengelola data, seperti dokumen, grafik, nilai kunci, dalam memori, dan pencarian. Jenis database ini dioptimalkan secara khusus untuk aplikasi yang memerlukan volume data besar, latensi rendah, dan model data fleksibel, yang dicapai dengan mengurangi pembatasan konsistensi data dari database lainnya.

Pertimbangkan contoh pemodelan skema untuk database buku sederhana:

  • Dalam database relasional, catatan buku sering diselubungkan (atau "dinormalkan") dan disimpan dalam tabel terpisah, dan hubungan ditetapkan dengan pembatasan kunci primary dan foreign. Dalam contoh ini, tabel Buku memiliki kolom untuk ISBN, Judul Buku, dan Nomor Edisi, tabel Penulis memiliki kolom untuk IDPenulis dan Nama Penulis, dan tabel Penulis-ISBN memiliki kolom IDPenulis dan ISBN. Model relasional didesain untuk mengaktifkan database untuk menegakkan integritas referensial antara tabel di dalam database, dinormalkan untuk mengurangi redundansi, dan umumnya dioptimalkan untuk penyimpanan.
  • Dalam database NoSQL, catatan buku biasanya disimpan sebagai dokumen JSON. Untuk setiap buku, item, ISBN, Judul Buku, Nomor Edisi, Nama Penulis, dan IDPenulis disimpan sebagai atribut dalam dokumen tunggal. Dalam model ini, data dioptimalkan untuk pengembangan intuitif dan skalabilitas horizontal.

Kenapa Anda harus menggunakan database NoSQL?

Database NoSQL sangat cocok untuk digunakan dengan berbagai aplikasi modern seperti aplikasi seluler, web, dan gaming yang memerlukan database yang fleksibel, dapat diskalakan, berkinerja tinggi, dan memiliki fungsionalitas tinggi untuk memberikan pengalaman pengguna yang baik.

  • Fleksibilitas: Database NoSQL umumnya menyediakan skema fleksibel yang memungkinkan pengembangan yang lebih cepat dan lebih berulang. Model data fleksibel membuat database NoSQL ideal untuk data yang semi terstruktur dan tidak terstruktur.
  • Skalabilitas: Database NoSQL umumnya didesain untuk meningkatkan skala dengan menggunakan klaster perangkat keras yang terdistribusi alih-alih meningkatkan skala dengan menambah server yang mahal dan robust. Beberapa penyedia layanan cloud menangani aktivitas di balik operasi ini sebagai layanan yang dikelola sepenuhnya.
  • Kinerja tinggi: Database NoSQL dioptimalkan untuk model data spesifik (seperti dokumen, nilai kunci, dan grafik) dan pola akses yang memberikan kinerja yang lebih tinggi dibandingkan jika Anda mencoba mendapatkan fungsionalitas yang mirip dengan database relasional.
  • Fungsionalitas tinggi: Database NoSQL menyediakan API dan jenis data fungsional yang dibuat secara khusus untuk setiap model data yang sesuai.

Pretest NoSql

Apa yang anda ketahui tentang No SQL?

NoSQL adalah suatu evolusi baru yang ada didalam dunia database, NoSQL ini dikembangkan pertama kali pada tahun 1998 oleh Carlo Strozzi. Kemudian pada tahun 2009, Eric Evans memperkenalkan kembali teknologi NoSQL. Jika SQL diibaratkan dengan relational database  maka NoSQL adalah non-relational Database.
Apakah yang dimaksud dengan NoSQL itu sendiri? Ini adalah suatu perkembangan dari database rational yang telah sejak ada dan digunakan mulai tahun 1970-an sampai sekarang. Mengapa perkembangan dari database rational ini dibutuhkan dan pada akhirnya membuat suatu database system baru bernama NoSQL, karena melihat perkembangan internet dan aplikasi  selama 10-15 tahun terakhir.
Sekitar 10-15 tahun yang lalu jumlah user pengguna internet dan juga jumlah transaksi data pada aplikasi – aplikasi yang ada tidaklah sebanyak saat ini dan database relational yang telah ada dulu sudah sangat mencukupi untuk mengatur transaksi data yang ada dan mendukung operasi transaksi,  update sebagian data, melakukan kontrol terhadap operasi database, support terhadap constraint seperti unique, primary key, foreign key dan check. Memiliki bahasa SQL atau Simplified Query Language untuk mengakses data, merubah data seperti operasi insert, update  dan delete.

Sql dan NoSql apa perbedaannya?

NoSQL tidak menggunakan sintaks SQL untuk memyimpan data. Penyimpanan data dalam NoSQL tidak memerlukan skema tabel yang tetap seperti pada relational database.

Post Test Teknik Normalisasi

  1. Jelaskan Tahapan Normalisasi!
TAHAPAN NORMALISASI : Tahapan Normalisasi dimulai dari tahap ringan (1NF) hingga paling ketat (5NF). Biasanya hanya sampai pada tingkat 3NF atau BCNF karena sudah cukup memadai untuk menghasilkan tabel-tabel yang berkualitas baik. Urutannya : 1NF, 2NF, 3NF, BCNF, 4 NF, 5NF

  1. Bentuk Tidak Normal
  2. Bentuk Normal Pertama (1NF) : Menghilangkan Perulangan Grup
  3. Bentuk Normal Kedua (2NF) : Menghilangkan Ketergantungan Parsial
  4. Bentuk Normal Ketiga (3NF) : Menghilangkan Ketergantungan Transitif
  5. Bentuk Normal Boyce-Code Form (BCNF) : Menghilangkan anomali-anomali hasil dari ketergantungan fungsional
  6. Bentuk Normal Keempat (4NF) : Menghilangkan ketergantungan multivalue
  7. Bentuk Normal Kelima : Menghilangkan anomali-anomali yang tersisa  
1. Un-Normal Form
  • Berupa relasi umum, sesuai kenyataan
  • Mencerminkan item data nyata
  • Mencerminkan bagian dari suatu sistem
  • Belum dapat digunakan sebagai database
  • Bentuk Flat Table menggambarkan jumlah  atribut
2. Bentuk Normal Tahap Pertama (1NF)
  • Bentuk normal 1NF terpenuhi jika sebuah tabel tidak memiliki atribut bernilai banyak (multivalued attribute), atribut composite atau kombinasinya dalam domain data yang sama.
  • Setiap atribut dalam tabel tersebut harus bernilai atomic (tidak dapat dibagi-bagi lagi).
3. Bentuk Normal Tahap Kedua (2NF)
  • Bentuk Normal 2NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk 1NF, dan semua atribut selain primary key, secara utuh memiliki Functional dependency pada primary key.
  • Sebuah tabel tidak memenuhi 2NF, jika ada atribut yang ketergantungannya (Functional Dependency) hanya bersifat parsial saja (hanya tergantung pada sebagian dari primary key).
  • Jika terdapat atribut yang tidak memiliki ketergantungan terhadap primary key, maka atribut tersebut harus dipindah atau dihilangkan.
4. Bentuk Normal Tahap Ketiga (3NF)
  • Bentuk normal 3NF terpenuhi jika telah memenuhi bentuk 2NF, dan jika tidak ada atribut non primary key yang memiliki ketergantungan terhadap atribut non primary key yang lainnya,
  • Untuk setiap Functional Dependency dengan notasi X-->A, maka :
  • X harus menjadi superkey pada tabel tersebut.
  • Atau A merupakan bagian dari primary key pada tabel tersebut.
5. Boyce-Code Normal Form (BCNF)
  • Bentuk BCNF terpenuhi dalam sebuah tabel, jika untuk setiap Functional Dependency terhadap setiap atribut atau gabungan atribut dalam bentuk : X --> Y maka X adalah Super Key.
  • Tabel tersebut harus di dekomposisi berdasarkan Functional Dependency yang ada, sehingga X menjadi super key dari tabel-tabel hasil dekomposisi.
  • Setiap tabel dalam BCNF merupakan 3NF. Akan tetapi setiap 3NF belum tentu termasuk BCNF. Perbedaannya, untuk Functional Dependency X--> A, BCNF tidak membolehkan A sebagai bagian dari primary key.
6. Bentuk Normal Tahap Keempat (4NF) atau MVD dan PJNF
  • Bentuk normal 4NF terpenuhi dalam sebuah tabel jika telah memenuhi bentuk BCNF, dan tabel tersebut tidak boleh memiliki lebih dari sebuah multivalued attribute.
  • Untuk setiap  multivalued attribute (MVD) juga harus merupakan Functional Dependency
7. Bentuk Normal Tahap Kelima (5NF)
  • Bentuk normal 5NF terpenuhi jika memiliki sebuah loseloss decomposition menjadi tabel-tabel yang lebih kecil.
  • Jika 4 bentuk normal sebelumnya dibentuk berdasarkan Functional Dependency, 5NF dibentuk berdasarkan konsep Join Dependence. Yakni apabila sebuah tabel telah di dekomposisi menjadi tabel-tabel lebih kecil, harus bisa digabungkan lagi untuk membentuk tabel semula.
8. Overnormalisasi
Analisa Overnormalisasi diperlukan jika :
  • Database ini digunakan untuk sistem multi user
  • Tabel-tabel yang sudah normal ini digabungkan dengan fungsi lain yang ada di lapangan, misalnya; untuk fungsi retur, untuk fungsi inventori, untuk fungsi sales order maupun order pembelian, untuk fungsi keamanan database, dan lain-lain.

2. Buatlah penggunaan Teknik Normalisasi untuk contoh kasus basis data "Perpustakaan"!

1. Bentuk Tidak Normal (UNF)
Syarat :
- Masukan semua atribut yang ada pada dokumen dasar (Dokumen - - Masukan dan Dokumen Keluaran) pada satu himpunan.
Langkah :
Masukan semua atribut yang ada pada dokumen masukan (Form Data Anggota, Form Data User dan Form Buku) dalam satu himpunan.
2. Bentuk Normal Pertama (1NF)
Syarat :
- Tidak ada baris yang duplikat
- Masing  masing Cell atau Atribut bernilai tunggal
Langkah :
- Hapus / Buang atribut yang duplikat (pada kotak merah) yang ada pada Bentuk Tidak Normal (UNF) menjadi Cell yang bernilai tunggal pada himpunan baru Normalisasi Bentuk Pertama (1NF).
- Tentukan atribut yang akan dijadikan Candidate Key (Calon Kunci yang akan menjadi Kunci Utama).
Keterangan :
* Candidate Key
3. Bentuk Normal Kedua
Syarat :
- Sudah dalam bentuk Normal Pertama.
- Semua atribut yang tidak termasuk dalam Primary Key memiliki ketergantungan fungsional pada Primary Key secara utuh.
Langkah :
Buat tabel baru dengan setiap himpunan yang saling ketergantungan secara fungsional antara atribut Primary Key dan atribut bukan kunci (atribut yang tidak memiliki kunci).
4. Bentuk Normal Ketiga (3NF)
Syarat :
Menghilangkan anomali-anomali hasil dari ketergantungan fungsional.
Langkah :
- Sudah dalam bentuk Normal Kedua
- Pisahkan atribut yang merupakan atau menjadi atribut detail (tidak tergantung secara langsung kepada atribut Primary Key). Pisahkan atribut (pada kotak merah) dari himppunan / dari tabel asal pisahkan ke tabel baru.

Kapan Teknik Normalisasi digunakan dalam mengembangkan Database?

Kapan atau dimana normalisasi digunakan dalam perancangan sistem basis data?

Pada dasarnya normalisasi merupakan teknik yang formal yang bisa digunakan di tahap manapun dalam perancangan sistem database. Namun pada umumnya ada dua pendekatan tentang penggunaan normalisasi. Yang pertama adalah pendekatan 'bottom-up' dan yang kedua disebut pendekatan 'top-down'. Coba perhatikan gambar ilustrasi di bawah ini:

Seperti bisa dilihat pada gambar di atas, pendekatan 1 (approach 1) menunjukkan kapan/dimana normalisasi digunakan sebagai teknik 'standalone' dalam perancangan basis data sementara pada pendekatan 2 (approach 2) menunjukkan kapan/dimana normaliasi bisa digunakan sebagai teknik validasi untuk mengecek struktur relasi-relasi yang dihasilkan dengan pendekatan top-down seperti ER modeling. Tidak perlu dipusingkan pendekatan mana yang digunakan, tujuan keduanya adalah sama yaitu menghasilkan relasi-relasi yang terdesain dengan baik yang memenuhi data requirements perusahaan. 
Gambar ilustrasi diatas juga  menunjukkan contoh berbagai sumber data yang bisa digunakan untuk perancangan basis data.  Meskipun spesifikasi users’ requirements adalah sumber data yang pada umumnya lebih diutamakan, tetapi mungkin juga untuk merancang basis data berdasarkan informasi yang diambil langsung dari sumber data lainnya seperti form-form  atau report-report tradisional

Senin, 25 November 2019

Pentingnya Optimasi Query dan Kesimpulannya.

Pentingkah Optimasi Query?

Menurut saya penting atau tidaknya Optimasi Query tergantung pada kebutuhan masing - masing individu dalam menggunakan database. Karena Optimasi Query adalah suatu strategi penggunaan sumber sumber jalur query secara lebih efektif dan efisien dengan tujuan untuk seminimal mungkin total waktu yang digunakan ketika proses query berlangsung. 
Intinya dalam mengoptimalkan query adalah dengan meminimalkan “jalur” pencarian untuk menemukan data yang disimpan dalam lokasi fisik.

Kesimpulan.

Dua unsur utama tuning atau optimasi, secara langsung mempengaruhi kinerja pernyataan SQL: tuning aplikasi dan database. Masing-masing memiliki peran sendiri, tapi tidak dapat secara optimal disetel tanpa yang lain. Langkah pertama menuju kesuksesan adalah untuk tim teknis dan insinyur sistem untuk bekerja sama untuk menyeimbangkan sumber daya dan mengambil keuntungan penuh dari database fitur yang membantu meningkatkan kinerja.Banyak fitur tersebut dibangun ke dalam perangkat lunak database yang disediakan oleh vendor.

Aplikasi pengembang harus tahu data. Kunci untuk desain database yang optimal adalah pengetahuan menyeluruh data aplikasi. Pengembang dan programer produksi harus tahu kapan menggunakan indeks, kapan harus menambah indeks, dan kapan harus memungkinkan untuk menjalankan pekerjaan batch. Selalu merencanakan dan beban batch batch processing tetap terpisah dari pengolahan transaksi harian.

Database dapat disetel untuk meningkatkan kinerja aplikasi individu yang mengaksesnya. Database administrator harus peduli dengan operasi sehari-hari dan kinerja database. Selain tuning cermat yang terjadi di belakang layar, DBA biasanya dapat memberikan saran kreatif untuk mengakses data lebih efisien, seperti misalnya memanipulasi indeks atau membangun kembali pernyataan SQL. DBA juga harus akrab dengan alat-alat yang dapat segera tersedia dengan software database untuk mengukur kinerja dan memberikan saran untuk tweaker pernyataan.

Optimasi Query dan SQL Tuning

Optimasi Query
Optimisasi query mencoba memberikan suatu pemecahan untuk menangani masalah tersebut dengan cara menggabungkan sejumlah besar teknik-teknik dan strategi, yang meliputi transformasi-transformasi logika dari query-query untuk mengoptimisasi jalan akses dan penyimpanan data pada sistem file. Setelah ditransformasikan, sebuah query harus dipetakan ke dalam sebuah urut-urutan operasi untuk menghasilkan data-data yang diminta.
Berikut penjelasan dari masing-masing tahapan pada Optimasi Query :
  1. Scanner melakukan identifikasi (pengenalan) token-token seperti SQL keywords, attribute, dan relation name. Proses ini disebut dengan scanning. 
  2. Query Parser mengecek kevalidan query dan kemudian menterjemahkannya ke dalam sebuah bentuk internal yaitu ekspresi relasi aljabar atau parse tree. Proses ini disebut dengan parsing. 
  3. Query Optimizer memeriksa semua ekspresi-ekspresi aljabar yang sama untuk query yang diberikan dan memilih salah satu dari ekspresi tersebut yang terbaik yang memiliki perkiraan termurah. Dengan kata lain, tugas dari query optimizer adalah menghasilkan sebuah rencana eksekusi. Proses ini disebut dengan optimisasi query. 
  4. Code Generator atau Interpreter mentransformasikan rencana akses yang dihasilkan oleh optimizer ke dalam kode-kode. Setelah itu, kode-kode tersebut dikirimkan ke dalam query processor untuk dijalankan. 
  5. Query Processor melakukan eksekusi query untuk mendapatkan hasil query yang diinginkan.
SQL Tuning
SQL Tuning adalah aktivitas mengoptimasi dan menyamaratakan performa database. Database tuning biasanya melengkapi query tuning, tapi merujuk pada desain dari file database, pemilihan DBMS, sistem operasi, dan CPU dimana DBMS berjalan. Bagian yang perlu di tuning dan siapa yang melakukannya adalah 
  1. Aplikasi > Developer.
  2. Database > Database Administrator (DBA)
  3. Sistem Operasi >System Administrator
Bagian database yang perlu di tuning :
  1. Memory
  2. I/O
  3. CPU
  4. Network
  5. Space Management
  6. Redo log dan checkpoint
  7. Rollback segment.
Tujuan :
Untuk mengurangi waktu respon sistem terhadap end user, atau untuk mengurangi resource yang digunakan untuk memproses pekerjaan yang sama. Kita dapat memenuhi kedua tujuan ini dalam beberapa cara, yaitu :
a. Mengurangi Beban Kerja (Reduce the Workload)
b. Menyeimbangkan Beban Kerja (Balance the Workload)
c. Memparalelkan Beban Kerja (Parallelize the Workload)

Teori Komputasional dan Implementasi Di Bidang Lain

  Pengertian Komputasi Komputasi sebetulnya bisa diartikan sebagai cara untuk menemukan pemecahan masalah dari data input dengan menggunakan...