Data Flow Diagram

Data Flow Diagram adalah perangkat-perangkat analisis & perancangan yang terstruktur, sehingga memudahkan penganalis sistem dalam memahami sistem & sub sistem secara visual sebagai suatu rangkaian aliran data yang saling berkaitan.

Beberapa unsur yang ada pada DFD :
- Entitas
Dibagi menjadi 2 jenis, antara lain :
1. Entitas Eksternal
- Entitas eksternal (bagian lain, perusahaan, seseorang atau mesin) yang dapat mengirim data atau menerima data dari sistem.
- Sumber atau tujuan data yang dianggap eksternal terhadap sistem yang sedang digambarkan.
- Entitas-entitas harus diberi nama dengan suatu kata benda.
- Entitas yang sama dapat digunakan lebih dari 1 kali atas suatu DFD tententu untuk menghindari persilangan antara jalur-jalur aliran data.

2. Entitas Internal
- Merupakan pemilik sistem, jadi tidak digambarkan dalam diagram.

- Aliran data
• Perpindahan data dari satu titik ke titik yang lain, dengan kepala tanda panah mengarah ke tujuan data
• Digambarkan dengan kata benda.

- Proses
• Menunjukkan adanya proses transformasi
• Proses-proses selalu menunjukkan suatu perubahan data, jadi aliran data yang meninggalkan proses selalu diberi label yang berbeda.
• Diberi nama dengan kata kerja.

- Data Store
• Diberi nama dengan kata benda yang sesuai data apa yang simpan di data store, misalnya Data Konsumen, Transaksi Penjualan, dan lain sebagainya.
• Penyimpanan data sementara, seperti kertas catatan atau sebuah file komputer sementara tidak dimasukkan ke dalam DFD.


Membuat context diagram :
- Harus berupa suatu pandangan.
- Tingkatan tertinggi & hanya memuat satu proses. (menunjukkan sistem secara keseluruhan)
- Context diagram diberi nomor 0.
- Tidak memuat data store.

Diagram level 0:
- Masukan dan keluaran yang ditetapkan dalam diagram yang pertama tetap konstan.
- Mencakup maksimal 9 proses yang digambarkan.
- Menampilkan seluruh data store yang digunakan dalam sistem, karena setelah di decompose tidak boleh menambah data store yang belum ditampilkan.

Perbedaan Context Diagram dengan Level 0 :
Context Diagram : merupakan semesta.
Level 0 : berada atau merupakan bagian di dalam semesta.

Testing Implementasi Sistem

Pertemuan 4

Lines of Code
Pengukuran sederhana : menghitung jumlah baris kode dalam program dan menggunakan perhitungan ini untuk mengukur kompleksitas.

Halsteads Metric
- Pengukuran yang berdasarkan pada penggunaan operator-operator & operan-operan yang ada dalam suatu program.

Panjang Program :
H = n1 log2 n1 + n2 log2 n2
n1 : jumlah operator yang unik (distinct) dalam program.
n2 : jumlah operan yang unik (distinct) dalam program.

Prediksi Bug :
B = (N1 + N2) log2 (n1 + n2) / 3000
N1 : perhitungan jumlah keseluruhan operator program.
N2 : perhitungan jumlah keseluruhan operan program.


Black Box Testing
Black box testing dilakukan tanpa pengetahuan detil struktur internal dari sistem atau komponen yang ditest. Juga disebut sebagai behavioral testing, specification based testing, I/O testing atau functional testing.
Berfokus pada kebutuhab fungsional pada software, berdasarkan pada spesifikasi pada software.

Kategori Error yang akan diketahui melalui Black Box Testing :
- Fungsi yang hilang atau tidak benar.
- Error dari antar muka.
- Error dari struktur data atau akses eksternal database.
- Error dari kinerja atau tingkah laku.
- Error dari inisialisasi dan terminasi.

Jenis teknik test yang dapat dipilih berdasarkan pada tipe testing yang akan digunakan :
- Equivalence Class Partitioning
- Boundary Value Analysis
- State Transition Testing
- Cause Effect Graphing

Testing Implementasi Sistem

Pertemuan 3

Test Case
Test Case adalah suatu test yang dilakukan berdasarkan suatu inisialisasi masukan, kondisi, ataupun hasil yang telah ditentukan sebelumnya.

Pendekatan test untuk rekayasa produk :
• Produk rekayasa ditest dalam 2 cara :
- Dengan berdasarkan pada fungsi yang dispesifikasikan dari produk.
- Operasi internal dari produk.

White Box Testing
- Metode ini digunakan untuk memecah struktur program sehingga mengetahui desain prosedural program.
- Diasosiasikan dengan pengukuran cakupan test yang mengukur prosentase jalur-jalur tipe yang dipilih untuk dieksekusi oleh test case.
- Menguji semua struktur debug program.


Alur logika yang akan menunjukkan bagaimana jalur program tersebut.


Suatu flow graph terdiri dari :
- Node
- Edges
- Branch
- Branch edge

Desain cakupan test :
- Menganalisa source code untuk membuat flow graph.
- Mengidentifikasikan jalur test untuk mencapai pemenuhan test berdasarkan pada flow graph.
- Mengevaluasi kondisi test yang akan dicapai dalam tiap test.
- Memberikan nilai masukan dan keluaran berdasarkan pada kondisi.

Testing Implementasi Sistem

Pertemuan 2

Obyektifitas Testing :
- Meningkatkan kepercayaan bahwa sistem dapat digunakan dengan tingkat resiko yang dapat diterima.
- Menyediakan informasi yang dapat mencegah terulangnya error yang pernah terjadi.
- Menyediakan informasi yang dapat membantu untuk mendeteksi error secara dini.
- Mencari error dan kelemahan atau keterbatasan sistem.
- Mencari sejauh mana kemampuan dari sebuah sistem (benchmark).
- Menyediakan informasi untuk kualitas dari produk software.

Misi dari tim testing :
- Misi dari tim testing tidak hanya untuk melakukan testing, tetapi juga untuk membantu meminimalkan resiko kegagalan proyek.
- Tester tidak melakukan pembenahan atau pembedahan kode, tidak mempermalukan atau melakukan komplain pada suatu individu atau tim. Tetapi hanya memberikan informasi tentang apa yang terjadi dengan sistem yang ditesting.
- Tester adalah individu yang memberikan hasil pengukuran dari kualitas produk.

Tester harus memahami beberapa hal, yaitu :
- Software Quality
- Cara komunikasi (dengan template tertentu).



RAD = Rapid Application Development

Psikologi Testing :
Pengembangan dilakukan secara konstruktif, tapi testing adalah bersifat destruktif. Dapat dikatakan bahwa pengembang bertugas untuk membangun, sedangkan tester justru berusaha untuk menghancurkan.

Prinsip Testing :
- Testing yang komplit adalah tidak mungkin.
- Testing merupakan pekerjaan yang kreatif dan sulit.
- Alasan yang penting diadakannya testing adalah untuk mencegah terjadinya error.
- Testing berbasis pada resiko.
- Tesing adalah hal yang harus direncanakan.
- Testing membutuhkan independensi.

Kunci yang mempengaruhi kinerja dari testing :
- Wawasan tiap individu dan kreatifitas.
- Pengalaman dalam melakukan testing.
- Usaha dan SDM yang dipakai dalam melakukan testing.
- Pengetahuan terhadap aplikasi yang ditesting.
- Metodologi testing.

Testing Implementasi Sistem

Pertemuan 1

Error / kesalahan => ketidaksesuaian yang terjadi terhadap spesifikasi. Atau apa yang terjadi tidak sesuai dengan apa yang sudah diharapkan.

Catatan :
• Dalam requirement specification kita juga perlu melakukan cek apakah sudah sesuai dengan kebutuhan konsumen.
• Pada saat menentukan desain program, kita juga melakukan pengecekan. Apakah desain yang kita buat sudah sesuai dengan requirement specification.
• Pada saat implementasi, kita juga melakukan testing. Apakah program yang kita buat sudah sesuai dengan desain dan requirement specification.

Tujuan Testing :
- Membuat kualitas dapat dilihat secara obyektif, karena testing merupakan pengukuran dari kualitas software.
- 2V 1D : Verifikasi, Validasi, Deteksi.

Fungsionalitas :
- Kebenaran
- Reliabilitas
- Kegunaan
- Integritas

Rekayasa :
- Efisiensi
- Testabilitas
- Dokumentasi
- Struktur

Adaptabilitas :
- Fleksibilitas
- Reusabilitas
- Maintainbilitas

Biasanya dalam melakukan testing itu diterapkan best practice, atau metode yang paling sering digunakan kalangan tester dalam melakukan testing.

Resume PSIT Part 1

Pertemuan 1

Desain Sistem dibagi menjadi dua bagian :
1. Desain Sistem Scr. Umum / General Systems Design, atau disebut conceptual design.
2. Desain Sistem Terinci, atau disebut physical design.

Arti Desain :
 Tahap setelah analisis dari siklus pengembangan sistem
 Pendefinisian dari kebutuhan fungsional.
 Persiapan untuk rancang bangun implementasi
 Menggambarkan bagaimana suatu sistem dibentuk.
 Dapat berupa penggambaran, perencanaan & pembuatan sketsa/pengaturan dari beberapa elemen yang terpisah ke dalam satu kesatuan yang utuh & berfungsi.
 Termasuk menyangkut mengkonfirmasi komponen-komponen perangkat lunak & perangkat keras dari suatu sistem.

Tujuan Desain :
1. Untuk memenuhi kebutuhan pemakai sistem
2. Untuk memberikan gambaran yang jelas & rancang bangun yang lengkap kepada pemrogram komputer & ahli-ahli teknik yg lain, yang terlibat.

Agar tujuan tercapai, maka seorang sistem analis harus mencapai beberapa sasaran berikut :
1. Desain Sistem harus berguna, mudah dipahami & nantinya mudah digunakan.
2. Desain Sistem harus dapat mendukung tujuan utama perusahaan, sesuai dengan yg telah didefinisikan pd tahap perencanaan sistem.
3. Desain Sistem harus efisien & efektif utk dapat mendukung pengolahan transaksi, pelaporan manajemen & mendukung keputusan yg dilakukan manajemen.
4. Desain Sistem harus dpt mempersiapkan rancang bangun yg terinci, yg terdiri antara lain: data, informasi, file, metode-metode, prosedur, SDM, H/W, S/W.

Personil yang terlibat :
Pekerjaan desain sistem dilakukan oleh analis sistem, & personil teknik lain, seperti: spesialis pengendalian, personil penjamin kualitas, spesialis komunikasi data, dan lain-lain.

Pentingnya peranan user :
User harus dilibatkan dalam tahap desain, karena dapat mengkaji ulang komponen sistem yg didesain. Contohnya: laporan & bentuk tampilan dari sistem.

Testing Implementasi Sistem

Pertemuan 2

Tujuan Testing:
Secara Umum untuk melakukan verifikasi, validasi, deteksi error dan di gunakan untuk menemukan masalah yang muncul pada saat melakukan testing sistem.

Misi dari tim Tester:
· Meminimalkan kegagalan proyek
· Tidak melakukan pembenahan hanya memberikan informasi tentang kesalahan yang terjadi pada sistem tersebut
· Memberikan pengukuran dari kualitas software

Menjadi seorang tester yang baik hendaknya harus paham tentang kualitas dari software yang akan dilakukan dalam pembuatan sistem, serta memahi arti dari komunikasi yang dilakukan dengan client

Psikologi Testing :
· Seorang pengembang bertugas untuk membanagun
· Tester mengahancurkan program

Prinsip –prinsip testing:
· Testing tidak mungkin Komplit
· Testing merupakan Pekerjaankreatif dan sulit
· Testing harus di rencanakan
· Testing membutuhkan independence

Resume Data Warehouse Pertemuan 1

Data Warehouse (DW), merupakan suatu konsep dalam pengembangan sistem database yang terintegrasi dan biasanya digunakan untuk mengolah dan mengelola data untuk keperluan pengambilan keputusan. Definisi yang sederhana dari DW ini adalah sebagai berikut,
Data warehouse merupakan sebuah lingkungan informasi yang :
  • Menyediakan gambaran informasi terpadu dari sebuah perusahaan
  • Menjadikan informasi mutakhir dan informasi historis perusahaan gampang diakses untuk keperluan pengambilan keputusan stategis perusahaan
  • Menjadikan sistem pengambilan keputusan terrealisasi dengan memanfaatkan data operasional perusahaan sudah yang ada
  • Menyajikan informasi yang konsisten
  • Menyajikan informasi yang fleksibel dan interaktif
Sedangkan untuk gambaran umum mengenai proses data warehouse ini, bisa kalian lihat di gambar berikut dibawah ini . Pada gambar tersebut menceritakan bahwa proses data warehouse itu bermula dari pengambilan data-data operasional, yang kemudian dilakukan proses transformasi (diekstrak, dibersihkan, dikumpulkan), kemudian data yang sudah ditransformasi tersebut disajikan dalam bentuk informasi strategis perusahaan.

Dari gambar diatas bisa kita uraikan proses yang ada pada DW ini adalah sebagai berikut :
  • Pengambilan data dari data operasional yang sudah ada
  • Tambahkan data dari sumber data lainnya diluar data operasional
  • Integrasikan semua data dari berbagai sumber
  • Hapus data yang tidak konsisten dan transformasikan data tersebut
  • Simpan data dalam format yang sesuai agar dapat diakses dengan mudah untuk keperluan pengambilan keputusan

Tugas 1 Perencanaan Strategi SI/TI

Tujuan Torretto adalah mengambil uang milik mafia Brazil Reyes yang ada di Brankas yang di simpan di suatu tempat yang di rahasiakan.

Gambar 1 Perencanaan untuk operasi pemngambilan uang reyes

Perencanaan awal dari Toretto selaku ketua tim ialah membentuk tim yang memiliki kemampuan spesifikasi di bidang masing-masing, maka dari itu Toretto memanggil orang-orang yang menurut dia ahli dan ia ketahui untuk melaksanakan tugas tesebut. Setelah berkumpul tim tersebut menjabarkan tujuan dari operasi pekerjaan tersebut , yaitu mengambil uang tuan reyes sebesar $100 million . dengan tujuan tersebut semua anggota tim setuju dan akan mendapatkan $11 million per orang

.
gambar 2 perencanaan yang matang untuk operasi yang besar

SUSUNAN STRATEGI :
  1. Tim Toretto menggrebek rumah uang dari reyes dan kemudian membakar uang-uang agar reyes merasa takut kehilangan uang selain itu agar perhatian reyes terpusat pada uang-uang yang ia miliki.
  2. Setelah reyes merasa lokasi penyimpanan uangnya tak lagi aman di rumah-rumah tersebut, maka ia memindahkan lokasi penyimpanan uang. kemudian tim toretto mengikuti pergerakan anak buah reyes yang memindahkan uang.
  3. Setelah mengetahui lokasi penyimpanan uang yang dialihkan ke kantor polisi, toretto memikirkan bagaimana cara ia mengambil uang-uang tersebut, ia mencari pengemudi yang handal agar pergerakannya tak terekam oleh cctv, akan tetapi semua sangat sulit dilakukan. oleh karena itu ia dan timnya memutuskan mencuri mobil milik polisi untuk melakukan rencananya.
  4. Kemudian ia mencari tahu bagaimana sistem pengamanan uang yang ada di kantor polisi dengan mengirim dua orang timnya yang mulanya merusak saluran pembuangan dan menyamar sebagai orang dari ahli reparasi, lalu dua orang ini memasukan mobil RC lengkap dengan kamera untuk melihat lebih jelas lagi.
  5. Anggota tim yang berada di markas yang bertanggung jawab atau yang ahli pada bidang IT meneliti apa jenis brankas yang digunakan dan cara membuka brankas tersebut. kemudian ia mendatangkan brankas yang sama persis untuk melakukan simulasi cara membuka brankas tersebut.
  6. setelah mengetahui cara membuka, maka toretto mengirimkan han dan salah satu rekan wanita untuk mendapatkan sidik jari reyes.
  7. setelah dirasa siap maka semua bergerak, namun FBI menangkap mereka dan membawa mereka pulang, dan akhirnya rencana mereka tertunda. setelah FBI gagal membawa pulang toretto karena serangan dari pihak reyes yang menewaskan semua kru anggotanya, maka dwayne johnson bergabung dengan toretto untuk melakukan aksi balas dendam.
  8. karena membongkar isi didalam bank dirasa tidak mungkin, maka toretto memutuskan untuk membongkar paksa dan membawa kabur brankas yang ada di kantor polisi.
  9. setelah berputar-putar kota dengan membawa brangkas, tak disangka bahwa sebelum toretto mengakhiri pelarian dari polisi, timnya menukarkan brankas berisi uang dengan brankas kosong yang dibeli sebelumnya.
  10. setelah toretto membalaskan dendamnya, dan dwayne johnson memberi ia kesempatan untuk kabur dan meninggalkan brankasnya. setelah toretto kabur maka si FBI membuka brankas dan ternyata brankas tersebut kosong.
  11. toretto membagi rata isi brankas setelah ia berhasil menjalankan misinya.

Testing Implementasi Sistem

Pertemuan 1


Pernakah anda mengalami error dalam membuat suatu software, pastilah anda pernah mengalami hal tersebut?

Error merupakan sebuah proses untuk menjadikan sebuah software tersebut menjadi benar , tetapi jika sudah benar software tersebut belum yakin benar di mata orang lain , maka dari itu munculah sebuah tester untuk mengetes kelayakan software tersebut. Dengan adanaya proses testing tersebut diharapakan munculah sebuah kepercayaan dari pada pengguna software tesrsebut bahwa software tersebut sudah melalui lolos uji kelayakan dan siap untuk di gunakan.

Whats is Testing ??
Definisi Testing
Beberapa definisi tentang testing:

Menurut Hetzel 1973:
Testing adalah proses pemantapan kepercayaan akan kinerja program atau sistem sebagaimana yang diharapkan.

Menurut Myers 1979:
Testing adalah proses eksekusi program atau sistem secara intens untuk menemukan error.

Menurut Hetzel 1983 (Revisi):
Testing adalah tiap aktivitas yang digunakan untuk dapat melakukan evaluasi suatu atribut atau kemampuan dari program atau sistem dan menentukan apakah telah memenuhi kebutuhan atau hasil yang diharapkan.

Menurut Standar ANSI/IEEE 1059:
Testing adalah proses menganalisa suatu entitas software untuk mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang diinginkan (defects / errors / bugs) dan Kesalahan dalam sebuah kegiatan testing bukanlah sebuah error atau pun bug tetapi merupakan sebuah hasil yang tidak diharapakan sesuai dengan spesifikasi dari permintaan customer. Dalam artian hal yang sedang terjadi tidak sama dengan hal yang diharapakan.

Beberapa Praktisi IT mengatakan bahwa testing sebuah sistem adalah:
Melakukan cek pada program terhadap spesifikasi.
Menemukan bug pada program.
Menentukan penerimaan dari pengguna.
Memastikan suatu sistem siap digunakan.
Meningkatkan kepercayaan terhadap kinerja program.
Memperlihatkan bahwa program berkerja dengan benar.
Membuktikan bahwa error tidak terjadi.
Mengetahui akan keterbatasan sistem.
Mempelajari apa yang tak dapat dilakukan oleh sistem.
Melakukan evaluasi kemampuan sistem.
Verifikasi dokumen.
Memastikan bahwa pekerjaan telah diselesaikan.

Ada keterkaitan antara verifikasi dan validasi dalam proses sebuah kegiatan testing sistem :

Verifikasi
Apakah telah berlaku sebagaimana telah di tetapkan menurut spesifikasi di awal pembuatan program? Dalam proses verifikasi dilakukan pengecekan atau pengetesan entitas-entitas , termasuk software untuk pemenuhandan konsistensi dengan melakukan evaluasi terhadap kebutuhan yan g telah di tetapkan

Validasi
apakah spesifikasi yang telah ditetapkan sudah memenuhi keinginan atau kebutuhan dari pengguna yang sebenarnya ?Validasi sendiri merupakan prose melihat jebenaran sebuah sistem , apakah sistem tersebut sesuai dengan kebutuhan pengguna atau tidak

Deteksi
Proses pendeteksian sebuah kesalahan maka harus dilakukan pengecekan error yang semaksimal mungkin dengan melakukan dan mencoba kesalahan kesalahan yang mungkin terjadi dalam sebuah sistem tersebut.
Jadi dengan melakukan testing dapat menigkatkan kualitas dari software tersebut. Ditinjau dari sisi tersebut testing dan kualitas sebuah software memiliki sebuah hubungan di dalamnya. Software yang berkualitas harus memenuhi dari bebearapa aspek berikut:
• Bebas error dan bug melalui sebuah proses pembuktian yang terstruktur, terencana dan terdokumentasi
• Tepat waktu dan Dana
• Sesuai dengan kebutuhan atau keinginan dan dapat dirawat

Testing membuat kualitas dapat dilihat secara obyektif, karena testing merupakan pengukuran dari kualitas software. Dengan kata lain testing berarti pengendalian kualitas (Quality Control - QC), dan QC mengukur kualitas produk, sedangkan jaminan kualitas (Quality Assurance – QA) mengukur kualitas proses yang digunakan untuk membuat produk berkualitas.
Dalam sebuah proses pembuatan sebuah program pastinya akan melewati beberapa tahapan yaitu : Requirment,
analysis, desain ,implementation, testing and deploy.

Dalam tahap requirment diperlukan sebuah standart umum sedangkan untuk memenuhi sebuah kualitas yang baik hendaknya QA (Quality Assurance).
QA senfiri digunakan untuk mengukur kualitas dari proses yang di gunakan untuk membuat sebbuah produk tersebut.
Berikut contoh yang mengilustrasikan beberapa faktor-faktor komponen yang sering
digunakan:
Fungsionalitas (Kualitas Luar)
  • Kebenaran (Correctness)
  • Reliabilitas (Reliability)
  • Kegunaan (Usability)
  • Integritas (Integrity)

Rekayasa (Kualitas Dalam)
  • Efisiensi (Efficiency)
  • Testabilitas (Testability)
  • Dokumentasi (Documentation)
  • Struktur (Structure)

Adaptabilitas (Kualitas ke Depan)
  • Fleksibilitas (Flexibility)
  • Reusabilitas (Reusability)
  • Maintainabilitas (Maintainability)

(Romeo S.T, 2003)

DBA Pertemuan 11

BEBERAPA FAKTOR PENTING DALAM TUNING DATABASE ORACLE

Ada beberapa hal yang harus diperhatikan apabila kita akan melakukan performance tuning terhadap suatu database, hal-hal tersebut antara lain:

  1. Buat kesepakatan dengan user, sampai sejauh mana user akan menerima hasil dari proses tuning yang kita lakukan terhadap suatu database. Hal ini perlu untuk kita, sebagai executor, dalam pelaksaan proses tuning dalam database. Mengapa demikian? Apabila kita melaksanakan proses tuning pada database, tentunya harapannya adalah adanya peningkatan performance dari database tersebut. Untuk itulah maka perlu adanya satu batasan berupa kesepakatan dengan user database, jangan sampai suatu proses tuning database tidak di accept oleh user karena user merasa performance database yang telah kita lakukan tuning tidak significant perubahannya.
  2. Identifikasi terlebih dahulu area-area mana saja pada database yang paling critical, apabila kita tidak segera melakukan tuning terhadap database tersebut, atau dengan kata lain prioritaskan proses tuning pada area-area yang dianggap paling critical.
  3. Identifikasi bottleneck yang ada dalam sebuah atau beberapa query. Biasanya hanya karena sebuah query yang jelek menyebabkan performance menjadi turun secara keseluruhan.
  4. Jika memungkinkan, review terlebih dahulu design dari database yang akan kita tuning, apakah sudah bagus, sebelum kita melakukan tuning pada query-query terhadap database tersebut, karena apabila kita melakukan query tuning tetapi dari sisi design database kurang bagus, maka tuning pada query akan tidak optimal, bahkan mungkin tidak ada impact sama sekali.
  5. Pelajari strategi index yang sudah berjalan pada database yang akan kita tuning, dan lakukan improvement terlebih dulu pada area index ini.
  6. Jika kita rasakan index yang ada sudah optimal, lakukan identifikasi fragmentation level dari index yang ada, dan pastikan index statistic selalu up-to-date.
  7. Pelajari bagaimana cara kerja query optimizer, pelajari dan test beberapa bentuk tipe JOIN.
  8. Hindari penggunaan sub-query (select in select).
  9. Selalu gunakan UNION ALL daripada UNION, apabila memang ada operasi yang membutuhkan UNION
  10. Evaluasi penggunaan trigger yang berdampak pada performance.
  11. Hindari penggunaan SELECT ...... INTO sampai dengan kita yakin bahwa user yang terhubung ke database hanya kita sendiri atau proses yang kita lakukan hanya memerlukan waktu yang tidak lama. Jika sangat terpaksa gunakan INSERT .......SELECT.
  12. Gunakan SET NOCOUNT ON dalam semua modular code kita (Stored Procedure), untuk mengurangi informasi yang diberikan server ke client dan untuk mengurangi beban network.
  13. Jika memungkinkan, gantu semua query yang merupakan inline query menjadi stored procedure yang berparameter
  14. Jika memungkinkan, gunakan temporary table untuk mengurangi jumlah record pada saat query. Jika temporary table tersebut di join dengan permanent table, buat index di dalam temporary table tersebut.
  15. Optimalkan penggunaan loop, pindahkan semua proses yang tidak memerlukan pengulangan keluar loop.
  16. Jangan gunakan cursor jika memang tidak sangat terpaksa, TSQL tidak dioptimalkan untuk memproses 1 record dalam satu waktu

DBA Pertemuan 10

Tempat penyimpanan data yang sebenarnya
Ada 3 :
Datafiles : Data aktual di database
Redo Log files :
Komponen penting dalam recovery database (mencatat semua perubahan database)
Perubahan dicatat dalam redo log entry
Redo log entry dapat disimpan dalam metode archivelog à archived redo log file (bisa manual / otomatis) oleh ARCH
Info redo log : V$LOGFILE, V$LOG, V$ARCHIVED_LOG
Control Files :
Menyimpan informasi dimana lokasi file-file yang dibutuhkan database
Informasi akan berubah saat menambah dan merubah struktur fisik database
Lokasi : dalam CONTROL_FILE dalam file init.ora
Default ada 3 buah dalam lokasi yang sama (C:\oracle\oradata\sdm)
Penamaan cntrlndbname.ctl (nama database di DB_NAME)
Isi : SCN, lokasi datafile, lokasi redo log file, nama database, ukuran database
Melihat isi : V$CONTROLFILE. Terdapat 2 kolom, STATUS dan NAME. Jika nilainya tidak ada maka pada kolom status akan bernilai INVALID / NULL.
Bisa disimpan dalam tempat yang berbeda (multiplexing control file)
File- file yang lainya
Parameter file :
Berisi spesifikasi instance
Ada 2 :
Static parameter : format dalam ini/SID/.ora. Text sederhana yang dipanggil saat database dimulai
Dynamic parameter : file biner untuk respon perintah user
Password file :
Menyimpan data user dan password / user privileges utk start dan shutdown database
Kalo dalam keadaan database mati maka bisa dicari secara offline lewat sistem operasi
Archieved Redo Log files :
Menggandakan online redo log file yang penuh (untuk recovery) secara offline
SGA (System Global Area / Shared Global Area)
Menyimpan informasi database dari proses database
Berisi data dan control information dari oracle server dalam virtual memori pada komputer yang bersangkutan
SQL> SHOW SGA;
Bersifat dinamis
Ukuran dalam SGA_MAX_SIZE
SHARED POOL
terbagi menjadi 2 :
Dictionary cache :
menyimpan data dictionary yang sering di query (berulang2 semakin cepat). Berisi informasi tentang database files, tables, indexes, columns, users, privileges, dan objek lain
Library cache :
Menyimpan perintah SQL dan rencana bagaimana SQL dieksekusi. Terbagi 2 yaitu shared SQL (menyimpan SQL) dan shared PL/SQL (menyimpan PL/SQL)
ukuran : dalam SHARED_POOL_SIZE dalam file init.ora
ALTER SYSTEM SET SHARED_POOL_SIXE = 64M;
DATABASE BUFFER CACHE :
menyimpan data hasil perintah SQL
kalo data yang diminta berulang-ulang à kecepatan query meningkat & mempercepat perubahan data di memori
tidak langsung disimpan dalam disk
ukuran : dalam parameter DB_BLOCK_SIZE dan DB_BLOCK_BUFFER dalam file init.ora
Disimpan dalam sub2 : DB_CACHE_SIZE (ukuran buffer cachenya saja, harus selalu ada dan tdk bisa di set 0), DB_KEEP_CACHE_SIZE (ukuran yg sering diminta), DB_RECYCLE_CACHE_SIZE (yang sdh terhapus)
ALTER SYSTEM SET DB_CACHE_SIZE = 96M;
Menampilkan V$DB_CACHE_ADVICE
REDO LOG BUFFER :
Catatan semua perubahan dalam database (untuk proses recovery)
Disimpan dalam Redo Log File secara fisik
Ukuran : dalam LOG_BUFFER dalam file init.ora
LARGE POOL :
Area optional dalam SGA
Untuk memori session (UGA) untuk shared server
I/O server processes
Backup dan restore utk RMAN
Pararel execution message buffers (PARALLEL_AUTOMATIC_TUNING set to TRUE)
Ukuran dalam LARGE_POOL_SIZE
JAVA POOL :
Berisi java command
Dibutuhkan saat menginstal java
Ukuran dalam JAVA_POOL_SIZE

PGA (Program Global Area)
Membantu proses user
Memory tidak dapat dishare
Menyimpan nilai variable, kolom yang diurutkan, dll
Menyimpan nilai variable untuk perintah SQL à beda user bisa beda nilai
Dialokasikan saat proses dibuat
Ditutup ketika proses selesai
Digunakan hanya oleh 1 proses
Terdiri dari
Private SQL Area
Session Memory
SQL Work Areas
Background Proses
DBWn : Database Writer
Background proses yang menulis dari Buffer Cache ke disk (datafile)
Penulisannya saat :
server proses butuh ruangan di buffer cache untuk menyimpan data
dipicu oleh LGWR
saat timeout setiap 3 detik
Tablespace Offline
Tablespace read only
Table DROP or TRUNCATE
Tablespace BEGIN BACKUP
Memperbolehkan sampai 20 DBWR (DBW0-DBW9 dan DBWa-DBWj)
Ukuran : dalam DB_WRITER_PROCESSES

DBA Pertemuan 9

DATA CONECTIVITY

Database Connectivity merupakan sebuah fasilitas komputer yang memungkinkan server client untuk berkomunikasi dengan database server pengguna lain. Database management system (DBMS) menyediakan fasilitas untuk menyimpan, mengorganisir, dan mengambil data.
Sebagian besar aplikasi bisnis menyimpan data dalam database relasional. Aplikasi dapat mengakses informasi database dengan menggunakan Java Database Connectivity (JDBC) API.
Hal yang perlu diperhatikan dalam Database Connectivity:
- Knowing the business, not only technology
- Centralized or Distributed
- Thin client or fat client
- Database gateway
- Network Trafic
- Database design
- New technology (XML, Java, etc)
- Webbase or dekstop
* Need provider?
* Availability?
* Reduce down time : – runtime maintenance
- feature DBMS to promote
- automate DBA function
- high speed function
- technology hardware
DBA Tools :
- Modeling & design
- Change management
- Table Editor
- Performance management
- Backup and recovery
- PT warehouse BI
- Programing & development
- Miscellaneous
Elemen – elemen dalam Database Connectivity
Database adalah repositori dimana data disimpan untuk perusahaan. Java EE mengakses aplikasi database relasional melalui API JDBC. Untuk prosedur administrasi. JDBC Connection Pool adalah sekelompok koneksi dapat digunakan kembali untuk database tertentu untuk prosedur administrasi.
Pooling Connection
Koneksi database yang terbatas dan mahal dapat memakan waktu yang tidak proposional dan lama untuk menciptakan relatif terhadap operasi yang dilakukan pada mereka. Hal ini sangat tidak efisien untuk sebuah aplikasi untuk membuat menutup koneksi database jika perlu untuk memperbaharui database.
ODBC (Open Database Connectivity)
Sebuah standar terbuka untuk konektivitas antar mesin basis data. Standar ini menyediakan API yang dapat digunakan untuk menjalankan dan mengoneksikan sebuah aplikasi dengan sbeuah sistem managemen basis data (SMBD). Pada Desainer ODBC membuatnya dengan tujuan agar ODBC terbebas dari penggunaan bahasa pemrograman tertentu, sistem manajemen basis data tertentu, dan sistem operasi tertentu.
Komponen utama ODBC
  • ODBC API : Sekumpulan panggilan fungsi kode – kode kesalahan dan sintaksis SQL yang mendefinisikan bagaimana data dalam sebuah DBMS diakses.
  • Driver basis data ODBC : driver yang mampu memproses panggilan fungsi ODBC untuk sebuah DBMS tertentu.
  • ODBC Driver Manager : yang bertugas untuk memuat driver basis data ODBC yang dibutuhkan oleh aplikasi

DBA Pertemuan 8

Data Movement
Proses data movement ini adalah memindahkan (dapat diakatakan membackup juga) data – data dari database yang berupa data, indeks, grand, schema, dan lain – lain ketempat baru. Tempat baru ini bisa ke dalam database baru atau memang untuk dibackup saja.

Data movement terdiri dari 2 bagian besar yaitu :
  • Load & Upload [difokuskan untuk memindahkan data yang berupa indeks atau data itu sendiri alias isi dari database tersebut]
  • Export & Import [memindahkan data secara lengkap, mulai dari grand, schema, dan seluruhnya]
Jika dilihat, load tersebut behubungan dengan import dan upload berhubungan dengan export
Load berfungsi untuk memasukan data / transaksi ke sebuah table. Dapat dikatakan juga insert, replace, atau update. Sedangkan upload berfungsi untuk membuat dari data table ke fisik / file. Kelemahan load adalah dalam prosesnya bisa saja terjadi data yang tidak berpindah secara sempurna.
Upload Parameter
  • Limit [membatasi beberapa record]
  • Sample [mencari sample yang telah ditentukan]
  • When [berdasarkan kondisi]
Dan pada upload, hanya satu parameter saja yang dapat berjalan alias tak bisa berjalan bersamaan apabila parameternya lebih dari 1.
Bulk Data Movement (Software Pendukung)
  • ETL [Extrat Transform Load], software yang focus terhadap data warehouse
  • Replication and Propagation, software yang memonitoring source database dan target, dan yang dihasilkan oleh software ini adalah pencatatatn log.
Perlu diperhatikan juga hak akses dalam load & unload, import & export minimal adalah akses select.
Distribution Database
Dalam distribution database terdapat 3 istilah yaitu :
  • Autonomi [idependent], untuk tabel umum akses yang diberikan berbeda dari setiap user.
  • Isolation [stand alone], untuk tabel khusus (privacy) itu terpisah dari user.
  • Transparancy [all user], akses tabel terpisah dari user tetapi user masih dapat mengaksesnya.
Lawan dari database terdistribusi adalah database terpusat. Server yang terpusat memang diuntungkan dalam sisi maintenance sedangkan server terdistribusi lebih rumit dalam proses integrasinya.
Jika database terdistribusi paling tidak membutuhkan Sumber Daya Manusia [SDM] yang baik, network yang lebih baik karena permasalahan network itu sangat fatal dan biasanya permasalahannya tidak jauh – jauh dari permasalahan traffic network. Dan yang tidak boleh dilupakan adalah request dan respon.

Resume DBA Pertemuan 6

Disaster recovery planning

Disaster (bencana) didefinisikan sebagai kejadian yang waktu terjadinya tidak dapat diprediksi dan bersifat sangat merusak. Pengertian ini mengidentifikasikan sebuah kejadian yang tiba-tiba, tidak diharapkan, bersifat sangat merusak, dan kurang perencanaan. Bencana terjadi dengan frekuensi yang tidak menentu dan akibat yang ditimbulkannya meningkat bagi mereka yang tidak mempersiapkan diri terhadap kemungkinan-kemungkinan timbulnya bencana. Berbagai bencana yang mungkin terjadi antara lain adalah:
  1. Bencana alam disebabkan oleh kondisi geografis dan geologis dari lokasi
  2. Kebakaran disebabkan oleh faktor lingkungan dan pengaturan sistem elektrik yang dapat menyebabkan korsleting
  3. Kerusakan pada jaringan listrik disebabkan oleh sistem elektrik
  4. Serangan teroris disebabkan oleh lemahnya keamanan fisik dan non fisik data center
  5. Sistem atau perangkat yang rusak terkait dengan kesalahan manajemen pengawasan perangkat
  6. Kesalahan operasional akibat ulah manusia
  7. Virus misalkan disebabkan oleh kesalahan pemilihan anti virus yang digunakan
Disaster Recovery menurut terjemahan aslinya mengandung arti pemulihan bencana. DR jika dikaitkan dengan dunia bisnis, akan membawa kita pada definisi #Disaster Recovery Planning (DRP) dan #Business Continuity Plan (BCP).Bisnis akan bergantung pada informasi yang tersebar dan aplikasi yang memproses informasi tersebut, sehingga aplikasi penopang utama yang spesifik menjadi sangat kritikal sehingga ketika terjadi gangguan hanya beberapa saat maka dapat melumpuhkan kelangsungan bisnis perusahaan. Oleh karenanya, beberapa perusahaan mempunyai suatu arahan yang menjamin availabilitas kelangsungan bisnis ketika terjadi suatu bencana/gangguan yang tidak direncanakan atau sudah direncanakan. Arahan ini yang dituangkan dalam #Disaster Recovery Planning (DRP).
Perencanaan database adalah proses pembuatan atau pengembangan struktur database yang sesuai dengan data yang dibutuhkan oleh pengguna atau user.
Perencanaan database memiliki langkah – langkah penting yaitu :

  • Mendefinisikan kebutuhan (Requirement definition)
  • Jenis informasi yang harus diperhatikan (Informasi yang menjelaskan struktur data dan menggambarkan aturan atau batasan yang dapat menjaga integritasi data)


Fokus dalam mendefinisikan kebutuhan :

  • Mendefinisikan lingkup database
  • Memilih metodelogi
  • Mengidentifikasi pandangan user
  • Model data struktur
  • Model data constraints
  • Mengidentifikasi kebutuhan operasional

Disaster Recovery Planning
Yaitu merupakan serangkaian kegiatan yang bertujuan untuk mengurangi dan membatasi resiko – resiko buruk (bencana) dan nantinya membuat kerugian – kerugian pada proses bisnis yang ada. Dapat dikatakan bahwa proses ini adalah sebuah proses penanggulangan – penganggulangan atau rencana untuk menanggulangi suatu bencana pada proses bisnis.

Beberapa Keuntungan dari Disaster Recovery Planning
  • Memperbaiki system proteksi terhadapat setiap aset – aset penting yang dimiliki oleh perusahan tersebut.
  • Membuat system proteksi infomasi atau data – data perusahaan lebih efektif.
  • Mengurangi resiko bencana akibat kesalahan manusia
  • Memperbaiki manajemen perusahaan

Backup Database
Yaitu suatu proses yang mengacu kepada pembuatan salinan data dari database, sehingga salinan ini dapat digunakan untuk mengembalikan data semula dari peristiwa kehilangan data ataupun kerusakan data.

Postingan Lebih Baru Postingan Lama Beranda