1 BAB I PEMODELAN SISTEM
1.1. Model Sistem Salah satu cara untuk menstrukturkan permasalahan-permasalahan adalah dengan menggambarkanya dalam bentuk model-model. Sebuah model merepresentasikan realitas. Sebagaimana pepatah mengatakan, bahwa sebuah gambar yang dapat menggantikan ribuan kata, maka sebagian besar model ditunjukkan dengan menggunakan gambar. Model dapat dibuat untuk sistem yang sedang berjalan atau sistem baru yang diusulkan sebagai sebuah cara untuk menunjukkan kebutuhan-kebutuhan dokumen bisnis atau perancangan-perancangan teknik. Model dapat dibedakan menjadi 2, yaitu: 1. Model logikal 2. Model fisikal Model logikal digunakan untuk menunjukkan tentang “apa” sistem yang dimodelkan. Model logikal sinonim dengan model konseptual (conceptual model) atau model bisnis (business model). Model logikal diimplementasikan secara “independen” terhadap implementasi teknik. Model fisikal digunakan untuk menunjukkan tentang “apa” dan “bagaimana” sistem yang dimodelkan. Model fisikal sinonim dengan model implementasi (implementation model) atau model teknik (technical model). Model fisikal diimplementasikan secara “dependen” karena merefleksikan pilihan teknologi dan batasan-batasan pada teknologi yang dipilih. Systems analyst menggunakan model logikal untuk menunjukkan kebutuhan bisnis (business requirements). Sedangkan model fisikal digunakan untuk menunjukkan perancangan teknik (technicall design). Aktivitas-aktivitas dalam analisis sistem (aystems analysis) lebih difokuskan pada model logikal karena alasan berikut (Whitten dan Bentley, 1998):
2 1. Model logikal dapat menghilangkan “bias“di antara personil tentang hasil yang diberikan oleh sistem yang berjalan atau sistem yang akan diimplementasikan 2. Model logikal dapat mengurangi resiko kesalahan kebutuhan bisnis (business requirement) karena umumnya kita awam terhadap hal-hal yang bersifat terlalu teknis. 3. Model logikal mengijinkan untuk mengkomunikasikan model logikal kepada para pemakai akhir (end-user) dalam bahasa non-teknik. 1.2. Model Proses Model Proses merupakan sebuah teknik untuk mengorganisasikan dan mendokumentasikan struktur dan aliran data melewati sebuah “proses” dalam sistem dan/atau logika, kebijakan, dan prosedur-prosedur yang akan diimplementasikan dengan “proses” dalam sistem. Model Proses didasarkan pada metode-metode dalam rekayasa perangkat lunak klasik. Secara konsep, sebuah sistem adalah sebuah proses. Model sistem yang paling sederhana adalah terdiri atas: 1. Input 2. Output 3. Sistem itu sendiri yang ditunjukkan sebagai sebuah proses. Simbol proses mendefinisikan batas pada sistem. Sebuah sistem adalah berada di dalam batas sistem, sedangkan lingkungan adalah yang berada di luar batas sistem. Sistem melakukan pertukaran Input dan Output dengan lingkungannya. Sebuah proses adalah sinonim dengan transformasi (transform) yaitu akan bekerja; 1. Jika diberikan aliran data masuk atau kondisi 2. Untuk memberikan respon kepada aliran data yang masuk atau kondisi. Simbol proses adalah: 1. Rounded rectangle (Gane and Sarson) 2. Circle (Demarco/Yourdon) 3. Rectangle (SSADM/IDEF0) Diagram Arus Data/DAD (Data Flow Diagram/DFD) Model proses digambarkan dengan Diagram Arus Data/DAD (Data Flow Diagram/DFD). DFD menggambarkan secara rinci urut-urutan langkah dari masing-masing proses yang digambarkan dalam diagram arus data. DFD sinonim dengan bubble chart, transformation graph, dan process model.
3
DFD vs Flowchart: 1. Proses pada DFD dapat dioperasikan secara paralel, sedangkan proses dalam flowchart hanya dapat dieksekusi satu per satu pada satu saat tertentu. 2. DFD menunjukkan aliran data melewati sistem. Tanda anak panah merepresentasikan jalur aliran data, looping dan branching tidak ditunjukkan. 3. Flowchart menunjukkan urutan proses atau operasi dalam sebuah algoritma atau program. Tanda anak panah menujukkan penghubung ke proses selanjutnya, dan mengijinkan adanya looping and branching. 4. DFD dapat menunjukkan proses-proses yang memiliki perbedaan waktu yang “dramatis”, sedangkan flowchart tidak. DFD hanya memiliki 3 simbol dan 1 koneksi (simbol yang digunakan dapat berbeda-beda, tergantung acuan yang digunakan): 1. Process 2. External entity 3. Data storage 4. Data flow Penggambaran DFD dengan metode SSADM/IDEF0 (Whitten dan Bentley, 1998): 1. External entity, merupakan kesatuan2 di lingkungan luar sistem yang akan mempengaruhi sistem, dengan memberikan input atau menerima output dari sistem. External entity dapat berupa: o orang atau sekelompok orang dalam organisasi tetapi di luar sistem yang sedang dikembangkan o organisasi atau orang yang berada di luar organisasi o kantor atau divisi dalam perusahaan tetapi di luar sistem yang sedang dikembangkan o sistem informasi lain di luar sistem yang sedang dikembangkan o sumber asli dari suatu transaksi o penerima akhir dari suatu laporan yang dihasilkan oleh sistem. Simbol: Nama external entity
2.
Repeated external entity, untuk menghindari keruwetan dalam diagram, karena banyaknya garis penghubung antara external entity, proses, maupun data store yang saling berpotongan, maka external entity dapat digambarkan >1 kali untuk satu nama, yang disebut repeated external entity.
3.
Data flow,
4 Disimbolkan dengan tanda panah dimana arah panah menunjukkan arah mengalirnya data. Data flow mengalir menuju proses atau meninggalkan proses. Data flow yang meninggalkan external entity selalu menuju ke proses. Data flow dapat berupa: o masukan untuk sistem atau hasil dari proses sistem dan dapat berbentuk formulir atau dokumen yang digunakan sistem o laporan tercetak yang dihasilkan sistem o masukan untuk komputer o output ke layar monitor o data yang dibaca dari suatu file atau yang direkam ke suatu file o komunikasi ucapan o surat atau memo o suatu isian yang dicatat pada buku agenda Arus data diberi nama yang jelas dan bermakna (meaningfull) yang dapat mewakili data yang mengalir. Simbol: Nama data flow
4.
Process, Adalah kegiatan yang dilakukan oleh orang, mesin, atau komputer dari hasil suatu arus data yang masuk ke proses dan akan dihasilkan arus data yang keluar dari proses. Simbol:
Nomor Proses Nama proses
5.
Data storage, Merupakan simpanan dari data yang dapat berupa: o File atau database di sistem komputer o Arsip atau catatan manual o Kotak tempat data di meja seseorang o Tabel acuan buku o Suatu agenda atau buku. Simbol: D1
Mahasiswa
Pengambaran data storage perlu memperhatikan hal-hal berikut: o Data storage hanya berhubungan dengan proses, karena yang menggunakan atau merubah data di data storage adalah suatu proses o Arus data dari proses menuju ke data storage menunjukkan proses update data dalam data storage. o Update data dapat berupa proses:
5 menambah atau menyimpan record atau dokumen baru ke dalam data storage o menghapus record atau dokumen dalam data storage o merubah record atau dokumen dalam data storage Arus data dari data storage menuju ke proses dapat diartikan sebagai proses menggunakan data dalam data storage untuk dilihat isinya Suatu proses dapat melakukan keduanya, yaitu menggunakan dan meng-update data dalam data storage. o
o
o 6.
Repeated Data Storage, Untuk menghindari keruwetan diagram, karena banyaknya garis penghubung antar data storage, external entity, process, maupun data storage yang saling berpotongan, maka data storage dapat digambarkan lebih dari satu buah untuk satu nama yang disebut repeated data storage. Simbol: D1
Nama data storege
D1
Nama data storege
Pedoman Menggambar DFD (Whitten dan Bentley, 1998): 1. Identifikasikan semua external entity sistem yang terlibat; 2. Identisikasikan semua input dan output yang terlibat dengan external entity; 3. Gambarlah terlebih dahulu suatu diagram konteks atau diagram induk untuk garis besar, kemudian dipecah untuk level-level berikutnya; 4. Gambarlah bagan berjenjang (hirarchy chart) untuk semua proses yang ada di sistem untuk mempersiapkan penggambaran DFD level berikutnya; 5. Gambarlah sketsa DFD untuk overview diagram (level 0) berdasarkan proses bagan berjenjang; 6. Gambarlah DFD untuk level-level berikutnya, yaitu level 1, kemudian dipecah dalam level 2, dan seterusnya; 7. Setelah semua level DFD digambarkan, selanjutnya adalah menggambar DFD untuk pelaporan manajemen yang digambarkan secara terpisah; 8. Semua level DFD yang telah digambar termasuk DFD untuk pelaporan manajemen digabung dalam satu diagram. PENTING !!! o Arus data adalah arus yang mengalir menuju proses atau arus yang mengalir dari proses atau arus yang mengalir dari proses menuju proses lain, sehingga jika arus data tidak seperti ketentuan tersebut maka dapat dipastikan bahwa DFD tersebut salah. o Kesalahan yang sering terjadi: o Proses mempunyai input tetapi tidak menghasilkan output, disebut blackhole o Proses menghasilkan output tetapi tidak pernah menerima input, disebut miracle
1.2. Studi Kasus Pemodelan Sistem Dgn DFD
Rancangan struktur tabel database
User
Kriteria informasi Informasi hasil analisis
0 Analisis fleksibilitas rancangan struktur tabel database
Setup data Penilaian Kriteria informasi Informasi hasil analisis
Pakar
6
Setup data user, pendidikan, tingkat fleksibilitas
Record user
1 Setup data
D1 TblUser
Record pendidikan
D2 TblPendidikan
Record tingkat fleksibilitas
D3 TblFleksibilitas
Rancangan struktur tabel database
User
2 Input rancangan struktur tabel database
Record data
D4 TblData Record data tabel
D5 TblDataTabel Record data atribut
D6 TblDataAtribut
Record data atribut Record data tabel
3 Proses analisis rancangan struktur tabel database Record hasil
Record data Record tingkat fleksibilitas Record pendidikan Record User
Record hasil detail
Penilaian
Pakar D7 TblHasil
D8 TblHasilDetail
Record hasil
Record hasil detail
Kriteria informasi
Setup data User
Pakar
Setup data pendidikan
4 Laporan hasil analisis
1.1 Setup data User
1.2 Setup data pendidikan
Kriteria informasi Informasi hasil analisis
Record user
Record pendidikan
D1 TblUser
D2 TblPendidiikan
7
D4 TblData
D3 TblFleksibilitas
D2 TblPendidikan
D5 TblDataTabel D6 TblDataAtribut
D7 TblHasil Record tingkat fleksibilitas
D8 TblHasilDetail
Record hasil detail
Record data atribut Record data tabel
Record pendidikan
4.1 Tampilkan
Record hasil
8
1.3. Kaitan antara DAD, HIPO, Desain Dialog/I/P/O, & Database Salah satu alat dokumentasi yang banyak digunakan dalam perancangan sistem adalah diagram HIPO. HIPO terdiri atas 3 jenis, yaitu (Al-Bahra bin Ladjamudin, 2005): 1. Diagram isi tabel visual (Visual Table of Contents/VTOC), o Merupakan diagram pertama HIPO yang terdiri atas satu atau lebih diagram hirarkhi. o VTOC berisi nama dan nomor identifikasi dari semua program untuk Diagram ringkas (Overview Diagram) dan Diagram detail (Detailed Diagram) secara terstruktur. o VTOC juga menunjukkan struktur paket diagram dan hubungan fungsi dalam bentuk hirarkhi. o Level paling tinggi pada VTOC mengidentifikasikan fungsi sistem secara keseluruhan. o Level berikutnya, memecah fungsi sistem ke dalam sub fungsi logika. 2. Diagram ringkas (Overview Diagram), o Merupakan diagram yang menjelaskan fungsi dan referensi utama yang diperlukan oleh program detail untuk memperluas fungsi sehingga cukup detail. o Diagram ringkas menerangkan input, proses, dan output dari sistem secara garis besar, yaitu nama file/record input atau output). o Input berisikan item-item data yang dipakai oleh proses, termasuk semua item input utama yang digunakan oleh diagram pada level yang lebih rendah. o Proses berisikan urutan langkah yang menerangkan fungsi yang sedang dilaksanakan. o Item input dihubungkan dengan suatu proses dengan simbol anak panah. o Output berisikan item data yang dibentuk atau dimodifikasi oleh proses, termasuk semua item output utama yang ditampilkan oleh diagram pada level yang lebih rendah. o Item output dihubungkan dengan suatu proses dengan simbol anak panah. 3. Diagram detail (Detailed Diagram),
9 o o o o o o
Berisikan elemen-elemen dasar sistem Menerangkan fungsi-fungsi khusus Menampilkan item-item input dan output secara detail (yaitu nama field input yang diperlukan dan output yang dihasilkan) Memberikan referensi terhadap diagram HIPO yang lain, seperti diagram alir (flowchart) dan tabel keputusan dari logika yang rumit. Diagram detail juga berisi deskripsi yang menjelaskan langkah proses dan dapat mereferensikan terhadap diagram HIPO. Jumlah level diagram detail HIPO tergantung pada jumlah fungsi yang terkait, kerumitan pengolahan, dan jumlah infomasi yang akan didokumentasikan.
Perancangan Visual Table of Contents/VTOC Visual Table of Contents/VTOC menggambarkan hubungan dari modul-modul dalam suatu sistem secara berjenjang Analisis fleksibilitas rancangan struktur tabel database
1 Setup data
1.1 Setup data User
1.2 Setup data Pendidikan
2 Input rancangan struktur tabel database
1.3 Setup data Tingkat Fleksibilitas
3 Proses analisis rancangan struktur tabel database
2.1 Input rancangan struktur tabel database
3.1 Proses analisis rancangan struktur tabel database
4 Laporan hasil analisis
4.1 Tampilkan hasil analisis rancangan struktur tabel database
Perancangan Overview Diagram Overview diagram menggambarkan hubungan dari input, proses, dan output. Input merupakan item-item data yang akan digunakan oleh bagian proses. Proses adalah langkah-langkah yang menggambarkan fungsi atau modul. Output merupakan hasil pemrosesan data.
Input
Proses
Output
1. User 2. Pendidikan 3. Tingkat fleksibilitas
1. Setup data
1. TblUser 2. TblPendidikan 3. TblFleksibilitas
1. Rancangan struktur
2. Input rancangan struktur tabel database
1. TblData
1.1. Setup data User 1.2. Setup data pendidikan 1.3. Setup data tingkat fleksibilitas
10
Perancangan Detailed Diagram Detailed diagram menggambarkan elemen-elemen dasar HIPO secara detail. Input 1. Data User o Nama_User o Password o Status 2. Data Pendidikan o Pendidikan
Proses 1. Setup data 1.1. Setup data User o Baca data o Simpan data 1.2. Setup data pendidikan o Baca data
Output 1. Tampilan menu utama 1.1. Tampilan submenu Setup data User o Form input Setup data User o Kembali ke submenu setup data 1.2. Tampilan submenu Setup data
11 o Nama_Pendidikan 3. Data Tingkat Fleksibilitas o Tingkat_Fleksibilitas o Nama_Tkt_Fleksibilitas o Batas_Bawah o Batas_Atas
o Simpan data 1.3. Setup data tingkat fleksibilitas o Baca data o Simpan data
1. Data rancangan struktur tabel database o Data_Rancangan_Ke o Data_Rancangan o Nama_Perancang o Pendidikan o Tanggal_Rancangan o Judul o Jumlah_Tabel o Jumlah_Atribut 2. Data tabel o Data_Rancangan_Ke o Nama_Tabel_Ke o Nama_ Tabel o Jumlah_Atribut 3. Data atribut o Data_Rancangan_Ke o Nama_Tabel_Ke o Nama_Atribut_Ke o Nama_Atribut o Tipe_Atribut o Ukuran_Atribut o Keterangan_Atribut 1. Data User o Nama_User o Password o Status 2. Data Pendidikan o Pendidikan o Nama_Pendidikan 3. Data Tingkat Fleksibilitas o Tingkat_Fleksibilitas o Nama_Tkt_Fleksibilitas o Batas_Bawah o Batas_Atas
2. Input rancangan struktur tabel database 2.1. Baca data rancangan o Baca data rancangan o Simpan data rancangan 2.2. Baca data tabel o Baca data tabel o Simpan data tabel 2.3. Baca data atribut o Baca data atribut o Simpan data atribut
4. Data rancangan struktur tabel database o Data_Rancangan_Ke o Data_Rancangan o Nama_Perancang o Pendidikan o Tanggal_Rancangan o Judul o Jumlah_Tabel o Jumlah_Atribut
3. Proses analisis rancangan struktur tabel database 3.1. Tampilkan rancangan struktur tabel database o Baca TblData o Baca TblDataTabel o Baca TblAtribut o Tampilkan TblData o Tampilkan TblDataTabel o Tampilkan TblDataAtribut 3.2. Proses analisis rancangan struktur tabel database 3.2.1. Baca penilaian 3.2.2. Konfirmasi penilaian 3.3. Simpan hasil analisis rancangan struktur tabel database 3.3.1. Simpan hasil 3.3.2. Simpan hasil detail
pendidikan o Form input Setup data pendidikan o Kembali ke submenu setup data 1.3. Submenu setup data tingkat fleksibilitas o Form input setup data tingkat fleksibilitas o Kembali ke submenu setup data 2. Kembali ke tampilan menu utama 2. Tampilan menu utama 2.1. Tampilan submenu input rancangan struktur tabel database o Form input rancangan struktur tabel database o Form input detail data 2.2. Kembali ke tampilan submenu input rancangan struktur tabel database 2.3. Kembali ke tampilan menu utama
3. Tampilan menu utama 3.1. Tampilan submenu proses analisis rancangan struktur tabel database o Form penilaian rancangan struktur tabel database 3.2. Kembali ke tampilan submenu proses analisis rancangan struktur tabel database 3.3. Kembali ke tampilan menu utama
12 5. Data tabel o Data_Rancangan_Ke o Nama_Tabel_Ke o Nama_ Tabel o Jumlah_Atribut 6. Data atribut o Data_Rancangan_Ke o Nama_Tabel_Ke o Nama_Atribut_Ke o Nama_Atribut o Tipe_Atribut o Ukuran_Atribut o Keterangan_Atribut 7. Penilaian o Data_Rancangan_Ke o Nama_Tabel_Ke o Nama_Atribut_Ke o Tanggal_Analisis o Sifat_Fleksibel_Atribut o Penjelasan 1. Kriteria informasi 2. Hasil analisis o Data_Rancangan_Ke o Tanggal_Analisis o Tingkat_Fleksibilitas 3. Detail hasil analisis o Data_Rancangan_Ke o Nama_Tabel_Ke o Nama_Atribut_Ke o Sifat_Fleksibel_Atribut o Penjelasan
4. Laporan 4.1. Baca kriteria informasi 4.2. Baca hasil analisis rancangan struktur tabel database 4.3. Baca detail hasil analisis 4.4. Tampilkan hasil analisis rancangan struktur tabel database
4. Tampilan menu utama 4.1. Tampilan submenu Laporan o Form pilihan kriteria informasi o Form hasil analisis o Konfirmasi preview-cetak-tutup tampilan informasi 4.2. Kembali ke submenu Laporan 4.3. Kembali ke tampilan menu utama
Perancangan Dialog Layar Perancangan Dialog Layar Menu Login User Analisis Fleksibilitas Rancangan Struktur Tabel Database Nama User Password
Login
Keluar
13
Perancangan Dialog Layar Menu User Rancangan Struktur Tabel Database
Laporan
Informasi
Keluar
Rancangan Struktur Tabel Database
Laporan
Informasi
Input
Keluar
Rancangan Struktur Tabel Database
Laporan
Informasi
Daftar Rancangan Hasil Æ Per Hasil Æ Daftar Hasil Æ Statistik Keluar
Bantuan Pembuat Program
14
Keluar
Perancangan Dialog Layar Menu Pakar Setup Data
Rancangan Struktur Tabel Database
Laporan
Informasi
Keluar
Setup Data
Rancangan Struktur Tabel Database
Laporan
Informasi
Tingkat Fleksibilitas Pendidikan User
Keluar
Setup Data
Rancangan Struktur Tabel Database
Laporan
Informasi
Input Penilaian
Keluar
Setup Data
Rancangan Struktur Tabel Database
Laporan
Informasi
Daftar Rancangan Hasil Æ Per Hasil Æ Daftar Hasil Æ Statistik Keluar
15
Setup Data
Rancangan Struktur Tabel Database
Laporan
Informasi Bantuan Pembuat Program
Keluar
16
17
18 Perancangan Output DAFTAR RANCANGAN STRUKTUR TABEL DATABASE PENDIDIKAN PERANCANG S3 No
Data Rancangan
Nama Perancang
JUMLAH: DicetakÆ Tgl/Jam
Tanggal Rancangan
Oleh:
Judul
Untuk:
Jumlah Tabel
Halaman: Jumlah Atribut
Jml Eks:
DAFTAR RANCANGAN STRUKTUR TABEL DATABASE PENDIDIKAN PERANCANG S2 No
Data Rancangan
Nama Perancang
JUMLAH: DicetakÆ Tgl/Jam
Tanggal Rancangan
Oleh:
Judul
Untuk:
Jumlah Tabel
Jml Eks:
DAFTAR RANCANGAN STRUKTUR TABEL DATABASE PENDIDIKAN PERANCANG S1 No
Data Rancangan
Nama Perancang
JUMLAH: DicetakÆ Tgl/Jam
Tanggal Rancangan
Oleh:
Judul
Untuk:
Jumlah Tabel
Data Rancangan
JUMLAH: DicetakÆ Tgl/Jam
Nama Perancang
Tanggal Rancangan
Oleh:
Judul
Untuk:
Halaman: Jumlah Atribut
Jml Eks:
DAFTAR RANCANGAN STRUKTUR TABEL DATABASE PENDIDIKAN PERANCANG D3 No
Halaman: Jumlah Atribut
Jumlah Tabel
Jml Eks:
Halaman: Jumlah Atribut
19 DAFTAR RANCANGAN STRUKTUR TABEL DATABASE KESELURUHAN No
Data Rancangan
Nama Perancang
JUMLAH: DicetakÆ Tgl/Jam
Tanggal Rancangan
Judul
Oleh:
Untuk:
Jumlah Tabel
Halaman: Jumlah Atribut
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE PER RANCANGAN Data Rancangan Nama Perancang
: :
Pendidikan Perancang Tanggal Rancangan Jumlah Tabel Jumlah Atribut Judul
:
Tabel ke : No Nama Atribut
Tanggal Analisis Jumlah Atribut Tidak Fleksibel Jumlah Atribut Fleksibel
: : : :
Tingkat Fleksibilitas
Nama Tabel : Tipe Atribut Ukuran Atribut
DicetakÆ Tgl/Jam
Oleh:
Fleksibel [Y/T]
Untuk:
Halaman: : : …. =….% : …. =….% :
Penjelasan
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE DAFTAR BERDASARKAN TINGKAT FLEKSIBILITAS SANGAT BAIK No
Data Rancangan
Nama Perancang
Tanggal Rancangan
Judul
Jumlah Tabel
Atribut Tidak Fleksibel Jumlah %
Halaman: Atribut Fleksibel Pendidikan Perancang Jumlah %
JUMLAH:
DicetakÆ Tgl/Jam
Oleh:
Untuk:
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE DAFTAR BERDASARKAN TINGKAT FLEKSIBILITAS BAIK No
Data Rancangan
Nama Perancang
Tanggal Rancangan
Judul
Jumlah Tabel
Atribut Tidak Fleksibel Jumlah %
Halaman: Atribut Fleksibel Pendidikan Perancang Jumlah %
JUMLAH:
DicetakÆ Tgl/Jam
Oleh:
Untuk:
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE
20 DAFTAR BERDASARKAN TINGKAT FLEKSIBILITAS SEDANG No
Data Rancangan
Nama Perancang
Tanggal Rancangan
Judul
Jumlah Tabel
Atribut Tidak Fleksibel Jumlah %
Halaman: Atribut Fleksibel Pendidikan Perancang Jumlah %
JUMLAH:
DicetakÆ Tgl/Jam
Oleh:
Untuk:
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE DAFTAR BERDASARKAN TINGKAT FLEKSIBILITAS BURUK No
Data Rancangan
Nama Perancang
Tanggal Rancangan
Judul
Jumlah Tabel
Atribut Tidak Fleksibel Jumlah %
Halaman: Atribut Fleksibel Pendidikan Perancang Jumlah %
JUMLAH:
DicetakÆ Tgl/Jam
Oleh:
Untuk:
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE DAFTAR BERDASARKAN TINGKAT FLEKSIBILITAS SANGAT BURUK No
Data Rancangan
Nama Perancang
Tanggal Rancangan
Judul
Jumlah Tabel
Atribut Tidak Fleksibel Jumlah %
Halaman: Atribut Fleksibel Pendidikan Perancang Jumlah %
JUMLAH:
DicetakÆ Tgl/Jam
Oleh:
Untuk:
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE DAFTAR BERDASARKAN PENDIDIKAN PERANCANG S3 No
Data Rancangan
Nama Perancang
Tanggal Rancangan
Judul
Jumlah Tabel
Atribut Tidak Fleksibel Jumlah %
Halaman: Atribut Fleksibel Tingkat FLeksibilitas Jumlah %
JUMLAH:
DicetakÆ Tgl/Jam
Oleh:
Untuk:
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE DAFTAR BERDASARKAN PENDIDIKAN PERANCANG S2 No
Data Rancangan
Nama Perancang
Tanggal Rancangan
Judul
Jumlah Tabel
Atribut Tidak Fleksibel Jumlah %
Halaman: Atribut Fleksibel Tingkat FLeksibilitas Jumlah %
JUMLAH:
DicetakÆ Tgl/Jam
Oleh:
Untuk:
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE
21 DAFTAR BERDASARKAN PENDIDIKAN PERANCANG S1 No
Data Rancangan
Nama Perancang
Tanggal Rancangan
Judul
Jumlah Tabel
Atribut Tidak Fleksibel Jumlah %
Halaman: Atribut Fleksibel Tingkat FLeksibilitas Jumlah %
JUMLAH:
DicetakÆ Tgl/Jam
Oleh:
Untuk:
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE DAFTAR BERDASARKAN PENDIDIKAN PERANCANG D3 No
Data Rancangan
Nama Perancang
Tanggal Rancangan
Judul
Jumlah Tabel
Halaman: Atribut Fleksibel Tingkat FLeksibilitas Jumlah %
Atribut Tidak Fleksibel Jumlah %
JUMLAH:
DicetakÆ Tgl/Jam
Oleh:
Untuk:
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE KESELURUHAN No
Data Rancangan
Nama Perancang
Tanggal Rancangan
Judul
Jumlah Tabel
Atribut Tidak Fleksibel Jumlah %
Halaman: Tingkat Pendidikan FLeksibilitas Perancang
Atribut Fleksibel Jumlah
%
JUMLAH:
DicetakÆ Tgl/Jam
Oleh:
Untuk:
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE STATISTIK BERDASARKAN TINGKAT FLEKSIBILITAS Halaman: No
Pendidikan Perancang
1 Sangat Baik 2 Baik 3 Sedang 4 Buruk 5 Sangat Buruk JUMLAH: DicetakÆ Tgl/Jam
Data Rancangan
Oleh:
Tabel
Jumlah Atribut Atribut Tidak Fleksibel Jumlah %
Untuk:
Atribut Fleksibel Jumlah %
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE
22 STATISTIK BERDASARKAN PENDIDIKAN PERANCANG No
Pendidikan Perancang
Data Rancangan
1 S3 2 S2 3 S1 4 D3 JUMLAH: DicetakÆ Tgl/Jam
Oleh:
Tabel
Jumlah Atribut Atribut Tidak Fleksibel Jumlah %
Untuk:
Halaman: Atribut Fleksibel Jumlah %
Jml Eks:
HASIL ANALISIS FLEKSIBILITAS RANCANGAN STRUKTUR TABEL DATABASE REKAPITULASI KESELURUHAN No 1 2 3 4
Pendidikan Perancang
Jumlah Data Rancangan
Sangat Baik Jumlah %
Tingkat Fleksibilitas Baik Sedang Buruk Jumlah % Jumlah % Jumlah %
Sangat Buruk Jumlah %
S3 S2 S1 D3 JUMLAH:
DicetakÆ Tgl/Jam
Perancangan Database
Oleh:
Untuk:
Halaman:
Jml Eks:
23 Model Data ER_M
Pendidikan
Fleksibilitas
1
1
merancang
mempunyai
N Data 1
N 1
1
mempunyai
Hasil
1
1
mempunyai
mempunyai
N DataTabel
mempunyai
N 1
mempunyai
N
1
1
mempunyai 1
HasilDetail
N DataAtribut 1
mempunyai
Konversi Model Data ER_M ke Logical Record Structure
24 TblDataAtribut Data_Rancangan_Ke Nama_Tabel_Ke Nama_Atribut_Ke Nama_Atribut Tipe_Atribut Ukuran_Atribut Keterangan_Atribut
TblHasilDetail Data_Rancangan_Ke Nama_Tabel_Ke Nama_Atribut_Ke Sifat_Fleksibel_Atribut Penjelasan
TblDataTabel Data_Rancangan_Ke Nama_Tabel_Ke Nama_Tabel Jumlah_Atribut
TblHasil Data_Rancangan_Ke Tanggal_Analisis Tingkat_Fleksibilitas
TblData Data_Rancangan_Ke Data_Rancangan Nama_Perancang Pendidikan Tanggal_Rancangan Judul Jumlah_Tabel Jumlah_Atribut
TblFleksibilitas Tingkat_Fleksibilitas Nama_Tkt_Fleksibilitas Batas_Bawah Batas_Atas TblUser Nama_User Password Status
TblPendidikan Pendidikan Nama_Pendidikan
Pengujian Normalisasi Relasi o Semua relasi telah memenuhi bentuk 3NF o Detail spesifikasi struktur relasi TblUser No 1 2 3
Nama field Nama_User Password Status
Tipe Alpha Alpha Alpha
Ukuran 50 10 1
Null ? No No No
Key PK PK -
Min
Max
Keterangan
-
-
Nama User Passsword Status User P:Pakar, U:User
Key PK -
Min -
TblPendidikan No 1 2
Nama field Pendidikan Nama_Pendidikan
Tipe Alpha Alpha
Ukuran 2 50
Null ? No No
Max -
Keterangan Kode jenjang pendidikan Nama jenjang pendidikan
TblFleksibilitas No
Nama field
Tipe
Ukuran
1 2 3 4
Tingkat_Fleksibilitas Nama_Tkt_Fleksibilitas Batas_Bawah Batas_Atas
Short Alpha Number Number
25 2:2 3:2
Null ? No No No No
Key
Min
Max
Keterangan
PK -
1 0,00 19,99
5 79,99 100,00
Kode tingkat fleksibilitas Nama tingkat fleksibilitas % batas bawah % batas atas
TblData.DB No
Nama field
Tipe
Ukuran
Null ?
Key
Min
Max
Keterangan
25 1 2 3 4 5 6 7 8
Data_Rancangan_Ke Data_Rancangan Nama_Perancang Pendidikan Tanggal_Rancangan Judul Jumlah_Tabel Jumlah_Atribut
Short Alpha Alpha Alpha Date Alpha Short Short
11 50 2 200 -
No No No No No No No No
PK FK -
1 1 1
Nomor urut data rancangan Kode data rancangan Nama perancang Kode jenjang pendidikan perancang Tanggal waktu perancangan Judul rancangan Jumlah tabel rancangan Jumlah atribut dalam rancangan
100 100 100
TblDataTabel No 1 2 3 4
Nama field Data_Rancangan_Ke Nama_ Tabel_Ke Nama_ Tabel Jumlah_Atribut
Tipe Short Short Alpha Short
Ukuran 50 -
Null ? No No No No
Key PK/FK PK -
Min 1 1 1
Max 100 100 100
Keterangan
Tipe Short Short Short Alpha Alpha Short Alpha
Ukuran 50 10 255
Null ? No No No No No No Yes
Key PK/FK PK/FK PK -
Min 1 1 1 1 -
Max 100 100 100 100 -
Keterangan
Nomor urut data rancangan Nomor urut tabel Nama tabel rancangan Jumlah atribut dalam tabel
TblDataAtribut No 1 2 3 4 5 6 7
Nama field Data_Rancangan_Ke Nama_ Tabel_Ke Nama_Atribut_Ke Nama_Atribut Tipe_Atribut Ukuran_Atribut Keterangan_Atribut
Nomor urut data rancangan Nomor urut tabel Nomor urut atribut Nama atribut rancangan Tipe data atribut rancangan Ukuran atribut rancangan Keterangan atribut
TblHasil No
Nama field
Tipe
Ukuran
1 2 3
Data_Rancangan_Ke Tanggal_Analisis Tingkat_Fleksibilitas
Short Date Short
-
Null ? No No No
Key
Min
Max
Keterangan
PK/FK FK
1 1
100 5
Nomor urut data rancangan Tanggal dilakukan analisis Tingkat fleksibilitas rancangan
TblHasilDetail No 1 2 3 4 5
Nama field Data_Rancangan_Ke Nama_ Tabel_Ke Nama_Atribut_Ke Sifat_Fleksibel_Atribut Penjelasan
Tipe Short Short Short Logical Alpha
Ukuran 255
Null ? No No No No Yes
Key PK/FK PK/FK PK/FK
Min 1 1 1
Max 100 100 100
-
-
-
Keterangan Nomor urut data rancangan Nomor urut tabel Nomor urut atribut Sifat fleksibel atribut Penjelasan tidak fleksibel
1 BAB II PERANCANGAN BASIS DATA DGN TEKNIK ER_M 1.1.
ER_M
⇒ Salah satu model data yang dikembangkan berdasarkan obyek ⇒ Digunakan untuk menjelaskan hubungan antar data dalam basis data kepada pemakai secara logik ⇒ Didasarkan pada suatu persepsi bahwa real world terdiri atas obyek-obyek dasar yang mempunyai kerelasian antar obyek-obyek dasar tersebut ⇒ Digambarkan dalam bentuk ER_D Komponen ER_D 1. Entitas: ⇒ obyek-obyek dasar yang terkait di dalam sistem ⇒ dapat berupa orang, benda, atau hal ⇒ keterangannya perlu disimpan di dalam basis data ⇒ Aturan penggambaran ⇒ Simbol Isian entitas ⇒ menyatakan sebuah kemungkinan pada entitas: ⇒ Contoh: ⇒ Mahasiswa dengan NIM 02050001 ⇒ Mahasiswa bernama Rico Himpunan entitas ⇒ menyatakan sekumpulan entitas dengan struktur/sifat yang sama ⇒ Contoh: ⇒ sejumlah mahasiswa jenjang sarjana ⇒ sejumlah mahasiswa jenjang diploma ⇒ semua mahasiswa Entitas reguler ⇒ disebut juga entitas dominan ⇒ entitas yang keberadaannya tidak bergantung pada entitas yang lain ⇒ Contoh: ⇒ Mahasiswa ⇒ Mata_Kuliah ⇒ Dosen ⇒ Kabupaten ⇒ simbol Entitas dependen ⇒ disebut juga entitas tak bebas/entitas lemah (weak entity)/entitas subordinat ⇒ merupakan entitas yang keberadaannya bergantung pada entitas yang lain ⇒ Contoh: ⇒ Mahasiswa_Jenjang_Sarjana bergantung pada Mahasiswa ⇒ Mata_Kuliah_Wajib bergantung pada Mata_Kuliah ⇒ Wali_Mahasiswa bergantung pada Mahasiswa ⇒ Simbol Entitas super type dan entitas sub type ⇒ Entitas bisa merupakan bagian dari entitas yang lainnya.
2 ⇒ Entitas super type: entitas yang mempunyai tingkatan lebih tinggi, membawahi entitas bagian ⇒ Entitas sub type: entitas yang lebih rendah, menjadi bagian entitas lain ⇒ Contoh: ⇒ Karyawan_Tetap dan Karyawan_Tidak_Tetap bagian dari Karyawan ⇒ Simbol 2. Attribute ⇒ Sering disebut property ⇒ Merupakan keterangan-keterangan yang terkait pada entitas yang perlu disimpan sebagai basis data. ⇒ Berfungsi sebagai penjelas sebuah entitas ⇒ Aturan penggambaran ⇒ Simbol ⇒ Contoh:
Entitas Mahasiswa Dosen Mata Kuliah Angkatan Jenjang Studi Program Studi Jurusan Fakultas Golongan Nilai Ruang Waktu
Wali_Mahasiswa Kabupaten Propinsi Agama Pekerjaan
Atribut Kode_Angkatan, Kode_Program_Studi, Kode_Jenjang_Studi, Nomor, Nama_Mahasiswa, Tanggal_Lahir, Alamat_Lokal, Kode_Agama, Status NIK, Nama_Dosen, Tanggal_Lahir, Alamat_Lokal, Kode_Golongan, Kode_Agama, Tanggal_SK, Nomor_SK, No_Telepon, Status Kode_Mata_Kuliah, Nama_Mata_Kuliah, Sks, Smt, Status Kode_Angkatan, Tahun_Angkatan Kode_Jenjang_Studi, Nama_Jenjang_Studi Kode_Prodi, Nama_Prodi, Tanggal_SK, Nomor_SK, Status, Kode_Jurusan, Sks_Program_Studi Kode_Jurusan, Nama_Jurusan, Tanggal_SK, Nomor_SK, Kode_Fakultas Kode_Fakultas, Nama_Fakultas,Tanggal_SK, No_SK Kode_Golongan, Nama_Golongan, Gaji_Pokok Nilai, Mutu, Keterangan Kode_Ruang, Kapasitas Kode_Waktu, Hari, Jam_Mulai, Status
Kode_Angkatan, Kode_Jenjang_Studi, Kode_Jurusan, Nomor, Nama_Wali, Alamat_Asal, Kode_Pekerjaan, Kode_Kabupaten Kode_Kabupaten, Nama_Kabupaten, Kode_Propinsi Kode_Propinsi, Nama_Propinsi Kode_Agama, Nama_Agama Kode_Pekerjaan, Nama_Pekerjaan
Attribute: 1. Simple attribute: jika berisi sebuah komponen nilai/elementer Contoh: ⇒ Kode_Angkatan : 2002 (angkatan tahun 2002) ⇒ Kode_Program_Studi : 01(prodi Teknik Informatika) ⇒ Kode_Jenjang_Studi : 08 (jenjang studi sarjana) ⇒ Kode_Jurusan : 01 (jurusan Teknik Informatika) ⇒ Nomor : 1000 (nomor 2002) 2. Composite attribute: jika berisi lebih dari sebuah komponen nilai Contoh: ⇒ Nama_Mahasiswa : Mawar Menur Melati ⇒ Tanggal_Lahir : 01-01-1980 ⇒ Alamat_Lokal : Jl. Mawar 100, Yogyakarta, 5000
3 3. Kerelasian Antar Entitas (Relationship) ⇒ mendefinisikan hubungan antar dua buah entitas ⇒ adalah kejadian atau transaksi yang terjadi di antara dua buah entitas yang keterangannya perlu disimpan dalam basis data ⇒ Aturan penggambaran ⇒ Simbol Jenis Kerelasian Antar Entitas (Relationship) 1. one to one 2. many to one atau one to many 3. many to many Kerelasian antar entitas: ⇒ Tidak dibatasi waktu ⇒ Tidak dibatasi geografis ⇒ Tergantung bussines rule, contoh Instan Kerelasian Berganda ⇒ Jika terjadi dua kerelasian sekaligus di antara dua entitas ⇒ Contoh: Anggota meminjam Buku, Anggota mengembalikan Buku Kerelasian Rekursif ⇒ Jika sebuah entitas mempunyai kerelasian dengan entitas dirinya sendiri ⇒ Contoh: Mata_Kuliah mensyaratkan mata kuliah Kerelasian Asosiatif ⇒ Jika kerelasian di antara dua buah entitas mengandung beberapa informasi ⇒ Contoh: Pelanggan membeli Barang pada masa diskon akan diberikan diskon khusus Kerelasian Pelanggan membeli Barang mengandung informasi lain, yaitu Tanggal_Beli dan Diskon yang kemudian diberi nama Pembeli. Menggambar ER_D 1. Identifikasikan setiap entitas yang terlibat 2. Identifikasikan setiap atribut pada setiap entitas 3. Identifikasikan setiap kerelasian berikut jenisnya yang terjadi di antara entitas 4. Gambarkan simbol entitas, atribut, dan kerelasian antar entitas sedemikian sehingga dapat digambarkan dengan jelas / tidak saling bertabrakan 5. Cek ER_D yang terbentuk, dalam hal: a. Kelengkapan entitas b. Kelengkapan atribut c. Kelengkapan kerelasian antar entitas d. Jenis kerelasian antar entitas Jika kompleks, maka: 1. Cara 1: o Gambarkan ER_D yang hanya memuat entitas dan kerelasian antar entitas saja. o Rincian atribut ditampilkan secara terpisah, secara naratif atau tabel 2. Cara 2: o Gambarkan ER_D secara terpisah-pisah bagian demi bagian 3. Cara 3: o Gabungkan cara 1 dan cara 2 sekaligus Keuntungan ER_D: 1. Memudahkan perancang dalam menganalisis sistem 2. Memudahkan perancang saat merancang basis data 3. Rancangan basis data yang didasarkan pada ER_D umumnya telah optimal 4. Penggunaan simbol grafis lebih mudah dipahami pemakai Kelemahan ER_D: 1. Kebutuhan media yang sangat luas 2. Seringkali ER_D tampil sangat ruwet
4 1.2.
CONTOH ER_M
Contoh ER_D Entitas yang berhubungan Entitas 1 Entitas 2 Mahasiswa Mata_Kuliah
Nama Kerelasian mengikuti
Jenis Kerelasian n-ke-n
Mahasiswa mengikuti Mata_Kuliah
Nilai
memperoleh
1-ke-1
Dosen
Mata_Kuliah
mengajar
1-ke-n
Dosen mengajar Mata_Kuliah Mahasiswa
Ruang
menggunakan
1-ke-n
Angkatan
mempunyai
n-ke-1
Mahasiswa
Program_Studi
memilih
n-ke-1
Mahasiswa
Jenjang_Studi
memilih
n-ke-1
Mahasiswa
Agama
menganut
Mahasiswa
Dosen_Wali
mempunyai
n-ke-1
Mahasiswa
Wali_Mahasiswa
mempunyai
1-ke-1
Jurusan
Program_Studi
membawahi
1-ke-n
Fakultas
Jurusan
membawahi
1-ke-n
Dosen
Golongan
mempunyai
n-ke-1
Dosen
Agama
menganut
n-ke-1
Wali
Pekerjaan
mempunyai
n-ke-1
Wali
Kabupaten
menempati
n-ke-1
Kabupaten
Propinsi
menempati
n-ke-1
Representasi File KRS: Kode_Angkatan, Kode_Jenjang_Studi, Kode_Program_Studi, Nomor, Kode_Mata_Kuliah, Tahun_Semester File KHS: Kode_Angkatan, Kode_Jenjang_Studi, Kode_Program_Studi, Nomor, Kode_Mata_Kuliah, Tahun_Semester, Nilai File Dosen_Mengajar: NIK, Kode_Mata_Kuliah, Tahun_Semester, Status File Jadwal: Kode_Mata_Kuliah, Kode_Ruang, Tahun_semester, Kode_Waktu Penghubung: Kode_Angkatan dalam entitas Mahasiswa Penghubung: Kode_Program_Studi dalam entitas Mahasiswa Penghubung: Kode_Jenjang_Studi dalam entitas Mahasiswa Penghubung: Kode_Agama dalam entitas Mahasiswa File Dosen_wali: Kode_Angkatan, Kode_Jenjang_Studi, Kode_Program_Studi, Nomor, NIK File Wali_Mahassiwa: Kode_Angkatan, Kode_Jenjang_Studi, Kode_Program_Studi, Nomor, Nama_Wali, Alamat_Asal, Kode_Pekerjaan, Kode_Kabupaten Penghubung: Kode_Jurusan dalam entitas Program_Studi Penghubung: Kode_Fakultas dalam entitas Jurusan Penghubung: Kode_Golongan dalam entitas Dosen Penghubung: Kode_Agama dalam entitas Dosen Penghubung: Kode_Pekerjaan dalam entitas Wali_Mahasiswa Penghubung: Kode_Kabupaten dalam entitas Wali_Mahasiswa Penghubung: Kode_Propinsi dalam entitas Kabupaten
5 Ruang
Angkatan
Mempunyai
Program Studi
Mempunyai
Jenjang Studi
Mempunyai
Membawahi
Menggunakan
Waktu
Menempati
Mahasiswa
Mengikuti
Mata_Kuliah
Mengajar
Menganut Menganut
Mempunyai
Mempunyai
Agama
Menempati
Menempati
Jurusan
Wali_Mahasiswa
Membawahi
Mempunyai
Kabupaten
Fakultas
Pekerjaan
Menempati
Langkah selanjutnya: o Konversi ER_M ke LRS o Pengujian Normalisasi o Perancangan Detail spesifikasi struktur relasi
Dosen
Golongan
Propinsi
Memperoleh
Nilai
1
BAB III PERANCANGAN BASIS DATA DGN TEKNIK NORMALISASI 1.1.
RDBM
Terminologi
Istilah formal
Istilah non formal Elemen data (data element), rinci data (data item), entri (entry) Atribut (attribute) Kolom, medan data, medan, field Record / tuple Baris / rekaman Relasi (relation) Tabel Derajat (degree) Aritas (arity) Kardinalitas (cardinality) Kerelasian (relationship) Unary relation Binary relation Ternary relation n-ary relation Key Candidate Key / CK Primary Key / PK Alternate Key / AK Foreign Key / FK
Kunci tamu / kunci asing
Domain Schema Subschema
Contoh Relasi: Relasi Mata_Kuliah Kode_Mata_Kuliah MK-1001 MK-2002 MK-3003
Keterangan Nilai data pada suatu baris-kolom tertentu pada suatu saat tertentu Nama yang diberikan untuk sekelompok rinci data yang mempunyai tipe, ukuran, dan domain yang sama. Sekumpulan atribut yang mempunyai hubungan terhadap obyek tertentu Sekumpulan record yang sejenis secara relasi Jumlah atribut dalam sebuah relasi Jumlah record dalam sebuah relasi Hubungan antar relasi Relasi yang tersusun oleh satu atribut Relasi yang tersusun oleh dua atribut Relasi yang tersusun oleh tiga atribut Relasi yang tersusun oleh n atribut Satu atau gabungan atribut bersifat unik yang digunakan untuk mengidentifikasi setiap record dalam relasi Satu atau gabungan minimal atribut bersifat unik yang dapat digunakan untuk mengidentifikasi setiap record dalam relasi Bagian dari CK yang dipilih sbg kunci utama dalam relasi Bagian dari CK yang tidak dipilih sebagai kunci utama dalam relasi Satu atau gabungan sembarang atribut yang menjadi PK dalam relasi lain yang mempunyai hubungan secara logik Himpunan nilai yang memenuhi syarat Deskripsi hubungan logik secara global, termasuk di dalamnya nama dan deskripsi tipe dan ukuran atribut dan hubungan logik antar relasi basis data dlm lingkup sistem Deskripsi hubungan logik secara terpisah, termasuk di dalamnya nama dan deskripsi tipe dan ukuran atribut dan hubungan logik antar relasi basis data dlm lingkup sub sistem aplikasi tertentu
Nama_Mata_Kuliah Pemrograman I Pemrograman II Pemrograman III
Sks 2 2 2
Smt 1 2 3
Status W W W
2
Relasi : Mata_Kuliah Derajat : 5 (=5-ary) Atribut : Kode_Mata_Kuliah, Nama_Mata_Kuliah, Sks, Smt, Status Record #1 : MK-1001, Pemrograman I, 2, 1, W Record #2 : MK-2002, Pemrograman II, 2, 1, W Record #3 : MK-3003, Pemrograman III, 2, 1, W Kardinalitas :3 Candidate Key/CK : Kode_Mata_Kuliah dan Nama_Mata_Kuliah Primary Key : Kode_Mata_Kuliah Alternate Key : Nama_Mata_Kuliah Foreign Key/FK : Domain : Kode_Mata_Kuliah : MK-1001, MK-2002, MK-3003 Nama_Mata_Kuliah : Pemrograman I, Pemrograman II, Pemrograman III Sks :2 Smt : 1, 2, 3 Status :W Mata_Kuliah_Schema : (Kode_Mata_Kuliah (Char[8], Nama_Mata_Kuliah Char[50], Sks Num[1], Smt Num[1], Status Char[1]), Primary Key Kode_Mata_Kuliah) Karakteristik Relasi Æ Semua entri single value, bukan grup perulangan, atomic value Æ Semua entri pada suatu atribut mempunyai tipe dan ukuran yang sama Æ Masing-masing atribut mempunyai nama yang unik Æ Pada sebuah relasi tidak ada dua record yang identik Kunci Relasi Jenis: Æ Kunci sederhana (simple key) Kunci komposit (composite key) Macam: Æ Kunci kandidat (Candidate Key / CK) Æ Kunci primer (Primary Key / PK Æ Kunci alternatif (Alternate Key / AK) Æ Kunci penghubung / asing (Foreign Key / FK) Aturan (rule) kunci relasi: Æ Integritas kesatuan / integritas entitas (entity integrity) Æ Integritas referensial (referential integrity) Kerelasian antar relasi
Æ 1-ke-1 Æ 1-ke-n / n-ke-1 Æ n-ke-n Anomallies
Æ delete aomally Æ insert anomally Æ update anomally Beberapa Definisi Relasi (Relation) 1. Relasi tak gayut: sebuah relasi yang berasal dari entitas reguler / dominan. Ciri relasi tak gayut adalah tidak memiliki FK di dalamnya 2. Relasi asosiatif: sebuah relasi yang mempunyai jenis kerelasian n-ke-n. Ciri relasi asosistif adalah memiliki lebih dari 1 FK
3
3. Relasi karakteristik: sebuah relasi yang berasal dari entitas dependen / tak gayut / tak bebas. Ciri relasi karakteristik umumnya mempunyai jenis kerelasian n-ke-1 terhadap relasi yang menjadi induknya 4. Subrelasi: sebuah relasi yang berasal dari sub type entity. Saat akhir perancangan, subrelasi biasanya digabungkan dengan super relasi Data Dependency Æ FD : R.X →R.Y Jika setiap nilai X berkaitan dengan sebuah nilai pada Y Æ FFD: R.X →R.Y Jika Y functionally dependency thd X dan Y tidak functionally dependency thd bagian tertentu dari X Æ TDF: R.X →R.Y→R.Z Jika Y functionally dependency thd X dan Z functionally dependency thd Y Æ TD : R.X ↔R.Y Jika Y functionally dependency thd X dan X functionally dependency thd Y
1.2.
Perancangan Database Dengan Teknik Normalisasi
Normalisasi: suatu teknik yang menstrukturkan / memecah / mendekomposisi data dalam cara-cara tertentu untuk mencegah timbulnya permasalahan pengolahan data dalam basis data. Normalisasi menghasilkan relasi yang memiliki: Æ record yang konsisten secara logik Æ record yang mudah dimengerti Æ record yang sederhana dipelihara Æ record yang mudah ditampilkan kembali Æ kerangkapan minimal Level Normal 1. UNF, jika Æ non flat file (data disimpan sesuai kedatangan, tidak memiliki struktur tertentu, terjadi duplikasi atau tidak lengkap) Æ memuat set atribut berulang (repeated group)Æ non single value Æ memuat atribut non atomic value 2. 1NF, jika Æ seluruh atribut bernilai atomik (atomic value) Æ seluruh atribut bernilai tunggal (single value) Æ tidak memuat set atribut berulang Æ semua record mempunyai atribut yang sama Permasalahan dalam 1NF: Æ Tidak dapat menyisipkan informasi parsial Æ Terhapusnya informasi ketika menghapus sebuah record Æ Pembaharuan atribut non kunci mengakibatkan sejumlah record harus diperbaharui Mengubah UNF menjadi 1NF: Æ Melengkapi nilai-nilai dalam atribut Æ Mengubah struktur relasi 3. 2NF, jika: Æ memenuhi kriteria 1 NF Æ semua atribut non kunci FD pada PK Permasalahan 2NF: Æ Kerangkapan data Æ Pembaharuan yang tidak benar menimbulkan data inconsistency Æ Pembaharuan data tidak efisien Æ Penyimpangan penyisipan, penghapusan dan pembaharuan
4
4. 3NF, jika: Æ Jika memenuhi kriteria 2NF Æ Jika setiap atribut non kunci tidak TDF (nontransitive dependeny) terhadap PK Permasalahan dalam 3NF : duplikasi rinci data pada PK 5. BCNF, jika: Æ memenuhi kriteria 3NF Æ semua atribut penentu (determinan) merupakan CK 6. 4NF, jika: Æ memenuhi kriteria BCNF Æ setiap atribut di dalamnya tidak mengalami ketergantungan pada banyak nilai 7. 5NF, jika Æ kerelasian antar data dalam relasi tidak dapat direkonstruksi dari struktur relasi yang lebih sederhana 8. DKNF, jika setiap batasan dapat disimpulkan secara sederhana dengan mengetahui sekumpulan nama atribut dan domainnya Langkah Normalisasi: Contoh 1: Supplier / UNF Kode_Supplier Status S01 10
Kota Jakarta
Kode_Barang B01 B02 B03 S02 20 Surabaya B02 B04 S03 30 Yogyakarta B05 B06 Æ Lengkapi nilai-nilai rinci data dalam relasi
Jumlah_Barang 100 150 200 250 200 150 100
Supplier_1 / 1NF Kode_Supplier Status Kota Kode_Barang Jumlah_Barang S01 10 Jakarta B01 100 S01 10 Jakarta B02 150 S01 10 Jakarta B03 200 S02 20 Surabaya B02 250 S02 20 Surabaya B04 200 S03 30 Yogyakarta B05 150 S03 30 Yogyakarta B06 100 Æ Tentukan kunci relasi, FD, dan TDF Æ Dekomposisi relasi berdasarkan FD (2NF masih memuat TDF) Diagram ketergantungan data dalam Supplier_1: Kode_Supplier
Status
Kode_Barang
Jumlah_Barang
Kota
5
Supplier_2 / 2NF Kode_Supplier Status
Kota
Barang Kode_Supplier Kode_Barang Jumlah_Barang Æ Dekomposisi relasi berdasarkan TDF Logical Record Structure
Barang
Kota
Kode_Supplier * Kode_Barang * Jumlah_Barang
Status * Kota
Supplier_3 Kode_Supplier * Status ** Supplier_3 / 3NF Kode_Supplier Status Kota Status
Kota
Barang Kode_Supplier
Kode_Barang
Jumlah_Barang
Langkah selanjutnya: o Perancangan Detail Spesifikasi Struktur Relasi Contoh 2: KRS / UNF NIM
Nama_Mahasiswa
Kode_MK_1
Sks_1
Tahun_Smt_1
Kode_MK_2
Æ Ubah struktur relasi (dari horizontal menjadi vertikal) KRS_1 / 1NF NIM
Nama_Mahasiswa
Kode_MK
Sks
Tahun_Smt
Æ Tentukan kunci relasi, FD, dan TDF Æ Dekomposisi relasi berdasarkan FD (2NF masih memuat TDF) Diagram ketergantungan data KRS_1: NIM
Nama_Mahasiswa Kode_MK
Tahun_Smt
Sks
Sks_2
Tahun_Smt_2
6
KRS_2 / 2NF NIM Tahun_Smt
Kode_MK
Sks
Mahasiswa NIM Nama_Mahasiswa Æ Dekomposisi berdasarkan TDF Logical Record Structure Mahasiswa
Mata_Kuliah
NIM * Nama_Mahasiswa
Kode_MK * Sks KRS_3 NIM * Tahun_Smt * Kode_MK *
KRS_3 / 3NF NIM Tahun_Smt
Kode_MK
Mata_Kuliah Kode_MK Sks Mahasiswa NIM Nama_Mahasiswa Langkah selanjutnya: o Perancangan Detail Spesifikasi Struktur Relasi Contoh 3: DOSEN_WALI / UNF NIM
Nama_Mahasiswa
Tempat_Tgl_Lahir Tgl_Lahir Tpt_Lhr
Kode_Dosen
Nama_Dosen
Æ Ubah struktur relasi (dari non atomic menjadi atomic) DOSEN_WALI_1 / 1NF NIM
Nama_Mahasiswa
Tempat_Lahir
Tgl_Lahir
Kode_Dosen
Æ Tentukan kunci relasi, FD, dan TDF Æ Dekomposisi relasi berdasarkan FD (2NF masih memuat TDF) Diagram ketergantungan data DOSEN_WALI_1: NIM
Nama_Mahasiswa Tempat_Lahir Tgl_Lahir Kode_Dosen
Nama_Dosen
Nama_Dosen
7
DOSEN_WALI_2 / 2NF NIM Kode_Dosen Nama_Dosen Mahasiswa NIM Nama_Mahasiswa Tempat_Lahir Æ Dekomposisi berdasarkan TDF
Tgl_Lahir
Logical Record Structure Mahasiswa
Dosen Kode_Dosen * Nama_Dosen
NIM * Nama_Mahasiswa Tempat_Lahir Tgl_Lahir KRS_3 NIM * Kode_Dosen* DOSEN_WALI_3 / 3NF NIM Kode_Dosen DOSEN Kode_Dosen
Nama_Dosen
Mahasiswa NIM Nama_Mahasiswa
Tempat_Lahir
Tgl_Lahir
Langkah selanjutnya: o Perancangan Detail spesifikasi struktur relasi Efek Normalisasi Æ munculnya duplikasi rinci data pada FK Æ kemungkinan tidak terpenuhinya integritas referensial Æ inefisiensi menampilkan kembali data Æ Batasan penerapan
1
BAB IV INTEGRASI RANCANGAN BASIS DATA UNTUK SIM
4.1. Pandangan Terhadap Basis Data Pandangan terhadap basis data sering disebut arsitektur basis data atau abstraksi basis data. Suatu basis data dapat dipandang dari dua sudut pandang, yaitu: o Sudut pandang pemakai Pemakai basis data dapat diartikan sebagai orang-orang yang akan mengakses/menggunakan basis data, baik secara bersamaan maupun secara individu dalam lingkup sistem. o Sudut pandang perancang Perancang adalah mereka yang berperan sebagai perancang dan pengelola basis data. Perancang dapat memiliki dua jenis pandangan yang berbeda, yaitu secara konseptual dan secara fisis. Hubungan di antara ketiga pandangan terhadap basis data tersebut dapat digambarkan sebagaimana ditunjukkan oleh Gambar 4.1. User view 1
User view 2
…
User view n
Conceptual view
Physical view Gambar 4.1 : Pandangan terhadap basis data 1. Application Programmer Logical File / User View Application programmer logical file atau user view atau external view, merupakan pandangan para pemakai basis data dimana masing-masing dapat memiliki cara pandang yang berbeda tergantung pada macam data apa saja yang tersedia atau dapat diakses oleh pemakai. Dengan demikian, para pemakai tidak perlu tahu bagaimana sebenarnya datadata mahasiswa tersebut disimpan dalam basis data. Application programmer logical file dapat ditunjukkan menggunakan schema dan subschema. Sedangkan nilai-nilai rinci data/nilai aktual data dalam setiap relasi dapat ditunjukkan menggunakan instance schema. 2. Global Logical Data (Conseptual View) Global logical data atau conseptual view, merupakan pandangan perancang basis data yang berkaitan dengan data-data apa saja yang perlu disimpan dan penjelasan mengenai hubungan antara data yang satu dan yang lainya.
2
Global logical data merupakan level yang lebih rendah daripada level eksternal. Dalam suatu universitas misalnya, dalam level konseptual ini, perancang perlu untuk mengetahui macam data apa saja yang diperlukan oleh setiap pemakai dan program aplikasi pada seluruh sub sistem yang digunakan dalam sistem. Sehingga, perancang perlu menginventarisasi seluruh kebutuhan informasi dan data untuk seluruh pemakai. Selanjutnya perancang harus merancang basis data yang mampu memenuhi seluruh kebutuhan pemakai yang berbeda-beda tersebut dalam bentuk yang optimal. Basis data mahasiswa yang dirancang harus memenuhi kriteria pengolahan data secara basis data (data base processing), sebagaimana arti dan batasan yang tercantum dalam definisi basis data. Global logical data dapat ditunjukkan menggunakan definisi struktur basis data menggunakan bahasa deskripsi data (Data Definition Language / DDL). Contoh: Kebutuhan data-data yang terkait dengan obyek mahasiswa bagi pemakai pada 3 subsistem yang berbeda adalah sebagai berikut: Subsistem akademik: Relasi Mahasiswa: |NIM|Nama_Mahasiswa|Alamat|Tempat_Lahir|Tanggal_Lahir|Agama| Subsistem perpustakaan: Relasi Anggota: No_Anggota|Nama_Aggota|Alamat|Tgl_Masuk_Anggota| Subsistem keuangan: Relasi Pembayaran: |NIM|Nama_Mahasiswa|Tanggal_Bayar|Jumlah_Bayar|Jenis_Beaya| 3. Physical View Physical view atau internal level, merupakan implementasi conceptual view, yaitu pandangan perancang yang berkaitan dengan teknik penyimpanan basis data dalam data storage yang digunakan. Pandangan ini berorientasi pada mesin (machine oriented), yaitu berkaitan dengan organisasi berkas basis data, yang meliputi: o metoda pengalamatan dalam media penyimpan sekunder (addressing) o metoda akses data (access method) Data-data dalam struktur data pada subsistem akademik di atas, selanjutnya akan diimplementasikan ke dalam data storage berupa magnetic tape yang memiliki 9 track. Contoh nilai rinci data: NIM Nama Alamat asal Alamat lokal
: 1998111000 : Agus Junior : Jalan Mawar 1 Semarang : Jalan Menur 10 Yogyakarta
3
Kode pos asal : 55555 Tempat lahir : Semarang Tanggal lahir : 01-01-1980 Sekolah asal : SMA Negeri 1 Semarang Tahun lulus di SLTA : 1998 Agama : Islam (dikodekan sebagai I) Status : Menikah (dikodekan sebagai M) Nama orang tua / wali : Agus Senior Pekerjaan orang tua / wali: PNS Jika data disimpan tanpa metode blocking, dengan menggunakan even parity check, maka dapat digambarkan seperti ditunjukkan oleh Gambar 4.2.
Data
Track ke:
0 1 2 3 4 5 6 7 (parity bit) 8
1 0 0 0 0 0 0 0 1 1
9 0 0 0 1 0 0 0 1 0
9 0 0 0 1 0 0 0 1 0
8 0 0 0 1 0 0 0 0 1
Rec #1 1 0 0 0 0 0 0 0 1 1
ARAH PUTARAN HEAD Æ IRG … ... P N S … ... 1 0 0 … ... 0 1 1 … ... 1 0 0 … ... 0 0 1 … ... 0 1 0 … ... 0 1 0 … ... 0 1 1 … ... 0 0 1 … ... 0 0 0 …
IRG
Rec #N … … … … … … … … … …
IRG
Gambar 4.2:Contoh penyimpanan record mahasiswa dalam magnetic tape 4.1. Independensi Data (Data Independency) Untuk menjamin agar pemisahan setiap lapisan tetap terjaga, maka OS perlu menyembunyikan kompleksitas struktur rinci lapisan lebih rendah dari lapisan di atasnya. Hal ini dapat dilakukan jika fungsi-fungsi pada lapisan di bawahnya cukup handal dan efisien. Ketidakbergantungan dari deskripsi dan organisasi antar lapisan disebut ketidakbergantungan data atau kebebasan data atau independensi data (data independence). Independensi data (data Independence) adalah ketidaktergantungan/kebebasan data dalam basis data, yang mempunyai 2 dimensi yaitu: o Independensi data secara fisik (physical data independence) o Independensi data secara logik (logical data independence) Independensi data secara fisik, dimaksudkan bahwa teknik dan cara-cara penyimpanan dan pengaksesan data dalam fisik media penyimpan dapat mengalami perubahan tanpa harus mengubah deskripsi logik basis data (Global logical data/conseptual l view) yang digunakan dalam schema basis data. Independensi data secara logik, dimaksdukan bahwa kebutuhan-kebutuhan data para pemakai dapat mengalami perubahan tanpa harus mengubah pandangan
4
logik pemakai terhadap basis data atau deskripsi logik basis data (Global logical data/conseptua l view) yang digunakan dalam schema basis data. Independensi data akan memberikan jaminan fleksibilitas basis data, yaitu: 1. Media dan metode akses data dari fisik media penyimpan basis data dapat mengalami perubahan tanpa harus mengubah conceptual view 2. Kebutuhan data-data oleh para pemakai basis data dapat mengalami perubahan tanpa harus mengubah conceptual view 3. Pemakai tidak perlu tahu kerumitan/kompleksitas perancangan dan teknis penyimpanan basis data dalam data storage 4.2. Integrasi Perancangan Basis Data Pada saat perancangan basis data, perancang harus memposisikan dirinya pada conceptual view. Level ini merupakan gabungan dari beberapa user view. Hal ini berarti bahwa perancangan basis data hanya bisa dilakukan setelah mengetahui seluruh kebutuhan para pemakai di dalam sistem. Untuk hal ini, maka perancangan basis data dapat dilakukan dengan mengikuti langkah sebagai berikut: 1. Langkah analisis kebutuhan, meliputi; a. Analisis kebutuhan batasan/ruang lingkup sistem b. Analisis kebutuhan model bisnis c. Analisis keterkaitan antar unit fungsional dalam sistem d. Analisis kebutuhan data dan informasi dalam sistem e. Analisis kemungkinan perubahan situasi/kondisi/kebijakan yang terkait dengan kebutuhan data dan informasi dalam sistem 2. Langkah perancangan, meliputi; a. Perancangan tahap awal, meliputi: 1). Pengelompokan data berdasarkan entitas/obyek data 2). Standarisasi nama-nama atribut 3). Standarisasi penggunaan kode data pada atribut 4). Perancangan struktur relasi database awal 5). Normalisasi struktur relasi database awal 6). Penentuan PK, FK dan kerelasian antar struktur relasi hasil normalisasi b. Perancangan tahap lanjutan, meliputi: 1). Standarisasi data, yaitu: a). Standarisasi nama-nama atribut b). Standarisasi atribut dan penggunaan kode data yang digunakan antar unit fungsional dalam sistem 2). Pengkodean nilai-nilai data yang digunakan secara berulang pada record, yaitu: a). Untuk nilai-nilai data yang mutlak tidak akan mengalami perubahan di kemudian hari, maka nilai-nilai data perlu dikodekan. Hal ini bertujuan untuk efisiensi penggunaan memori dan menjaga konsistensi data. Misal: o Data Jenis_Kelamin disimpan sebagai L (untuk mengkodekan nilai data jenis kelamin Laki-laki) dan P (untuk mengkodekan nilai data jenis kelamin Perempuan)
5
Data Status_Menikah disimpan sebagai M (untuk mengkodekan nilai data status Menikah) dan B (untuk mengkodekan nilai data status Belum Menikah) o Data Status_Aktif disimpan sebagai A (untuk mengkodekan nilai data status Aktif) dan T (untuk mengkodekan nilai data status Tidak Aktif) b). Untuk nilai-nilai data yang memiliki kemungkinan mengalami perubahan di kemudian hari, maka nilai-nilai data perlu dikodekan dan kemudian dirancang relasi referensi. Hal ini bertujuan untuk: o Efisiensi penggunaan memori o Menjaga konsistensi data o Minimalisasi kerangkapan data o Kemudahan pemeliharaan data Misal: o Data Agama dapat disimpan ke dalam kode-kode data agama, yaitu: o I (untuk menyatakan agama Islam) o K (untuk menyatakan agama Kristen-Katholik) o P (untuk menyatakan agama Kristen-Protestan) o H (untuk menyatakan agama Hindu) o B (untuk menyatakan agama Budha) o Kemudian dirancang sebuah relasi referensi, yaitu relasi AGAMA o Data Kelompok_Mata_Kuliah dapat disimpan ke dalam kode-kode kelompok mata kuliah, yaitu: o W (untuk menyatakan kelompok mata kuliah Wajib) o M (untuk menyatakan kelompok mata kuliah Wajib Minat) o P (untuk menyatakan kelompok mata kuliah Pilihan). o Kemudian dirancang sebuah relasi referensi, yaitu relasi KELOMPOK_MATA_KULIAH. o Data Alamat dapat disimpan ke dalam kode-kode data alamat sehingga menjadi sebagai berikut: o Alamat (untuk menyimpan nilai data nama jalan dan nomor rumah atau nama dusun dan desa) o Kode_Kecamatan (untuk mengkodekan nilai data Kecamatan) o Kode_Kabupaten (untuk mengkodekan nilai data Kabupaten) o Kode_Propinsi (untuk mengkodekan nilai data Propinsi) o Kemudian dirancang 3 (tiga) buah relasi referensi, yaitu relasi KECAMATAN, KABUPATEN, dan PROPINSI. c). Untuk kode data berupa kode blok, maka nilai-nilai kode data dalam kode blok perlu dipisahkan, dan kemudian dirancang relasi referensi. Hal ini bertujuan untuk kemudahan pemeliharaan apabila terjadi perubahan pada: o Format kode o Urutan kode o
6
o Perubahan lainnya pada kode blok Misal: o Data NIM mahasiswa yang memiliki 4 (empat) komponen dengan format Angkatan-Jenjang-Prodi-NomorUrut, disimpan ke dalam 4 (empat) buah atribut, yaitu: o Angkatan o Jenjang o Prodi o NomorUrut o Kemudian dirancang 3 buah relasi referensi, yaitu ANGKATAN, JENJANG, dan PRODI o Data NIK dosen yang memiliki 4 komponen dengan format NomorUrut-BulanTahunLahir-KelompokDosen, disimpan ke dalam 2 (dua) buah atribut, yaitu: o NomorUrut o KelompokDosen o Sedangkan komponen BulanTahunLahir dapat diperoleh dari atribut Tanggal_Lahir_Dosen o Kemudian dirancang 1 (satu) buah relasi referensi, yaitu KELOMPOK_DOSEN. 3). Perancangan keamanan data, yaitu: a). Keamanan data dari kemungkinan terjadinya kehilangan, kerusakan, kegagalan, atau permasalahan lainnya pada fisik memori, serta mekanisme backup dan restore data secara tersistem maupun manual. b). Keamanan data dari kemungkinan akses secara illegal, pembatasan kewenangan akses, dan permasalahan lainnya pada akses data. 3. Langkah pengujian, meliputi: a. Pengujian kelengkapan data dalam rancangan struktur relasi database. Pengujian dilakukan dengan cara mengecek kembali semua formulir isian data, dan semua keluaran/laporan maupun informasi yang harus ditampilkan di monitor yang digunakan/diperlukan oleh semua pemakai, dalam semua level manajemen, dalam semua unit fungsional dalam sistem b. Pengujian kerangkapan data dalam rancangan struktur relasi database. Pengujian dilakukan dengan cara mengecek kembali semua rancangan struktur relasi database menggunakan semua kemungkinan nilai data c. Pengujian kemungkinan terjadinya inkonsistensi data dalam rancangan struktur relasi database. Pengujian dilakukan dengan cara mengecek kembali semua rancangan struktur relasi database menggunakan semua kemungkinan nilai data d. Pengujian untuk penggunaan bersama oleh para pemakai/aplikasi dalam unit fungsional lain dalam sistem. Pengujian dilakukan dengan cara mengecek kembali semua rancangan struktur relasi database dari semua sudut pandang unit fungsional dalam sistem e. Pengujian fleksibilitas rancangan struktur relasi database untuk perubahan nilai-nilai data di kemudian hari. Pengujian dilakukan dengan cara mengecek kembali semua rancangan struktur relasi database berdasarkan kemungkinan terjadinya perubahan nilai-nilai
7
data dan kemudahan perubahan rancangan struktur relasi database sesuai perubahan tersebut f. Pengujian fleksibilitas rancangan struktur relasi database untuk kebutuhan-kebutuhan pemakai/aplikasi baru. Pengujian dilakukan dengan cara mengecek kembali semua rancangan struktur relasi database berdasarkan kemungkinan terjadinya penambahan kebutuhan baru dan kemudahan perubahan rancangan struktur relasi database sesuai perubahan tersebut 4. Langkah implementasi, meliputi: a. Pemilihan DBMS yang sesuai dengan kebutuhan dan kemampuan institusi, dengan mempertimbangkan kemudahan untuk melakukan perubahan, pengembangan, dan migrasi data di masa mendatang; b. Pendefinisian rancangan struktur relasi database c. Pengisian data dalam rancangan struktur relasi database, dapat menggunakan program aplikasi, query, atau fasilitas lain yang tersedia dalam DBMS d. Penggunaan database, dapat menggunakan program aplikasi, query, atau fasilitas lain yang tersedia dalam DBMS e. Dokumentasi rancangan struktur relasi database f. Pemeliharaan database Contoh: Kebutuhan data-data yang terkait dengan obyek mahasiswa bagi pemakai pada subsistem Akademik, Perpustakaan, dan Keuangan dalam contoh di atas: Subsistem akademik: Relasi Mahasiswa: |NIM|Nama_Mahasiswa|Alamat|Tempat_Lahir|Tanggal_Lahir|Agama| Subsistem perpustakaan: Relasi Anggota: No_Anggota|Nama_Aggota|Alamat|Tgl_Masuk_Anggota| Subsistem keuangan: Relasi Pembayaran: |NIM|Nama_Mahasiswa|Tanggal_Bayar|Jumlah_Bayar|Jenis_Beaya| Jika diintegrasikan, maka ketiga relasi tersebut akan menjadi sebagai berikut: Relasi Mahasiswa: |NIM|Nama_Mahasiswa|Alamat|Tempat_Lahir|Tanggal_Lahir|Agama| Relasi Anggota: No_Anggota|NIM|Tgl_Masuk_Anggota| Relasi Pembayaran: |NIM|Tanggal_Bayar|Jumlah_Bayar|Jenis_Beaya|
8
Penting: Agar rancangan memenuhi batasan-batasan dalam definisi basis data, maka basis data harus dirancang dalam sebuah lingkup sistem (bukan hanya pada suatu subsistem tertentu). Dengan demikian, dalam sebuah organisasi, maka lingkup sistem mencakup: o Seluruh subsistem dalam organisasi o Seluruh pemakai dalam organisasi o Seluruh level manajemen dalam organisasi yang o Terintegrasi o CBIS Contoh: Basis data untuk Sistem Informasi di Perguruan Tinggi (SIPT) dapat terdiri atas sub sistem-sub sistem berikut: o Sub Sistem Informasi Akademik (SIAKAD) o Sub Sistem Informasi Perpustakaan (SIPERPUSTAKAAN) o Sub Sistem Informasi Keuangan (SIKEUANGAN) o Sub Sistem Informasi Kepegawaian (SIPEGAWAI) o Sub Sistem Informasi Penggajian (SIGAJI) o Sub Sistem Informasi Inventaris (SIINVENTARIS) o Sub Sistem Informasi Kemahasiswaan (SIKEMAHASISWAAN) o Sub Sistem Informasi Kerjasama dan Humas (SIKEHUMAS) o Sub Sistem Informasi Penelitian (SIPENELITIAN) o Sub Sistem Informasi Pengabdian Kepada Masyarakat (SIPENGABDIAN) o Lainnya sesuai kebutuhan institusi Khusus untuk SIAKAD, dapat terdiri atas serangkaian proses kegiatan yang merupakan sub sistem dari SIAKAD, meliputi: o Penerimaan Mahasiswa Baru (SIPENMARU) o Herregisterasi (SIHEREGISTERASI) o Perwalian mahasiswa (SIWALI) o Pra-KRS, KRS, dan perubahan KRS (SIKRS) o Perkuliahan (SIKULIAH) o Praktikum (SIPRAKTIKUM) o KP (SIKP) o KKN (SIKKN) o Tugas Akhir (SITA) o Yudisium (SIYUDISIUM) o Wisuda (SIWISUDA) o Alumni (SIALUMNI) Sehingga, saat merancang struktur relasi MAHASISWA misalnya, maka rancangan struktur relasi MAHASISWA tersebut harus dapat digunakan oleh semua pemakai, dalam semua level, dalam semua sub sistem dalam SIPT tersebut, serta dirancang agar fleksibel terhadap berbagai kemungkinan perubahan kebutuhan yang dapat terjadi di masa mendatang.
9
4.3. Schema, Subschema, dan Instance Schema Schema dan subschema digunakan oleh perancang basis data pada conceptual view. Schema dan subschema menjadi acuan pada saat perancangan struktur relasi. Suatu schema digunakan pada lingkup sistem (basis data), sedangkan subschema digunakan pada lingkup aplikasi tertentu. Jadi sebuah schema merupakan gabungan beberapa subschema. Notasi schema atau subschema dapat dituliskan dengan format sebagai berikut: namarelasi_schema : (namaatribut1 tipe[ukuran]1, namaatribut2 tipe[ukuran]2, ...., namaatributn tipe[ukuran]n, foreign key (namaatributfk) references namarelasiinduk, primary key (namaatributpk)) Keterangan: namarelasi : menyatakan nama relasi schema : menyatakan schema (bisa juga subschema) namaatribut1, .. n : menyatakan nama-nama atribut dalam relasi yang dituliskan secara berurutan dari kiri ke kanan tipe[ukuran]1, ..n : menyatakan batasan domain pada setiap atribut yang dituliskan secara berurutan dari kiri ke kanan sesuai urutan nama atribut dalam relasi foreign key : menyatakan foreign key namaatributFK : menyatakan nama atribut yang digunakan sebagai FK untuk menghubungkan dengan relasi induknya references : menyatakan mereferensi ke namarelasiinduk: menyatakan nama relasi induk yang direferensi primary Key : menyatakan primary key namaatributPK : menyatakan nama atribut yang digunakan sebagai PK dalam relasi Untuk menjaga integritas data (baik secara kesatuan maupun referensial), maka batasan-batasan nilai elemen data pada atribut, FK, maupun PK dapat diberikan/dituliskan dalam notasi schema/subschema. Batasan tersebut dapat berupa: o nilai dasar (default value) o batasan nilai (range) o batasan tidak boleh kosong (not null) Secara konsep, selain sifat unik pada atribut yang dipilih sebagai PK, terdapat 2 macam constraint yang terkait dengan pemilihan kunci relasi, yaitu: o Entity integrity o Referential integrity Entity integrity mensyaratkan bahwa nilai-nilai elemen data/entri pada PK tidak boleh null. Batasan ini dapat diset secara langsung menggunakan DBMS, sehingga seringkali batasan not null pada atribut PK tidak perlu dituliskan dalam schema (atau subschema). Beberapa nilai elemen data/entri pada atribut dalam relasi seringkali juga tidak boleh null. Batasan not null pada atribut tidak harus selalu dituliskan dalam schema (atau subschema).
10
Referential integrity mensyaratkan bahwa nilai-nilai elemen data/entri pada PK PK yang diacu oleh FK tidak boleh null. Tidak semua DBMS memberikan fasilitas untuk mendefinisikan batasan ini. Dengan demikian, maka batasan not null pada atribut harus dituliskan dalam schema (atau subschema). Contoh: Mata_Kuliah_Schema: (Kode_Mata_Kuliah Char[8], Nama_Mata_Kuliah Char[50], SKS Num[1], Semester Num[1], Status Char[1], Primary Key (Kode_Mata_Kuliah)) Mahasiswa_Schema: (NIM[8], Nama Char[50], Alamat Char[50], Primary Key (NIM)) KRS_Schema : (NIM[8], Kode_Mata_Kuliah Char[8], Tahun_Semester Char[5], Foreign Key (NIM) references Mahasiswa not null, foreign Key(Kode_Mata_Kuliah) references Mata_Kuliah not null, Primary Key (NIM, Kode_Mata_Kuliah, Tahun_Semester)) KHS_Schema : (NIM[8], Kode_Mata_Kuliah Char[8], Tahun_Semester Char[5], Nilai Char[1], Foreign Key(NIM, Kode_Mata_Kuliah, Tahun_Semester) references KRS not null, Primary Key (NIM, Kode_Mata_Kuliah, Tahun_Semester)) Instance schema menunjukkan nilai aktual elemen data/entri dalam setiap relasi. Instance schema diperlukan untuk menunjukkan nilai data sesungguhnya yang ada di dalam schema (atau subschema). Contoh: Relasi Mahasiswa NIM Nama_Mahasiswa 02050001 Rita 02050002 Rina 02050003 Rini
Alamat Jl. Mawar no. 1 Yogyakarta Jl. Melati no. 2 Yogyakarta Jl. Menur no. 3 Yogyakarta
Relasi KRS NIM 02050001 02050001 02050002 02050002 02050003 02050003
Kode_Mata_Kuliah MK-11001 MK-12002 MK-11001 MK-13003 MK-11001 MK-12002
Tahun_Semester 200220031 200220032 200320041 200320041 200220031 200220032
Relasi KHS NIM 02050001 02050001 02050002 02050002 02050003 02050003
Kode_Mata_Kuliah MK-11001 MK-12002 MK-11001 MK-13003 MK-11001 MK-12002
Tahun_Semester 200220031 200220032 200320041 200320041 200220031 200220032
Nilai A B B B A C
1
BAB V OPTIMALISASI RANCANGAN BASIS DATA
Rancangan basis data yang optimal adalah jika memenuhi kriteria 3NF. o o o o o
record konsisten secara logik record mudah dimengerti record sederhana dipelihara record mudah ditampilkan kembali kerangkapan minimal
Namun demikian, dalam banyak kasus perancangan basis data, seringkali masih dapat dilakukan langkah lanjutan untuk meningkatkan efisiensi penggunaan data storage, yaitu dengan menggunakan kode-kode untuk nilai-nilai rinci data tertentu. 5.1. Penggunaan Kode Dalam Basis Data o Salah satu bagian upaya optimalisasi basis data o U/ mencirikan data atau memudahkan pengolahan o Meningkatkan efisiensi memori o Menjaga fleksibilitas data terhadap perubahan o Perlu dirancang sekaligus pada saat perancangan struktur relasi o Perlu dokumentasi yang jelas o Memerlukan validasi & pengendalian integritas (utamanya: insert, delete, & update) o Validasi & pengendalian perlu dilakukan secara tersistem o Hanya digunakan dalam basis data, sedangkan pada tampilan monitor, kertas, & cetakan lainnya tetap menampilkan nilai sesungguhnya (kecuali u/ kode yang lazim digunakan) o Tidak perlu diketahui pemakai akhir (end user) Kode Yang Baik 1. Urut o Sekalipun tdk harus, kode urut akan lebih baik o Kode urut: No_Induk_Mhs, No_Anggota, No_Nota o Kode tidak urut: Kode_Agama, Kode_Wil, Kode_Inv 2. Singkat/pendek o Kode yang singkat akan lebih baik, maks 10 character 3. Dapat di-generate oleh sistem o Kode dapat disusun/dikonstruksikan/di-generate secara otomatis oleh sistem/program aplikasi o Pemakai tidak harus mengetikkan kode saat entry data o Hal ini akan meminimalkan terjadinya kesalahan input akibat human error Jenis Pengkodean Data 1. Kode eksternal (user defined code) o Adalah kode yang disusun oleh pemakai awam (end user) o Mewakili kode-kode yang telah lazim digunakan secara terbuka & telah dikenal baik oleh para pemakai
2
o o o
Umumnya telah digunakan dalam catatan manual sehari-hari Umumnya dapat diadobsi secaraa langsung dalam struktur relasi Contoh: NIM, NIK, NIK, Kode_Mata_Kuliah, Kode_Barang, Kode_Ruang, Kode_Buku, Golongan, Jenis_Kelamin
2. Kode internal (systems code) o Mewakili kode-kode baru kode yang disusun oleh perancang basis data o Diusahakan agar cukup mudah dipahami pemakai o Kode internal tidak hanya dirancang pada atribut kunci o Contoh: Kode_Kabupaten, Kode_Propinsi, Kode_Ekstrakurikuler, Kode_Pekerjaan, Kode_Sopir o Kode internal akan memerlukan relasi master untuk menyimpan arti kode yang digunakan (kecuali yang bersifat pasti) o Contoh: Penggunaan Kode_KabupatenÆ memerlukan relasi Kabupaten yang memuat arti Kode_Kabupaten Bentuk Kode Data 1. Kode Sekuensial o Adala kode yang mengasosiasikan kode urut o Biasanya berupa angka atau character o Contoh: Nilai : A, B, C, D, E, F Kabupaten : 001, 002, 003, 004, 005 Propinsi : 01, 02, 03, 04, 05 2. Kode Mnemonic o Adalah kode yang dibentuk menggunakan singkatan, character pertama, character tertentu dalam data yang dikodekan o Tersusun atas 1 atau lebih character o Contoh: Agama : I, K, P, H, B Jen_Kel : L, P atau P, W Status : M, B Presensi : A, I, S 3. Kode Blok ⇒ Adalah kode yang disusun membentuk blok kode dengan menggunakan format tertentu ⇒ Umumnya tersusun atas gabungan angka & character ⇒ Contoh: NIM : TI-2002-I-1000 NIK : 1996-0372-100-E Kode_Barang : A-01-01-1000 Penting: Nilai-nilai rinci data pada atribut perlu dikodekan jika: o Nilai-nilai rinci data yang sama digunakan scr berulang o Nilai-nilai rinci data memiliki potensi untuk berubah
3
5.2. Standarisasi Data Dalam Basis Data Rancangan basis data dalam sebuah sistem memerlukan adanya standarisasi data agar dapat diintegrasikan antar kebutuhan para pemakai yang berbeda-beda. Umumnya standarisasi data diperlukan pada nilai-nilai data yang digunakan sebagai PK. Berikut contoh kasus tidak adanya standarisasi data dalam basis data. o Data Program Studi o Dalam NIM Mahasiwa ISTA, data Program Studi dikodekan sebagai berikut: 01 untuk Prodi Teknik Kimia 02 untuk Prodi Teknik Industri 03 untuk Prodi Teknik Mesin 04 untuk Prodi Teknik Elektro 05 untuk Prodi Teknik Informatika dst o Dalam Kode_Matakuliah ISTA, data Program Studi dikodekan sebagai berikut: … untuk Mata kuliah Teknik Kimia … untuk Mata kuliah Teknik Industri … untuk Mata kuliah Teknik Mesin … untuk Mata kuliah Teknik Elektro TFS untuk Mata kuliah Teknik Informatika dst o Data Jenjang Pendidikan o Dalam NIM Mahasiwa ISTA, data Jenjang Pendidikan dikodekan sebagai berikut: 0 untuk Jenjang Pendidikan Sarjana 3 untuk Jenjang Pendidikan Diploma 3 dst o Dalam Data Pegawai ISTA, data Jenjang Pendidikan dikodekan sebagai berikut: S3 untuk Jenjang Pendidikan Doktor S2 untuk Jenjang Pendidikan Master S1 untuk Jenjang Pendidikan Sarjana D3 untuk Jenjang Pendidikan Diploma 3 SLTA untuk Jenjang Pendidikan SLTA SLTP untuk Jenjang Pendidikan SLTP SD untuk Jenjang Pendidikan SD o Data Nama o Dalam Data Pegawai ISTA, data nama dosen disimpan tanpa ada standarisasi format, misal: Drs. ABC ABC, Drs. o Data Alamat o Dalam Data Alamat Mahasiwa ISTA, data alamat disimpan tanpa ada standarisasi format, misal: Jalan Mawar 100, Sleman, DIY Jl. Mawar no. 100, Sleman,DIY Jalan Mawar nomor 100, Kabupaten Sleman, Propinsi DIY
1
BAB VI BUG SYSTEM 6.1. Redudansi Redudansi data merupakan kerangkapan data yang terjadi dalam basis data (kumpulan data/file) dan bukan pada tabel. Contoh : Tabel 1 (mhs.dbf) tersusun atas field : • No_Mhs • Nama • Alamat • Jenis_Kelamin • Kode_Dosen • Nama_Dosen ***** Tabel 2 (dosen.dbf) tersusun atas field : o Kode_Dosen o Nama_Dosen ***** Tanda ***** (Nama_Dosen) menunjukkan terjadinya kerangkapan data. Seharusnya field Nama_Dosen pada tabel 1 (mhs.dbf) dihilangkan, karena pada dasarnya Nama_Dosen pada tabel 1 dapat dicari dengan merelasikan field Kode_Dosen pada tabel 1 kepada field Kode_Dosen pada tabel 2 sehingga akan didapatkan nilai Nama_Dosen. Efek redudancy data tidak secara langsung akan merusak data, tetapi akan mengurangi nilai efesiensi data yang berakibat pada pembengkakan ukuran file data. Penanganan Redudancy Data biasanya dilakukan pada saat proses perancangan data itu sendiri dengan menggunakan teknik normalisasi. 6.2. Penghapusan data Ada dua jenis penghapusan di dalam file data : 1. Penghapusan dengan menandai record tetapi tidak dihapus secara fisik Penghapusan seperti ini dilakukan dengan maksud agar data yang telah dihapus masih dapat dipanggil ulang dengan perintah RECALL, karena pada dasarnya tidak setiap record yang telah dihapus akan menjadi sampah, bahkan bisa saja suatu saat record tersebut masih dibutuhkan untuk suatu proses. Persoalan muncul ketika proses pencarian (baik terindex ataupun tidak) dilakukan tanpa menambahkan logika data sudah terhapus atau belum terhapus. Karena ketika proses pencarian, record yang sudah terhapus tetap saja merupakan bagian dari file data.
2
Contoh : File Mahasiswa.dbf NIM Nama_ Mahasiswa 0001 Slamet 0002 Sigit 0003 Tompel
Alamat_ Mahasiswa Yogya Yogya Yogya
Dengan perintah : delete for nama_mhs = ‘Sigit’ Maka status file data menjadi: NIM 0001 * 0002 0003
Nama_ Mahasiswa Slamet Sigit Tompel
Alamat_ Mahasiswa Yogya Yogya Yogya
Dimana tanda (*) merupakan tanda bahwa record sudah terhapus. Ketika dilakukan pencarian data dengan sintaks berikut: Uses mhs index mhs Seek ‘0002’ If found () Tampikan data Endif Maka data ‘Sigit’ yang sudah terhapus tetap akan ditampilkan, karena secara fisik belum terhapus. Untuk menanganinya, perlu ditambahkan logika pada proses pencarian menjadi ‘jika ditemukan dan belum terhapus’, sintaksnya sebagai berikut : Uses mhs index mhs Seek ‘0002’ If found () .and. !delete() Å (tanda !artinya Not/tidak) Tampikan data Endif 2. Penghapusan dengan menghapus secara fisik Penghapusan seperti ini dilakukan dengan maksud agar data yang telah dihapus benar-benar hilang secara fisik. Dengan mengambil contoh tabel diatas (file Mahasiswa.dbf), maka perintah penghapusan secara fisik dilakukan dengan sintaks : Delete for nama_mhs = ‘Sigit’ Pack Å (perintah penghapusan secara fisik)
3
Sehingga tabel Mahasiswa.dbf akan menjadi sebagia berikut: NIM 0001 0003
Nama_ Mahasiswa Slamet Tompel
Alamat_ Mahasiswa Yogya Yogya
Persoalan muncul ketika aplikasi dijalankan untuk system multiuser (dalam sebuah jaringan), perintah Pack hanya bisa dilakukan secara exlusive (otoritas penuh pada file data atau file data hanya dapat diakses oleh satu pemakai dan yang lain harus menunggu sampai proses selesai). Penanganan, penghapusan secara fisik hendaknya dilakukan secara hatihati, dan dilakukan pada saat pemeliharaan data, sehingga tidak menimbulkan gangguan bagi pemakai lainnya. 3. Proses Reindex tanpa memperhatikan sifat exclusive file Reindex adalah proses meng-index ulang data agar data dalam tabel database (dbf) dan data dalam tabel index tetap sama, sehingga menjadi konsisten. Perbedaan antara data dalam tabel database (dbf) dan data dalam tabel index akan menyebabkan program menjadi error. Sifat exclusive diartikan bahwa suatu file hanya boleh diakses oleh satu pemakai dan pemakai yang lain harus menunggu. Sama dengan perintah pack, perintah reindex yang dilakukan secara sembarangan akan mengakibatkan penolakan akses terhadap suatu file bagi pemakai lainnya, sehingga tidak efisien. Penanganan masalah ini adalah dengan memberikan waktu penuh bagi proses reindex yang dilakukan oleh orang yang berwewenang. Biasanya proses reindex dilakukan pada saat pemeliharaan data, atau pada saat sistem membutuhkan index file yang aktual. 4. Penguncian file/record Proses penguncian file/record dilakukan pada sistem yang menggunakan jaringan atau bersifat multiuser. Kenapa harus melakukan penguncian? Bayangkan kasus seperti ini ; Ketika “A” sendang mengedit record “x” pada file Mahasiswa.dbf, dan pada saat yang sama ”B” menghapus record “x” pada file Mahasiswa.dbf. Apa yang terjadi ? Sistem menjadi error… Disinilah perlunya penguncian file/record, sehingga kasus di atas berubah cerita menjadi sebagai berikut: Sebelum “A” mengedit record “x” pada file Mahasiswa.dbf, “A” harus mengunci record “x” terlebih dahulu.
4
Sehingga pada saat “B” akan menghapus record “x” tersebut, “B” harus menunggu proses penghapusan yang sedang dilakukan oleh “A” selesai dan membuka penguncian terhadap file/record “x”. Penanganan masalah ini mengharuskan Programmer harus selalu memahami proses dimana yang bersifat kritis yang akan mengakibatkan perubahan fisik terhadap data (seperti proses edit, delete dan insert). Akan lebih baik jika sistem yang dibangun mampu membagi otoritas atau wewenang terhadap pemakai data sehingga tidak setiap pemakai data dapat secara langsung melakukan proses edit, delete dan insert terhadap data 6.3. Pemeliharaan data pemeliharaan data menjadi sesuatu yang sangat mutlak dilakukan, utamanya pada basis data untuk system yang memiliki tingkat perubahan fisik data yang sangat cepat (missal retail, banking, dan lain-lain). Data yang tidak terpelihara akan lebih rentan terhadap kehilangan/kerusakan data dan mengakibatkan crash pada sistem Pemeliharaan data hendaknya dilakukan secara rutin dan dilakukan oleh orang yang berwewenang atau orang yang mempunyai otoritas. Pemeliharaan data dapat terdiri atas 3 macam, yaitu: 1. Backup Proses backup data dilakukan dengan maksud agar sistem mempunyai data kedua (secondary) yang dapat dijadikan sebagai data cadangan jika data utama (primary) mengalami kerusakan fisik. Backup data pada sistem yang sangat besar biasanya dilakukan secara berlapis, backup dilakukan tidak hanya pada satu tempat/media) 2. Restore Restore merupakan kebalikan dari proses backup, dimana data secondary dirubah menjadi data primary. Restore data biasanya dilakukan ketika data primary mengalami kerusakan fisik. 3. Reindex (Seperti yang telah dijelaskan pada bagian sebelumnya).
BAB VII STUDI KASUS SIPT
1
Dasar: ⇒ Perancangan basis data utk SIM; Berbeda dengan perancangan basis data utk sub sistem Perancang harus memposisikan diri pd level konseptual ⇒ Asumsi dasar: CBIS Integrated Systems ⇒ Rancangan basis data harus; Dapat digunakan o/ semua sub sistem Dapat digunakan o/ semua level manajemen Dapat digunakan o/ banyak user Dapat digunakan dalam banyak cara Dapat digunakan o/ sistem baru (tanpa mengubah struktur DB ada) Dapat mengantisipasi terjadinya perubahan kebutuhan Memenuhi batasan/kekangan: ; Data redundancy ; Data inconsistency ; Data terisolasi ; Data security ; Data Integrity (domain dan key (entity & referential)) ⇒ Perlu manajemen basis data yg kompleks untuk; Menjaga keamanan data Menjaga integritas data Menjaga kemungkinan terjadinya kerusakan/kegagalan/gangguan
SUB SISTEM DALAM SIPT 1.
2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Sub Sistem Informasi Akademik (SIAKAD), Berfungsi utk mengolah data Penmaru, heregisterasi, perwalian, KRS, perkuliahan, praktikum, KP, TA, KKN, yudisium, wisuda, alumni Sub Sistem Informasi Perpustakaan (SIPERPUSTAKAAN) Berfungsi utk mengolah data buku, anggota, peminjaman, pengembalian, denda keterlambatan, dll Sub Sistem Informasi Keuangan (SIKEUANGAN) Berfungsi utk mengolah data anggaran dan belanja, akuntansi, dll Sub Sistem Informasi Kepegawaian (SIPEGAWAI) Berfungsi utk mengolah data rekruitmen, kepangkatan, pengembangan, dll Sub Sistem Informasi Penggajian (SIGAJI) Berfungsi utk mengolah data gaji dosen, staf administrasi, karyawan lainnya Sub Sistem Informasi Inventaris (SIINVENTARIS) Berfungsi utk mengolah data inventaris, inventori, kendaraan, dll Sub Sistem Informasi Kemahasiswaan (SIKEMAHASISWAAN) Berfungsi utk mengolah data kegiatan kemahasiswaan, ekstrakurikuler, beasiswa, prestasi mahasiswa, dll Sub Sistem Informasi Kerjasama dan Kehumasan (SIKEHUMAS). Berfungsi utk mengolah data kegiatan kerjasama, kehumasan, dll Sub Sistem Informasi Penelitian (SIPENELITIAN) Berfungsi utk mengolah data penelitian & publikasi penelitian dosen, prestasi penelitian dosen, dll Sub Sistem Informasi Pengabdian Kepd Masyarakat (SIPENGABDIAN). Berfungsi utk mengolah data PKM dosen Sub Sistem Informasi Lainnya yg sesuai dengan kebutuhan
USER DALAM SIPT
User dalam SIPT, diklompokkan menjadi 3, yaitu: 1. User tingkat tertinggi (perencanan strategis) 2. User tingkat menengah (perencanaan taktis & pengendalian manajemen) 3. User tingkat terendah (perencanaan & pengendalian operasional) User di luar struktur organisasi PT (individu atau institusi): 1. Dosen 2. Mahasiswa 3. Alumni 4. Masyarakat pengguna lulusan 5. Pemerintah (DIKTI/DIKNAS/BAN-PT) 6. Penyandang dana (Yayasan pd Perguruan Tinggi Swasta)
7. Orang tua/wali mahasiswa 8. Masyarakat umum
SUB SISTEM DALAM SIAKAD
Alur kegiatan/proses Dalam Sub Sistem SIAKAD
1. Penmaru (SIPENMARU) ⇓ 2. Herregisterasi (SIHEREGISTERASI) ⇓ 3. Perwalian, Pra-KRS, KRS, perubahan KRS (SIKRS) 4. Perkuliahan (SIKULIAH) 5. Praktikum (SIPRAKTIKUM) 6. KP (SIKP) 7. KKN (SIKKN) 8. Tugas Akhir (SITA) ⇓ 9. Yudisium (SIYUDISIUM) ⇓ 10. Wisuda (SIWISUDA) ⇓ 11. Alumni (SIALUMNI) Output SIAKAD Secara Umum: 1. 2. 3. 4. 5. 6.
Dokumen transaksi Laporan terjadwal/rutin : rincian, daftar, rekapitulasi, grafis, time_series Laporan adhoc : rincian, daftar, rekapitulasi, grafis, time_series, adhoc Jawaban atas pertanyaan terjadwal/rutin Jawaban atas pertanyaan adhoc Dialog user-machine
Akses SIAKAD:
1. Akses Jaringan Lokal 2. Akses Jaringan Global 3. Akses Mobile
SUB SISTEM AKADEMIK (SIAKAD) MODUL PENMARU (SIPENMARU) Akses
: ⇒ Jaringan lokal ⇒ Jaringan global ⇒ Mobile Modul : ⇒ Pendataan awal ⇒ Penjualan formulir ⇒ Pengembalian formulir (=pendaftaran) ⇒ Kartu ujian ⇒ Penjadwalan ujian ⇒ Bank soal ⇒ Rekomendasi ⇒ Skore seleksi maba ⇒ Laporan Input : ⇒ Biodata lengkap pendaftar, dll ⇒ Data penunjang lainnya (dpp, jalur pendaftaran, dll) ⇒ Bank Soal tertulis, interaktif ⇒ Ruang ⇒ Pengawas Output : 1. Daftar pembeli formulir pendaftaran keseluruhan 2. Daftar pembeli formulir pendaftaran berdsrkan tanggal
2
3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67.
Daftar pembeli formulir yg tdk mendaftar keseluruhan Daftar pembeli formulir yg tdk mendaftar berdsrkan Prodi Daftar pembeli formulir yg tdk mendaftar berdsrkan jalur pendaftaran Daftar pembeli formulir yg tdk mendaftar berdsrkan tanggal pendaftaran Daftar pembeli formulir yg tdk mendaftar berdsrkan gelombang pendaftaran Daftar rincian nilai ujian pendaftar keseluruhan Daftar nilai ujian pendaftar berdsrkan mata ujian Rekapitulasi pembeli formulir berdsrkan Prodi Rekapitulasi pembeli formulir berdsrkan jalur pendaftaran Rekapitulasi pembeli formulir berdsrkan gelombang pendaftaran Rekapitulasi jumlah pembeli formulir berdsrkan asal Propinsi Rekapitulasi jumlah pembeli formulir berdsrkan asal Kabupaten/Kodya Rekapitulasi jumlah pembeli formulir berdsrkan jalur pendaftaran Rekapitulasi jumlah pembeli formulir berdsrkan jenis kelamin Rekapitulasi jumlah pembeli formulir berdsrkan usia Rekapitulasi jumlah pembeli formulir berdsrkan NEM Rekapitulasi jumlah pembeli formulir berdsrkan pekerjaan orang tua Rekapitulasi jumlah pembeli formulir berdsrkan penghasilan orang tua Daftar pendaftar keseluruhan Daftar pendaftar berdsrkan Prodi Daftar pendaftar berdsrkan jalur pendaftaran Daftar pendaftar berdsrkan tanggal pendaftaran Daftar pendaftar berdsrkan gelombang pendaftaran Rekapitulasi pendaftar berdsrkan Prodi Rekapitulasi pendaftar berdsrkan jalur pendaftaran Rekapitulasi pendaftar berdsrkan gelombang pendaftaran Rekapitulasi jumlah pendaftar berdsrkan asal Propinsi Rekapitulasi jumlah pendaftar berdsrkan asal Kabupaten/Kodya Rekapitulasi jumlah pendaftar berdsrkan jalur pendaftaran Rekapitulasi jumlah pendaftar berdsrkan jenis kelamin Rekapitulasi jumlah pendaftar berdsrkan usia Rekapitulasi jumlah pendaftar berdsrkan NEM Rekapitulasi jumlah pendaftar berdsrkan nilai ujian Bahasa Inggris Rekapitulasi jumlah pendaftar berdsrkan rata-rata nilai ujian Rekapitulasi jumlah pendaftar berdsrkan pekerjaan orang tua Rekapitulasi jumlah pendaftar berdsrkan penghasilan orang tua Daftar pendaftar yg tdk hadir ujian masuk keseluruhan Daftar pendaftar yg tdk hadir ujian masuk berdsrkan Prodi Daftar pendaftar yg tdk hadir ujian masuk berdsrkan gelombang pendaftaran Daftar pendaftar diterima keseluruhan Daftar pendaftar diterima berdsrkan Prodi Daftar pendaftar diterima berdsrkan jalur pendaftaran Daftar pendaftar diterima berdsrkan gelombang pendaftaran Rekapitulasi jumlah pendaftar diterima berdsrkan Prodi Rekapitulasi jumlah pendaftar diterima berdsrkan jalur pendaftaran Rekapitulasi jumlah pendaftar diterima berdsrkan gelombang pendaftaran Rekapitulasi jumlah pendaftar diterima berdsrkan asal Propinsi Rekapitulasi jumlah pendaftar diterima berdsrkan asal Kabupaten/Kodya Rekapitulasi jumlah pendaftar diterima berdsrkan jalur pendaftaran Rekapitulasi jumlah pendaftar diterima berdsrkan jenis kelamin Rekapitulasi jumlah pendaftar diterima berdsrkan usia Rekapitulasi jumlah pendaftar diterima berdsrkan NEM Rekapitulasi jumlah pendaftar diterima berdsrkan nilai ujian Bahasa Inggris Rekapitulasi jumlah pendaftar diterima berdsrkan rata-rata nilai ujian Rekapitulasi jumlah pendaftar diterima berdsrkan pekerjaan orang tua Rekapitulasi jumlah pendaftar diterima berdsrkan penghasilan orang tua Daftar pendaftar diterima yg tdk heregisterasi keseluruhan Daftar pendaftar diterima yg tdk heregisterasi berdsrkan Prodi Daftar pendaftar diterima yg tdk heregisterasi berdsrkan gelombang pendaftaran Daftar mahasiswa baru keseluruhan Daftar mahasiswa baru berdsrkan Prodi Daftar mahasiswa baru berdsrkan jalur pendaftaran Daftar mahasiswa baru berdsrkan gelombang pendaftaran Rekapitulasi mahasiswa baru berdsrkan Prodi Rekapitulasi mahasiswa baru berdsrkan jalur pendaftaran
3
68. Rekapitulasi mahasiswa baru berdsrkan gelombang pendaftaran 69. Rekapitulasi mahasiswa baru berdsrkan asal Propinsi 70. Rekapitulasi mahasiswa baru berdsrkan asal Kabupaten/Kodya 71. Rekapitulasi mahasiswa baru berdsrkan jalur pendaftaran 72. Rekapitulasi mahasiswa baru berdsrkan jenis kelamin 73. Rekapitulasi mahasiswa baru berdsrkan usia 74. Rekapitulasi mahasiswa baru berdsrkan NEM 75. Rekapitulasi mahasiswa baru berdsrkan nilai ujian Bahasa Inggris 76. Rekapitulasi mahasiswa baru berdsrkan rata-rata nilai ujian 77. Rekapitulasi mahasiswa baru berdsrkan pekerjaan orang tua 78. Rekapitulasi mahasiswa baru berdsrkan penghasilan orang tua 79. Tingkat keketatan persaingan pendaftaran 80. Tingkat keberhasilan Penmaru 81. Output grafis 82. Format output lainnya
MODUL KESETARAAN NILAI MAHASISWA ALIH JALUR Akses
: ⇒ Akses jaringan lokal User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Maba alih jalur Input : ⇒ Keseteraan nilai Maba alih jalur Output : 1. Daftar dan statistik maba alih jalur 2. Surat persetujuan maba alih jalur 3. Daftar kesetaraan nilai maba alih jalur 4. Output grafis 5. Format output lainnya
MODUL KESETRAAAN NILAI MAHASISWA PINDAHAN Akses
: ⇒ Akses jaringan lokal User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Mahasiswa pindahan Input : ⇒ Keseteraan nilai Mahasiswa pindahan Output : 1. Daftar dan statistik mahasiswa pindahan 2. Surat persetujuan mahasiswa pindahan 3. Daftar kesetaraan nilai mahasiswa pindahan 4. Output grafis 5. Format output lainnya
MODUL KESETARAAN KURIKULUM Akses User
: ⇒ : ⇒ ⇒ ⇒
Akses jaringan lokal Level Institut Level Fakultas Level Prodi / Biro / Bagian / Unit
4
Modul : ⇒ Pendataan awal ⇒ Keseteraan kurikulum Input : ⇒ Kurikulum ⇒ Keseteraan kurikulum Output : 1. Daftar kesetaraan mata kuliah kurikulum 2. Output grafis 3. Format output lainnya
MODUL PEMBAGIAN BEBAN MENGAJAR Akses
: ⇒ Akses jaringan lokal User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Kurikulum + prasyarat ⇒ Usulan beban mengajar ⇒ Penjadwalan kuliah ⇒ Penjadwalan praktikum Input : ⇒ Usulan beban mengajar ⇒ Jadwal ⇒ Data penunjang lainnya Output : 1. Daftar dan statistik prediksi peserta (matakuliah, Prodi, keseluruhan) 2. Daftar dan statistik beban mengajar (dosen, Prodi, keseluruhan) 3. Daftar dan statistik beban asisten praktikum (laboratorium, Prodi, keseluruhan) 4. Penawaran mata kuliah (matakuliah, prodi, keseluruhan) 5. Jadwal kuliah (prodi, dosen, keseluruhan) 6. Jadwal praktikum (laboratorium, asisten, keseluruhan) 7. Jadwal dosen bermasalah 8. Jadwal asisten bermasalah 9. Surat pemberitahuan dosen mengajar (dosen, prodi, keseluruhan) 10. Surat pemberitahuan praktikum (laboratorium, asisten, keseluruhan) 11. SK mengajar 12. Peta penggunaan ruang kuliah 13. Peta penggunaan laboratorium 14. Output grafis 15. Format output lainnya
MODUL HEREGISTERASI (SIHERREGISTRASI) Akses User
: ⇒ ⇒ : ⇒ ⇒ ⇒
Modul : ⇒ ⇒ ⇒ ⇒ ⇒ Input : ⇒ ⇒
Akses jaringan lokal Akses jaringan global (terbatas, khusus mahasiswa lama) Level Institut Level Fakultas Level Prodi / Biro / Bagian / Unit Pendataan awal Pembayaran (online dengan bank) Heregisterasi mahasiswa baru (online) Heregisterasi mahasiswa lama (online) Tutup Teori Biodata lengkap pendaftar diterima Update biodata mahasiswa lama (khususnya alamat)
5
6
⇒ Dosen wali Maba ⇒ Update dosen wali mahasiswa lama ⇒ Data penunjang lainnya (dpp, spp, dll) ⇒ Mahasiswa tutup teori Output : 1. Kartu Mahasiswa 2. Daftar dan statistik pembayaran Mahasiswa (tanggal, Prodi, angkatan, keseluruhan) 3. Daftar dan statistik Mahasiswa (tanggal, Prodi, dosen wali, keseluruhan) 4. Daftar dan statistik Mahasiswa (Kabupaten / Kodya & Propinsi asal, Prodi, keseluruhan) 5. Daftar dan statistik Mahasiswa (jenis kelamin & usia, Prodi, keseluruhan) 6. Daftar dan statistik mahasiswa 2 smt tdk herregisterasi (prodi, angkatan, keseluruhan) 7. Daftar dan statistik mahasiswa 4 smt tdk herregisterasi (prodi, angkatan, keseluruhan) 8. Daftar dan statistik Mahasiswa (NEM, Prodi, keseluruhan) 9. Daftar dan statistik Mahasiswa (skore ujian, Prodi, keseluruhan) 10. Daftar dan statistik Mahasiswa (skore bahasa inggris, Prodi, keseluruhan) 11. Tingkat keketatan persaingan (Prodi, gelombang, keseluruhan) 12. Statistik heregisterasi Mahasiswa (Prodi, gelombang, angkatan, keseluruhan) 13. Daftar dan statistik pendaftar diterima tdk herregisterasi (jalur pendaftaran, tanggal, gelombang, Prodi, keseluruhan) 14. Daftar dan statistik heregisterasi Mahasiswa lama (tutup teori, per prodi, keseluruhan) 15. Formulir surat pengajuan tutup teori + Daftar perolehan nilai 16. Daftar dan statistik mahasiswa lama tdk heregisterasi (tanggal, Prodi, keseluruhan) 17. Surat pemberitahuan ke orang tua / wali mahasiswa lama tdk heregisterasi (Prodi, keseluruhan) 18. Daftar dan statistik mahasiswa cuti (Prodi, angkatan, keseluruhan) 19. Formulir surat pengajuan keluar / pindah + data keuangan, perpustakaan, penunjang 20. Daftar dan statistik mahasiswa keluar (Prodi, angkatan, keseluruhan) 21. Surat Ijin 22. Surat Keterangan 23. Output grafis 24. Format output lainnya
MODUL PRA KRS, KRS, PERUBAHAN KRS (SIKRS) Akses
: ⇒ Akses jaringan lokal ⇒ Akses jaringan global User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit ⇒ Mahasiswa Modul : ⇒ Pendataan awal ⇒ Jadwal Input : ⇒ Dosen Wali ⇒ Pra KRS, KRS, Perubahan KRS ⇒ Jadwal kuliah ⇒ Jadwal praktikum ⇒ Data penunjang lainnya Output : 1. Daftar Dosen Wali keseluruhan 2. Jadwal bimbingan Dosen Wali keseluruhan 3. Rekapitulasi pembimbingan oleh Dosen Wali berdsrkan Prodi 4. Rekapitulasi beban bimbingan Dosen Wali berdsrkan Prodi 5. Kalender Akademik 6. Daftar mata kuliah dan prasyarat keseluruhan 7. Daftar mata kuliah berdsrkan kelompok mata kuliah wajib 8. Daftar mata kuliah berdsrkan kelompok mata kuliah peminatan 9. Daftar mata kuliah berdsrkan kelompok mata kuliah pilihan 10. Daftar ruangan dan kapasitas ruangan kuliah dan laboratorium keseluruhan 11. Daftar penawaran mata kuliah dan praktikum 12. Jadwal kuliah dan praktikum keseluruhan 13. Jadwal kuliah dan praktikum berdsrkan Prodi 14. Jadwal kuliah berdsrkan dosen pengampu mata kuliah
15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38.
Jadwal praktikum berdsrkan laboratorium Daftar mahasiswa tdk ikut Pra-KRS keseluruhan Daftar mahasiswa tdk ikut Pra-KRS berdsrkan Prodi Daftar mahasiswa tdk ikut Pra-KRS berdsrkan Dosen Wali Daftar mahasiswa peserta kuliah berdsrkan kelas mata kuliah Daftar mahasiswa heregisterasi habis teori berdsrkan Prodi Daftar mahasiswa heregisterasi habis teori berdsrkan tahun angkatan Daftar mahasiswa peserta KP berdsrkan Prodi Daftar mahasiswa peserta KP berdsrkan tahun angkatan Daftar mahasiswa peserta KKN berdsrkan Prodi Daftar mahasiswa peserta KKN berdsrkan tahun angkatan Daftar mahasiswa peserta TA berdsrkan Prodi Daftar mahasiswa peserta TA berdsrkan tahun angkatan Jadwal kuliah berdsrkan ruangan kuliah Daftar beban SKS dosen dan asisten dosen keseluruhan Daftar beban SKS dosen dan asisten dosen berdsrkan Prodi Rekapitulasi beban SKS dosen dan asisten dosen keseluruhan Rekapitulasi beban SKS dosen dan asisten dosen berdsrkan Prodi Rekapitulasi tingkat keberhasilan PRA-KRS keseluruhan Rekapitulasi tingkat keberhasilan PRA-KRS berdsrkan Prodi Rekapitulasi tingkat keberhasilan KRS keseluruhan Rekapitulasi tingkat keberhasilan KRS berdsrkan Prodi Output grafis Format output lainnya
MODUL PERKULIAHAN (SIKULIAH) Akses
: ⇒ Akses jaringan lokal ⇒ Akses jaringan global User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Kurikulum, Silabus, GBPP/SAP ⇒ Presensi perkuliahan ⇒ Materi kuliah ⇒ Evaluasi perkuliahan Input : ⇒ Kurikulum, Silabus, GBPP/SAP ⇒ Materi dosen mengajar harian ⇒ Data penunjang lainnya Output : 1. Daftar dosen keseluruhan 2. Daftar dosen tetap 3. Daftar dosen tdk tetap 4. Daftar kehadiran mengajar dosen sebelum UTS keseluruhan 5. Daftar kehadiran mengajar dosen sebelum UTS berdsrkan Prodi 6. Daftar dosen hadir mengajar <5 kali sebelum UTS keseluruhan 7. Daftar dosen hadir mengajar <5 kali sebelum UTS berdsrkan Prodi 8. Jadwal UTS berdsrkan Prodi 9. Daftar Hadir mahasiswa peserta UTS berdsrkan mata kuliah 10. Daftar nilai UTS berdsrkan mata kuliah 11. Daftar kehadiran mengajar dosen sebelum UAS keseluruhan 12. Daftar kehadiran mengajar dosen sebelum UAS berdsrkan Prodi 13. Daftar dosen hadir mengajar <10 kali sebelum UAS keseluruhan 14. Daftar dosen hadir mengajar <10 kali sebelum UAS berdsrkan Prodi 15. Daftar jumlah kehadiran kuliah mahasiswa berdsrkan mata kuliah 16. Daftar mahasiswa hadir kuliah <75% sebelum UAS berdsrkan mata kuliah 17. Jadwal UAS berdsrkan Prodi 18. Daftar Hadir mahasiswa peserta UAS berdsrkan mata kuliah 19. Daftar rincian nilai akhir kuliah berdsrkan mata kuliah 20. Daftar rincian evaluasi prestasi akhir dosen mengajar keseluruhan
7
21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50.
Daftar rincian evaluasi prestasi akhir dosen mengajar berdsrkan Prodi Daftar IPK dan batas SKS mahasiswa bimbingan berdsrkan Dosen Wali Daftar mahasiswa tdk memenuhi syarat IPK 2,0 pd 2 smt awal keseluruhan Daftar mahasiswa tdk memenuhi syarat IPK 2,0 pd 2 smt awal berdsrkan Prodi Daftar mahasiswa tdk memenuhi syarat IPK 2,0 pd 2 smt awal berdsrkan tahun angkatan Daftar mahasiswa tdk memenuhi syarat IPK 2,0 pd 4 smt awal keseluruhan Daftar mahasiswa tdk memenuhi syarat IPK 2,0 pd 4 smt awal berdsrkan Prodi Daftar mahasiswa tdk memenuhi syarat IPK 2,0 pd 4 smt awal berdsrkan tahun angkatan Daftar mahasiswa tdk memenuhi syarat IPK 2,0 pd 8 smt awal keseluruhan Daftar mahasiswa tdk memenuhi syarat IPK 2,0 pd 8 smt awal berdsrkan Prodi Daftar mahasiswa tdk memenuhi syarat IPK 2,0 pd 8 smt awal berdsrkan tahun angkatan Daftar prediksi peserta kuliah berdsrkan mata kuliah Daftar prediksi peserta praktikum berdsrkan mata praktikum Daftar prediksi peserta kuliah berdsrkan Prodi Daftar prediksi peserta praktikum berdsrkan Prodi Daftar nama Pengawas keseluruhan Daftar materi kuliah dosen berdsrkan mata kuliah Rekapitulasi kehadiran Pengawas UTS Rekapitulasi kehadiran Pengawas UAS Rekapitulasi kehadiran dosen sebelum UTS Rekapitulasi kehadiran dosen sebelum UAS Rekapitulasi kehadiran dosen pd akhir kuliah keseluruhan Rekapitulasi kehadiran dosen pd akhir kuliah berdsrkan Prodi Rekapitulasi nilai UTS Rekapitulasi Nilai Akhir mata kuliah Rekapitulasi evaluasi prestasi akhir dosen mengajar keseluruhan Rekapitulasi evaluasi prestasi akhir dosen mengajar berdsrkan Prodi Rekapitulasi penggunaan ruangan kuliah Output grafis Format output lainnya
MODUL PRAKTIKUM (SIPRAKTIKUM) Akses
: ⇒ Akses jaringan lokal ⇒ Akses jaringan global User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Kurikulum, Silabus, GBPP/SAP ⇒ Presensi Praktikum ⇒ Materi praktikum ⇒ Evaluasi praktium Input : ⇒ Kurikulum, Silabus, GBPP/SAP ⇒ Materi praktikum ⇒ Data penunjang lainnya Output : 1. Kurikulum dan silabus praktikum 2. Ketersediaan dan isi Modul Pratikum 3. Daftar Asisten praktikum keseluruhan 4. Jadwal praktikum berdsrkan laboratorium 5. Jadwal praktikum berdsrkan Prodi 6. Daftar Hadir Pre-Test mahasiswa peserta praktikum berdsrkan mata praktikum 7. Daftar Hadir mahasiswa peserta praktikum berdsrkan mata praktikum 8. Daftar jumlah kehadiran praktikum mahasiswa berdsrkan mata praktikum 9. Daftar mahasiswa hadir praktikum <75% sebelum responsi berdsrkan mata praktikum 10. Jadwal responsi praktikum berdsrkan mata praktikum 11. Daftar Hadir mahasiswa peserta responsi berdsrkan mata praktikum 12. Daftar rincian nilai akhir praktikum berdsrkan mata praktikum 13. Daftar kehadiran asisten praktikum keseluruhan 14. Daftar kehadiran asisten praktikum berdsrkan mata praktikum
8
15. 16. 17. 18. 19. 20.
Daftar materi praktikum berdsrkan mata praktikum Rekapitulasi kehadiran asisten praktikum berdsrkan laboratorium Rekapitulasi Nilai Akhir praktikum Rekapitulasi penggunaan laboratorium Output grafis Format output lainnya
MODUL KP (SIKP) Akses
: ⇒ Akses jaringan lokal User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Kerja Praktek Input : ⇒ Pembimbing ⇒ Realisasi ⇒ Jadwal ⇒ Penguji Output : 1. Daftar Pembimbing KP keseluruhan 2. Daftar Pembimbing KP berdsrkan Prodi 3. Daftar rincian KP berdsrkan Dosen Pembimbing KP 4. Daftar rincian KP berdsrkan Prodi 5. Daftar KP berdsrkan lokasi obyek penelitian 6. Daftar KP berdsrkan topik-tema KP dan Prodi 7. Daftar KP berdsrkan jenis penelitian KP dan Prodi 8. Daftar KP lamanya waktu penyelesaian KP 9. Daftar KP yg waktu penyelesaiannya melewati >1 tahun 10. Rekapitulasi jumlah bimbingan KP berdsrkan Dosen Pembimbing KP 11. Rekapitulasi KP berdsrkan lokasi obyek penelitian 12. Rekapitulasi KP berdsrkan topik-tema KP 13. Rekapitulasi Nilai Akhir KP 14. Output grafis 15. Format output lainnya
MODUL KKN (SIKKN) Akses
: ⇒ Akses jaringan lokal User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Panitia KKN ⇒ Pendataan persyaratan ⇒ Pendaftaran ⇒ Penilaian KKN ⇒ Yudisium Nilai KKN Input : ⇒ Pendataan awal ⇒ Peserta ⇒ Usulan Panitia Output : 1. Daftar Dosen Pembimbing KKN keseluruhan 2. Daftar Dosen Pembimbing KKN berdsrkan Prodi 3. Daftar mahasiswa peserta KKN berdsrkan Prodi 4. Daftar mahasiswa peserta KKN berdsrkan kelompok KKN 5. Daftar mahasiswa peserta KKN berdsrkan tahun angkatan
9
6. 7. 8. 9. 10. 11. 12. 13. 14.
Daftar rincian nilai KKN keseluruhan Daftar rincian nilai KKN berdsrkan Prodi Daftar rincian nilai KKN berdsrkan kelompok KKN Rekapitulasi jumlah peserta KKN berdsrkan Prodi Rekapitulasi jumlah peserta KKN berdsrkan kelompok KKN Rekapitulasi jumlah peserta KKN berdsrkan tahun angkatan Rekapitulasi Nilai Akhir KKN Output grafis Format output lainnya
MODUL TA (SITA) Akses
: ⇒ Akses jaringan lokal User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ TA Input : ⇒ Pembimbing ⇒ Realisasi ⇒ Jadwal ⇒ Penguji Output : 1. Daftar Pembimbing TA keseluruhan 2. Daftar Pembimbing TA berdsrkan Prodi 3. Daftar rincian TA berdsrkan Dosen Pembimbing TA 4. Daftar rincian TA berdsrkan Prodi 5. Daftar TA berdsrkan lokasi obyek penelitian 6. Daftar TA berdsrkan topik-tema TA dan Prodi 7. Daftar TA berdsrkan lamanya waktu penyelesaian TA 8. Daftar TA yg waktu penyelesaiannya >1 tahun 9. Rekapitulasi jumlah bimbingan TA berdsrkan Dosen Pembimbing TA 10. Rekapitulasi TA berdsrkan lokasi obyek penelitian 11. Rekapitulasi TA berdsrkan topik-tema TA 12. Rekapitulasi Nilai Akhir TA 13. Output grafis 14. Format output lainnya
SUB MODUL UJIAN Akses
: ⇒ User : ⇒ ⇒ ⇒ Modul : ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ ⇒ Input : ⇒
Akses jaringan lokal Level Institut Level Fakultas Level Prodi / Biro / Bagian / Unit Pendataan awal Jadwal ujian Presensi ujian Presensi praktikum Soal ujian Soal responsi Nilai ujian Nilai praktikum Jadwal ujian
10
⇒ Jadwal responsi ⇒ Data penunjang lainnya ⇒ Soal ujian ⇒ Soal responsi Output : 1. Jadwal ujian 2. SK panitia ujian 3. Jadwal pengawas ujian 4. Surat permintaan soal ujian 5. Bukti penerimaan soal ujian 6. Daftar hadir ujian 7. Daftar hadir responsi 8. Surat keterangan / dispensasi ujian mahasiswa 9. Surat pengiriman berkas ujian ke dosen + Disket penilaian ujian utk dosen 10. Bukti penerimaan nilai ujian 11. Bukti penerimaan nilai praktikum 12. Daftar dan statistik pengawas ujian 13. Daftar dan statistik pengawas bermasalah 14. Daftar dan statistik nilai ujian belum masuk per periode (10 hari, 15 hari, 1 bulan) 15. Daftar dan statistik nilai praktikum belum masuk 16. Daftar dan statistik nilai ujian bermasalah 17. Daftar dan statistik nilai praktikum bermasalah 18. Surat permohonan nilai ujian 19. Surat permohonan nilai praktikum 20. Surat peringatan bagi dosen / laboratorium belum mengirimkan nilai 21. Output grafis 22. Format output lainnya
MODUL DAFTAR PEROLEHAN NILAI Akses
11
: ⇒ Akses jaringan lokal ⇒ Akses jaringan global User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Nilai Mid ⇒ Nilai UAS ⇒ Nilai Tugas ⇒ Nilai Praktikum ⇒ Nilai KKN ⇒ Nilai smt pendek ⇒ Nilai KP, TA ⇒ Nilai khusus Input : ⇒ Nilai per mata kuliah ⇒ Nilai khusus Output : 1. Daftar dan statistik Nilai Mid 2. Daftar dan statistik Nilai UAS 3. Daftar dan statistik Nilai Tugas 4. Daftar dan statistik Nilai Praktikum 5. Daftar dan statistik Nilai KKN 6. Daftar dan statistik Nilai smt pendek 7. Daftar dan statistik Nilai KP & TA 8. KHS + Akumulasi Perolehan SKS dan IPK 9. Daftar dan statistik KHS 10. Historis Perolehan SKS dan Nilai utk orang tua sejak tahun pertama ??? 11. Daftar perolehan nilai mahasiswa dan IPK utk mahasiswa, dosen wali & orang tua / wali 12. Pengiriman KHS / daftar perolehan nilai mahasiswa (Surat Pengiriman Included) 13. Daftar perolehan nilai mahasiswa utk keperluan khusus (Laporan, KKN, KP, TA, Pendadaran, Yudisium) 14. Daftar perolehan nilai mahasiswa bermasalah / tdk memenuhi batas IPK
15. 16. 17. 18. 19. 20.
Daftar perolehan nilai mahasiswa bermasalah KP, TA Daftar mahasiswa yg tdk berhasil pd evaluasi smtan Surat peringatan dosen bermasalah Surat peringatan mahasiswa bermasalah Output grafis Format output lainnya
12
MODUL YUDISIUM KELULUSAN (SIYUDISIUM) Akses
: ⇒ Akses jaringan lokal User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Pendaftaran yudisium ⇒ Yudisium Input : ⇒ Peserta yudisium Output : 1. Daftar mahasiswa peserta yudisium keseluruhan 2. Daftar mahasiswa peserta yudisium berdsrkan Prodi 3. Daftar mahasiswa peserta yudisium berdsrkan tahun angkatan 4. Rekapitulasi mahasiswa peserta yudisium berdsrkan Prodi 5. Rekapitulasi mahasiswa peserta yudisium berdsrkan tahun angkatan 6. Rekapitulasi mahasiswa peserta yudisium berdsrkan lama masa Studi 7. Rekapitulasi mahasiswa peserta yudisium berdsrkan kelompok IPK 8. Output grafis 9. Format output lainnya
MODUL WISUDA (SIWISUDA) Akses
: ⇒ Akses jaringan lokal ⇒ Akses jaringan global User : ⇒ Level Institut ⇒ Level Fakultas ⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Pendaftaran wisuda Input : ⇒ Pendaftaran wisuda (validasi persyaratan pendaftaran: keuangan, bebas pinjam perpustakaan, dll) ⇒ Peserta wisuda Output : 1. Daftar mahasiswa peserta wisuda keseluruhan 2. Daftar mahasiswa peserta wisuda berdsrkan Prodi 3. Daftar mahasiswa peserta wisuda berdsrkan tahun angkatan 4. Daftar mahasiswa peserta wisuda berdsrkan periode yudisium 5. Rekapitulasi mahasiswa peserta wisuda berdsrkan Prodi 6. Rekapitulasi mahasiswa peserta wisuda berdsrkan tahun angkatan 7. Rekapitulasi mahasiswa peserta wisuda berdsrkan lama masa Studi 8. Rekapitulasi mahasiswa peserta wisuda berdsrkan kelompok IPK 9. Output grafis 10. Format output lainnya
MODUL ALUMNI (SIALUMNI) Akses User
: ⇒ ⇒ : ⇒ ⇒
Akses jaringan lokal Akses jaringan global Level Institut Level Fakultas
13
⇒ Level Prodi / Biro / Bagian / Unit Modul : ⇒ Pendataan awal ⇒ Data alumni Input : ⇒ Data alumni ⇒ Update data pekerjaan alumni Output : 1. Daftar alumni keseluruhan 2. Daftar alumni berdsrkan Prodi 3. Daftar alumni berdsrkan tahun angkatan 4. Daftar alumni berdsrkan periode yudisium 5. Daftar alumni berdsrkan periode wisuda 6. Daftar alumni berdsrkan propinsi 7. Daftar alumni berdsrkan lama waktu tunggu pekerjaan pertama 8. Daftar alumni berdsrkan tingkatan jabatan pekerjaan 9. Daftar alumni berdsrkan kelompok jumlah penghasilan 10. Daftar alumni berdsrkan kelompok bidang pekerjaan 11. Rekapitulasi alumni berdsrkan Prodi 12. Rekapitulasi alumni berdsrkan tahun angkatan 13. Rekapitulasi alumni berdsrkan periode yudisium 14. Rekapitulasi alumni berdsrkan periode wisuda 15. Rekapitulasi alumni berdsrkan propinsi 16. Rekapitulasi alumni berdsrkan lama waktu tunggu pekerjaan pertama 17. Rekapitulasi alumni berdsrkan tingkatan jabatan pekerjaan 18. Rekapitulasi alumni berdsrkan kelompok jumlah penghasilan 19. Rekapitulasi alumni berdsrkan kelompok bidang pekerjaan 20. Output grafis 21. Format output lainnya
MODUL PENDUKUNG 1.
Utility o o o o 2. Help o o o
: Setting Sistem Aplikasi ( Nilai-Nilai Tetapan) Manajemen User (User Name-Password) Keamanan Database (Bacup-Restore) Optimasi (Reindex) Content Index Glosary
KERANGKA RANCANGAN STRUKTUR TABEL DB SIAKAD Asumsi hanya untuk Jenjang S-1...!!! No 1
2
3
4
Nama Tabel Bank_Soal_Penmaru _Check_Point
Bank_Soal_Penmaru _Essay
Kalender_Akademik
Jalur_Penmaru
Nama Atribut Kode_soal No_Soal Soal Skor Kunci_Jawaban Jawab_A Jawab_B Jawab_C Jawab_D Jawab_E Kode_soal No_Soal Soal Skor Kunci_Jawaban Tahun_Akademik Kegiatan Tanggal_Mulai Tanggal_Akhir Jalur_Pendaftaran Nama_Jalur_Pendaftaran
Tipe Char Num Memo Num Char Memo Memo Memo Memo Memo Char Num Memo Num Memo Char Char Char Date Char Char
Ukuran 4 8
PK PK PK
2 1
4 8
PK PK
2 4 1 1 1 50
PK PK PK
Null? No No No No No No No No No No No No No No No No No No No No No
5
Beaya_Pendaftaran
6
Program_Studi
7
Jurusan
8
Fakultas
9
Program
10
Jenjang_Pendidikan
11
Jenis_Pendidikan
12
Agama
13
Kecamatan
14
Kabupaten
15
Propinsi
16
Kode_Pos
17
Status_Program_Studi
18
Pekerjaan
19
Kewarganegaraan
20
Jenis_SLTA
21
SPP
22
DPP
Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Jalur_Pendaftaran Beaya_Pendaftaran Program_Studi Nama_Program_Studi Tanggal_Berdiri Tanggal_SK No_SK Status_Program_Studi Jurusan Jurusan Nama_Jurusan Tanggal_Berdiri Tanggal_SK No_SK Status_Program_Studi Fakultas Fakultas Nama_Fakultas Tanggal_Berdiri Tanggal_SK No_SK Program Nama_Program Jenjang_Pendidikan Nama_Jenjang_Pendidikan Keterangan Jenis_Pendidikan Nama_Jenis_Pendidikan Agama Nama_Agama Kecamatan Nama_Kecamatan Kabupaten Kabupaten Nama_Kabupaten Propinsi Propinsi Nama_Propinsi Kode_Pos Nama_Wilayah Status_Program_Studi Nama_Status_Program_Studi Pekerjaan Nama_Pekerjaan Kewarganegaraan Nama_Kewarganegaraan Jenis_SLTA Nama_Jenis_SLTA Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Program Jenjang_Pendidikan Jenis_Pendidikan Jumlah_SPP_Tetap Jumlah_SPP_Variabel Tahun_Akademik Periode_Pendaftaran
Char Char Char Char Num Char Char Date Date Char Char Char Char Char Date Date Char Char Char Char Char Date Date Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Num Num Char Char
4 1 1 1 6 2 50
50 1 2 2 20
50 1 1 2 20
50 1 20 2 6 12 1 20 1 10 4 50 2 4 50 2 2 50 5 50 1 50 2 50 1 50 1 50 4 1 1 1 2 1 8 8 4 1
PK PK PK PK PK
PK
PK
PK PK
PK PK PK
PK
PK PK PK PK PK PK PK PK PK PK PK PK
PK PK
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No Yes No No
14
23
Angsuran_SPP
24
Angsuran_DPP
25
SLTA
26
27
Pendaftar_Mahasiswa _Baru
Ayah_Pendaftar
Gelombang_Pendaftaran Program Jenjang Jenis_Pendidikan Jumlah_DPP_Minimal Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Program Jenjang_Pendidikan Jenis_Pendidikan Angsuran_ke Jumlah_Angsuran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Program Jenjang Jenis_Pendidikan Angsuran_ke Jumlah_Angsuran SLTA Nama_SLTA Jenis_SLTA Alamat Kecamatan Kode_Pos Telepon No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Program Jenjang_Pendidikan Jenis_Pendidikan Jalur_Pendaftaran Tanggal_Pendaftaran Nama_Pendaftar Agama Nilai_Bahasa_Inggris Nilai_Matematika Jumlah_NEM Jumlah_Mata_Pelajaran_NEM Jumlah_Nilai_STTB Jumlah_Mata_Pelajaran_STTB Agama Kewarganegaraan Alamat Kode_Pos Kecamatan SLTA No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Jalur_Pendaftaran Nama_Ayah Jenjang_Pendidikan Pekerjaan Agama Alamat
Char Char Char Char Num Char Char Char Char Char Char Num Num Char Char Char Char Char Char Num Num Char Memo Char Memo Char Char Char Num Char Char Char Char Char Char Char Date Char Char Num Num Num Num Num Num Char Char Memo Char Char Char Num Char Char Char Char Char Char Char Char Memo
1 1 2 1 8 4 1 1 1 2 1 1 8 4 1 1 1 2 1 1 8 6
PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK
1 4 5 12 7 4 1 1 1 2 1 1
PK PK PK PK PK PK PK PK
50 1 1:1 1:1 2:2 1 2:2 1 1 1 5 4 6 7 4 1 1 1 50 2 2 1
PK PK PK PK PK
No No No No No No No No No No No No No No No No No No No No No No No No No No No Yes No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
15
28
29
Ibu_Pendaftar
Wali_Pendaftar
30
Pilihan_Pendaftaran _Mahasiswa
31
Jawaban_Tes_Check _Point_Penmaru
32
Jawaban_Tes_Essay _Penmaru
33
Kapasitas_Program _Studi
Kode_Pos Kecamatan Telepon Penghasilan No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Jalur_Pendaftaran Nama_Ibu Jenjang_Pendidikan Pekerjaan Agama Alamat Kode_Pos Kecamatan Telepon Penghasilan No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Jalur_Pendaftaran Nama_Wali Jenjang_Pendidikan Pekerjaan Agama Alamat Kode_Pos Kecamatan Telepon Penghasilan No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Jalur_Pendaftaran Jenjang_Pendidikan Program Pilihan_Ke Program_Studi Jumlah_Kesanggupan_DPP No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Kode_soal No_Soal Jawaban Skore No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Kode_soal No_Soal Jawaban_Essay Skore Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Program_Studi
Char Char Char Num Num Char Char Char Char Char Char Char Char Memo Char Char Char Num Num Char Char Char Char Char Char Char Char Memo Char Char Char Num Num Char Char Char Char Char Char Char Char Num Num Char Char Char Char Num Char Num Num Char Char Char Char Num Memo Num Char Char Char Char
5 4 12 9 7 4 1 1 1 50 2 2 1
PK PK PK PK PK
5 4 12 9 7 4 1 1 1 50 2 2 1
PK PK PK PK PK
5 4 12 9 7 4 4 1 1 2 1 1 2 8 7 4 1 1 4 8 1 1 7 4 1 1 4 8 2 2 4 1 1 2
PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK
No No Yes No No No No No No No No No No No No No Yes No No No No No No No No No No No No No Yes No No No No No No No No No No No No No No No No No Yes No No No No No No No Yes No No No No No
16
34
Batas_Nilai_Pendaftar _Diterima
35
Pendaftar_Diterima
36
Status_Diterima
37
Pendaftar_Pindahan _Alih_Jalur
38
Konversi_Nilai_Pendaftar _Pindahan_Alih_Jalur
39
Registerasi_Mahasiswa _Baru
40
Registerasi_Mahasiswa _Lama
Jenjang_Pendidikan Program Kapasitas Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Program_Studi Jenjang_Pendidikan Program Batas_Nilai_Min_Diterima No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Jalur_Pendaftaran Program_Studi Jenjang_Pendidikan Program Tanggal_Yudisium Status_Diterima Status_Diterima Nama_Status_Diterima No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Jalur_Pendaftaran Program_Studi Jenjang_Pendidikan Program SKS_Diakui SKS_Ditempuh No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Jalur_Pendaftaran Program_Studi Jenjang_Pendidikan Program Kode_Mata_Kuliah_Awal Kode_Mata_Kuliah_Akhir SKS Nilai No_Pendaftaran Tahun_Akademik Periode_Pendaftaran Gelombang_Pendaftaran Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Tanggal_Registerasi Status_Mahasiswa Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Tanggal_Registerasi Status_Mahasiswa
Char Char Num Char Char Char Char Char Char Num Num Char Char Char Char Char Char Char Date Char Char Char Num Char Char Char Char Char Char Char Num Num Num Char Char Char Char Char Char Char Char Char Num Char Num Char Char Char Char Char Char Char Char Date Char Char Char Char Char Char Date Char
2 1 3 1 1 1 2 2 1 2:2 7 4 1 1 1 2 2 1 1 1 20 7 4 1 1 1 2 2 1 3 3 7 4 1 1 1 2 2 1 4 4 3 1 7 4 1 1 4 2 2 1 4 1 4 2 2 1 4 1
PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
17
41
Status_Mahasiswa
42
Dosen_Tetap
43
Sejarah_Pendidikan _Dosen_Tetap
44
Sejarah_Jabatan _Akademik _Dosen_Tetap
45
Sejarah_Golongan _Ruang_Dosen _Tetap
46
Dosen_Tidak_Tetap
47
Bidang
48
Golongan_Ruang
49
Jabatan_Akademik
50
Jabatan_Struktural
Status_Mahasiswa Nama_Status_Mahasiswa Kode_Dosen NIK Nama_Dosen Tanggal_Masuk Bidang Agama Alamat Kode_Pos Kecamatan Agama Telepon E_mail Kode_Dosen Jenjang_Pendidikan Kode_Sekolah Tanggal_Lulus No_Ijazah Kode_Dosen Jabatan_Akademik Tanggal_SK No_SK Kode_Dosen Golongan Ruang Tanggal_SK No_SK Kode_Dosen NIP Nama_Dosen Alamat Kecamatan Kode_Pos Jenjang_Pendidikan Bidang Agama Golongan Ruang Jabatan_Akademik Telepon E_mail Instansi_Asal Alamat_Kantor Kecamatan_Kantor Telepon_Kantor Faximili_Kantor Bidang Nama_Bidang Golongan Ruang Nama_Golongan Masa_Kerja_Minimal Gaji_Pokok Jabatan_Akademik Nama_Jabatan_Akademik Angka_Kredit_Min Jabatan_Struktural Nama Jabatan_Struktural Level_Jabatan_Struktural Tunjangan_Jabatan_Struktural Keterangan
Char Char Char Char Char Date Char Char Memo Char Char Char Char Char Char Char Char Date Char Char Char Date Char Char Char Char Date Char Char Char Char Memo Char Char Char Char Char Char Char Char Char Char Char Memo Char Char Char Char Char Char Char Char Num Num Char Char Num Char Char Char Num Memo
4 12 4 8 100
PK PK
2 1 5 4 1 12 20 4 2 8 18 4 2 18 4 3 1 18 4 20 100
PK PK PK PK PK PK PK PK PK PK
4 5 2 2 1 3 1 1 12 20 50 4 12 12 2 50 3 1 50 2 8 1 50 4 2 50 10 9
PK PK PK
PK PK
No No No No No No No No No No No No Yes Yes No No No No No No No No No No No No No No No No No No No No No No No No No No Yes Yes No No No Yes Yes No No No No No No No No No No No No No No No
18
51
Pejabat_Struktural
52
Jenis_PT
53
SD
54
55
56
SLTP
PT
Kurikulum
57
Komposisi_Kurikulum
58
Konversi_Kurikulum
59
Mata_Kuliah
Jabatan_Struktural Kode_Dosen Tanggal_SK No_SK Tanggal_Mulai_SK Tanggal_Akhir_SK Keterangan Jenis_PT Nama_Jenis_PT Kode_Sekolah Nama_SD Jenis_SD Alamat Kecamatan Kode_Pos Telepon Faximili E-mail Kode_Sekolah Nama_SLTP Jenis_SLTP Alamat Kecamatan Kode_Pos Telepon Faximili E-mail Kode_Sekolah Nama_PT Jenis_PT Alamat Kecamatan Kode_Pos Telepon Faximili E-mail Tahun_Kurikulum Jenjang_Pendidikan Program_Studi Program Tanggal_SK_Kurikulum Nomor_SK_Kurikulum Tanggal_Mulai_Berlaku SKS_Total_Minimal Tahun_Kurikulum Status_Mata_Kuliah SKS_Minimal Jenjang_Pendidikan Program_Studi Program Kode_Mata_Kuliah_Awal_1 Kode_Mata_Kuliah_Akhir_1 Tahun_Kurikulum_1 Status_Mata_Kuliah_1 Kode_Mata_Kuliah_Awal_2 Kode_Mata_Kuliah_Akhir_2 Tahun_Kurikulum_2 Status_Mata_Kuliah_2 Kode_Mata_Kuliah_Awal Kode_Mata_Kuliah_Akhir Jenjang_Pendidikan Program_Studi
Char Char Date Char Date Date Memo Char Char Char Memo Char Memo Char Char Char Char Char Char Memo Char Memo Char Char Char Char Char Char Memo Char Memo Char Char Char Char Char Char Char Char Char Date Char Date Num Char Char Num Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char
2 8
PK PK PK
50
1 20 8
PK PK
1 4 5 12 12 20 8
PK
1 4 5 12 12 20 8
PK
1 4 5 12 12 20 4 2 2 1 50 8 3 4 1 3 2 2 1 4 4 4 1 4 4 4 1 4 4 2 2
PK PK PK PK
PK PK PK PK PK PK PK PK PK
PK PK PK PK
No No No No No No No No No No No No No No No Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No Yes Yes Yes No No No No No No No No No No No No No No No No No No No No No No No No No No
19
60 61 62 63 64 65
Program _Mata_Kuliah Kelompok _Mata_Kuliah Status _Mata_Kuliah Jenis _Mata_Kuliah Bidang _Mata_Kuliah Prasyarat _Mata_Kuliah
66
Nilai
67
Ruang
68
Fasilitas
69
Kondisi_Fasilitas
70
Jadwal
71
Dosen_Mengajar
Program Nama_Mata_Kuliah Nama_Mata_Kuliah_Inggris SKS Smt Program_Mata_Kuliah Kelompok_Mata_Kuliah Status_Mata_Kuliah Jenis_Mata_Kuliah Bidang_Mata_Kuliah Tahun_Kurikulum Program_Mata_Kuliah Nama_Program_Mata_Kuliah Kelompok_Mata_Kuliah Nama_Kelompok_Mata_Kuliah Status_Mata_Kuliah Nama_Status_Mata_Kuliah Jenis_Mata_Kuliah Nama_Jenis_Mata_Kuliah Jam_Per_SKS Bidang_Mata_Kuliah Nama_Bidang_Mata_Kuliah Program_Studi Jenjang_Pendidikan Program Kode_Mata_Kuliah_Awal_Bersyarat Kode_Mata_Kuliah_Akhir_Bersyarat Tahun_Kurikulum Kode_Mata_Kuliah_Awal_Prasyarat Kode_Mata_Kuliah_Akhir_Prasyarat Nilai Mutu Predikat Ruang Kapasitas Ukuran_Luas Fasilitas Kondisi_Fasilitas Keterangan Fasilitas Nama_Fasilitas KondisiFasilitas Nama_Kondisi_Fasilitas Program_Studi Jenjang_Pendidikan Program Kode_Mata_Kuliah_Awal Kode_Mata_Kuliah_Akhir Tahun_Akademik Smt Kode_Dosen Kode_Ruang Kelas Hari Jam_Mulai Jam_Selesai Kode_Dosen Kode_Mata_Kuliah_Awal Kode_Mata_Kuliah_Akhir Tahun_Akademik Smt Program_Studi
Char Char Char Num Num Char Char Char Char Char Char Char Char Char Char Char Char Char Char Num Char Char Char Char Char Char Char Char Char Char Char Num Char Char Num Num Char Char Memo Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Time Time Char Char Char Char Char Char
1 50 50 1 1 1 1 1 1 1 4 1 20 1 50 1 50 1 20 3 1 50 2 2 1 4 4 4 8 4 1 1 15 3 3 3 2 1 2 50 1 50 2 2 1 4 4 4 1 4 3 1 1 6 6 4 4 4 4 1 2
PK
PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK
PK PK
PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No Yes Yes No No No No No No No No No No No No No No No No No No No No No No No No
20
72
Materi_Dosen _Mengajar
73
KRS
74
Presensi_Mahasiswa
75
Perolehan_Nilai _Kuliah_Teori
76
Perolehan_Nilai _Kuliah_Praktikum
Program Jenjang_Pendidikan Tanggal_SK No_SK Status_Mengajar Kode_Dosen Kode_Mata_Kuliah_Awal Kode_Mata_Kuliah_Akhir Tahun_Akademik Smt Program_Studi Program Jenjang_Pendidikan Pertemuan_ke Tanggal_Kuliah Jam_Masuk Jam_Keluar Ringkasan_Materi Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Kode_Mata_Kuliah_Awal Kode_Mata_Kuliah_Akhir Tahun_Akademik Smt Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Kode_Mata_Kuliah_Awal Kode_Mata_Kuliah_Akhir Tahun_Akademik Smt Tanggal_Kuliah_Presensi Status_Presensi Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Kode_Mata_Kuliah_Awal Kode_Mata_Kuliah_Akhir Tahun_Akademik Smt Skore_Presensi Skore_Kuis Skore_Tugas Skore_Mid Skore_UAS Nilai Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Kode_Mata_Kuliah_Awal Kode_Mata_Kuliah_Akhir Tahun_Akademik Smt
Char Char Date Char Char Char Char Char Char Char Char Char Char Char Date Time Time Memo Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Date Char Char Char Char Char Char Char Char Char Char Num Num Num Num Num Char Char Char Char Char Char Char Char Char Char
1 2 50 1 4 4 4 4 1 2 1 2 1 8 4 4 4 2 2 1 4 4 4 5 1 4 2 2 1 4 4 4 4 1 8 1 4 2 2 1 4 4 4 4 1 2:1 2:1 2:1 2:1 2:1 1 4 2 2 1 4 4 4 4 1
PK PK PK PK PK PK PK PK PK PK PK PK PK
PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK
PK PK PK PK PK PK PK PK PK
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
21
77
Batas_SKS_IPK
78
Dosen_Wali _Akademik
79
Kerja_Praktek
80
Jenis_Penelitian
81
Nilai_Kerja_Praktek
82
Periode_KKN
83 84
Komponen_Nilai_KKN _Magang Bobot_Komponen _Nilai_KKN _Magang
85
Jabatan_Panitia_KKN
Skore_Presensi Skore_Pretest Skore_Harian Skore_Tugas Skore_Responsi Nilai IPK_Min IPK_Max Minimal_SKS Maksimal_SKS Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Tahun_Akademik Smt Kode_Dosen Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Tanggal_SK No_SK Kode_Dosen Judul_KP Perusahaan Jenis_Penelitian Jenis_Penelitian Nama_Jenis_Penelitian Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Tanggal_Seminar Jumlah_Perserta_Seminar Catatan_Berita_Acara_Seminar Nilai Tahun_Akademik Periode Jumlah_Kelompok Jumlah_Dusun Jumlah_Desa Jumlah_Kecamatan Jumlah_Propinsi Jumlah_DPL Jumlah_Tim_Pendamping Batas_Min_Nilai_A Batas_Min_Nilai_B Batas_Min_Nilai_C Batas_Min_Nilai_D Komponen Nama_Komponen_Nilai_KKN Tahun_Akademik Periode Komponen Bobot_ Komponen_Nilai_KKN Tahun_Akademik Periode Jabatan_Panitia_KKN
Num Num Num Num Num Char Num Num Num Num Char Char Char Char Char Char Char Char Char Char Char Char Char Date Char Memo Memo Char Char Char Char Char Char Char Char Char Date Num Memo Char Char Char Num Num Num Num Num Num Num Num Num Num Num Char Char Char Char Char Num Char Char Char
2:1 2:1 2:1 2:1 2:1 1 1:2 1:2 2 2 4 2 2 1 4 4 1 4 4 2 2 1 4 50 4 2 2 20 4 2 2 1 4
PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK
PK PK PK PK PK PK
2 1 4 1 3 3 2 2 2 3 3 3:2 3:2 3:2 3:2 2 50 4 1 2 2:2 4 1 2
PK PK
PK PK PK PK PK PK PK
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
22
86
Jabatan_Panitia _KKN _Dosen
87
Jabatan_Mahasiswa _KKN
88
Kelompok_KKN
89
Peserta_KKN
90
Nilai_Peserta_KKN
91
Peserta_KKN_Magang
92
Perusahaan
93
Jenis_Perusahaan
94
Nilai_Peserta_KKN _Magang
Nama_Jabatan_Panitia Tahun_Akademik Periode Kode_Dosen Jabatan_Panitia_KKN Tahun_Akademik Periode Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Jabatan_Panitia_KKN Tahun_Akademik Periode Kelompok Dusun Desa Kecamatan Kode_Dosen Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Tahun_Akademik Periode Kelompok Kode_Dosen Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Komponen Skore Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Perusahaan Nomor_SK Tanggal_SK Tanggal_Mulai Tanggal_Akhir Kode_Dosen Nama_Pembimbing_Lapangan Perusahaan Nama_Perusahaan Jenis_Perusahaan Alamat Kecamatan Kode_Pos Telepon Faximili E-mail Contact_Person Jenis_Perusahaan Nama_Jenis_Perusahaan Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM
Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Num Char Num Char Char Char Char Char Char Char Date Date Date Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char
50 4 1 4 2 4 1 4 2 2 1 4 2 4 1 3 50 50 4 4 4 2 2 1 4 4 1 3 4 2 2 1 4 2 3 4 2 2 1 4 4 50
4 50 4 50 1 4 4 5 12 12 2 50 1 50 4 2 2
PK PK PK PK PK PK PK PK PK PK PK PK PK
PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK PK
PK
PK PK PK PK
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
23
95
96
97
98
TA_S1
Pembimbing_TA
Nilai_TA_S1
Yudisium_Lulus _Mahasiswa
99
Predikat_Lulus
100
Wisuda
101
Alumni
Program_NIM Nomor_NIM Komponen Skore Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM No_SK_TA Tanggal_SK_TA Judul_TA Judul_TA_Inggris Jenis_Penelitian Perusahaan Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM No_SK_TA Tanggal_SK_TA Pembimbing_Ke Kode_Dosen Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Nomor_Berita_Acara Tanggal_Pendadaran Penguji_ke Kode_Dosen Skore_Dosen Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Tanggal_Yudisium Nomor_Berita_Acara Lama_Masa_Studi IPK SKS Predikat_Lulus Predikat_Lulus Nama_Predikat_Lulus IPK_Min Masa_Studi_Smt_Max Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Tanggal_Wisuda Tahun_NIM Jenjang_Pendidikan_NIM Program_Studi_NIM Program_NIM Nomor_NIM Nomor_Anggota_Alumni Alamat_Tinggal
Char Char Char Num Char Char Char Char Char Char Date Memo Memo Char Char Char Char Char Char Char Char Date Char Char Char Char Char Char Char Char Date Char Char Num Char Char Char Char Char Date Char Num Num Num Char Char Char Num Num Char Char Char Char Char Date Char Char Char Char Char Char Char
1 4 2 3 4 2 2 1 4 20
2 4 4 2 2 1 4 20 1 4 4 2 2 1 4 25 1 4 3 4 2 2 1 4 20 2 1:2 3 20 20 16 1:2 1 4 2 2 1 4 4 2 2 1 4 10 50
PK PK PK PK PK PK PK PK
PK PK PK PK PK
PK PK PK PK PK
PK PK PK PK PK
PK
PK PK PK PK PK PK PK PK PK PK
No No No No No No No No No No No No No No Yes No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
24
102
103
Sejarah_Kerja_Alumni
Jabatan_Alumni _Di_Perusahaan
Kecamatan Kode_Pos Telepon Faximili E_mail Nomor_Anggota_Alumni Perusahaan Tanggal_Mulai_Kerja Level_Jabatan_Kerja Gaji Level_Jabatan_Kerja Nama_Level_Jabatan_Kerja
Char Char Char Char Char Char Char Date Char Num Char Char
4 5 12 20 20 10 8 1 8 1 50
PK PK
No No Yes Yes Yes No No No No No No No
25
1
BAB VIII STUDI KASUS INVENTORY o Is a part of Manufacturing Information Systems o Reorder Point (ROP) Systems: o Key Terms Æ Reorder point, stockout, lead time, safety stock o Still used by many firms Æ Well suited to retail inventories o Ex: ROP With No Safety Stock and With a Safety Stock
Dasar: 1. Importance of determining the inventory level 2. Maintenance cost (carrying costs) 3. Purchasing costs 4. Economic Order Quantity (EOQ) 5. Economic manufacturing quantity (EMQ) Akses: ⇒ Jaringan lokal ⇒ Jaringan global ⇒ Mobile
2
Ex:
SUB SISTEM DALAM SIP 1. Sub Sistem Informasi Pengadaan Berfungsi utk mengolah data barang masuk: Æ Pemesanan Æ Penerimaan Æ Return Penerimaan 2. Sub Sistem Informasi Pengeluaran Berfungsi utk mengolah data barang keluar Æ Pemesanan Æ Pengeluaran Æ Return Pengeluaran
USER DALAM SIP User dalam SIP, diklompokkan menjadi 3, yaitu: 1. User tingkat tertinggi (perencanan strategis) 2. User tingkat menengah (perencanaan taktis & pengendalian manajemen) 3. User tingkat terendah (perencanaan & pengendalian operasional) User di luar struktur organisasi (individu atau institusi): 1. Investor 2. Pemerintah 3. Pemasok 4. Pembeli
3
MODUL PENDUKUNG 1. Utility : o Setting Sistem Aplikasi (Waktu, Nilai-Nilai Tetapan) o Manajemen User (User Name-Password) o Keamanan Database (Bacup-Restore) o Optimasi (Reindex) 2. Help o Content o Index o Glosary
INPUT SIP 1. Barang 2. Pemasok 3. Pelanggan 4. Pegawai 5. Kelompok 6. Jenis 7. Kecamatan 8. Kabupaten 9. Propinsi 10. Waktu_Beaya_Pesan_ke_Pemasok 11. Waktu_Beaya_Pesan_dari_Pelanggan
TRANSAKSI SIP: 1. 2. 3. 4. 5. 6.
Pesan_ke_Pemasok Pesan_dari_Pelanggan Kiriman_dari_Pemasok Kirim_ke_Pelanggan Retur_ke_Pemasok Retur_dari_Pelanggan
OUTPUT SIP 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Daftar Barang Keseluruhan Daftar Barang Berdasarkan Jenis Daftar Barang Berdasarkan Kelompok Daftar Pemasok Keseluruhan Daftar Pemasok Berdasarkan Propinsi Daftar Pemasok Berdasarkan Kabupaten Daftar Pemasok Berdasarkan Pasokan Barang Daftar Pelanggan Keseluruhan Daftar Pelanggan Berdasarkan Propinsi Daftar Pelanggan Berdasarkan Kabupaten Daftar Waktu-Beaya Pesan ke Pemasok Daftar Waktu-Beaya Pesan dari Pelanggan Daftar Pesanan ke Pemasok Keseluruhan Daftar Pesanan ke Pemasok Berdasarkan Periode Tanggal Rekapitulasi Pesanan ke Pemasok
4
16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
Daftar Pesanan dari Pelanggan Keseluruhan Daftar Pesanan dari Pelanggan Berdasarkan Periode Tanggal Rekapitulasi Pesanan dari Pelanggan Daftar Kiriman Barang dari Pemasok Keseluruhan Daftar Kiriman Barang dari Pemasok Berdasarkan Periode Tanggal Rekapitulasi Kiriman Barang dari Pemasok Daftar Kiriman Barang ke Pelanggan Keseluruhan Daftar Kiriman Barang ke Pelanggan Berdasarkan Periode Tanggal Rekapitulasi Kiriman Barang ke Pelanggan Daftar Retur Barang ke Pemasok Keseluruhan Daftar Retur Barang ke Pemasok Berdasarkan Periode Tanggal Daftar Retur Barang dari Pelanggan Keseluruhan Daftar Retur Barang dari Pelanggan Berdasarkan Periode Tanggal Daftar Stok Barang Keseluruhan Daftar Stok Barang Berdasarkan Periode Tanggal Daftar Stok Barang Berdasarkan Jenis Barang Daftar Stok Barang Berdasarkan Kelompok Barang Rekapitulasi Stok Barang Daftar Barang Stok Minimal
KERANGKA RANCANGAN STRUKTUR TABEL DB SIP Asumsi: o Transaksi selalu diawali lewat pemesanan o Barang disuplai dari pemasok o Barang dijual khusus ke pelanggan No Nama Tabel 1 Barang
2
Pemasok
Nama Atribut Nomor_Barang Kelompok Jenis Merk Warna Ukuran Satuan Harga Nama_Barang Stok_Minimal Stok_Maksimal Keterangan Nomor_Pemasok Nama_Pemasok Alamat Kecamatan Telepon Faximili Email Kode_Pos Contact_Person Keterangan
Tipe Ukuran Key Null? Num 6 PK No Char 2 FK No Char 2 FK No Char 20 No Char 2 No Memo No Char 10 No Num 8 No Char 20 No Num 6 No Num 6 No Memo Yes Num 4 PK No Char 100 No Char 100 No Char 4 FK No Char 10 Yes Char 10 Yes Char 20 Yes Char 5 No Char 100 No Memo Yes
5 3
4
5 6 7 8 9 10
11
12
13
Pelanggan
Nomor_Pelanggan Nama_Pelanggan Alamat Kecamatan Telepon Faximili Email Kode_Pos Contact_Person Keterangan Pegawai Nomor_Pegawai Nama_Pegawai Alamat Kecamatan Telepon Faximili Email Kode_Pos Kelompok Kelompok Nama_Kelompok Jenis Jenis Nama_Jenis Kecamatan Kecamatan Nama_Kecamatan Kabupaten Kabupaten Kabupaten Nama_ Kabupaten Propinsi Propinsi Propinsi Nama_Propinsi Waktu_Beaya_Pesan_ke_Pemasok Nomor_Barang Nomor_Pemasok Lama_Waktu_Pesanan Beaya Waktu_Beaya_Pesan_dari_Pelanggan Nomor_Barang Nomor_Pelanggan Lama_Waktu_Pesanan Beaya Pesan_ke_Pemasok Nomor_Pesan Tgl_Pesan Nomor_Barang Harga Jumlah Nomor_Pegawai Keterangan Pesan_dari_Pelanggan Nomor_Pesan Tgl_Pesan Nomor_Barang Harga Jumlah Nomor_Pegawai
Num Char Char Char Char Char Char Char Char Memo Num Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Char Num Num
4 100 100 4 10 10 20 5 100
PK
4 100 100 4 10 10 20 5 2 20 2 20 4 100 4 4 100 4 4 100 6 4
PK
PK PK
Num Num Num
8 6 4
PK PK
Num Num Date Num Num Num Num Memo Num Date Num Num Num Num
8 6
PK
FK
FK
PK PK PK FK PK FK PK
6 8 6 4
FK FK
6
PK
6 8 6 4
FK FK
No No No No Yes Yes Yes No No Yes No No No No Yes Yes Yes No No No No No No No No No No No No No No No No No No No No No No No No No No No Yes No No No No No No
6 14
15
16
17
18
Kiriman_dari_Pemasok
Kirim_ke_Pelanggan
Retur_ke_Pemasok
Retur_dari_Pelanggan
Stok_Barang
Keterangan Nomor_Pesan Tgl_Kirim Nomor_Pegawai Armada Keterangan Nomor_Pesan Tgl_Kirim Armada Nomor_Pegawai Keterangan Nomor_Pesan Tgl_Pesan Nomor_Barang Jumlah Nomor_Pegawai Kondisi_Barang Keterangan Nomor_Pesan Tgl_Pesan Nomor_Barang Jumlah Nomor_Pegawai Kondisi_Barang Keterangan Nomor_Barang Tgl_Stok Jumlah Harga Keterangan
Memo Num Date Num Memo Memo Num Date Memo Num Memo Num Date Num Num Num Logic Memo Num Date Num Num Num Logic Memo Num Date Num Num Memo
6
PK
4
FK
6
PK
4 6
PK
6 6 4 1
FK
6
PK
6 6 4 1
FK
6
PK
Yes No No No No Yes No No No No Yes No No No No No No Yes No No No No No No Yes No No
6 8 Yes
1
BAB IX Visual Foxpro 7.1. Pendahuluan FoxPro merupakan sebuah DBMS yang membantu dalam mengumpulkan, mengambil, dan menampilkan data. Sedangkan Visual FoxPro merupakan bahasa pemrograman visual yang berorientasi pada obyk dan sekalgus juga sebagai RDMS. Tampilan pertama kali untuk Visual Foxpro 6.0 adalah sebagai berikut:
Gambar 7.1: Tampilan awal Visual Foxpro Pada Gambar 7.1. akan diminta untuk memilih beberapa alternatif pilihan sebelum memasuki jendela pemrograman, yaitu: o Open the new component gallery to organize your Visual FoxProi, untuk mengorganisasi komponen visual FozPro dengan membuka galeri komponen baru. o Discover programming solutions by exploring sample applications, untuk menemukan solusi pemrograman dengan menjelajahi aplikasi-aplikasi contoh yang sudah disediakan. o Create a new application, untuk membuat aplikasi baru o Open an existing project, untuk membuka proyek yang telah dibuat sebelumnya (yang sudah ada). o Close this screen, untuk menutup jendela / tampilan selamat datang. Di bawah pilihan-pilihan tersebut terdapat kotak cek (check box) yang berbunyi Don’t display this welcome screen again. Jika di-klik (memberi tanda centang) pada kotak cek tersebut maka berarti memerintahkan Visual FoxPro 6.0 agar tidak membuka Visual Foxpro untuk yang selanjutnya. Setelah ditutup jendela tersebut, selanjutnya akan muncul tampilan utama dari Visual Foxpro.
2
7.2. Membuat Project / Aplikasi Pada tampilan utama Visual FoxPro pilih menu File-New, maka akan muncul tampilan seperti Gambar 7.2.
Gambar 7.2.: Tampilan utama Visual Foxpro Dari menu dalam tampilan utama tersebut, pilih Option Project dan klik tombol New File. Dari kotak dialog yang akan muncul, tentukan letak dimana file project akan disimpan, kemudian tekan Save. Selanjutnya akan muncul tampilan seperti Gambar 7.3.
Gambar 7.3: Tampilan untuk menentukan lokasi penyimpanan sebuah Project 7.3. Membuat Form Pengisian Data Bagian ini akan mengetengahkan 3 macam cara pembuatan form pengisian data. Materi ini sengaja disajikan secara bersama supaya dapat dipertimbangkan persamaan dan perbedaan dari masing-masing cara, serta kelebihan dan
3
kekurangnnya. Bagian ini akan mengambil contoh pengisian data Mahasiswa, yaitu: Nomor mahasiwa Nama mahasiswa Tanggal lahir mahasiswa Cara yang bias dipilih adalah: 1. Form dengan metode lama (seperti sering dilakukan pada masa DBASE III plus, tidak direkomendasikan) 2. Form dengan menggunakan fasilitas buffering pada Visual Foxpro 3. Form dengan fasilitas transaksi (direkomendasikan) PERSIAPAN : Buatlah tabel MAHASISWA yang akan diisi data lewat form Buatlah tabel dengan struktur seperti pada Gambar 7.4, kemudian simpanlah dengan nama MAHASISWA.DBF
Gambar 7.4: Membuat struktur tabel
MEMBUAT FORM Ada beberapa metode yang dapat ditempuh untuk form isian data :
1. Dengan menggunakan variabel memori. Data-data isian dilayar ditampung dalam variabel kemudian disimpan ke tabel dengan printah REPLACE. Cara ini sudah tergolong lama dan tidak ditunjukkan di modul ini (sudah tidak direkomendasikan untuk dipakai). 2. dengan menggunakan tabel buffering. Buffering sistem kerjanya dapat dianggap CACHE pada sistem komputer. Data-data isian dilayar ditampung dalam BUFFER (yang ditangani secara internal oleh foxpro) kemudian dengan peringah tertentu (TABLEUPDATE) akan menulis data di BUFFER ke disk, atau dengan perintah tertentu (TABLEEVERT) akan
4
membatalkan perubahan di BUFFER tersebut (tidak ditulis ke disk). Teknik ini lumayan baru tidak merepotkan. 3. dengan menggunakan TRANSAKSI. Sistem kerja TRANSAKSI mirip dengan sistem kerja Buffering, tetapi lebih besar dan lebih menyeluruh (bisa banyak tabel, banyak record0. semua perubahan data TAMBAH, HAPUS, UBAH yang dilingkupi dalam satu transaksi akan ditulis secara permanen ke disk seteleh ada perintah (END TRANSACTION), dan akan dibatalkan jika ada perintah ROLLBACK. Transaksi sendiri harus diawali dengan suatu perintah BEGIN TRANSACTION. Teknik ini yang direkomendasikan untuk dipakai karena handal. LANGKAH WAJIB UNTUK FORM ISIAN DATA Ada beberapa langkah /aturan yang harus dilewatkan saat membuat form isian data : 1. Data environment harus diisi dengna tabel yang akan dipakai sebagai tabel kerja. Kesalahan dalam langkah ini berakibat fatal (data tidak tidak masuk tabel). 2. Binding harus dilakukan terhadap semua kolom tabel (field) yang ingin diisi. Jika hal ini terlewat, juga berakibat fatal (data tidak masuk tabel). 3. penyimpanan harus memuat perintah untuk menyimpan data (tergantung metode yang dipakai) dan pembatalan juga harus memuat perintah untuk membatalkan. CONTOH I : FORM DENGAN BUFFERING 1. Buat form baru, simpan dengan nama MAHASISWA.SCX (ditempatkan di FOLDER yang sama dengan tabel MAHASISWA.DBF). 2. Buka data environment, lalu tambahkan tabel MAHASISWA tersebut ke dalam data environment. 3. Tentukan properti BufferModeOverWrite. Isi dengan salah satu mode bufffering yang ada (boleh optimistic/pessimistic, asal bukan NONE). Setelah itu tutup data enviroment.
5
4. Tempatkan kontrol-kontrol dilayar form seperti LABEL untuk keterangan, TEXTBOX untuk isian, tombol-tombol kendali. Layout form bisa seperti gambar di bawah ini :
5. Ubah properti dari masing-masing obyek kontrol data form tersebut sesuai dengan tabel berikut :
Obyek Tombol Tambah Tombol Simpan
Properti yang diubah Caption Name Caption Name
Nilai Properti Tambah BtnTambah Simpan BtnSimpan
6
Tombol Batal Tombol Edit Tombol |< Tombol < Tombol > Tombol >| Tombol Hapus Tombol Keluar
Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name
Batal BtnBatal Edit BtnEdit |< BtnTeratas < BtnSebelumnya > BtnBerikutnya >| BtnTerakhir Hapus BtnHapus Keluar BtnKeluar
6. Lakukan BINDING terhadap kotak-kotak isian di layar dengan kolomkolom tabel. Binding dilakukan dengan menggunakan properti CONTROL SOURCE dari kotak-kotak isian (TEXTBOX), jangan sampai ada yang terlewat. Kotak Isian Text1 Text2 Text3
Control Source MAHASIWA.NO_MHS MAHASISWA.NAMA_MAHASIWA MAHASIWA.TGL_LAHIR
7. Langkah berikutnya adalah mulai menuliskan kode-kode. Klik ganda pada kontrol yang ingin diberi kode, yang akan memunculkan jendala kode. Hal terpenting yang harus dicermati adalah kode tersebut menempel pada objek yang tepat dan pada event yang tepat. Obyek Event Kode SET DELETE ON Form Init SET DATE BRITISH THISFORM.SETALL(“ENABLED”, .F.,”TEXTBOX”) THISFORM.SETALL(“ENABLED”, .T.,”TEXTBOX”) THISFORM.BtnSIMPAN.ENABLED = .F. THISFORM.BtnBATAL.ENABLED = .F.
7
KETERANGAN
Event INIT terjadi sesaat setelah suatu obyek tercipta, hanya terjadi sekali saat obyek dimuat ke memori. Kode di atas hanyalah sekedar melakukan inisialisasi berikut : - Atur agar record bertanda hapus tidak ditampilkan - Atur tanggal ke gaya Inggris, yaitu hari-bulan-tahun (bukan gaya Amerika) - Atur semua kotak isian (TEXTBOX) ke posisi tak aktif. Skenarionya kotak isian hanya aktif pada modus penambahan data/pengeditan data. - Tombol-tombol yang aktif pertama kali saat form muncul adalah semua tombol kecuali simpan dan batal. Skenarionya adalah tombol simpan dan batal hanya aktif setelah ada penambahan record baru atau pengeditan record.
BtnTambah
Click
SELECT MAHASISWA APPEND BLANK THISFORM.SETALL(“ENABLED”,.T.,”TEXTBOX”) THISFORM.SETALL(“ENABLED”,.F.,”COMMANDBUTTON”) THISFORM.BtnSIMPAN.ENABLED = .T. THISFORM.BtnBATAL.ENABLED = .T. THISFORM.REFRESH()
KETERANGAN - APPEND BLANK akan menambah 1 record baru ke tabel MAHASIWA - Aktifkan kotak-kotak isian - Non-aktifkan tombol-tombol, kecuali SIMPAN dan BATAL (skenarionya pada penambahan data, hal yang bisa dilakukan adalah menyimpan atau membatalkan)
BtnSimpan
Click
SELECT MAHASISWA = TABELUPDATE(.T.) THISFORM.SETALL(“ENABLED”,.F.,”TEXTBOX”) THISFORM.SETALL(“ENABLED”,.T.,”COMMANDBUTTON”) THISFORM.BtnSIMPAN.ENABLED = .F. THISFORM.BtnBATAL.ENABLED = .F. THISFORM.REFRESH()
KETERANGAN - TABLE UPDATE akan menulis data di BUFFER ke disk/file - Non-aktifkan kotak-kotak isian (setelah disimpan skenarionya kembali ke modus biasa) - Aktifkan tombol-tombol, kecuali tombol SIMPAN dan BATAL Click SELECT MAHASISWA BtnBATAL = TABELEVERT(.T.) THISFORM.SETALL(“ENABLED”,.F.,”TEXTBOX”) THISFORM.SETALL(“ENABLED”,.T.,”COMMANDBUTTON”) THISFORM.BtnSIMPAN.ENABLED = .F. THISFORM.BtnBATAL.ENABLED = .F. THISFORM.REFRESH()
KETERANGAN - TABLE EVERT akan membatalkan perubahan data di BUFFER (tidak ditulis ke disk/file). - Non-aktifkan kotak-kotak isian (setelah disimpan skenarionya kembali ke modus biasa). - Aktifkan tombol-tombol, kecuali tombol SIMPAN dan BATAL Click THISFORM.SETALL(“ENABLED”,.T.,”TEXTBOX”) BtnEDIT THISFORM.SETALL(“ENABLED”,.F.,”COMMANDBUTTON”) THISFORM.BtnSIMPAN.ENABLED = .T.
8
THISFORM.BtnBATAL.ENABLED = .T. THISFORM.REFRESH()
KETERANGAN - Aktifkan kotak-kotak isian, agar bisa di EDIT data - Non-aktifkan tombol-tombol, kecuali SIMPAN dan BATAL (skenarionya pada pengeditan data, hal yang bisa dilakukan adalah menyimpan atau membatalkan BtnTERATAS Click SELECT MAHASISWA BtnSEBELUMNYA
Click
BtnBerikutnya
Click
BtnTERAKHIR
Click
BtnHAPUS
Click
BtnKELUAR
Click
GO TOP THISFORM.REFRESH SELECT MAHASISWA IF NOT BOF () SKIP –1 ELSE MESSAGEBOX (“Sudah diposisi teratas”,48,”INFO”) END IF THISFORM.REFRESH SELECT MAHASISWA IF NOT BOF () SKIP 1 ELSE MESSAGEBOX (“Sudah diposisi terbawah”,48,”INFO”) END IF THISFORM.REFRESH SELECT MAHASISWA GO BOTTOM THISFORM.REFRESH SELECT MAHASIWA IF NOT EOF () DELETE SKIP-1 ELSE MESSAGEBOX (”Posisikan dulu recordnya”,32+0,”INFO”) END IF THISFORM.REFRESH THISFORM.RELEASE
CONTOH 2: FORM DENGAN TRANSACTION Fasilitas transaction hanya bisa didapat pada tabel yang merupakan bagian dari database. Free-tabel tidak bisa memanfaatkan transaction. Untuk keperluan ini, harus terlebih dahulu dibuat database, lalu tambahkan tabel mahasiswa yang telah dibuat di atas ke dalamnya
1. Buat form baru, simpan dengan nama MAHASISWA.SCX (ditempatkan di FOLDER yang sama dengan tabel MAHASISWA.DBF). 2. Buka data environment, lalu tambahkan tabel MAHASISWA tersebut ke dalam data environment. 3. Non-aktifkan/matikan buffering pada tabel(properti BefferModeOverWrite diisi NONE).
9
4. Tempatkan kontrol-kontrol dilayar form seperti LABEL untuk keterangan, TEXTBOX untuk isian, tombol-tombol kendali. Layout form bisa seperti gambar di bawah ini:
5. Ubah properti dari masing-masing obyek kontrol data form tersebut sesuai dengan tabel berikut : Obyek Tombol Tambah Tombol Simpan Tombol Batal Tombol Edit Tombol |< Tombol < Tombol > Tombol >| Tombol Hapus Tombol Keluar
Properti yang diubah Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name Caption Name
Nilai Properti Tambah BtnTambah Simpan BtnSimpan Batal BtnBatal Edit BtnEdit |< BtnTeratas < BtnSebelumnya > BtnBerikutnya >| BtnTerakhir Hapus BtnHapus Keluar BtnKeluar
6. Lakukan BINDING terhadap kotak-kotak isian di layar dengan kolomkolom tabel. Binding dilakukan dengan menggunakan properti CONTROL SOURCE dari kotak-kotak isian (TEXTBOX), jangan sampai ada yang terlewat. Kotak Isian
Control Source
10
Text1 Text2 Text3
MAHASIWA.NO_MHS MAHASISWA.NAMA_MAHASIWA MAHASIWA.TGL_LAHIR
7. Langkah berikutnya adalah mulai menuliskan kode-kode. Klik ganda pada kontrol yang ingin diberi kode, yang akan memunculkan jendala kode. Hal terpenting yang harus dicermati adalah kode tersebut menempel pada objek yang tepat dan pada event yang tepat. Obyek Form
Event Init
Kode SET DELETE ON SET DATE BRITISH THISFORM.SETALL(“ENABLED”, .F.,”TEXTBOX”) THISFORM.SETALL(“ENABLED”, .T.,”TEXTBOX”) THISFORM.BtnSIMPAN.ENABLED = .F. THISFORM.BtnBATAL.ENABLED = .F.
KETERANGAN
Event INIT terjadi sesaat setelah suatu obyek tercipta, hanya terjadi sekali saat obyek dimuat ke memori. Kode di atas hanyalah sekedar melakukan inisialisasi berikut : - Atur agar record bertanda hapus tidak ditampilkan - Atur tanggal ke gaya Inggris, yaitu hari-bulan-tahun (bukan gaya Amerika) - Atur semua kotak isian (TEXTBOX) ke posisi tak aktif. Skenarionya kotak isian hanya aktif pada modus penambahan data/pengeditan data. - Tombol-tombol yang aktif pertama kali saat form muncul adalah semua tombol kecuali simpan dan batal. Skenarionya adalah tombol simpan dan batal hanya aktif setelah ada penambahan record baru atau pengeditan record.
BtnTambah
Click
BEGIN TRANSACTION SELECT MAHASISWA APPEND BLANK THISFORM.SETALL(“ENABLED”,.T.,”TEXTBOX”) THISFORM.SETALL(“ENABLED”,.F.,”COMMANDBUTTON” ) THISFORM.BtnSIMPAN.ENABLED = .T. THISFORM.BtnBATAL.ENABLED = .T. THISFORM.REFRESH()
KETERANGAN - BEGIN TRANSACTION akan mengalami transaksi - APPEND BLANK akan menambah 1 record baru ke tabel MAHASIWA - Aktifkan kotak-kotak isian - Non-aktifkan tombol-tombol, kecuali SIMPAN dan BATAL (skenarionya pada penambahan data, hal yang bisa dilakukan adalah menyimpan atau membatalkan)
BtnSimpan
Click
END TRANSACTION THISFORM.SETALL(“ENABLED”,.F.,”TEXTBOX”) THISFORM.SETALL(“ENABLED”,.T.,”COMMANDBUTTON”) THISFORM.BtnSIMPAN.ENABLED = .F. THISFORM.BtnBATAL.ENABLED = .F. THISFORM.REFRESH()
11
KETERANGAN - END TRANSACTION akan menulis semua perubahan data ke disk/file. Ini dilakukan terhadap semua tabel yang ada di database (bisa banyak tabel) yang dilingkupi transaksi. - Non-aktifkan kotak-kotak isian (setelah disimpan skenarionya kembali ke modus biasa) - Aktifkan tombol-tombol, kecuali tombol SIMPAN dan BATAL
BtnBATAL
Click
ROLLBACK THISFORM.SETALL(“ENABLED”,.F.,”TEXTBOX”) THISFORM.SETALL(“ENABLED”,.T.,”COMMANDBUTTON”) THISFORM.BtnSIMPAN.ENABLED = .F. THISFORM.BtnBATAL.ENABLED = .F. THISFORM.REFRESH()
KETERANGAN - ROLLBACK akan membatalkan smua perubahan data dilingkup transaksi - Non-aktifkan kotak-kotak isian (setelah disimpan skenarionya kembali ke modus biasa). - Aktifkan tombol-tombol, kecuali tombol SIMPAN dan BATAL
BtnEDIT
Click
THISFORM.SETALL(“ENABLED”,.T.,”TEXTBOX”) THISFORM.SETALL(“ENABLED”,.F.,”COMMANDBUTTON”) THISFORM.BtnSIMPAN.ENABLED = .T. THISFORM.BtnBATAL.ENABLED = .T. THISFORM.REFRESH()
KETERANGAN - Aktifkan kotak-kotak isian, agar bisa di EDIT data - Non-aktifkan tombol-tombol, kecuali SIMPAN dan BATAL (skenarionya pada pengeditan data, hal yang bisa dilakukan adalah menyimpan atau membatalkan BtnTERATAS
Click
BtnSEBELUM NYA
Click
BtnBerikutnya
Click
BtnTERAKHIR
Click
BtnHAPUS
Click
SELECT MAHASISWA GO TOP THISFORM.REFRESH SELECT MAHASISWA IF NOT BOF () SKIP –1 ELSE MESSAGEBOX (“Sudah diposisi teratas”,48,”INFO”) END IF THISFORM.REFRESH SELECT MAHASISWA IF NOT BOF () SKIP 1 ELSE MESSAGEBOX (“Sudah diposisi terbawah”,48,”INFO”) END IF THISFORM.REFRESH SELECT MAHASISWA GO BOTTOM THISFORM.REFRESH SELECT MAHASIWA IF NOT EOF () DELETE
12
SKIP-1 ELSE
BtnKELUAR
Click
MESSAGEBOX (”Posisikan dulu recordnya”,32+0,”INFO”) END IF THISFORM.REFRESH THISFORM.RELEASE
CATATAN : - TRANSAKSI bisa melibatkan banyak tabel, banyak record - TRANSAKSI lebih handal dibanding BUFFERING terutama untuk aplikasi banyak tabel - Jika menggunakan TRANSAKSI, maka BUFFERING tidak perlu diaktifkan. - TRANSAKSI selalu diawali dengan BEGIN TRANSACTION BEGIN TRANSACTION END TRANSACTION Atau BEGIN TRANSACTION ROLLBACK - BUFFERING selalu diakhiri dengan TABLEUPDATE / TABELEVERT
MODUL III
13
PENCARIAN DATA TERINDEKS
I. Modul ini akan melanjutkan modul sebelumnya, dimana akan dibahas penggunaan perintah INDEXSEEK untuk melakukan pencarian dan validasi data masukan.
Pada Visual Foxpro versi 3 atau 5, perintah INDEXSEEK belum ada (yang ada adalah SEEX) sehingga form dengna metode buffering kurang disukai karena harus membuka dua tabel yang sama (di area yang berbeda) agar ini dilakukan. Hal ini disebabkan karena pergerakan record pada posisi beffering aktif akan menyebabkan data yang sedang diketik otomatis tersimpan, padahal belum tentu pengguna berkehendak menyimpannya. Pada versi 6 atau yang lebih baru, hal ini tidak diperlukan lagi sehingga form dengan buffering / transaksi tidak menemui kendala tersebut. Perintah INDEXSEEK mempunyai spesifikasi sebagai berikut : - Tabel yang akan dicari harus punya index - Index tersebut harus aktif (bisa diatur lewat properti). - Jika perintah INDEXSEEK diberi parameter FALSE (.F.), record tidak bergerak dari posisi semula meski ditemukan kondisi data yang dicari. Ini cocok untuk pengecekan duplikasi data atau referensi data, misal : Ex1: Untuk Cek Duplikasi Data && diandaikan jika masukan nomor Mahasiswa tidak boleh dobel SELECT MAHASISWA INDEXSEEK (THISFORM.TxtNoMhs.VALUE,.F.) IF FOUND = MESSAGEBOX (“No_Mhs tersebut telah terpakai”) RETURN .F. ELSE RETURN .T. END IF
Ex1: Untuk Cek Referensi Data && diandaikan ada isian kode pos pada tabel mahasiswa dan isian kode && pos tersebut diperjanjikan harus valid (ada ditabel KODE_POS) SELECT KODE_POS INDEXSEEK (THISFORM.TxtKdPos.VALUE,.F.) IF Not FOUND ( ) = MESSAGEBOX (“Kode Pos tersebut belum terdefinisi”) Return .F. Else Return .T.
14
Endif
-
Jika perintah INDEXSEEK diberi parameter TRUE (.T.) record bergerak ke posisi yang ditemukan (jika ketemu) atau ke EOF (jika tidak ketemu). Ini biasa dipakai pada proses pencarian data.
PERSIAPAN : Tabel Mahasiswa harus diberik Index
Modifikasi tabel mahasiswa dengan menambahkan index berikut : - Kunci index : NO_MHS - Tipe : REGULER - Tag : Urut_Nomhs
MODIFIKASI FORM : Pada contoh ini akan ditunjukkan proses cek duplikasi nomor mahasiswa. Kode yang harus ditambahkan adalah pada event VALID dari kotak isian noor mahasiswa. Pada event VALID, perintah RETURN .T. digunakan untuk mengindikasikan bahwa validasi sukses / valid dan RETURN .F. jika validasi gagal / invalid.
15
Langkah- langkah : 1. Buka form pada modul sebelumnya. 2. Buka data enviroment dari form tersebut, dan pastikan bahwa properti ORDER dari tabel mahasiwa di set ke URUT_NOMHS (nama tag yang dibuat saat memberi index). 3. ketik kode berikut pada event VALID dari kotak isian nomor mahasiwa (TxtNoMhs). && diandaikan nomor mahasiswa tidak boleh dobel SELECT MAHASISWA INDEXSEEK (THISFORM.TxtNoMhs.Value,.F.) IF FOUND = MESSAGEBOX (“No_MHS tersebut telah terpakai”) RETURN .F. ELSE RETURN .T. ENDIF
Atau jika lebar kotak isian nomor mahasiswa berbeda dengan lebar kolom pada tabel maka dapat dicoba memberikan perintah ALLTRIM (Thisform. TxtNoMhs. Vlue) yang akan menghilangkan spasi di akhir/ awal isian.
MODUL IV PENGGUNAAN GRID
16
Pada modul ini akan ditunjukkan penggunaan GRID. Obyek ini digunakan untuk menampilkan data dalam bentuk baris dan kolom. GRID mempunyai hirarkhi sebagai berikut : GRID Kolom 1
Header
Control Kolom 2 Header
Control Kolom ke-N Header Control Masing- masing obyek dalam hirarki tersebut mempunyai properti dan methode sendiri- sendiri, sehingga kita dapat mengontrol secara penuh setiap elemen pada grid. Bagian 1 : GRID untuk pemasukan data secara langsung. 1. Pada tutorial ini akan digunakan kembali tabel MAHASISWA da tabel JURUSA . Diasumsikan pula bahwa kedua tabel ini sudah beris beberapa data di dalamnya.
2. Buat FORM di dalam layoat seperti pada gambar di bawah ini :
17
3. Atur data environment dari form tersebut, tambahkan tabel Mahasiswa dan JURUSAN ke dalamnya. Jangan lupa aktifkan pada TAG untuk masingmasing tabel tersebut. 4. Atur properti untuk masing- masing obyek sebagai berikut Obyek Grid
Properti Allow AddNew
DeleteMark
RecordSourceType
RecordSource
ColusmnCount
Kolom ke-1
Name ControlSource
Kolom ke-2
Name ControlSource Name ControlSource Mame ControlSource Name ControlSource Caption
Kolom ke-3 Kolom ke-4 Kolom ke-5 Header kolom ke-1 Header kolom ke-2 Header kolom ke-3 Header
Nilai .T. Nilai TRUE pada properti ini berarti kita bisa menambahkan record baru dengan cara menekan tombol panah bawah pada saat posisi kursor ada di posisi terakhir. Selanjutnya data dapat diketik langsung pada GRID .T. Nilai TRUE pada properti ini berarti tanda hapus untuk tiap record tampil di GRID. Penghapusan record data dapat dilakukan dengan mengklik pada DeleteMark ini. 1 (Alias) Properti ini menentukan jenis sumber data untuk GRID. MAHASISWA Properti ini menetukan darimana sumber data diambil (pada kasus ini dari tabel mahasiswa). 5 Properti ini menentukan cacah kolom dimiliki oleh GRID. Kolom1 Mahasiswa. No_mhs Properti sebenarnya bisa juga tidak di isi dengan konsekuensi urutan tampilan kolom data akan seperti urutan fieldnya pada tabel sumber data.
Caption
Kolom2 Mahasiswa.nama mhs Kolom3 Mahasiswa.tgl lahir Kolom4 Mahasiswa agama Kolom5 Mahasiswa.kd_jurusan No Mhs Header digunakan untuk member keterangan pada tiap- tiap kolom. Nama Mahasiswa
Caption
Tanggal Lahir
Caption
Agama
18
kolom ke-4 Header kolom ke-5
Caption
Kode Jurusan
5. Saatnya melakukan penulisan kode-kode. Pertama kode untuk event INIT dari form :
SET CENTURY ON SET DATE BRITISH SELECT MAHASISWA GO TOP IF EOF () APPEND BLANK ENDIF GRID tdak akan dapat disinggahi kursor jika tabel yang menjadi sumber data kosong sama sekali. Untuk itu minimal harus ada 1 record data. Kode di atas mengecek apakah datanya kosong sama sekali dan APPEND satu record kosong jika memang demikian.
6. Sampai di sini GRID tersebut sebenarnya sudah dapat dipakai tetapi belum ada kode validasi sama sekali. Untuk memberi kode validasi dilakukan lewat event VALID pada obyek kontrol yang merupakan bagian dari kolom (kolom mempunyai dua anggota yaitu Haeder dan Kontrol secara default biasanya berupa textbox). Sebagai contoh, ketik kode berikut pada event VALID untuk obyek TEXT 1 pada kolom ke-5 :
SELECT JURUSAN SEEK THIS. VALUE
IF NOT FOUND () =MESSAGEBOX (‘KODE JURUSAN TERSEBUT TAK DI TEMUKAN”, 48, “INFO”) THIS. VALUE=”” SELECT MAHASISWA RETURN 0 ENDIF SELECT MAHASISWA RETURN .T. 7. Validasi dapat juga dilakukan dengan cara membatasi kursor supaya tidak masuk kedalam kotak isian jika suatu kondisi dipenuhi. Ini dilakukan lewat event WHEN pada kontrol yang merupakan bagian dari kolom. Sebagai contoh, ketik kode berikut pada event WHEN untuk obyek TEXT 1 pada kolom ke-1 :
IF
EMPTY (MAHASISWA.NO_MHS) RETURN .T.
19
ELSE RETURN .F. ENDIF Kode ini akan menolak masuknya kursor (RETURN .F.) ke isian nomor mahasiswa jika nomor mahasiswanya sudah ada isi (tak boleh tambah baru).
Bagian 2 : Menampilkan data dari tabel referensi pada GRID. 1. 2.
Buka kembali form dari bagian 1, lalu save as ke nama lain. Buka data environment dari form tesebut, lalu buat relasi tabel dari mahasiswa kejurusan dengan data DRAG field KD _JURUSAN pada mahasiswa ke TAG aktif dari tabel jurusan. Hasil relasi harusnya seperti gambar di bawah ini:
3.
Lakukan beberapa modifikasi terhadap properti GRID sebagai berikut : Obyek Properti Nilai
Grid
ColumnCount
6 Cacah kolom GRID menjadi 6 kolom
Kolom ke-6
Name
Kolom6
ControlSource
Jurusan.nm_jurusan Properti ini jika diisi dari tabel lain yang bukan merupakan recorderSource dari GRID (dan sudah relasikan sebelumnya) akan menampilkan tabel referensi.
Header kolom ke-1
Caption
Jurusan Header digunakan untuk memberi keterangan pada tiap- tiap kolom.
4.
Saatnya melakukan modifikasi kode- kode. Salah satu modifikasi yang diperlukan adalah mencegah masuknya korsor ke kolom 6 apapun kondisinya (tak ada data asli, hanya tampilkan dari tabel referensi agar komunikatif). Ini dilakukan lewat event WHEN pada obyek TEXT 1 di kolom 6 :
20
RETURN .F. Kolom 6 sekarang tidak bisa disinggahi kursor sama sekali (tak bisa diedit).
Bagian 3 : Menampilkan data ekspresi/ rumusan tertentu 1. Lakukan modifikasi tabel MAHASISWA dengan menambahkan field KELAMIN, sehingga strukturnya menjadi sebagai berikut :
No MHS
Character 10
Nama MHS
Character 45
TGL LAHIR
Date 8
AGAMA KD JURUSAN KELAMIN
Character 15 Character 2 Character 1
Setelah itu, isikan data-data jenis kelaminnya (L untuk laki- laki dan P untuk perempuan) 2. Buka kembali form dari bagian 2, lalu save as ke nama lain. 3. Lakukan beberapa modifikasi terhadap properti GRID sebagai berikut :
Obyek Grid
Properti ColumnCount
Nilai 8 Cacah kolom GRID menjadi 8 kolom.
Kolom ke-7
Name
Kolom7
ControlSource
HF (mahasiswa kelamin L, laki- laki. P, perempuan) Fungsi HF bekerja seperti perintah IF… ENDIF tetapi dalam bentuk pendek. Pada kolom 7 ini, isian akan menjadi LAKI- LAKI jika L dan perempuan jika selain itu.
Header kolom ke-2
Caption
Kelamin
Kolomke-8
Name
Kolom8
ControlSource
(DATE()- MAHASISWA TGL_LAHIR), 365 Fungsi DATE() berarti tanggal komputer saat itu, jika dikurangi dengan tanggal lahir akan mendapat selisih tanggal tersebut dalam satuan hari. Setelah itu selisih tersebut dibagi dengan 365 hari untuk mendapatkan umur mahasiswa tersebut dalam satuan tahun.
Header kolom ke-8
Caption
Umur.
21
5. Saat melakukan modifikasi kode- kode. Salah satu modifikasi yang diperlukan adalah mencegah masuknya kursor ke kolom 7 dan 8 apapun kondisinya. Ini dilakukan lewat event WHEN pada obyek TEXT1 di kolom 7 maupun di kolom 8. Kolom 7 dan 8 sekarang tidak bisa disinggahi kursor sama sekali (tak bisa diedit).
Bagian 4 : Mengganti kontrol pada kolom dengan obyek tipe lain Pada GRID, kolom mengandung HEADER dan KONTROL. Kontrol ini dogunakan untuk mewadahi data yang ditampilkan dan diteliti pada GRID. Secara bawaan (default). Kontrol ini berupa TextBox. Di sini akan ditunjukkan mengganti kontrol yang berupa TextBox dengan ComboBox. 1. Buka kembali form dari bagian 3, lalu save as ke nama lain. 2. Lakukan modifikasi terhadap properti GRID dengan mengganti TEXTBOX pada kolom ke-4 (agama) dengan ComboBox. Penggantian ini memerlukan ketelitian dan ketepatan, jadi ahtihati jangan sampai malah kolom ke-4 ikut terhapus. - Pertama, pastikan bahwa fokus berada pada obyek TextBox dengan memilihnya lewat jendela properti. - Cepat beralih ke grid dan tekan tombol DELETE. Jika langkah ini benar, maka obyek TextBox pada kolom ke-4 hilang (jika salah bisa- bisa GRID hilang atau kolom 4 hilang). - Taruh obyek ComboBox ke kolom ke-4 tersebut. Sekarang kontrol untuk kolom 4 akan berupa Combo. 3. Atur properti untuk Combo tersebut, sebagai berikut : - Isi properti RowSourceType dengan 1 (value) - Isi properti RowSource dengan : Islam, Kristen, Hindu, Budha, Kepercayaan 4. Simpan form dan jalankan. Isian agama akan berupa kotak Combo. Jika tinggi baris GRID KURANG UNTUK MENAMPUNG TINGGI Combo, ubah ukuran tinggi baris (lewat properti Row Height pada GRID atau dengan drag langsung ukuran tinggi baris GRID dengan mouse). Catatan : Combo bukan satu- satunya kontrol yang dapat dipakai pada kolom GRID. Beberapa kontrol lain seperti EditBox (biasanya untuk tipe data memo). Spinner (khusus isian numeris). Check Box (khusus isian numeris atau logika), dan bahkan Obyek Gambar(Image). Metode penggantian identik dengan Combo di atas.
Bagian 5 : Mengisi data GRID lewat form lain Teknik pemasukan data ini yang biasanya sering dipakai untuk mengisi GRID. 1. Buka kembali dari form bagian 4, lalu save a ke nama lain. 2. Lakukan modifikasi terhadap form, sehingga lay-outnya menjadi seperti gambar di bawah ini :
22
3. Modifikasi properti GRID : - ReadOnly diisi dengan .T. sehingga GRID menjadi read Only (tak bisa diedit langsung). - DeleteMark diisi .F. sehingga tanda hapus tak muncul. - AllowAddNew diisi .F. sengga tak bisa menambah record baru. 4. Modifikasi kode pada event INIT pada form :
SET CENTURY ON SET DATE BRITISH DELETE ON Dengan teknik ini, kita tidak takut untuk SET DELETED ON. Pada pengeditan langsung di GRID jika seting ini diaktifkan akan kesulitan dalam refreshnya.
5. Ketik kode berikut untuk event Klik pada tombol + sebagai berikut : (+)
DO FORM TAMBAH_DATA THISFORM.REFRESH Perintah ini akan memunculkan perintah lain (yang akan kita rancang dalam langkah berikutnya yang akan digunakan untuk memasukkan data. Sebaiknya dihindari penggunaan nama drive dan folder secara langsung seperti :
DO FORM C :\PROGRAM\TAMBAH_DATA Lebih baik form tersebut di simpan ke folder yang sam dengan form induk, lalu diberi perintah untuk ataur folder default sebelum menjalankan proram.
SET DEFAULT TO C :\PROGRAM
23
6. Ketik kode berikut pada event Klik untuk tombol – sebagai berikut : ( - ) SELECT MAHASISWA
IF EOF () RETURN ENDIF DELETE THISFORM. REFRESH 7. Rancang form penambahan data dengan lay-out seperti pada gambar di bawah ini :
8. Pada data environment dari form tambah data tersebut, tambahkan tabel mahasiswa dan tabel jurusan. 9. Tambahkan properti kd_jurusan, lalu beri nilai awal 10.Atur properti tersebut sehingga sebagai berikut:
Obyek Form
Properti WindowType
Nilai 1 (modal) Form tipe modal artinya fokus kursor akan tetap di fokus ini dan tidak bisa berpindah ke form yang di belakangnya.
AutoCenter
.T. Otomatis akan selalu di tengah layar.
Isian Tanggal Lahir
Volume
=://: Biar tipe datanya berupa tanggal.
Format
.D. Format tanggal D berarti akan di sesuaikan dengan perintah se DATE yang berlaku saat itu.
24
Isian Agama (Combo)
Isian Jurusan (Combo)
Isian Kelamin
RowSourceType
1 (value)
RowSource
Islam, Kristen, Hindu, Budha, Kepercayaan.
RowSourceType
6 (field)
RowSource
Jurusan nm_jurusan.
InputMask
X Jika”atau” berarti hanya menerima isian dapat angka X pada inputmask berarti isian berupa sembarangan abjad. Karena simbol X nya hanya satu, maka hanya dapat di isi satu huruf abjad saja.
Format
! Tanda seru pada format berarti semua, isian akan otomatis dikonversi ke huruf besar (kapital).
11. Ketik kode berikut pada event Valid pada combo jurusan :
Thisform.kd_jurusan- jurusan.kd_jurusan Ini menyimpan kode jurusan yang dipilih (kita tidak menghedaki nama tersebut).
12. Ketik kode berikut pada event Klik pada tombol OK :
SELECT MAHASISWA APPEND BLANK REPLACE NO_ MHS WITH THISFORM. TEXT1.VALUE REPLACE NAMA MHS WITH THISFORM.TEXT2.VALUE REPLACE TGL LAHIR WITH THISFORM.TEXT3.VALUE REPLACE AGAMA WITH THISFORM.COMBO1.VALUE REPLACE KD_JURUSAN WITH THISFORM.KD_JURUSAN REPLACE KELAMIN WITH THISFORM.TEXT4.VALUE THISFORM.RELEASE
MODUL V
25
SQL (Structure Query Language)
SQL merupakan suatu pengelolaan data dengan bahasa yang terstruktur yang hampir mirip dengan bahasa yang dipakai sehari-hari. Biasanya SQL digunakan untuk memfilter atau membangun suatu tabel baru dari tabel yang sudah ada (bisa dari satu atau lebih tabel).
Contoh 1 : Membangun tabel baru dengan suatu filter
Terdapat suatu mhs.dbf sebagai berikut : • • • •
No_Mhs Nama Alamat Jenis_kel
Jika kita menghendaki membangun satu tabel yang baru (tetapi datanya tetap berdasarkan dari tabel yang suda ada yaitu mahasiswa.dbf) dengan nama file1.dbf yang susunan fieldnya sebagai berikut : • • •
No_Mhs Nama Jenis_kel
Maka kita dapat membangun tabel baru tersebut dengan SQL, tanpa harus mengentry ulang data dengan perintah :
Select Mhs.No_mhs, Mhs.Nama, Mhs.jenis_kel from Mhs into tabel file1.dbf Contoh 2: Membangun tabel baru dengan menggabung 2 tabel atau lebih
Syarat untuk menggabung 2 tabel atau lebih adalah tabel-tabel tersebut harus mempunyai kunci yang saling terkait dengan relasi.
Dalam suatu basis data terdiri dari dua tabel mhs.dbf dan dosen.dbf
Struktur file mhs.dbf sebagai berikut : • • • • •
No_Mhs Nama Alamat Jenis_kel Kd_dosen
Struktur file dosen.dbf sebagai berikut :
26
• •
Kd_dosen Nama_dosen
Jika kita mengehendaki untuk membangun satu tabel yang baru (tetapi datanya tetap berdasarkan dari tabel yang sudah ada yaitu mhs.dbf dan dosen.dbf) dengan nama file2.dbf yang susunan fieldnya sebagai berikut • • • • •
No_Mhs Nama Alamat Jenis_kel Nama_dosen
Maka kita dapat membangun tabel baru tersebut dengan SQL, tanpa harus mengentry ulang data dengan perintah :
Select mhs.no_mhs, mhs.nama, mhs.alamat, mhs.Jenis_kel, dosen.nama_dosen; From mhs,dosen; Where dosen.kd_dosen = mhs.kd_dosen; Into table2.dbf Contoh 3 : Membangun tabel baru dengan menggabung 2 tabel atau lebih kemudian memfilternya
Jika kita menghendaki untuk membangun satu tabel yang baru (tetapi datanya tetap berdasarkan dari tabel yang sudah ada yaitu mhs.dbf dan dosen.dbf) dengan nama file2.dbf yang susunan fieldnya sebagai berikut : • • • • •
No_Mhs Nama Alamat Jenis_kel Nama_dosen
Dengan filter : tabel baru hanya berisikan data-data dengna jenis kelamin (jenis_kel) = “L” (laki-laki)
Maka kita dapat membangun tabel baru tersebut dengan SQL, tanpa harus mengentry ulang data dengna perintah :
Select mhs.no_mhs, mhs.nama, mhs.alamat, mhs.Jenis_kel, dosen.nama_dosen;
27
From mhs,dosen; Where dosen.kd_dosen = mhs.kd_dosen; and mhs.jenis_kel=”L”; Into table2.dbf Catatan : • •
SQL bisa ditulis langsung pada layar command (secara interaktif). SQL dapat disimpan sebagai bagian dari alur program.
Pada foxpro perintah bisa juga dilakukan dengan meng-generate SQL dengan perintah query sebagai berikut : Pilih menu file Æ pilih Newe Æ pilih Query
Maka akan tampil layar sebagai berikut (diasumsikan file mhs.dbf sudah ada)
28
MODUL VI BUG SISTEM & PENANGANANNYA
1.
Redudansi Redudansi data didefinisikan sebagai kerangkapan data pada basis data kumpulan data/file) dan bukan pada tabel.
Contoh : Tabel 1 (mhs.dbf) tersusun atas field : • • • • • •
No_Mhs Nama Alamat Jenis_kel Kd_dosen Nama_dosen *****
Tabel 2 (dosen.dbf) tersusun atas field : • •
Kd_dosen Nama_dosen *****
Pada tanda ***** (Nama_dosen) terdapat kerangkapan data, dimana seharusnya field nama_dosen pada tabel 1 (mhs.dbf) dihilangkan, karena pada dasarnya nama_dosen pada tabel 1 dapat dicari dengan merelasikan field kd_dosen pada tabel 1 kepada field kd_dosen pada tabel 2 sehingga didapat nilai nama_dosen.
29
Efek redudancy data tidak secara langsung akan merusak data, tetapi akan mengurangi nilai efesiensi data yang berakibat pada pembengkakan ukuran file data.
Penanganan Redudancy Data biasanya dilakukan pada saat proses perancangan data itu sendiri dengna melakukan normalisasi data.
2. Penghapusan data Ada dua jenis penghapusan di dalam file data : •
Penghapusan dengan menandai record tetapi tidak dihapus secara fisik Penghapusan seperti ini dilakukan dengan maksud agar data yang telah dihapus masih dapat dipanggil ulang dengan perintah RECALL, karena pada dasarnya tidak setiap record yang telah dihapus akan menjadi sampah, bahkan bisa saja suatu saat record tersebut masih dibutuhkan untuk suatu proses. Persoalan muncul ketika proses pencarian (baik terindex ataupun tidak) dilakukan tanpa menambahkan logika data sudah terhapus atau belum terhapus. Karena ketika proses pencarian, record yang sudah terhapus tetap saja merupakan bagian dari file data.
Contoh : fikle mhs.dbf No_Mhs
Nama_mhs
Alamat_mhs
0001
Slamet
Yogya
0002
Sigit
Yogya
0003
Tompel
Yogya
Dengan perintah : delete for nama_mhs = ‘Sigit’ Maka status file data menjadi:
No_Mhs
Nama_mhs
Alamat_mhs
0001
Slamet
Yogya
Sigit
Yogya
Tompel
Yogya
* 0002 0003
Dimana tanda (*) merupakan record yang sudah terhapus Ketika kita melakukan pencarian data dengan sintaks berikut:
Uses mhs index mhs Seek ‘0002’
30
If found () Tampikan data Endif
Maka data ‘Sigit’ yang sudah terhapus tetap akan ditampilkan, karena secara fisik belum terhapus. Untuk menanganinya, perlu ditambahkan logika pada proses pencarian menjadi ‘jika ditemukan dan belum terhapus’, sintaksnya sebagai berikut :
Uses mhs index mhs Seek ‘0002’ If found () .and. !delete() Å (tanda !artinya Not/tidak) Tampikan data Endif •
Penghapusan dengan menghapus secara fisik
Penghapusan seperti ini dilakukan dengan maksud agar data yang telah dihapus benar-benar hilang secara fisik.
Dengan mengambil contoh tabel diatas (file mhs.dbf), perintah penghapusan secara fisik dilakukan dengan sintaks :
Delete for nama_mhs = ‘Sigit’ Pack Å (perintah penghapusan secara fisik)
Sehingga tabel mhs.dbf menjadi
No_Mhs
Nama_mhs
Alamat_mhs
0001
Slamet
Yogya
0003
Tompel
Yogya
Persoalan muncul ketika kita menjalankan aplikasi untuk multi user (dalam sebuah jaringan), perintah Pack hanya bisa dilakukan secara exlusive (otoritas penuh pada file data atau dengan kata lain file data hanyadapat diakses oleh satuorang dan yang lain harus menunggusampai proses selesai). Penanganan, penghapusan secara fisik hendaknya dilakukan secara hati-hati, dan dilakukan pada saat pemeliharaan data, sehingga tidak menimbulkan gangguan bagi pemakai file data lainnya.
3.
Proses Reindex tanpa memperhatikan sifat exclusive file
31
Reindex adalah proses meng-index ulang data agar data dbf dan data index tetap sama, sehingga data dbf dan data index menjadi konsisten, karena perbedaan antara data dbf dengan data index akan menyebabkan program menjadi error. Dikatakan sifat exclusive adalah bahwa suatu file hanyaboleh diakses oleh satu orang dan yang lain harus menunggu. Sama dengan perintah pack, perintah reindex yang dilakukan secara sembarangan akan mengakibatkan penolakan akses terhadap suatu file bagi pengguna file lainnya, sehingga mengurangi nilai efesiensi.
Penanganan masalah ini adalah dengan memberikan waktu penuh bagi proses reindex yang dilakukan oleh orang yang berwewenang, biasanya proses reindex dilakukan pada saat pemeliharaan data, atau pada saat sistem sangan membutuhkan index file yang aktual.
4. Penguncian file / record Proses penguncian file/record dilakukan pada sistem yang menggunakan jaringan atau bersifat multi user. Kenapa harus melakukan penguncian? Bayangkan kasus seperti ini ; Ketika si “A” sendang mengedit record “x” pada file mhs.dbf, si ”B” pada saat yang sama bersamaan menghapus record yang sama “x” pada file mhs.dbf. apa yang terjadi ? , sistem menjadi error
Disinilah kita memerlukan penguncian file/record diperlukan, sehingga kasus diatas berubah cerita menjadi
Sebelum si “A” sedang mengedit reocord “x” pada file mhs.dbf, si “A” harus mengunci record “x” terlebih dahulu, sehingga pada saat si “B” akan menghapus record “x” tersebut, si “B” harus menunggu proses penghapusan sampai si “A” selesai dan membuka penguncian terhadap file / record
Penanganan masalah ini adalah seorang programmer harus selalu memahami proses dimana yang bersifat kritis yang akan mengakibatkan prubahan fisik terhadap data (seperti proses edit, hapus dan tambah). Akan lebih baik jika sistem yang dibangun mampu membagi otoritas atau wewenang terhadap pengguna data sehingga tidak setiap pengguna data dapat secara langsung menambah / mengedit /menghapus data.
5. Pemeliharaan data Ketika kita membangun suatu sistem basis data dengan tingkat perubahan fisik data yang sangat cepat (retail, banking, dan lain-lain), pemeliharaan data menjadi sesuatu yang sangat mutlak dilakukan. Data yang tidak terpelihara akan lebih rentan dan mengakibatkan sistem menjadi crash. Pemeliharaan data hendaknya dilakukan secara rutin dan dilakukan oleh orang yang berwewenang atau orang yang punya otoritas. •
Backup Data Proses backup data dilakukan dengan maksud agar sistem mempunyai data kedua (secondary) yang dapat dijadikan sebagai data cadangan jika data utama (primary) mengalami kerusakan fisik. Backup data pada sstem yang sangat besar biasanya dilakukan secara berlapis (backup dilakukan tidak pada satu tempat / media)
32
• Restore Data Merupakan kebalikan dari proses backup data, dimana data secondary dirubah menjadi data primary. Restore data biasanya dilakukan ketika data primary mengalami kerusakan fisik. • Reindex (Seperti yang telah dijelaskan pada bagian sebelumnya).
MODUL VI CONTOH KASUS
33
Struktur tabel : ******* TRANSAKSI.DBF NO_NOTA
CHARACTER
10
TANGGAL
DATE
8
KD_TELLER
CHARACTER
5
TOTAL NUMERIC
10
INDEX : NO.NOTA CANDIDATE
******* TRANSAKSI.DBF NO_NOTA
CHARACTER
10
TANGGAL
DATE
8
KD_TELLER
CHARACTER
5
TOTAL NUMERIC
10
INDEX : NO.NOTA CANDIDATE
******* DETAIL_TRANSAKSI.DBF NO_NOTA
CHARACTER
10
BARANG
DATE
25
HARGA_SAT
CHARACTER
10
VOLUME
NUMERIC
5
JUMLAH
NUMERIC
10
34
INDEX : NO.NOTA REGULER
Modify Form : ****** * TRANSAKSI.SCX NAMA = “FORM1” AUTOCENTER = .T. CAPTION = “TRANSAKSI PENJUALAN” MODE = 0
PROCEDURE ACTIVATE SELECT TRANSAKSI && HANYA TOMBOL TAMBAH DAN KELUAR SAJA YANG AKTIF && JIKA TABEL TIDAK BERISI RECORD. IF EOF () THISFORM.SETALL (“ENABLED”,.F.,”TEXTBOX”) THISFORM.SETALL (“ENABLED”,.F.,”COMMANDBUTTON”) THISFORM.TAMBAH.ENABLED=.T. THISFORM.KELUAR.ENABLED=.T. ELSE THISFORM.SETALL (“ENABLED”,.F.,”TEXTBOX”) THISFORM.SETALL (“ENABLED”,.T.,”COMMANDBUTTON”)
THISFORM.SIMPAN.ENABLED=.F. THISFORM.BATAL.ENABLED=.F. ENDIF SCATTER MEMVAR THISFORM.REFRESH () PROCEDURE INIT SET TALK OFF SET DELETED ON
NAME = “LABEL1” AUTOSIZE = .T. CAPTION = “NO NOTA”
NAME = “LABEL2”
35
AUTOSIZE = .T. CAPTION = “TANGGAL”
NAME = “LABEL3” AUTOSIZE = .T. CAPTION = “KODE TELLER”
NAME = “LABEL4” AUTOSIZE = .T. CAPTION = “TOTAL”
NAME = “TXTNO_NOTA” CONTROLSOURCE = “M.TANGGAL”
NAME = “TXTTANGGAL” CONTROLSOURCE = “M.TANGGAL” FORMAT = :E” VALUE = {}
NAME = “TXTTELLER” CONTROLSOURCE = “M.KD_TELLER”
NAME = “TXTTOTAL” VALUE = 0 CONTROLSOURCE = “M.TOTAL” ENABLED = .F. INPUTMASK = “RP 9,999,999,999.-“
NAME = “GRID1” COLUMNCOUNT = 4 CHILDORDER = “NO_NOTA” DELETEMARK = .F. LINKMASTER = “TRANSAKSI” READONLY = .T. RECORDSOURCE = “DETAIL_TRANSAKSI” RELATIONALEXPR = “TRANSAKSI.” SCROLLBARS = 2
36
COLUMN1.CONTROLSOURCE = “DETAIL_TRANSAKSI.BARANG” NAME = “HEADER1” CAPTION = “BARANG” FONTBOLD = .T. COLUMN2.CONTROLSOURCE = “DETAIL_TRANSAKSI.HARGA_SAT” COLUMN2.INPUTMASK = “9,999,999,999.-“ NAME = “HEADER1” CAPTION = “HARGA” FONTBOLD = .T. COLUMN3.CONTROLSOURCE = “DETAIL_TRANSAKSI.VOLUME” NAME = “HEADER1” CAPTION = “VOLUME” FONTBOLD = .T. COLUMN4.CONTROLSOURCE = “DETAIL_TRANSAKSI.JUMLAH” COLUMN4.INPUTMASK = “9,999,999,999.-“ NAME = “HEADER1” CAPTION = “JUMLAH” FONTBOLD = .T.
NAME = “TAMBAH” CAPTION = “\
NAME = “SIMPAN” CAPTION = “\<SIMPAN” PROCEDURE CLICK SELECT TRANSAKSI
37
IF THISFORM.MODE=1 APPEND BLANK ENDIF GATHER MEMVAR THISFORM.SETALL (“ENABLED”,.T.,”TEXTBOX”) THISFORM.SETALL (“ENABLED”,.F.,”COMMANDBUTTON”) THISFORM.TXTTOTAL.ENABLED=.F. THISFORM.SIMPAN.ENABLED=.T. THISFORM.BATAL.ENABLED=.T. THISFORM.MODE=1 THISFORM.TXTNO_NOTA.SETFOCUS () THISFORM.REFRESH ()
NAME = “BATAL” CAPTION = “\
NAME = “EDIT” CAPTION = “\<EDIT” PROCEDURE CLICK THISFORM.SETALL(“ENABLED”,.T.,”TEXTBOX”) THISFORM.SETALL(“ENABLED”,.F.,”COMMANDBUTTON”) THISFORM.TXTTOTAL.ENABLED = .F. THISFORM.SIMPAN.ENABLED = .T.
38
THISFORM.BATAL.ENABLED = .T. THISFORM.MODE=0 THISFORM.TXTNO_NOTA.SETFOCUS() THISFORM.REFRESH()
NAME = “AWAL” CAPTION = “\
NAME = “NAIK” CAPTION = “\
NAME = “TURUN” CAPTION = “\
39
=MESSAGEBOX(“INI RECORD YANG PALING AKHIR”, 48,”PERHATIAN”) GO BOTTOM ENDIF SCATTER MEMVAR THISFORM.REFRESH()
NAME = “AKHIR” CAPTION = “\
NAME = “KELUAR” CAPTION = “\
NAME = “PLUS CAPTION = “+”
40
FONTNAME= “COURIER NEW” PROCEDURE CLICK DO FORM DETAIL_TRANSAKSI.SCX WITH THISFORM.TXTNO_NOTA.VALUE CALCULATE SUM(DETAIL_TRANSAKSI.JUMLAH); FOR DETAIL_TRANSAKSI.NO_NOTA = ALLTRIM(M.NO_NOTA) TO A THISFORM.TXTTOTAL.VALUE=A SELECT TRANSAKSI GATHER MEMVAR SCATTER MEMVAR THISFORM.REFRESH()
NAME = “PLUS CAPTION = “-” FONTNAME= “COURIER NEW”
PROCEDURE CLICK SELECT DETAIL_TRANSAKSI DELETE CALCULATE SUM(DETAIL_TRANSAKSI.JUMLAH); FOR DETAIL_TRANSAKSI.NO_NOTA = ALLTRIM(M.NO_NOTA) TO A THISFORM.TXTTOTAL.VALUE=A SELECT TRANSAKSI GATHER MEMVAR SCATTER MEMVAR THISFORM.REFRESH()
MODIFY FORM : ***************DETAIL_TRANSAKSI.SCX NAME = “FORM1” AUTOCENTER = .T. CAPTION =”PENAMBAHAN” WINDOWTYPE = 1 PROCEDURE INIT PARAMETER A SCATTER MEMVAR BLANK
41
THISFORM.TXTNO_NOTA.VALUE = A
NAME = “LABEL1” AUTOSIZE = .T. CAPTION =”NO NOTA”
NAME = “LABEL2” AUTOSIZE = .T. CAPTION =”BARANG”
NAME = “LABEL3” AUTOSIZE = .T. CAPTION =”HARGA SATUAN”
NAME = “LABEL4” AUTOSIZE = .T. CAPTION =”VOLUME”
NAME = “LABEL5” AUTOSIZE = .T. CAPTION =”JUMLAH”
NAME = “TXTNO_NOTA” CONTROL SOURCE = “M.NO_NOTA”
NAME = “TXTBARANG” CONTROL SOURCE = “M.BARANG” NAME = “TXTHARGA_SAT” CONTROL SOURCE = “M.HARGA_SAT” INPUTMASK = “RP 9,999,999,999,-“ VALUE = 0
NAME = “TXTVOLUME” VALUE = 0 PROCEDURE INTERACTIVECHANGE THISFORM.TXTJUMLAH.VALUE = THISFORM.TXTHARGA_SAT.VALUE*THIS.VALUE
42
NAME = “TXTJUMLAH” CONTROL SOURCE = “M.JUMLAH” INPUTMASK = “RP 9,999,999,999,-“ VALUE = 0
NAME = “OK” CAPTION = “\
NAME = “BATAL” CAPTION = “\
BAB X ORACLE
MODUL I SQL *PLUS SQL *PLUS dipergunakan untuk mengakses Oracle Database Server. Untuk mengakses server dibuat sebuah service yang mengarahkan client ke server terlebih dahulu (Database Alias). Tahapan untuk membuat service tersebut sebagai berikut : 1.
Pada dialog diatas diberi service name TPRAKTIKUM. Klik next
2.
Pilih protocol yang menghubungkan antara client dengan server. Pada kesempatan ini untuk menghunbungkan client ke server mempergunakan protocol TCP/IP. Berikutnya klik Next.
3.
Pada field Host Name masukkan nama host name atau alamat IP address server ORACLE, misalnya nt5. Klik Next
4.
Pada menu field Database SID, pada layar System IDentifier, masukkan nama database SID, misalnya lab4. Berikunya klik Next.
5.
Untuk mencoba service name yang sudah dibuat, perlu dilakukan testing. Klik tombol Test Service, dan akan menuju layar testing.
1
6.
Pada layar Conection Test masukkan username dan password. Silahkan masukkan Username scott dan Password tiger, klik tombol test, maka akan ditampilkan respon server. Jika sukses akan ada komentar ….successful.. jika gagal akan muncul komentar bahwa service yang dibuat gagal.
Setelah Service Name dibuat, kini masuk kedalam SQL *PLUS untuk mengakses database server. Buka SQL *PLUS dari menu StartÆProgramÆOralce-OraHome81Æ Aplication DevelopmentÆSQL PLUS. Akan muncul dialog SQL plus sebagai berikut :
2
Masukkan pada User Name system, password manager dan Host String dengan service name yang sudah dibuat tadi (TPRAKTIKUM). Jika Login berhasil maka akan muncul Oracle SQL *PLUS sebagai berikut :
TABLESPACE Untuk menyimpan obyek-obyek database dibutuhkan suatu ruang memori yang disebut TABLESPACE. Untuk mengakses tablespace dibutuhkan sebuah account user. Berikut ini perintah SQL untuk membuat tablespace, user dan perintah untuk manipulasi tabel. 1.
Melihat tablespace 3
select * from user_free_space;
2.
Membuat tablespace SQL>Create tablespace nama-tablespace datafile ‘nama-datafile.dat’ size 1M autoextend on next 500K maxsize 2M;
3.
Mengubah ukuran tablespace SQL>alter database datafile ‘nama-datafile.dat’ resize 2M;
4.
Menambah ukuran tablespace dengan cara menambahkan data file baru SQL>alter tablespace dataku add datafile ‘nama-datafile.dat’ size 2M;
5.
Menghapus table space SQL>drop tablespace nama-tablespace including contents;
Setelah Tablespace siap, maka langkah selanjutnya membuat account baru. Account ini akan anda pergunakan selama praktikum. Account yang sudah ada ketika instalasi selesai adalah SYS, SYSTEM dan SCOTT. Untuk membuat account baru kita mempergunakan user SYS dan SYSTEM. Pergunakan tablespace yang tadi telah anda buat untuk menyimpan data anda selama praktikum. 1.
Membuat user baru dan dengan tablespace yang dipakai misalnya dtpraktek. SQL>create user nama_user identified by password-user default tablespace dtpraktek;
Parameter nama_user adalah nama login, dan password-user adalah password user yang dipilih. Misalnya dipilih untuk nama_user user01. 2.
Berikan hak akses user pada database. Misalnya hak akses grant dan resource. SQL> grant connect to user01; SQL> grant resource to user01;
3.
Langkah
berikutnya,
lakukan
sambungan
dengan
server
dengan
mempergunakan user_name yang sudah dibuat tadi. SQL> connect user01 Enter password: ****** Connected.
4.
Saat ini sudah tersambung dengan server dengan mempergunakan user01. Buat tabel mahasiswa yang memiliki struktur nim varchar(5), nama varchar(25), alamat varcahr(30). 4
SQL> create table mahasiswa (nim varchar(5), nama varchar(25), alamat varchar(30));
5.
Untuk melihat tabel yang ada dalam tablespace mempergunakan perintah : SQL> select * from tab;
6.
Untuk melihat struktur tabel dapat dilakukan dengan mempergunakan perintah : SQL>describe mahasiswa;
7.
Perintah alter berguna untuk melakukan perubahan tabel diantaranya merubah tipe field, menambah field baru dan merubah nama tabel. Merubah tipe field tabel : SQL>alter table mahasiswa modify (nim number(5));
Menambah field tabel : SQL>alter table mahasiswa add (usia number(2));
Mengganti nama tabel : SQL>alter table mahasiswa rename to mhs;
8.
Untuk menambahkan data kedalam tabel, pergunakan perintah insert SQL>insert into mahasiswa values(1,’Sumanto’,’Sleman’);
9.
Data
yang
sudah
disimpan
dalam
tabel
dapat
diedit
dengan
memperguanakan perintah update. SQL>update mahasiswa set nama = ‘Sumanto’ where nim=1;
10.
Untuk keperluan penghapusan data, pergunakan perintah : SQL>delete from mahasiswa where nim=1;
CONSTRAINT Constraint (konstrain) adalah aturan yang diberikan pada suatu tabel supaya data yang dimasukkan lebih terjamin validitasnya. 1.
Memberi konstrain pada saat membuat tabel : SQL>create table mahasiswa(nim char(5) constraint pnim primary key, nama char(20) constraint nnama not null, alamat char(30));
2.
Memberi konstrain pada tabel yang sudah ada : SQL>alter table mahasiswa add constraint pnim primary key (nim); SQL>alter table mahasiswa modify (nama char(20) constraint nnama not null);
3.
Menghapus konstrain : SQL>alter table mahasiswa drop constraint nnama;
5
ORDER BY Klausa ORDER BY digunakan untuk mengurutkan data yang di-query. Klausa ORDER BY diikuti dengan nama kolom atau kolom alias kemudian diikuti klausa jenis urutan yang kita inginkan. Jenis urutan bisa ASC (ascending) atau DESC (descending). Sebagai ilustrasi, tampilkan semua data dengan cara diurutkan ascending berdasarkan nama mahasiswa. SQL> select * from mahasiswa order by nama; SQL> select * from mahasiswa order by nama desc;
WHERE Klausa LIKE WHERE digunakan untuk membatasi query menurut kriteria tertentu. Kriteria ini didefinisikan menggunakan bentuk perbandingan. Sebagai ilustrasi, tampilkan data mahasiswa yang berasal dari Jogjakarta. SQL> select * from mahasiswa where alamat = ‘Jogjakarta’;
LIKE Klausa LIKE digunakan untuk membatasi query menurut nilai tertentu. Nilai ini merupakan sebagian dari nilai suatu field. Sebagai ilustrasi, akan ditampilkan data mahasiswa yang memiliki nama yang nama akhirnya mengandung huruf “ni”. SQL> select * from mahasiswa where nama like ‘%ni’;
TUGAS MINGGU INI 1.
Tampilkan data mahasiswa yang tersimpan dalam tabel mahasiswa.
2.
Tampilkan data mahasiswa yang berusia 20 tahun.
3.
Tampilkan data mahasiswa yang berasal dari Jogjakarta.
4.
Tampilkan data mahasiswa yang namanya mengandung nilai “ni” dibelakang (disesuaikan dengan yang telah dimasukkan) dan berasal dari Jakarta.
5.
Tampilkan jumlah mahasiswa berdasarkan alamat.
6
MODUL II SQL *PLUS LANJUTAN Pada pertemuan minggu kedua, akan dibahas tentang bagaimana menampilkan data dari beberapa tabel yang terhubung oleh suatu kunci. Buat sambungan ke server ORACLE dengan SQL *PLUS seperti minggu lalu, dan ikuti latihan berikut : 1.
Buat tabel matakuliah dan tabel krs dengan tipe field :
Tabel matakuliah terdiri dari field : kdmtk varchar(5), nm_mtk varchar(20), sks number, dan field kdmtk tidak boleh null.
2.
Tabel krs, dengan field : nim varchar(5), kdmtk varchar(5), nilai char(1).
Isi tabel matakuliah dan krs, dengan nomor mahasiswa sesuai dengan nomor mahasiswa pada tabel krs sesuai dengan yang ada di tabel mahasiswa dan kdmtk pada tabel krs sama dengan kdmtk pada tabel matakuliah. Kosongi field nilai pada tabel krs.
3.
Tampilkan nama mahasiswa yang mengambil matakuliah yang memiliki kode matakuliah ‘mt01’; SQL> select nama from mahasiswa, krs where mahasiswa.nim=krs.nim and krs.kdmtk='mt01';
4.
Tampilkan nama matakuliah dan sks dari matakuliah yang diambil mahasiswa yang memiliki nomor mahasiswa ‘1’ SQL> select nm_mtk, sks from matakuliah, krs where matakuliah.kdmtk=krs.kdmtk and krs.nim='1';
5.
Tampilkan nama mahasiswa yang mengambil matakuliah ‘Bahasa C’ SQL> select nama from mahasiswa, matakuliah, krs where 2 mahasiswa.nim=krs.nim and 3 krs.kdmtk=matakuliah.kdmtk and 4 matakuliah.nm_mtk='Bahasa C';
GROUP BY Klausa GROUP BY digunakan untuk mengelompokkan data hasil perintah group function. Ilustrasi pemakaian GROUP BY : SQL> select matakuliah.nm_mtk, count(krs.kdmtk) from matakuliah, krs where 2 matakuliah.kdmtk=krs.kdmtk
7
3 group by matakuliah.nm_mtk;
HAVING Klausa HAVING dipergunakan untuk membatasi hasil query yang dihasilkan dari klausa GROUP BY. SQL> select nama, count(sks) from mahasiswa, krs, matakuliah 2 where mahasiswa.nim=krs.nim and 3 matakuliah.kdmtk=krs.kdmtk 4 group by mahasiswa.nama 5 having count(sks)>2;
SUBQUERY Subquery adalah query dalam query. Dalam menuliskan perintah select, kita dapat mendefinisikan nilai kondisional dengan menggunakan perintah SELECT lagi. Artinya ada perintah SELECT dalam perintah SELECT. Untuk ilustrasi, tambahkan data mahasiswa yang nomor mahasiswanya (nim) tidak ada di tabel krs, dan berikutnya coba perintah berikut : SQL> select nama from mahasiswa where nim in 2 (select nim from krs group by nim);
TUGAS MINGGU INI 1.
Tampilkan nama matakuliah dan sks terbesar.
2.
Tampilkan nama matakuliah dan sks terkecil.
3.
Tampilkan nama mahasiswa dan jumlah sks terbanyak yang diambil mahasiswa.
4.
Tampilkan nama mahasiswa dan jumlah sks paling sedikit yang diambil mahasiswa.
5.
Tampilkan nama matakuliah dan jumlah mahasiswa yang mengambil matakuliah paling banyak.
6.
Tampilkan nama matakuliah dan jumlah mahasiswa yang mengambil matakuliah paling sedikit.
Catatan : Nomor 1, 3 dan 5, pergunakan fungsi MAX dan nomor 2, 4 dan 6, pergunakan fungsi MIN.
8
MODUL III VIEW, CONSTRAINT LANJUT dan SQL DUMP VIEW View merupakan objek database seperti tabel namun secara fisik tidak memiliki data. Isi data view merupakan hasil query dari sebuah atau beberapa tabel. View disebut juga virtual tabel karena strukturnya seperti tabel tapi tidak memiliki data. 1.
Untuk membuat view dengan perintah CREATE VIEW seperti contoh berikut : SQL> create view mhs_jogja as ( 2 select * from mahasiswa 3 where alamat like 'J%'); View created.
2.
Untuk melihat view yang telah dibuat, diberikan perintah untuk melihat view sebagaimana perintah untuk melihat data dalam tabel. SQL> select * from mhs_joigja;
3.
Struktur field view dapat dilihat dengan mempergunakan perintah : SQL> describe mhs_jogja;
4.
Data yang ditampilkan dalam view dapat diupdate, dengan catatan tidak terdapat constraint yang menolak perubahan data. Sebagai contoh, untuk merubah data dalam view dipergunakan perintah : SQL> update mhs_jogja 2 set nama = 'Abdullah' 3 where nim = '1'; 1 row updated.
5.
Jalankan perintah berikut untuk melihat perubahan yang terjadi akibat perintah diatas. SQL> select * from mhs_jogja;
6.
Untuk kepentingan merubah definisi view dapat dipergunakan perintah berikut : SQL> create or replace view mhs_jogja as
9
2 (select * from mahasiswa);
7.
View dapat dihapus dengan perintah DROP SQL> drop view jml_sks;
Untuk latihan buatlah view untuk tugas minggu kemarin nomor 1,3,5 atau 2,4,6. Simpan tugas ini sebagai salah satu tugas minggu ini. CONSTRAINT LANJUT Pada minggu pertama sudah dibahas sekilas tentang konstraint. Kali ini akan dibahas lebih lanjut tentang constraint. Ada lima jenis constraint yaitu PRIMARY KEY, UNIQUE, FOREIGN KEY, CHECK dan NOT NULL. Pada tablespace sudah terdapat tiga tabel yaitu tabel mahasiswa, tabel matakuliah dan tabel krs. Ketiga tabel tersebut mempunyai relasi sebagai berikut :
Tabel KRS mempunyai ketergantungan pada tabel mahasiswa dan tabel matakuliah. Sehingga field NIM yang ada di tabel KRS harus terdapat juga pada tabel mahasiswa dan field KDMTK pada tabel KRS juga harus terdapat pada tabel matakuliah. Sebelum ditambahkan constraint pada tabel krs, cobalah untuk menambahkan data pada krs, dimana nim yang dimasukkan tidak terdapat pada tabel mahasiswa dan kdmtk juga tidak terdapat pada tabel matakuliah. Untuk menambahkan Integrity Constraint, tambahkan constraint pada field nim di tabel mahsiswa (jika belum ada) dan field kdmtk pada tabel matakuliah (jika belum ada). Untuk menambahkan constraint pada tabel-tabel tersebut, pergunakan perintah : SQL> alter table krs add constraint sk_nim 2 foreign key (nim) references mahasiswa (nim) 3 on delete cascade;
10
SQL> alter table krs add constraint sk_kdmtk 2 foreign key (kdmtk) references matakuliah (kdmtk) 3 on delete cascade;
Setelah ditambahkan constraint pada tabel krs, cobalah untuk menambah data yang nim-nya tidak terdapat pada tabel mahasiswa dan kdmtk-nya tidak terdapat pada tabel matakuliah. Apa yang terjadi? Tambahkan komentar anda pada tugas minggu ini. SQL DUMP Pemakaian bahasa SQL dengan mengetikkan tiap baris pada SQL *PLUS akan menimbulkan kesulitan jika perintah yang diberikan cukup panjang. Perintah SQL dapat di buat dalam file teks dengan mempergunakan editor apapun (notepad, edit, wordpad dan lain sebagainya). Pemakaian SQL pada file eksternal ini sama dengan SQL DUMP yang terdapat pada MySQL. Untuk pemakaian SQL DUMP, ikuti instruksi berikut : 1.
Buat direktori script pada c:\oracle untuk menyimpan script SQL yang anda buat pada praktikum minggu ini dan minggu depan.
2.
Buka notepad dan ketikkan perintah SQL yang anda kehendaki dan simpan file dengan akhiran *.sql (script1.sql) sebagai contoh : SQL> select table_name from user_tables;
3.
Dari prompt SQL *PLUS ketikkan perintah untuk mengeksekusi file tersebut dengan disertakan path directori. SQL> @c:\oracle\script\script1.sql
4.
Buat script baru, dan isikan perintah SQL berikut : select nama, count(sks) from mahasiswa, krs, matakuliah where mahasiswa.nim=krs.nim and matakuliah.kdmtk=krs.kdmtk group by mahasiswa.nama having count(sks)>2;
CATATAN : Untuk tugas mingguan akan diberikan pada saat praktikum.
11
MODUL IV PL/SQL PL/SQL singkatan dari Procedural Language/Structured Query Language. PL/SQL menambahkan SQL dengan bahasa-bahasa prosedural. Dengan SQL, pekerjaan manipulasi data lebih mudah, namun akan lebih maksimal jika ditambahkan dengan bahasa prosedural. Sebagai contoh, pemanfaatan fungsi control IF-THEN-ELSE atau looping. Hal ini tidak bisa dilakukan dengan mempergunakan SQL murni. Untuk hal inilah dibutuhkan PL/SQL, bahasa pemrograman yang menggabungkan fleksibilitas SQL (bahasa tingkat empat atau 4GL) dengan bahasa prosedural (bahasa tingkat tiga atau 3GL). Bentuk umum dari suatu PL/SQL adalah : DECLARE <declaration section> BEGIN <executable section> exception <exception handling> end; /
Dalam PL/SQL blok penanganan komunikasi dengan database dilakukan dengan variabel. Variabel adalah suatu alokasi memori untuk menyimpan suatu nilai. Nilai ini dapat diambil dari database atau dimasukkan ke database. Berikut ini contoh deklarasi variabel dalam PL/SQL. Declare vnama varchar2(12); vnim number(4) := 3452;
Pada contoh diatas dideklarasikan dua buah variabel yaitu vnama dan vnim dengan tipe data varchar2 dan number. Variabel vnama tidak memiliki nilai default dan variabel vnim memiliki nilai default 3452. Jenis data yang dapat dipergunakan dalam PL/SQL adalah : Number, Char, Varchar2, Date, Long, Decimal (Real), Integer (Int) dan Boolean. 12
Selain dengan cara mendefinisikan tipe data variabel, juga ada cara lain untuk mendefinisikan tipe data dengan mempergunakan %TYPE. Cara ini memberikan tipe data variabel dengan tipe field pada tabel. Berikut ini contoh definisi tipe data dengan mempergunakan %TYPE. Declare vnama mahasiswa.nama%type; vnim mahasiswa.nim%type := 3452;
Struktur suatu tabel dapat diambil dan disimpan dalam suatu variabel array. Untuk memperoleh struktur tabel, dipergunakan perintah %ROWTYPE. Declare vnama mahasiswa.nama%type; ArMtk mtk%ROWTYPE;
Pada contoh diatas, struktur tabel mtk diambil dengan %ROWTYPE dan diletakkan dalam array ArMtk. Untuk lebih jelas tentang PL/SQL, silahkan anda ikuti latihan berikut ini. 1.
Buatlah script berikut ini dalam file *.sql pada direktory script seperti pertemuan terdahulu. DECLARE a NUMBER := 3; BEGIN a := a + 1; END; /
Jalankan script ini dari promt sql *plus. Maka pada layar sql *plus akan dihasilkan keluaran PL/SQL procedure successfully completed. Untuk menampilkan
hasil
perhitungan
diatas
tambahkan
perintah
dbms_output.put_line(a); dibawah perintah a := a + 1. Simpan script tersebut
dan jalankan kembali dari prompt SQL *PLUS. Selain itu juga tambahkan perintah set serveroutput on size 20000 diawal script (diatas declare). Catatan : perintah dbms_output.put_line(nama_field); dipergunakan untuk menampilkan isi suatu field dan variabel pada PL/SQL. Pergunakan perintah ini untuk menampilkan isi field dan variabel. 13
2.
Dengan mempergunakan SQL DUMP, buatlah tabel T1 dengan menyalin script berikut : CREATE TABLE T1( e INTEGER, f INTEGER ); DELETE FROM T1; INSERT INTO T1 VALUES(1, 3); INSERT INTO T1 VALUES(2, 4);
Buat script PL/SQL berikut ini, dan berikan komentar dari hasil eksekusi script ini pada laporan mingguan. DECLARE a NUMBER; b NUMBER; BEGIN SELECT e,f INTO a,b FROM T1 WHERE e>1; INSERT INTO T1 VALUES(b,a); END; /
3.
Perintah SQL untuk menampilkan isi tabel tidak dapat dilakukan secara langsung. Perintah SQL yang dimaksud adalah perintah select [nama_field] from [nama_tabel]. Untuk mengambil isi tabel dilakukan dengan meletakkan
isi field yang dikehendaki kedalam variabel memori dengan perintah select [nama_field] into [variabel_memori] from [nama_tabel]. Lebih jelas tentang
hal ini silahkan anda coba script berikut : DECLARE vnim varchar2(5) := 1; BEGIN select nama from mahasiswa where nim=vnim; END; /
Bila script diatas dieksekusi maka akan dianggap ada kesalahan, padahal secara logika sudah benar. Edit script diatas sehingga sama dengan script berikut, dan berikan komentar anda tentang hal ini pada laporan mingguan. 14
DECLARE vnim varchar2(5) := 1; vnama mahasiswa.nama%type; BEGIN select nama into vnama from mahasiswa where nim=vnim; END; /
PERINTAH KONDISIONAL PL/SQL mempunyai perintah kondisional IF-THEN-ELSE. Sintaksnya adalah sebagai berikut : IF ekspresi_boolean1 THEN urutan_perintah1; [ELSIF ekspresi_boolean2 THEN urutan_perintah2;] … [ELSE urutan_perintah3; END IF];
Lebih jelas mengenai pemakaian If adalah sebagai berikut : DECLARE a NUMBER; b NUMBER; BEGIN SELECT e,f INTO a,b FROM T1 WHERE e>1; IF b=1 THEN INSERT INTO T1 VALUES(b,a); ELSE INSERT INTO T1 VALUES(b+10,a+10); END IF; END; /
LOOP PL/SQL mendukung pengeksekusian pertah berulang menggunakan loop. Jenis loop yang terdapat dalam PL/SQL adalah : 1.
Simple Loops Sintaks simple loop adalah : LOOP Urutan_perintah
15
END LOOP
Untuk menghentikan proses loop dipergunakan perintah EXIT dengan sintaks : EXIT [When kondisi];
Berikut ini contoh penggunaan LOOP : DECLARE i NUMBER := 1; BEGIN LOOP INSERT INTO T1 VALUES(i,i); i := i+1; EXIT WHEN i>100; END LOOP; END; /
2.
While Loops Sintaks dari While Loop adalah : WHILE kondisi LOOP urutan_perintah END LOOP;
Jika kondisi bernilai TRUE, urutan_perintah akan terus dieksekusi. Dalam loop ini perintah EXIT dapat digunakan jika dibutuhkan. Berikut ini contoh penggunaan while loop. DECLARE i NUMBER := 1; vhitung number; BEGIN WHILE i <= 20 LOOP vhitung := i ** 2; INSERT INTO T1 VALUES(i, vhitung); vhitung := 0; i := i+1; END LOOP; END; /
3.
Numeric FOR Loops Sintaks dari Numeric FOR Loops adalah : 16
FOR penghitung IN [REVERSE] batas_bawah..batas_atas LOOP urutan_perintah; END LOOP;
Berikut ini contoh dari Numeric FOR Loops : Declare vhit number; BEGIN FOR vhitung IN 1..20 LOOP vhit := vhitung ** 3; Insert into t1 values (vhitung, vhit); END LOOP; END; /
Menangani ERROR Penanganan error dalam PL/SQL lebih mudah dengan adanya bagian EXCEPTION dalam blok PL/SQL. Tidak seperti pemrograman dalam bahasa pemrograman lain seperti C yang harus menangkap error dengan mempergunakan perintah if. EXCEPTION dibagi dalam dua jenis yaitu : 1.
Predefined Exception Merupakan kondisi exception yang telah didefinisikan dalam oracle, diantaranya adalah : NO_DATA_FOUND, DUP_VAL_ON_INDEX, TOO_MANY_ROWS,
INVALID_NUMBER,
ZERO_DEVIDE
dan
PROGRAM_ERROR. Berikut ini contoh predefined exception. set serveroutput on size 20000 DECLARE vnim varchar2(5) := 12345; vnama mahasiswa.nama%type; vkomen char(25); BEGIN select nama into vnama from mahasiswa where nim=vnim; exception when no_data_found then vkomen := 'Data tidak ada'; dbms_output.put_line(vkomen); END; /
17
2.
User-Defined Exception User-Defined Exception merupakan penanganan error yang didefinisikan oleh programmer dalam suatu script. Variabel exception dideklarasikan dan kemudian dalam program yang dapat dieksekusi, kondisi exception ditangkap dengan mempergunakan perintah if dan menyerahkannya ke variabel exception dengan perintah RAISE. Berikut ini contoh user-defined exception. set serveroutput on size 20000 DECLARE vnama matakuliah.nm_mtk%type; vsks matakuliah.sks%type; e_jml_sks exception; vkomentar char(25); BEGIN select nm_mtk, sks into vnama, vsks from matakuliah where kdmtk = 'mt01'; if vsks < 4 then RAISE e_jml_sks; end if; EXCEPTION when e_jml_sks then vkomentar := 'Bobot SKS dibawah 4'; dbms_output.put_line(vkomentar); end; /
CATATAN : Untuk tugas mingguan akan diberikan pada saat praktikum.
18
MODUL V PROCEDURE, FUNCTION DAN TRIGGER Procedure, function dan Trigger termasuk named PL/SQL block. Artinya blok PL/SQL ini memiliki nama. Seperti layaknya Procedure dan Function pada bahasa pemrograman yang sudah dipelajari (Visual basic, Delphi, Bahasa C dan lainnya). Procedure Procedure merupakan blok yang memiliki nama. Pemanggilan procedure dilakukan melalui blok PL/SQL lain. Penggunaan procedure merupakan fasilitas yang paling sering digunakan dalam membuat kontrol program di database Oracle. Procedure memiliki struktur yang mudah dipahami, terletak dalam database, dan mudah dipanggil untuk dieksekusi. Seperti dalam PL/SQL yang telah dipelajari pada nagian lalu, hanya saja untuk bagian DECLARE diganti dengan CREATE PROCEDURE. Cobalah prosedur berikut ini. CREATE OR REPLACE PROCEDURE Tambah_Mahasiswa( vnim mahasiswa.nim%type, vnama mahasiswa.nama%type, valamat mahasiswa.alamat%type) as BEGIN INSERT INTO mahasiswa (nim, nama, alamat) VALUES(vnim, vnama,valamat); END Tambah_Mahasiswa; /
Procedure diatas berfungsi untuk menambah data pada tabel mahasiswa. Nama prosedur adalah Tambah_Mahasiswa. Untuk penambahan data dapat dilakukan dengan mempergunakan pemanggilan procedure diikuti parameter. Sehingga tidak mempergunakan
perintah
Insert
into
….
Penambahan
data
dengan
mempergunakan procedure tersebut dapat dilakukan dengan perintah berikut : BEGIN Tambah_Mahasiswa('11','Banu','Sleman'); END; /
19
Perintah tersebut akan memanggil procedure Tambah_Mahasiswa dengan membawa parameter 11, Banu, Sleman. Penambahan data mahasiswa dilakukan dengan perintah Insert into …. yang terdapat pada procedure Tambah_Mahasiswa. Berikut ini script procedure yang agak berbeda dengan script diatas, dimana salah satu variabel yang dimasukkan diproses terlebih dahulu (variabel b). CREATE OR REPLACE PROCEDURE AddT1 (a NUMBER, b OUT NUMBER) AS BEGIN b := a * 4; INSERT INTO T1 VALUES(a, b); END; /
Jalankan script tersebut (procedure AddT1) dan cek dengan script berikut : DECLARE v number; BEGIN addt1(10,v); END; /
Script diatas menambahkan data kedalam tabel T1 dengan nilai field pertama 10 dan nilai field kedua (v) dari hasil perhitungan dalam procedure. FUNCTION Function merupakan PL/SQL blok yang mirip dengan procedure. Perbedaannya adalah function mengembalikan suatu nilai dan dipanggil melalui suatu ekspresi. Untuk membuat function, diawali dengan CREATE OR REPLACE FUNCTION. Sama seperti membuat procedure, kalimat OR REPLACE digunakan untuk menimpa function yang sudah ada jika namanya sama. Berikut ini contoh function. CREATE OR REPLACE FUNCTION HitSks(vnim krs.nim%type) RETURN matakuliah.sks%type is vsks matakuliah.sks%type; Begin select count(sks) into vsks from krs, matakuliah where krs.nim = vnim and krs.kdmtk=matakuliah.kdmtk;
20
RETURN vsks; END HitSks; /
Dari prompt SQL *PLUS eksekusi script function diatas. Fungsi HitSks dapat dipergunakan dengan pemanggilan fungsi dengan perintah berikut ini pada prompt SQL *PLUS : SQL> select nama, hitsks(nim) from mahasiswa where hitsks(nim)>2;
Pemanggilan fungsi dapat dilakukan di dalam suatu blok procedure. Semua nilai yang dikembalikan oleh function tersebut dapat dipergunakan untuk input suatu proses dalam suatu ekspresi didalam procedure. Justru kenyataanya, function banyak dipergunakan didalam blok procedure. TRIGGER Trigger merupakan PL/SQL blok yang mirip dengan procedure. Jika procedure dijalankan secara eksplisit lewat pemanggilan procedure, trigger dijalankan secara implisit lewat ‘pemicu’. Pemicu yang dimaksud adalah Data Manipulation Language (DML) yang terdiri atas perintah INSERT, UPDATE atau DELETE dari suatu tabel database. Trigger bermanfaat untuk : •
Mengatur integrity constraint yang kompleks yang tidak mungkin ditangani oleh sintaks-sintaks pembuatan tabel.
•
Audit database dengan cara memasukkan informasi perubahan dan siapa yang mengubah saat ada user yang mengubah data.
•
Secara otomatis memberi sinyal program lain untuk melakukan sesuatu jika isi tabel diubah.
Trigger dapat didefinisikan untuk operasi INSERT, UPDATE dan DELETE. Trigger ini dapat dipicu sebelum (BEFORE) atau sesudah (AFTER) operasi berjalan. Trigger juga berlaku untuk tingkat baris (FOR EACH ROW) yang berlaku untuk setiap baris tabel saat dimanipulasi, atau tingkat seluruh tabel yang dijalankan untuk seluruh tabel saat trigger itu dijalankan.
21
Buatlah tabel dengan nama tlog dengan field user varchar(25), tanggal varchar(30), komentar varchar(35). Ketikkan script trigger berikut ini dan jalankan di prompt SQL *PLUS. CREATE OR REPLACE TRIGGER TRIGUBAH BEFORE DELETE OR INSERT OR UPDATE ON MAHASISWA BEGIN insert into tlog values (user, to_char(sysdate, 'Month DY, DD, HH24:MI'),'Tabel telah diubah'); END; /
Trigger tersebut bernama TRIGUBAH, yang berguna untuk melakukan dokumentasi jika tabel mahasiswa diubah. Identitas perubah disimpan dalam field user, tanggal perubahan dan komentar. Ubah script trigger diatas menjadi script trigger berikut ini : CREATE OR REPLACE TRIGGER TRIGUBAH BEFORE DELETE OR INSERT OR UPDATE ON MAHASISWA BEGIN If deleting then insert into tlog values (user, to_char(sysdate, 'Month DY, DD, HH24:MI'),'Data pada tabel dihapus'); elsif inserting then insert into tlog values (user, to_char(sysdate, 'Month DY, DD, HH24:MI'),'Data pada tabel ditambah'); elsif updating then insert into tlog values (user, to_char(sysdate, 'Month DY, DD, HH24:MI'),'Data pada tabel diubah'); end if; END; /
Jalankan script trigger tersebut dan cobalah untuk menambah, mengupdate dan menghapus data pada tabel mahasiswa. Lihat isi tabel tlog. Tambahkan komentar anda pada laporan tugas mingguan. CATATAN : Untuk tugas mingguan akan diberikan pada saat praktikum.
22
SKRIPSI
PEMANFAATAN MYSQL VB API DALAM APLIKASI CLIENT/SERVER SISTEM PENGOLAHAN DATA PASIEN RAWAT INAP PADA RSUD BATURAJA
Oleh WAHYU HIDAYATI 99051564
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 2003
BAGAN STRUKTUR ORGANISASIRUMAH SAKIT UMUM DAERAH (RSUD) BATURAJA
Alir Informasi RSUD
?
DAD level 0
?
DAD level 1
Pasien No Nama Field Type Size Keterangan 1 No_CM * Varchar 10 Nomor Kartu Medik 2 Nm_Pas Varchar 30 Nama pasien 3 Glr_Pas Varchar 15 Gelar Pasien 4 T4_Lhr Varchar 15 Tempat Lahir Pasien 5 Tgl_Lhr Date Tanggal Lahir Pasien 6 Agama Char 1 Agama 7 Jen_Kel Char 1 Jenis Kelamin Pasien 8 Pddkan Char 2 Pendidikan 9 Stat_Pas Char 1 Status Perkawinan Pasien 10 Kerja_Pas Char 2 Pekerjaan Pasien 11 Almt_Pas Varchar 35 Alamat Rumah Pasien 12 Gol_Drh Char 2 Golongan Darah Pasien 13 Nm_Png Varchar 30 Nama Orangtua Pasien 14 Almt_Png Varchar 35 Alamat Orangtua Pasien Kunci utama : No_CM Kunci kedua : Nm_Pas Keterangan : tabel untuk menyimpan data pasien Kamar No Nama Field Type Size Keterangan 1 Kd_Kmr Varchar 5 Kode kamar 2 Nm_Kmr Varchar 30 Nama kamar 3 Fas_Kmr Varchar 50 Kapasitas kamar 4 Kap_Kmr Integer Kapasitas / jumlah tempat tidur 5 Trf_kmr Integer Tarif kamar per malam 6 Kon_Kmr Integer Kondisi Kamar / Jml T, Tidur Kosong Kunci utama : Kd_Kmr Kunci kedua : Nm_Kmr Keterangan : tabel untuk menyimpan data kamar yang tersedia Dokter No Nama Field Type Size Keterangan 1 Kd_Dok Varchar 10 Kode Dokter 2 Nm_Dok Varchar 30 Nama Dokter 3 Glr_Dok Varchar 15 Gelar Dokter 4 Jns_Dok Char 1 Jenis Dokter 5 Ahli_Dok Varchar 30 Keahlian Dokter 6 Almt_Rmh Varchar 35 Alamat Rumah Dokter 7 Telp_Rmh Varchar 15 Nomor Telepon Rumah Dokter 8 No_HP Varchar 15 Nomor HandPhone Dokter 9 T4_Prakt Varchar 30 Tempat Praktek Dokter 10 Almt_Prakt Varchar 35 Alamat Praktek Dokter 11 Telp_Prakt Varchar 15 Nomor Telepon Praktek Dokter 12 Trf_Dok Integer Tarif Dokter Kunci utama : Kd_Dok Kunci kedua : Nm_Dok Keterangan : tabel untuk menyimpan data dokter
Diagnosa No Nama Field Type Size Keterangan 1 Kd_Diag Varchar 5 Kode diagnosa 2 Nm_Diag Varchar 30 Nama diagnosa 3 Trf_Diag Integer Tarif diagnosa Kunci utama : Kd_Diag Kunci kedua : Nm_Diag Keterangan : tabel untuk menyimpan data diagnosa Obat No Nama Field Type Size 1 Kd_Obat Varchar 10 Kode obat 2 Nm_Obat Varchar 30 Nama obat 3 Harga Integer Harga obat Kunci utama : Kd_Obat Kunci kedua : Nm_Obat Keterangan : tabel untuk menyimpan data Obat
Keterangan
Tindakan No Nama Field Type Size Keterangan 1 Kd_Tindakan Varchar 10 Kode tindakan 2 Nm_Tindakan Varchar 30 Nama tindakan 3 Tarif Integer Tarif tindakan Kunci utama : Kd_Tindakan Kunci kedua : Nm_Tindakan Keterangan : tabel untuk menyimpan jenis tindakan / pelayanan di Rumah Sakit Inap No Nama Field Type Size Keterangan 1 No_RM Varchar 6 Nomor Registrasi 2 No_CM Varchar 10 Nomor Kartu Medik 3 Tgl_Msk Date Tanggal Masuk 4 Jam_Msk Time Jam Masuk 5 Pros_Msk Char 1 Prosedur Masuk 6 Cara_Msk Char 1 Cara Masuk 7 Kd_Kmr Varchar 5 Kode kamar 8 Nm_Pnj Varchar 30 Nama Penanggung Jawab Pasien 9 Almt_Pnj Varchar 35 Alamat Penanggung Jawab Pasien Kunci utama : No_RM Kunci kedua : No_CM Keterangan : tabel untuk menyimpan data pasien yang dirawat ps_dokter No Nama Field Type Size Keterangan 1 Kd_Dok Varchar 10 Kode Dokter 2 Jml_Kjg Integer Jumlah Kunjungan Dokter 3 No_RM Varchar 6 Nomor Registrasi Kunci utama : No_RM Keterangan : tabel untuk menyimpan data dokter yang merawat pasien.
ps_diagnosa No Nama Field Type Size Keterangan 1 Kd_Diag Varchar 5 Kode Diagnosa 2 Tgl_Chek Date Tanggal Cek / Periksa 3 No_RM Varchar 6 Nomor Registrasi Kunci utama : No_RM Keterangan : tabel untuk menyimpan data diagnosa pasien yang dirawat ps_obat No Nama Field Type Size Keterangan 1 Kd_Obat Varchar 10 Kode Obat 2 Jml_Pakai Integer Jumlah Obat Terpakai 3 No_RM Varchar 6 Nomor Registrasi Kunci utama : No_RM Keterangan : tabel untuk menyimpan data obat yang dipakai pasien rawat inap ps_tindakan No Nama Field Type Size Keterangan 1 Kd_Tindakan Varchar 10 Kode Tindakan 2 Tgl_Tindak Date Tanggal Tindakan Dilakukan 3 No_RM Varchar 6 Nomor Registrasi Kunci utama : No_RM Keterangan : tabel untuk menyimpan data tindakan terhadap pasien yang dirawat Keluar No Nama Field Type Size Keterangan 1 No_RM Varchar 6 Nomor Registrasi 2 Tgl_Klr Date Tanggal keluar 3 Jam_Klr Time Jam keluar 4 Cara_Klr Char 1 Cara Pasien Keluar 5 Kon_Klr Char 1 Kondisi Pasien Saat Keluar Kunci utama : No_RM Kunci kedua : Tgl_Klr Keterangan : tabel untuk menyimpan data pasien keluar / pulang.
Relasi Antar Tabel Basis Data
HIPO <> Menu
Hipo Menu Sistem Pengolahan Data Pasien Rawat Inap
Hipo Sub Menu File
Hipo Sub Menu Master
Hipo Sub Menu Transaksi
Hipo Sub Menu Registrasi Pasien
Hipo Sub Menu Laporan
Hipo Sub Menu Utility
Help = bantuan Bukan About
Hipo Sub Menu About
Desain Dialog
Desain Dialog Menu Utama
Desain Dialog Sub Menu File
Desain Dialog Sub Menu Master
Desain Dialog Sub Menu Transaksi
Desain Dialog Sub Menu Registrasi Pasien
Desain Dialog Sub Menu Laporan
Desain Dialog Sub Menu Utility
Desain Input Login Sistem
Format ?
Desain Input Data Pasien
Format ?
Desain Input Data Kamar
Format ?
Desain Input Data Dokter
Format ?
Desain Input Data Diagnosa
Format ?
Desain Input Data Obat
Format ?
Desain Input Data Tindakan
Format ?
Desain Input Data Pasien Inap
Format ?
Desain Input Registrasi Dokter
Format ?
Desain Input Registrasi Obat
Format ?
Desain Input Registrasi Diagnosa
Format ?
Desain Input Registrasi Tindakan
Format ?
Desain Input Data Pasien Pulang / Keluar
Format ?
Desain Input Rekening Pasien
Desain Laporan Data Kamar
Desain Laporan Data Dokter
Desain Laporan Data Diagnosa
Desain Laporan Data Obat
Desain Laporan Data Tindakan
Desain Laporan Data Pasien Rawat Inap
Desain Laporan Data Per Pasien
Desain Laporan Data Pasien Pulang / Keluar
Desain Laporan Rincian Rekening Pasien
Desain Laporan Pendapatan Harian
Desain Laporan Pendapatan Bulanan
SKRIPSI SISTEM CLIENT/SERVER PENGOLAHAN DATA PERIPHERAL KOMPUTER DI TOKO MATRIX COMP YOGYAKARTA CLIENT / SERVER SYSTEM of COMPUTER PERIPHERAL DATA PROCESSING in MATRIX COMP SHOP YOGYAKARTA
Diajukan Oleh : Nama
: Askin Setia Rinaldhy
NIM
: 00051700
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 2005
Diagram Alir Data Context Diagram Project Name: Project Path: Chart File: Chart Name: Created On: Created By: Modified On: Modified By :
New Project Name d: \easyc ase\baru\ dfd00001.dfd dadbaru Feb-26-2005 Aldi Feb-26-2005 Aldi D2 Supplier
D4 beli_dtl
D3 Beli
D5 Ret urn_Beli
beli beli_dtl D1 Barang
b
Supplier
return_beli
Supplier
Barang
Barang
return_beli
1
a
c
Pengolahan Dat a Matrix
Barang
beli beli_dtl jual return_Jual
Laporan
Konsumen jual_dtl
b
d
Supplier
Pimpinan
Supplier jual StockBarang
D6 Stockbarang
return_Jual jual_dtl
D7 Jual
D8 jual_dtl
D9 Ret urn_Jual
DAD Level 1 New Project Name d:\easycase\baru\ dfd00002.dfd Pengolahan Data Matrix Feb-26-2005 Aldi Feb-26-2005 Aldi
Project Name: Project Path: Chart File: Chart Name: Cr eated On: Cr eated By: Modified On: Modified By:
D1 Barang
D3 Beli
D4 beli_dtl
a
b Barang
Barang
beli
Supplier
Barang beli_dtl 1.1
beli beli_dtl return_beli Laporan
Pembelian return_beli b
d
Supplier
D5 Return_Beli
Supplier
Supplier
Pimpinan
beli_dtl
D2 Supplier
1.2 D6 Stockbarang
StockBarang
d Laporan
StockBarang
Proses: • Pembelian • Stok barang • Penjualan
StockBarang
1.3
c Konsumen
c jual_ dtl
konsumen
Pimpinan
jual
Penjualan
Konsumen
return_Jual
Laporan d D7 Jual
jual
Pimpinan
return_Jual jual_dtl D8 jual_dtl
D9 Return_Jual
DAD Level 2 Project Name: Project Path: Chart File: Chart Name: Created On: Created By: Modified On: Modified By:
New Project Name d: \easycas e\baru\ dfd00003.dfd Pembelian Feb-26-2005 Aldi Feb-26-2005 Aldi
D1 Barang
D2 Supplier
Barang
Supplier
1. 1.1
1. 1.2
a Barang
Barang
Input Barang
Input Supplier
Barang
Supplier
1. 1.3
jual
Proses: • Pembelian: • Input barang • Input supplier b • Pengolahan data Supplier Supplier matrik • Stok barang • Penjualan
Pengolahan Data Matrix
beli
konsumen
c D7 Jual
Konsumen
Rancangan Struktur Menu Menu Utama Server MENU UTAMA
INPUT DATA
TRANSAKSI
D3 Beli
Proses: • Pembelian: • Input barang • Input supplier • Pengolahan data matrik • Stok barang • Penjualan
LAPORAN
UTILITY
Menu Input Data Server INPUT DATA
BARANG
SUPLIER
STOCK BARANG
Menu Transaksi Server TRANSAKSI
PENJUALAN
PEMBELIAN
RETURN PEMBELIAN
Proses: • Pembelian: • Input barang • Input supplier • Pengolahan data matrik • Stok barang • Penjualan
RETURN PENJUALAN
Menu Laporan Server LAPORAN
LAPORAN SUPLIER
LAPORAN BARANG
LAPORAN PEMBELIAN
LAPORAN PENJUALAN
LAPORAN RETURN PENJUALAN
LAPORAN RETURN PEMBELIAN
LAPORAN STOCK BARANG
Menu Utility Server UTILITY
KURS
PASSWORD
BANTUAN
PROGRAMMER
Rancangan Menu Client Menu Utama Client MENU UTAMA
INPUT DATA
TRANSAKSI
UTILITY
Menu Input Data Client Proses: • Pembelian: • Input barang • Input supplier • Pengolahan data matrik • Stok barang • Penjualan
INPUT DATA
STOCK BARANG Menu Transaksi Client TRANSAKSI
PENJUALAN
RETURN PENJUALAN
Menu Utility Client UTILITY
PASSWORD
BANTUAN
PROGRAMMER
Desain Basis Data Barang Nama Field Kode_Barang Nama_Barang
Type Varchar Varchar
Lebar 5 35
Isi Kode Barang Nama Barang
Jenis_Barang
Varchar
15
Jenis Barang
Harga_Barang Harga_Jual
Integer Integer
Harga Beli Harga Jual
Spek B0...9 A...Z a...z A...Z a...z 0...9 0...9
Default -
Null Not null Not Null
-
Null
-
Null Null
Ket PK
Supplier
Dari supplier ?
Nama Field Kode_Supplier Nama_Supplier
Type Varchar Varchar
Lebar 5 35
Isi Kode Supplier Nama Supplier
Alamat
Varchar
50
Alamat Supplier
No_Telp E_Mail
Varchar Varchar
12 50
No Telepon Alamat E-Mail
Nama Field No_Faktur Kode_Supplier Tanggal
Type Varchar Varchar Date
Lebar 5 5
Isi No Faktur Kode Supplier Tanggal transaksi
Total
Integer
Spek S0...9 A...Z a...z A...Z a...z 0..9 A...Z a...z
Default -
Null Not null Not Null
-
Null
-
Null Null
Ket PK
beli
Total
Spek F0....9 S0...9 dd/mm/yyyy 99/99/9999 0..9
Default -
Null Not null Not Null Not Null
-
Not Null
Ket PK PK
Ket PK PK
beli_dtl Nama Field No_Faktur Kode_Barang
Type Varchar Varchar
Harga Jumlah
Integer Integer
Lebar 5 5
Isi No Faktur Kode Barang Harga Beli Jumlah Barang
Spek F0...9 B0...9
Default -
Null Not null Not null
0....9 0....9
-
Not Null Not Null
ReturnBeli Nama Field No_Faktur Kode_Barang Tanggal
Type Varchar Varchar Date
Jumlah Keterangan
Integer Varchar
Lebar 5 5
50
Isi No Faktur Kode Barang Tanggal Return Jumlah Barang Ket. Return
Spek F0...9 B0...9 dd/mm/yyyy 99/99/9999 0....9 A...Z a...z
Default -
Null Not null Not null Not null
-
Not null Null
Ket PK PK
StockBarang Nama Field Kode_Barang Nama_Barang
Type Varchar Varchar
Jumlah
Integer
Lebar 5 35
Isi Kode Barang Nama Barang
Spek B0...9 A...Z a...z 0....9
Jumlah Barang
Default -
Null Not null Not null
-
Not null
Ket PK
Jual Nama Field No_Nota Tanggal
Type Varchar Date
Lebar 5
Isi No Nota Tanggal Transaksi
Nama
Varchar
35
Nama Pelanggan
Alamat
Varchar
50
Alamat Pelanggan
No_telp Total
Varchar Integer
12
No Telp Pelanggan Total Jual
Type Varchar Varchar Integer Integer
Lebar 5 5
Isi No Nota Kode Barang Harga Jual Jumlah Barang
Nama Field No_Nota Kode_Barang Tanggal
Type Varchar Varchar Date
Lebar 5 5
Isi No Nota Kode Barang Tanggal Return
Jumlah
Integer
Keterangan
Varchar
Spek N0...9 dd/mm/yyyy 99/99/9999 A...Z a....z A...Z a...z 0...9 0...9
Default -
Null Not null Not null
-
Not null
-
Not null
-
Null Not null
Ket PK
Jual_dtl Nama Field No_Nota Kode_Barang Harga Jumlah
Spek N0...9 B0...9 0....9 0....9
Default -
Null Not null Not null Not null Not null
Ket PK PK
ReturnJual
Jumlah Barang 50
Ket. Return
Spek N0...9 B0...9 dd/mm/yyyy 99/99/9999 0....9
Default -
Null Not null Not null Not null
-
Not null
A...Z a....z
-
Null
Ket PK PK
Kerelasian Antar Tabel Barang
Supplier Kode_Supplier(*) Nama_Supplier Alamat No_Telp E-Mail
Kode_Barang(*) Nama_Barang Jenis_Barang Harga_Barang Harga_Jual
Jual Beli
No_Nota(*) Tanggal Nama Alamat No_Telp Total
No_Faktur(*) Kode_Supplier(**) Tanggal Total Stock_Barang Beli_Dtl No_Faktur(**) Kode_Barang(**) Jumlah Harga
Kode_Barang(*) Nama_Barang Jumlah Stock
Jual_Dtl No_Nota(**) Kode_Barang(**) Harga Jumlah
Return Beli
Return Jual
No_Faktur(**) Kode_Barang(**) Tanggal Jumlah Keterangan
No_Nota(**) Kode_Barang(**) Tanggal Jumlah Keterangan
Desain Input dan Output Input Barang
Matrix Computer JOGJAKARTA Melayani Penjualan Peripheral Komputer Kode Barang
:
Nama Barang
:
Jenis Barang
:
Harga Beli
:
Harga Jual
:
Kode Barang
Format ?
Nama Barang
xxxxxxxxxx
xxxxxxxxxxxxxx
Tambah
Edit
Jenis Barang
Harga Beli
Harga Jual
xxxxxxxxxxxx
999999999
999999999
Simpan
Batal
Hapus
Keluar
Input Supplier
Matrix Computer JOGJAKARTA Melayani Penjualan Peripheral Komputer Kode Supplier
:
Nama Supplier
:
Alamat
:
No Telp
:
E-Mail
:
Kode Supplier xxxxxxxxxx
Tambah
Format ?
Nama Supplier xxxxxxxxxxxxxx
Edit
Alamat
No Telp
E-Mail
xxxxxxxxxxxx
xxxxxxxxxx
xxxxxxxxxxx
Simpan
Batal
Hapus
Keluar
Stock Barang
Matrix Computer JOGJAKARTA Melayani Penjualan Peripheral Komputer Kode Barang
:
Nama Barang
:
Harga Jual
:
Jumlah Stock
:
Kode Barang xxxxxxxxxx
Format ?
Nama Barang
Harga Jual
xxxxxxxxxxxxxx
99999999999
Cari Barang
Jumlah Stock 99999999
Keluar
Cari
Nama Barang
Input Pembelian
Matrix Computer JOGJAKARTA Melayani Penjualan Peripheral Komputer No Faktur
:
Kode Supplier
:
Tanggal
:
Format ?
Kode Barang
Nama Barang
Harga Beli
Jumlah Barang
xxxxx
xxxxxxxxxxxxxxxxxxxxxx
99999999999
99999999
Total Harga $
:
Kurs
:
Total Harga Rp
:
Tambah
Edit
Format ?
Simpan
Batal
Konversi
Cetak
Hapus
Keluar
Input Return Pembelian
Matrix Computer JOGJAKARTA Melayani Penjualan Peripheral Komputer No Faktur
:
Kode Barang
:
Jumlah
:
Keterangan
:
Tanggal
:
Format ?
No Faktur
Kode Barang
Tanggal
Jumlah
Keterangan
xxxxx
xxxxxxxxxxxxxxxxxx
99/99/9999
999999999
xxxxxxxxxx
Tambah
Edit
Simpan
Batal
Hapus
Keluar
Input Penjualan
Matrix Computer JOGJAKARTA Melayani Penjualan Peripheral Komputer No Nota
:
Tanggal
:
Nama Pelanggan
:
Alamat
:
No Telp
:
Kode Barang
Nama Barang
Harga Beli
Jumlah Barang
xxxxx
xxxxxxxxxxxxxxxxxxxxxx
99999999999
99999999
Total Harga $
:
Kurs
:
Total Harga Rp
:
Tambah
Edit
Konversi
Simpan
Batal
Hapus
Cetak Keluar
Input Return Penjualan
Matrix Computer JOGJAKARTA Melayani Penjualan Peripheral Komputer
No Nota
:
Kode Barang
:
Tanggal
:
Jumlah
:
Keterangan
:
Kode Barang
Nama Barang
Harga Beli
Jumlah Barang
xxxxx
xxxxxxxxxxxxxxxxxxxxxx
99999999999
99999999
Keluar Tambah
Edit
Simpan
Batal
Hapus
Output Laporan Data Barang
Matrix Computer JOGJAKARTA Laporan Data Barang Kode Barang
Nama Barang
Jenis Barang
Harga Beli
Harga Jual
xxxxx
xxxxxxxxx
xxxxxxxxxx
99999999
999999999
Jogjakarta, (date) (Staff)
Output Laporan Data Supplier
Matrix Computer JOGJAKARTA Laporan Data Supplier Kode Suplier
Nama Supplier
Alamat
No Telp
xxxxx
xxxxxxxxxxxx
xxxxxxxxxx
Alamat E-Mail
xxxxxxxx xxxxxxxxxxxxx
Jogjakarta, (date) (Staff) Output Laporan Stock Barang
Matrix Computer JOGJAKARTA Laporan Stock Barang Kode Barang
Nama Supplier
Harga
Stock
xxxxx
xxxxxxxxxxxx
99999999
999999
Jumlah total $ 999999 Jogjakarta, (date) (Staff) Nota Pembelian
Matrix Computer JOGJAKARTA Faktur Pembelian No Faktur
:
Tanggal
:
Kode Supplier
:
Nama Supplier
:
No 99
Kode Barang xxxxx
Nama Barang xxxxxxxxxxxxx
Total Bayar
Harga 99999999
Jumlah 9999999
$ 99999999,99
Supplier
Jogjakarta, (date)
(Nama Supplier)
Matrix
Nota Penjualan
Matrix Computer JOGJAKARTA Nota Penjualan No Nota
:
Tanggal
:
Nama Pelanggan
:
Alamat
:
No Telp
:
No 99
Kode Barang xxxxx
Nama Barang xxxxxxxxxxxxxxxxxx
Harga 99999999
Jumlah 99999999
Total Harga
$ 99999999,99
Nilai Kurs (Rp. 99999)
Rp 99999999,99
Pelanggan
Jogjakarta, (date)
(Nama Pelanggan)
Matrix
Output Laporan Pembelian
Matrix Computer JOGJAKARTA Tanggal xx/xx/xxxx s/d xx/xx/xxxx Laporan Pembelian No Faktur
Tanggal
Nama Supplier
Nama Barang
Jumlah
Harga
Total Pembelian $ 9999999 Jogjakarta, (date) (Staff)
Output Laporan Penjualan
Matrix Computer JOGJAKARTA Tanggal xx/xx/xxxx s/d xx/xx/xxxx Laporan Penjualan No Nota xxxxx
Tanggal 99/99/9999
Nama Pelanggan xxxxxxxxxxx
Nama Barang
Jumlah
Harga
xxxxxxxxxx
9999
999999
Total Penjualan $ 9999999 Jogjakarta, (date) (Staff) Output Laporan Return Pembelian
Matrix Computer JOGJAKARTA Tanggal xx/xx/xxxx s/d xx/xx/xxxx Laporan Return Pembelian No Faktur xxxxx
Tanggal
Nama Supplier
99/99/9999
xxxxxxxxxxxxx
Kode Barang xxxxx
Jumlah
Keterangan
9999
xxxxxxxxxxxxxxxx
Jumlah Return Pembelian $ 999999 Jogjakarta, (date) (Staff) Laporan Return Penjualan
Matrix Computer JOGJAKARTA Tanggal xx/xx/xxxx s/d xx/xx/xxxx Laporan Return Penjualan No Nota xxxxx
Tanggal return 99/99/9999
Nama Pelanggan xxxxxxxxx
Kode Barang xxxxx
Jumlah
Keterangan
999999
xxxxxxxxxxxxx
Jumlah Return Penjualan $ 999999 Jogjakarta, (date) (Staff)
Infrastruktur Jaringan Untuk infrastruktur jaringan dalam aplikasi, menggunakan jaringan client sever, tetapi karena hanya ada 1 server dan 1 client maka tanpa dibantu menggunakan hub untuk koneksi jaringan.
Client/Front Office Client-Server: • Front End • Back End • Database Server Server/Gudang Komunikasi antar unit (client/server), dimulai pada saat aplikasi berjalan atau dieksekusi. Pada saat unit client aktif, dan melakukan transaksi. Maka unit client akan mengirim perintah ke unit server, dari server akan dikembalikan hasil yang unit client minta. Data yang diporses pada unit server adalah database keseluruhan sistem, sedang yang dikirim ke client hanya hasil atau data tunggal saja, bukan seluruh database. Client-Server: • Thin client : o Client : Front End o Server : Back End Database Server • Fat client o Client : Front End Client : Front End o Server : Database Server Server :
LAPORAN SKRIPSI ANALISIS dan PERANCANGAN SISTEM CLIENT / SERVER PENDAFTARAN PRAKTIKUM LABORATORIUM KOMPUTER IV INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA Dengan Menggunakan Visual Basic 6.0 dan MySql
Disusun Oleh : Nama
: Dwi Setia Handayani
No. Mahasiswa
: 00051768
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 2004
i
Konteks Diagram a Laboratorium
D ata Lab
Laporan
0 c Mahasis w a
D ata m ahas is w a
Dari mana asal data: Mata praktikum Mahasiswa
Aplikas i Pendaftaran Praktikum
D aftar nilai
b J urusan
ii
J adw al praktikum
c Mahas is w a
N ilai praktikum
DFD Level 0 D5
F ile jm p
a
c
L a b o ra to riu m
M a h a s is w a
D6
F ile ass
D2
f ile a s s _ ja g a
D3
F ile m tp
D a ta m a h a s is w a D a ta L a b D4
F ile a s s
F ile h rp
F ile a s s _ ja g a
F ile jm p D11
F ile ta
F ile m tp
F ile h rp
1
F ile ta
D9
In p u t D a ta
F ile jd w l
F ile jd w l
F ile m h s
P ro s e s D a f ta r
F ile d f tr
D8 F ile jd w l
F ile d f tr
F ile d f tr
F ile n ila i
D7
F ile n ila i
3 N ila i p ra k tik u m ja d w a l p ra k tik u m
F ile m hs
F ile m h s
2 F ile jd w l
D1
O u tp u t D a ta
L a p o ra n
c
a
M a h a s is w a
L a b o ra to riu m D a f ta r n ila i
b J u ru s a n
iii
F ile n ila i
DFD Level 1 Aplikasi Pendaftaran Praktikum (Input) 1.1 a Laboratorium
Master Mtp
Data Laboratorium
File mtp
D3
File mtp
D4
File hrp
D5
File jmp
Dftr mtp
1.2 Master hrp
File hrp
Dftr hrp
1.3 Master jmp
File jmp
File jmp
1.4 Master ass
File ass
D6
File ass
File ass
1.7 Master Ass_jaga
File ass
1.5 Master Jdwl
File jdwl
D9
File jdwl
File jdwl
1.6 c Mahasiswa
Data mahasiswa
Master mhs
File mhs
iv
D1
File mhs
File ass_jaga
D2
file ass_jaga
DFD Level 2 2.1 D9
File jdwl
File jdwl
Proses daftar praktikum
File mhs
D1
D8
File dftr
File mhs
File dftr
File dftr
2.2
Asal data: Nilai
Proses daftar nilai
File nilai
D7
File nilai
DFD Level 3
3.1 D8
File dftr
File dftr
3.3
a
Laporan presensi
Laporan
Laboratorium
Laporan
3.2 File D7 nilai
File nilai
Laporan daftar nilai
jadwal praktikum Nilai praktikum
c Mahasiswa
Daftar nilai
b Jurusan
v
Laporan
Laporan jadwal
File jdwl
D9
File jdwl
Relasi Antar Tabel Dalam Database Mata praktikum
Praktikum
Kode_mtp * Mata_prak Hari praktikum
Id_prak * Id_jdwl * Nim ** Klmp Id_nil Nil_pre Nil_pres Nil_lap Nil_res Nil_hur
Jadwal
Kode_hrp * Hari_prak
Id_jdwl Kode_mtp ** Kode_hrp * Kode_jmp * Kode_ta * Kode_ass ** Smt
Jam praktikum Kode_jmp * Jam_prak
Mahasiswa Nim * Kode_mtp *
Bgmn jika diintegrasikan dengan database laen
Id_jdwl * Kode_ass *
Kode_ass * Nama_ass
Kode_ta * Thn_ajaran
Nim * Nama_mhs
Asisten jaga
Asisten
Tahun ajaran
Mahasiswa
HIPO Menu Utama Sistem Sistem Pendaftaran Praktikum
File
Data
Proses
Laporan
Utility
Login
Jadwal
Daftar
Presensi
Nilai Jadi
Help
Logout
Mata Praktikum
Nilai
Jadwal
Search
About
Exit
Hari Praktikum
Nilai
Back Up
Jam Praktikum
Asisten
Restore
Asisten
Password
Asisten Jaga
Setup Printer
Mahasiswa Tahun Ajaran
vi
Help
mahasiswa No.
Field
Keterangan Field
Type
Width
Key
Char
8
*
Kunci primer
Varchar
30
-
-
Type
Width
Key
Keterangan Key -
1.
Nim
No. induk mahasiswa
2.
Nama_mhs
Nama mahasiswa
Keterangan Key
jadwal No.
Field
Keterangan Field
1.
Id_jdwl
Id jadwal
Char
8
-
2.
Kode_mtp
Kode mata praktikum
Char
3
**
Kunci sekunder
3.
Kode_hrp
Kode hari praktikum
Char
2
*
Kunci primer
4.
Kode_jmp
Kode jam praktikum
Int
1
*
Kunci primer
5.
Kode_ta
Kode tahun ajaran
Int
2
*
Kunci primer
6.
Kode_ass
Kode asisten
Char
3
**
Kunci sekunder
7.
Smt
Semester
Char
6
-
-
Type
Width
Key
Keterangan
Int
2
*
Kunci primer
Praktikum No.
Field Nama
Keterangan Field
1.
Id_prak
Id praktikum
2.
Id_jdwl
Id jadwal
Char
8
*
Kunci primer
3.
Nim
No. induk mahasiswa
Char
8
**
Kunci sekunder
4.
Klmp
Kelompok
Char
1
-
-
5.
Id_Nil
Id Nilai
Int
3
-
-
6.
Nil_pre
Nilai presensi
Int
3
-
-
7.
Nil_pres
Nilai presentasi
Int
3
-
-
8.
Nil_lap
Nilai Laporan
Int
3
-
-
9.
Nil_resp
Nilai responsi
Int
3
-
-
10.
Nil_Hur
Nilai Huruf
Char
1
-
-
Type
Width
Key
Keterangan
asisten jaga No.
Field Nama
Keterangan
1.
Id_jdwl
Id jadwal
Char
8
*
Kunci primer
2.
Kode_ass
Kode asisten
Char
3
*
Kunci primer
vii
asisten No.
Field Nama
Keterangan
Type
Width
Key
Keterangan
1.
Kode_ass
Kode asisten
Char
3
*
Kunci primer
2.
Nama_ass
Nama asisten
Varchar
30
-
-
Type
Width
Key
Keterangan
mata praktikum No.
Field Nama
Keterangan
1.
Kode_mtp
Kode mata praktikum
Char
3
*
Kunci primer
2.
Mata_prak
Mata praktikum
Varchar
30
-
-
Keterangan Field
Type
Width
Key
Keterangan Key
mhs_prak No.
Field
1.
Nim
No. induk mahasiswa
Char
8
*
Kunci primer
3.
Kode_mtp
Kode mata praktikum
char
3
*
Kunci primer
Keterangan
Type
Width
Key
hari praktikum No.
Field Nama
Keterangan
1.
Kode_hrp
Kode hari praktikum
Char
2
*
Kunci primer
2.
Hari_prak
Hari praktikum
Char
6
-
-
Keterangan
Type
Width
Key
Keterangan
Int
1
*
Time
8
-
-
Type
Width
Key
Keterangan
Int
2
*
Char
9
-
jam praktikum No.
Field Nama
1.
Kode_jmp
Kode jam praktikum
2.
Jam_prak
Jam praktikum
Kunci primer
tahun ajaran No.
Field Nama
Keterangan
1.
Kode_ta
Kode tahun ajaran
2.
Thn_ajaran
Tahun ajaran
viii
Kunci primer -
Desain Input Sistem Desain Input Mahasiswa Mahasiswa
Nim : X (8) Nama : X (30) Kode_mtp : X (3) Drive
Daftar Mahasiswa Praktikum
Datagrid
File
Dir
Lokasi file
Load
Cancel
Insert
Edit
Desain Input Asisten
Asisten Kode : X (3) Nama : X (30)
Add
Cancel
Daftar Asisten Praktikum Kode Nama X (3) X (30)
Edit
Delete
ix
Delete
Desain Input Jadwal Mata Praktikum
ID Jadwal
X (8) combo
X (30) combo
Hari Praktikum
Jam Praktikum
X (6) combo
Asisten Praktikum
X (8) combo
X (30) combo
Tahun Ajaran X (9) combo Semester
ID Jdwl X (8)
Kode Mtp X (3)
Add
Cancel
Detail
X (2) combo
Kode Hrp X (2)
Kode Jmp 9 (1)
Edit
Delete
Desain Input Mata Praktikum
Mata Praktikum Kode Mtp : X (3) Mata Praktikum : X (30) Add
Cancel
Daftar Mata Praktikum Kode Mata Praktikum X (3) X (30)
Edit
Delete
x
Desain Input Hari Praktikum Hari Praktikum Kode : X (2) Hari : X (6) Add
Cancel
Daftar Hari Praktikum Kode Hari X (2) X (6)
Edit
Delete
Desain Input Jam Praktikum
Jam Praktikum Kode : 9 (1) Jam : X (9)
Add Cancel
Daftar Jam Praktikum Kode Jam 9 (1) X (9)
Edit
Delete
xi
Desain Input Asisten Jaga
Asisten Jaga ID Jadwal Asisiten Jaga
: X (8) combo : X (30) combo
Daftar Asisten Jaga ID Jadwal Kode Asisten X (8) X (3)
Add Delete Edit Cancel
Desain Proses Daftar Praktikum Mahasiswa
Jadwal
Nim : X (8) combo Nama : X (30)
Id Jadwal X (8) Kelompok X (1) combo Click Jadwal Tahun Ajaran X (9)
Mata Prak Hari Prak
X (8)
X (30)
X (6)
Search
Jam Prak
9 (1)
For User
Jadwal X (8) Login dan password X(4)
Lihat Kelas
Cancel
xii
Ok
Desain Proses Nilai Praktikum
Nilai Praktikum
Daftar Nilai praktikum
Id Praktikum Id Jadwal Nama
X (2) X (8) X (30)
Nilai Absensi Nilai Presentasi Nilai Laporan Nilai Responsi
X (3) X (3) X (3) X (3)
Proses Id Nilai Absensi Presentasi Laporan Responsi
Datagrid
X (3) % X (3) % X (3) % X (3) %
Thn Ajaran Semester X (9) combo X(6) combo Proses
Edit
Edit
Proses Nilai Huruf
cancel Seleksi delete
Proses
close
Desain Laporan Sistem Desain Laporan Daftar Presensi
Daftar Presensi Praktikum Praktikum Hari Jam No. X(2) …
X (30) X (6) X (8) Klmp X (2) …
Id jadwal Tanggal
Nim X (8) …
Nama X (30) …
xiii
Ket X (5) …
X (8) date
Tanda Tangan …
Desain Laporan Daftar Nilai Daftar Nilai Praktikum Id Jadwal X (8)
Tahun Ajaran X (9)
Praktikum X (30)
Semester X (6)
ID X(2) …
Klmp X (1) …
Nim X (8) …
Nama Mahasiswa X (30) …
Nilai Huruf X (1) …
Desain Laporan Daftar Jadwal Daftar Jadwal Praktikum Tahun Ajaran X(9) Id Jadwal X (8) …
Semester X(6)
Mata Prak X (30) …
Hari Prak X (6) …
Jam Prak X (8) …
Desain Laporan Daftar Asisten
Daftar Asisten Praktikum Id Jdwl X (8) …
Nama asisten X (30) …
Desain Utility Sistem Desain Utility Nilai Jadi
Mahasiswa Id Jadwal Nim Nama
X (8) combo X (8) combo X (30)
Daftar Nilai Cancel Datagrid
xiv
Search
Koord Asisten X (30)
Desain Utility Search
Input Data Id Jadwal Nim
X (8) combo X (8) combo
Search Cancel
Jadwal yang dicari Datagrid
Desain Utility Password
Password User Host Password
X (60) X (16) X (16)
Ganti
xv
Batal
TUGAS AKHIR
SISTEM KEGIATAN PRAKTIKUM BERBASIS CLIENT SERVER DI LABORATORIUM KOMPUTER 1 & 2 DENGAN MENGGUNAKAN DELPHI 7.0 DAN MYSQL
Disusun Oleh : Nama
: Ganda Gamaliel Soritua Sinaga
No Mhs
: 02.35.1369
PROGRAM STUDI MANAJEMEN INFORMATIKA DAN TEKNIK KOMPUTER JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 2005
Diagram Konteks Project Name: Project Path: Chart File: Chart Name: Created On: Created By: Modified On: Modified By:
Sistem Komputerisasi Labkomp 1&2 e:\tugasm~1\easyca~1\ context.dfd Context Diagram Apr-09-2005 NAGA Jun-15-2005 NAGA Daftar Mahasiswa Mata Praktikum
Dt Jurusan Dt Bts Absen Asisten Jml Mhs/Komputer a Penilain Admin Dt IP Komputer LabKomp Jam & Hari 1&2
0 Sistem Komputerisasi Labkomp 1&2
c Jurusan
Nilai Mhs Presensi Mahasiswa Data Mahasiswa Presensi b
Nilai Mhs
Formulir Presensi
Mahasiswa
Diagram Alir Level 0 Project Name: Project Path: Chart File: Chart Name: Created On: Created By: Modified On: Modified By:
D2
Sistem Komputerisasi Labkomp 1&2 e:\tugasm~1\easyca~1\ dfd00.dfd Sistem Komputerisasi Labkomp 1&2 Apr-10-2005 NAGA Jul-21-2005 NAGA Data Jurusan
Master Jurusan
a Admin LabKomp 1&2
Daftar Mahasiswa 1
Dt Jurusan Asisten Dt IP Komputer
D1
Master Mahasiswa
Daftar Mahasiswa
c Jurusan
Pendataan
Mata Praktikum
Jml Mhs/Komputer
Dt Cl Praktikan
Jam & Hari
Dt Asisten
Dt Bts Absen
D5
Master Asisten
Dt MatPraktikum D3
Master MtPrak
Dt IP Komputer D4
Data Komp
Dt Asisten Dt MatPraktikum Jadwal Asisten
2
D7
Dt Jadwal Dt Jadwal
Jam & Hari
D10
Calon Praktikum
Dt Cl Praktikan
3
Pendaftaran
Jadwal Praktikum
Jam & Hari Jadwal Hari
D12
Jadwal Asisten
Penjadwalan MatKuliah D6
Dt IP Komputer
b Data Mahasiswa
Mahasiswa
Data Mahasiswa D8
Hasil Presensi
Mhs Praktikan
D11
Kegiatan Harian
4
b Presensi
Hasil Nilai Dt Mahasiswa Pembuatan Presensi Ahir
Mahasiswa
Formulir Presensi Data Mahasiswa 5
6
Nilai Mhs
Nilai Mhs Penilain
a Admin LabKomp 1&2
Penilaian
Hasil Penilaian Harian
Hasil Presensi
Kegiatan D11 Harian
a Admin LabKomp 1&2
Laporan Presensi Mahasiswa Mhs D8 Praktikan
Presensi Mahasiswa c Nilai Mhs
Jurusan
Diagram Alir Data Level 1 (Penjadwalan Mata Kuliah) Project Name: Project Path: Chart File: Chart Name: Created On: Created By: Modified On: Modified By:
Sistem Komputerisasi Labkomp 1&2 e:\tugasm~1\easyca~1\ dfd00015.dfd Penjadwalan MatKuliah Apr-26-2005 NAGA Jun-15-2005 NAGA
2.1 Jam & Hari
a Admin LabKomp 1&2
Data Jadwal
D10
Jadwal Hari
Dt Bts Absen
Jml Mhs/Komputer
Jam & Hari
Dt Jadwal
2.2 Proses Jadwal
Dt Asisten
D5
Jam & Hari
Master Asisten Dt MatPraktikum D3
Master MtPrak
D6
Jadwal Praktikum
Jadwal Asisten D7
Jadwal Asisten
Diagram Alir Data Level 1 (Pendaftaran) Project Name: Project Path: Chart File: Chart Name: Created On: Created By: Modified On: Modified By:
Sistem Komputerisasi Labkomp 1&2 e:\tugasm~1\easyca~1\ dfd00012.dfd Pendaftaran Apr-10-2005 NAGA Jun-15-2005 NAGA
D6
Jadwal Praktikum
D12
Dt Jadwal
Dt Cl Praktikan Jml Mhs/Komputer
3.1
b Mahasiswa
Data Mahasiswa
Pendaftaran Mahasiswa
Dt IP Komputer D4
Data Komp
Calon Praktikum
Hasil Input Data
3.2 Cek Validasi
Data Mahasiswa D8
Mhs Praktikan
Flowchart Pendaftaran Praktikum Mahasiswa. MULAI Mahasiswa mengentrikan NIM dan Jadwal MataPraktikum yang diambil
Mahasiswa terdaftar sebagai Calon Praktikan ?
Ya
Tdk
Jlh Peserta < Kapasitas Kelas ?
Ya Data Mahasiswa disimpan ke Database SELESAI
Tdk
Proses Presensi Mahasiswa MULAI Mahasiswa Login Dan Mengisi Form Presensi
Absen Melebihi Batas Yg Ditentukan ?
Ya
Tdk Data Mahasiswa disimpan ke Database SELESAI
Desain HIPO HIPO Menu Utama Administrator Laboratorium LabKomp1&2 Data Master
Data Proses
Penjadwalan
Ini bukan bagian dari HIPO Utility
HIPO Menu Data Master Data Master Data Komputer
Jurusan
Mata Praktikum
Asisten
HIPO Menu Data Proses Data Proses Calon Praktikan
Presensi
Penilaian
Laporan
Soal Ujian
HIPO Menu Penjadwalan Penjadwalan Jadwal Hari
Jadwal Asisten
HIPO Menu Utility Ini bukan bagian dari HIPO Seting Tahun Ajaran
Jadwal Praktikum
Utility Ganti Password
BacUp & Restore
HIPO Menu / HIPO untuk Client Client Pendaftaran
Presensi
Soal Ujian
Desain Basis Data Tabel Master Mahasiswa No. Nama Field Bagaimana jika diintegrasikan 1. NIM * dengan database 2. Nama lainnya ? 3. KodeJur** 4. Sex
Tipe Field VarChar VarChar VarChar Char
10 30 3 1
Keterangan Nomor Mhs Nama Mhs Kode Jurusan Jenis Kelamin
Jurusan No. Nama Field 1. KodeJur* 2. NamaJur 3. Jenjang
Tipe Field VarChar VarChar VarChar
3 30 3
Keterangan Kode Jurusan Nama Jurusan Jenjang Pendidikan
MtPraktikum No. Nama Field 1. Kd_MtPrak * 2. Nama_MtPrak 3. KodeJur **
Tipe Field VarChar VarChar VarChar
10 30 3
Keterangan Kode Mata Prak. Nama Mata Prak Kode Jurusan
15 20
Keterangan Kode Komputer IP Komputer Nama Komputer
Bagaimana jika diintegrasikan dengan database lainnya ?
Komputer No. Nama Field 1. KodeKomp * 2. IP_Komp 3. Nama_Komp
Tipe Field AutoIncrement VarChar VarChar
Asisten No. Nama Field 1. Kd_Ass * 2. Nama_Ass 3. Status
Tipe Field VarChar VarChar VarChar
Jadwal Praktikum No. Nama Field 1. Kd_JadPrak* 2. Kd_MtPrak ** 3. BtsAbsen 4. Kap_Kelas 5. Jlh_Anggota 6. Tgl_Mulai 7. Tgl_Selesai
Tipe Field VarChar VarChar TinyInt TinyInt TinyInt Date Date
Jadwal Asisten No. Nama Field 1. Kd_JadAss * 2. Kd_Ass *
Tipe Field VarChar VarChar
Mhs Praktikum No. Nama Field Tipe Field 1. Kd_MhsPraktikan * AutoIncrement 2. NIM ** VarChar 3. Kd_JadPrak ** VarChar 4. KodeKomp ** SmallInt 5. Nilai_Laporan SmallInt 6. Nilai_Responsi SmallInt 7. Nilai_Akhir SmallInt 8. Kd_Soal VarChar Bank Soal No. Nama Field 1. Kd_Soal * 2. Kd_MtPrak ** 3. Soal
Tipe Field VarChar VarChar BLOB
Jadwal Hari No. Nama Field 1. Kd_JadHari * 2. JamMulai 3. JamSelesai 4. Hari 5. Kode
Tipe Field VarChar VarChar VarChar VarChar VarChar
20 50 50
30 10 2 2 2
30 20
10 30 4 6 6 6 10
10 15
30 10 10 20 10
Keterangan Kode Asisten Nama Asisten Status Asisten
Keterangan Kode Praktikum Kode Mtk Batas Absen Kapasitas Kelas Jlh Anggota 1 grup Tanggal Mulai Tanggal Akhir
Keterangan Kode Jadwal Kode Asisten
Keterangan Kode Mhs. Prak. Nomor Mhs Kode Praktikum Kode Komputer Nilai Laporan Nilai Responsi Nilai Harian Kode Soal
Keterangan Kode Soal Kode Mata Praktik Soal
Keterangan Kode Hari Jam Mulai Prak Jam Selesai Prak Hari Praktikum Kode Inisial
Kegiatan Harian No. Nama Field Tipe Field 1. Kd_KegiatanHarian * AutoIncrement 2. Kd_MhsPraktikan ** MediumInt 3 Pertemuan TinyInt 4. Nilai TinyInt 5. Tanggal Date 6. Status_Hadir Char Calon Praktikan No. Nama 1. Kd_CaPrak * 2. NIM * 3. Kd_MtPrak ** 4. Thn_Ajaran 5. KRS 6. Daftar Kerelasian Antar Tabel
Tipe Field VarChar VarChar VarChar VarChar Char Char
9 4 4 2
Ukuran 30 20 10 15 3 3
Keterangan Kode Kegiatan Kode Mhs. Prak. Pertemuan Ke Nilai Mingguan Tanggal Hari Status Hadir
Keterangan Kode Calon Prak Nomor Mahasiswa Kode Mata Kuliah Tahun Ajaran Keterangan KRS Keterangan Daftar
Desain Antar Muka Desain Antar Muka Administrator Tampilan Form Login Thn Ajaran 9999/9999
Passsword
Data Master
************* Penjadwalan Batal
Login
Kegiatan Prak Laporan Utility
Login
Tampilan Input Data Mahasiswa Nama Mata Kuliah
XXXXXXXXXXXXXXX
No. Mahasiswa
99999999
Nama Mahasiswa
XXXXXXXXXXXXXX
Tambah Kd.Prak
Edit No. Mahasiswa
Hapus Nama Mahasiswa
Format ?
Pencarian NIM
99999999
Cari
Kelamin
Tampilan Penginputan Mata Praktikum Kode Mata Kuliah
XXXXXX
Nama Mata Kuliah
XXXXXXXXXXXXXXXXXXXXX
Jurusan
XXXXXXXXXXXXXXXXXXXXX
Tambah
Edit
Kode MK
Hapus
Nama Mata Kuliah
Jurusan
Format ?
Tampilan Input Data Asisten Kode Asisten
XXXXXX
Nama Asisten
XXXXXXXXXXXXXX
Tambah Kode Asisten
Edit
Hapus
Nama Asisten
Format ?
Cetak
Tampilan Input Data Komputer Nama Komputer
XXXX
IP Komputer
999 999 999 999
Simpan Nama Komputer
Format ?
Hapus IP Komputer
Tampilan Penjadwalan Mata Praktikum
Nama Mata Prak
XXXXXXX
Kode Hari
XXXXXXX
Hari
XXXXXXX
Tambah Kode MK
Edit
Jam
:
:
:
Hapus
Nama MK
Kode Hari
Hari
Jam
Format ?
Cetak Pendaftaran Mahasiswa Pada Admin Keterangan Tanpa KRS Dengan KRS 1. Tampilan Pendaftaran Mahasiswa Pada Admin Nama Mata Kuliah
XXXXXXX
No. Mahasiswa
99999999
Pilih Kode Hari
XXXXXXXXXXXXXXXX
Tambah Kode MK
Edit No Mhs
Hapus Kode Hari
Format ? Cetak
Tampilan Persiapan Presensi Jadwal Praktikum
9
XXXXXXX No.Mahasiswa
Ijin Isi Presensi
Nama Mahasiswa
Hadir
Ijin
Absen
Format ?
Simpan
Cetak
Tampilan Pemberian Soal File Soal
No. Mahasiswa
99999999
Nama Mahasiswa
XXXXXXXXXXXX
File Soal
XXXXX.XXX Simpan
Jadwal Praktikum No. Mahasiswa Format ?
XXXXXXX Nama Mahasiswa
Soal
Tampilan Penilaian Harian Jadwal Praktikum XXXXXXX No. Mahasiswa
Nama
1
2
3
4
5
6
7
8 9 10
Format ?
Simpan
Tampilan Penilaian Laporan Dan Responsi Jadwal Praktikum No.Mhs
XXXXXXX
Nama Mhs Nil.Laporan Nil.Resp
No. Mahasiswa 99999999 Nama
Format ?
XXXXXXXXXXXX Nilai Laporan 999 Nilai Responsi 999
Simpan
Tampilan Pencarian Data Mahasiswa Yang Dicari XXXXXXXXXXX
Dasar Pencarian XXXXXXX No.Mhs Nama Mhs
Cari
Hadir Ijin Absen Nil.Hari Nil.Lap Nil.Res
Format ?
Cetak
Tampilan Pindah Jadwal Mahasiswa Kode Hari XXXXXXX NIM
Kode Hari
Cari
XXXXXXX NIM
XXXXXXXXXXX
Nama : XXXXXXXXX NIM : 999999 Komputer : XXX
Cari
XXXXXXXXXXX
> <
Nama : XXXXXXXXX NIM : 999999 Komputer : XXX
Tampilan Seting Tahun Ajaran
Semester XXXXXXX Tahun Ajaran 9999 / 9999
OK
Tampilan Penggantian Password Password Lama ********************** Password Baru ********************** Konfirmasi Password Baru ********************** Batal
Proses
Tampilan Pembuatan BackUp
Alamat Lokasi Back Up XXXXXXXXXXXXXXX
Batal
Browse
Back Up
Tampilan Restore File BackUp
Lokasi Hasil Back Up Sebelumnya XXXXXXXXXXXXXXX
Batal
Browse
Restore
Tampilan Pengaturan Batas Absensi Nama Mata Kuliah
XXXXXXXXXXXXXXXXXXXXXX
Batas Maximal
999
Simpan
Hapus
Mata Kuliah
Batas Maximal
Tampilan Laporan Presensi Harian Presensi Harian Mata Kuliah : XXXXXXXX Hari : XXXXXX Jam : 99:99 Tanggal : 99/99/9999 No. Mahasiswa
Nama
Hadir
Ijin
Absen
Format ?
Tampilan Laporan Penilaian Mata NIM Kuliah Nama : XXXXXXXXXXX Nilai Harian Nilai Laporan Nilai Responsi Nilai Akhir
Format ?
Desain Antar Muka Client Tampilan Menu Utama
Pendaftaran Presensi Soal Ujian Keluar Tampilan Pendaftaran
Format ?
Pilih Komputer Kode Jadwal No. Mahasiswa Nama Proses
Tampilan Presensi No. Mahasiswa Nama
: 99999999 : XXXXXXXXXXXXXXX
9 Hadir Keterangan : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Tampilan Soal Ujian Klik Soal untuk link ke soal ujian.
SKRIPSI MEMBANGUN APLIKASI STOK BARANG DENGAN ARSITEKTUR CLIENT/SERVER (Studi Kasus di Koperasi Pegawai Negeri “GATERA” Brebes)
BUILDING STOCK APLICATION WITH CLIENT / SERVER ARCHITECTURE ( Case Study at “GATERA” Public Servant Co-operation Brebes )
Oleh : Nama
: JANUAR ANDRIANA
No Mahasiswa
: 01.05.1965
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS DAN TEKNOLOGI AKPRIND YOGYAKARTA 2005
KPN GATERA h:\proyek\januar~1\dfd\ dfd00001.dfd SSADM - Context Diagram Jun-27-2005 Januar Andriana
Project Name: Project Path: Chart File: Chart Name: Created On: Created By: Modified On: Modified By:
c Pelanggan
Siapa yg mengolah data stok ? Pelanggan bukan Pemasok bukan Pimpinan hanya menerima laporan
Retur Penjualan Penjualan Barang Data Pelanggan
Pembelian Barang 0 b
Data Barang
Pemasok Data Pemasok
KPN GATERA
Retur Pembelian
Context Diagram dari KPN GATERA
Laporan
a Pimpinan KPN Gatera
Project Name: Project Path: Chart File: Chart Name: Created On: Created By: Modified On: Modified By:
KPN GATERA h:\proyek\januar~1\dfd\ dfd00002.dfd KPN GATERA Jun-27-2005 Januar Andriana Jun-27-2005 Januar Andriana
D3
Tb. Pembelian
Penomoran proses ? Data Barang dt.Pembelian
1 Data Pemasok
dt.Pemasok
D2
Proses Pembelian
dt.Barang & dt.Update Stok
D1
Tb. Pemasok
dt.Pemasok
Tb. Barang
3 dt.Barang
Pembelian Barang
Retur Pembelian Retur Pembelian
dt.UpdateStok dt.Barang
Data Pelanggan dt.ReturPembelian dt.Barang
2
D6
dt.UpdateStok Proses Penjualan
dt.Pelanggan
Tb. Retur Pembelian
4
Penjualan Barang
dt.UpdateStok
dt.Penjualan
D5 Tb.Pelanggan
D4 Tb.Penjualan
Retur Penjualan
dt.Pelanggan
D7
dt.ReturPenjualan
Tb. Retur Penjualan dt.ReturPenjualan
dt.Penjualan
5 dt.Pembelian Proses Laporan Stok & Keuangan
dt.Barang
D1
D3
Tb. Pembelian
D6
Tb. Retur Pembelian
dt.ReturPembelian
Tb. Barang
Laporan
DFD Level 0 dari KPN GATERA Dari mana ?
Retur Penjualan
Project Name: Project Path: Chart File: Chart Name: Created On: Created By: Modified On: Modified By:
KPN GATERA h:\proyek\januar~1\dfd\ dfd00003.dfd Proses Pembelian Jun-27-2005 Januar Andriana
Penomoran proses ?
1.1
Data Pemasok
Pencatatan Data Pemasok
D2
dt.Pemasok
Tb. Pemasok
1.2
Data Barang
Pencatatan Data Barang
dt.Barang
D1
Tb. Barang
dt.Barang & dt.Update Stok
1.3 Pembelian Barang
Pencatatan Pembelian Barang
dt.Pembelian
D3
Tb. Pembelian
DFD Level 1 Dari Proses Pembelian di KPN GATERA
dt.Pemasok
Project Name: Project Path: Chart File: Chart Name: Created On: Created By: Modified On: Modified By:
KPN GATERA h:\proyek\januar~1\dfd\ dfd00004.dfd Proses Penjualan Jun-27-2005 Januar Andriana
Penomoran proses ?
2.1
Data Pelanggan
Pencatatan Data Pelanggan
D1
dt.Pelanggan
D5 Tb.Pelanggan
Tb. Barang
dt.Pelanggan dt.Barang & dt.Update Stok
2.2 Penjualan Barang
Pencatatan Penjualan Barang
dt.Penjualan
D4 Tb.Penjualan
DFD Level 1 Dari Proses Penjualan di KPN GATERA Perancangan Menu Sistem Menu utama
Data
Transaksi
Laporan
Menu Utama
Utility
About
Data
Data Pemasok
Data Barang
Data Pelanggan
Gambar 3.10 Menu Data
Transaksi
Pembelian
Penjualan
Retur Pembelian
Retur Penjualan
Gambar 3.11 Menu Transaksi
Laporan
Lap Stok
Lap Keuangan
Lap Pembelian
Lap Penjualan
Gambar 3.12 Menu Laporan
Alur dalam DAD mestinya seperti dalam menu di atas. ¾ Data : o Pemasok Æ file Pemasok o Barang Æ file Barang o Pelanggan Æ file Pelanggan ¾ Transaksi o Pembelian Æ file Pembelian o Penjualan Æ file Penjualan o Retur pembelian Æ file Returpembelian o Retur penjualan Æ file Returpenjualn ¾ Laporan Dan ditambah file-file pendukung lainnya
Lap Retur Pembelian
Relasi antar Tabel dalam Database Stok Barang No. Nama Field 1 Kodebarang 2 NamaBarang 3 Hargajual 4 DiscJual 5 Hargabeli 6 Discbeli 7 HargaPabrik 8 Jenis 9 Stok 10 Stokmin
Tipe Char Char Num Num Num Num Num Char Num Num
Pemasok No. Nama Field 1 Kodepemasok 2 Namapemasok 3 Alamat 4 Telp 5 KontakPerson
Tipe Char Char Char Char Char
Ukuran 10 25
10
Ukuran 10 25 25 16 25
Keterangan Kode barang Nama barang Harga jual ke konsumen Discount penjualan Harga beli dari pemasok Discount beli dari pemasok Harga asli dari pabrik Jenis barang Stok barang saat ini Stok minimal barang
Keterangan Kode pemasok Nama pemasok Alamat pemasok Telepon pemasok Kontak personal
Bagaimana kaitan antara detail beli dengan retur beli ?
Bagaimana kaitan antara penjualan dengan retur jual ?
Pelanggan No. Nama Field 1 KodePelanggan 2 Nama 3 Alamat 4 Telp 5 KtPerson
Tipe Char Char Char Char Char
Ukuran 6 25 40 17 25
Keterangan Kode pelanggan Nama pelanggan Alamat pelanggan Telepon pelanggan Kotak personal
Pembelian No. Nama Field 1 KodeBeli 2 Tanggal 3 KodePemasok 4 KodePegawai
Tipe Char Date Char Char
Ukuran 6
Keterangan Kode pembelian Tanggal pembelian Kode pemasok Kode pegawai
10 10
Detail Pembelian No. Nama Field 1 KodeBeli 2 Kodebarang 3 Jumlah
Tipe Ukuran Char 6 Char 10 Num
Keterangan Kode pembelian Kode barang Jumlah barang dibeli
Retur Beli No. Nama Field 1 KodeReturBeli 2 Tanggal 3 KodePemasok 4 KodePegawai
Tipe Char Date Char Char
Keterangan Kode retur pembelian Tanggal pembelian Kode pemasok Kode pegawai
Ukuran 6 10 10
Detail Retur Beli No. Nama Field 1 KodeReturBeli 2 Kodebarang 3 Jumlah
Tipe Ukuran Char 6 Char 10 Num
Keterangan Kode retur pembelian Kode barang Jumlah barang dibeli
Penjualan No. Nama Field 1 KodeNota 2 Tanggal 3 KodePelanggan 4 KodePegawai
Tipe Char Date Char Char
Keterangan Kode nota penjualan Tanggal penjualan Kode pelanggan Kode pegawai
Retur Jual No. Nama Field 1 KodeReturJual 2 Tanggal 3 KodePelanggan 4 KodePegawai
Tipe Char Date Char Char
Ukuran 6 6 10
Ukuran 6 6 10
Keterangan Kode retur penjualan Tanggal retur penjualan Kode pelanggan Kode pegawai
Pegawai No. Nama Field 1 KodePegawai 2 Nama 3 Alamat 4 Telp
Tipe Char Char Char Char
Ukuran 10 25 40 17
Keterangan Kode pegawai Nama pegawai Alamat pegawai Telepon pegawai/HP
Barang No. Nama Field 1 Jenis 2 Keterangan
Tipe Char Char
Ukuran 10 50
Keterangan Jenis barang Keterangan kategori
Retur Jual No. Nama Field 1 KodeReturJual 2 Kodebarang 3 Jumlah
Tipe Ukuran Char 6 Char 10 Num
Detail Penjualan No. Nama Field 1 KodeNota 2 Kodebarang 3 Jumlah
Tipe Ukuran Char 6 Char 10 Num
Keterangan Kode retur penjualan Kode barang Jumlah barang diretur
Keterangan Kode nota penjualan Kode barang Jumlah barang diretur
Perancangan Input dan Output Desain Input Data Pegawai DATA PEGAWAI Kode Pegawai : X(10) Alamat : X(40) Kode
Nama Telp Nama
xxx
xxx
: X(25) : X(17)
Alamat xxx
Telp xxx
Format ?
|<
<
>
>|
Simpan
Edit
Hapus
Keluar
Desain Input Data Konsumen DATA KONSUMEN
KodePelanggan Alamat KtPerson Kode Pel xx
: X(6) : X(40) : X(25)
Nama xxx
Nama Telp
Alamat xxx
: X(25) : X(17)
Telp xxx
Kt Person xxx
Format ?
|<
<
>
>|
Simpan
Edit
Hapus
Keluar
Desain Input Data Pemasok DATA PEMASOK
Kodepemasok : X(20) Alamat : X(35) KontakPerson : X(25)
Namapemasok : X(25) Telp : X(17)
Kode Pem xxx
Alamat xxx
Nama xxx
Telp xxx
Kt Person xxx
Format ? |<
<
>
>|
Simpan
Edit
Hapus
Keluar
Desain Input Pembelian Barang PEMBELIAN BARANG KodeBeli X(6) KodePemasok X(10) Nama Pemasok X(25) Kode Barang X(10)
Tanggal 99/99/9999 KodePegawai X(10) Nama Pegawai X(25)
Nama Barang
Satuan
Harga
X(50)
999
999999 9999999 TOTAL
|<
<
>
>|
Simpan
Edit
Hapus
Subtotal
9999999 Keluar
Desain Input Penjualan Barang PENJUALAN BARANG Kode Nota X(6) Kode Pelanggan X(10) Nama Pelanggan X(25) Kode Barang X(10)
Tanggal 99/99/9999 KodePegawai X(10) Nama Pegawai X(25)
Nama Barang
Satuan
Harga
X(50)
999
999999 9999999 TOTAL
|<
<
>
>|
Simpan
Edit
Hapus
Subtotal
9999999 Keluar
Desain Input Retur Beli RETUR PEMBELIAN BARANG Kode Retur X(6) KodePemasok X(10) Nama Pemasok X(25) Kode Barang X(10)
Tanggal 99/99/9999 KodePegawai X(10) Nama Pegawai X(25)
Nama Barang
Satuan
Harga
X(50)
999
999999 9999999 TOTAL
|<
<
>
>|
Simpan
Edit
Hapus
Subtotal
9999999 Keluar
Desain Input Retur Jual RETUR PENJUALAN BARANG Kode Retur X(6) KodePelanggan X(10) Nama Pelanggan X(25) Kode Barang X(10)
Tanggal 99/99/9999 KodePegawai X(10) Nama Pegawai X(25)
Nama Barang
Satuan
Harga
X(50)
999
999999 9999999 TOTAL
|<
<
>
>|
Simpan
Edit
Hapus
Subtotal
9999999 Keluar
Desain Input Stok Barang STOK BARANG Kodebarang NamaBarang Hargajual DiscJual Stok Stokmin Kode
Nama
: X(10) : X(50) : 99999999 : 99999999 : 99999999 : 99999999
Jenis
Hrg Pabrik
Jenis : X(10) Hargabeli : 99999999 Discbeli : 99999999 HargaPabrik : 99999999
Hrg Jual
Disc Jual
Hrg Beli
Disc Beli
Stok
Stok Min
Format ?
|<
<
>
>|
Simpan
Edit
Hapus
Keluar
Hapus
Keluar
Desain Input Kategori Barang KATEGORI BARANG
Jenis Keterangan
: X(10) : X(255)
Jenis xxxx
Keterangan xxxx Format ?
|<
<
>
>|
Simpan
Edit
Desain Laporan Stok LAPORAN STOK BARANG
Tanggal : 99/99/9999 Kodebarang
Namabarang
X(10)
X(50)
Kode Pemasok X(10)
Stok 999
Stok Minimal 999
Kriteria Stok Laporan • Total • Stok < Stok Minimal
Proses
Cetak
Tutup
Desain Laporan Pembelian LAPORAN PEMBELIAN BARANG
Tanggal : 99/99/9999 hingga 99/99/9999 Kodebarang Namabarang X(10) X(50)
Nilai 999
Pembelian 999
Total Pembelian : 9999999 Proses
Cetak
Tutup
Desain Laporan Penjualan LAPORAN PENJUALAN BARANG
Tanggal : 99/99/9999 hingga 99/99/9999 Kodebarang Namabarang X(10) X(50)
Nilai 999
Penjualan 999
Total Penjualan : 9999999
Proses
Cetak
Tutup
Desain Laporan Stok LAPORAN STOK BARANG
Tanggal : 99/99/9999 Kodebarang
Namabarang
X(10)
X(50)
Kode Pemasok X(10)
Stok 999
Stok Minimal 999
Kriteria Stok Laporan • Total • Stok < Stok Minimal
Proses
Cetak
Tutup
Desain Laporan Pembelian LAPORAN PEMBELIAN BARANG
Tanggal : 99/99/9999 hingga 99/99/9999 Kodebarang Namabarang X(10) X(50)
Nilai 999
Pembelian 999
Total Pembelian : 9999999 Proses
Cetak
Tutup
Desain Laporan Penjualan LAPORAN PENJUALAN BARANG
Tanggal : 99/99/9999 hingga 99/99/9999 Kodebarang Namabarang X(10) X(50)
Nilai 999
Penjualan 999
Total Penjualan : 9999999
Proses
Cetak
Tutup
Desain Laporan Retur Beli LAPORAN RETUR PEMBELIAN BARANG
Tanggal : 99/99/9999 hingga 99/99/9999 Kodebarang Namabarang X(10) X(50)
Retur 999
Nilai 999
Total Retur Beli : 9999999
Proses
Cetak
Tutup
Desain Laporan Retur Jual LAPORAN RETUR PENJUALAN BARANG
Tanggal : 99/99/9999 hingga 99/99/9999 Kodebarang Namabarang X(10) X(50)
Retur 999
Nilai 999
Total Retur Jual : 9999999
Proses
Cetak
Tutup
Desain Laporan Keuangan LAPORAN KEUANGAN Bulan : XXXXXXXXXXX No. 1 2 3 4
Aktifitas Pembelian Barang Penjualan Barang Retur Jual Retur Beli
Pengeluaran 999999999
Pemasukan 999999999
999999999 TOTAL SALDO
999999999 999999999 Proses
Cetak
999999999 999999999
Tutup
SKRIPSI
APLIKASI REGISTRASI KRS ON-LINE MENGGUNAKAN TEKNOLOGI NETWORK MIDLET THE ONLINE KRS-REGISTRATION APPLICATION USING NETWORK MIDLET TECHNOLOGY
Disusun Oleh: Nama No. Mhs Program Studi
: Didi Priyadi : 00.05.1632 : Sarjana (S-1)
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 2005
3.5.4. Diagram Alir Data
Diagram Alir Data Level 0
Diagram Alir Data Level 1
Diagram Alir Data level 2 HIPO Program HIPO Login Sistem
HIPO Menu Utama Sistem
Perancangan Basis Data t_mhs Nama field Tipe data Nim * Varchar pin Varchar nama_mhs Varchar IP Real IPK Real t_matkul Nama field kd_matkul * nama_matkul sks smt
Tipe data Varchar Varchar Integer Integer
t_mtkditawarkan Nama field Tipe data kd_matkul Varchar Kelas Varchar Hari Varchar Jam Date Ruang Varchar Kapasitas Char t_krs Nama field Nim * kd_matkul * kelas batal_time
Tipe data Varchar Varchar Char Varchar
Ukuran Desimal 8 8 25 4 4 -
Ukuran 8 50 1 1
Ukuran 8 1 6 5 5 2
Keterangan Nomer mahasiswa Password Nama mahasiswa IP smt sebelumnya IP komulatif
Desimal -
Desimal -
Keterangan Kode matakuliah Nama matakuliah SKS Semester
Keterangan Kode matakuliah Kelas Hari Jam Ruang Kapasitas Ruang Kelas
Ukuran Desimal 8 8 1 20 -
Keterangan Nomer mahasiswa Kode matakuliah Kelas Waktu pembatalan
Relasi Database t_mhs PK
PK
nim
t_matkul
t_mtkditawarkan
kd_matkul
PK
nama_matkul sks smt
pin nama_mhs IP IPK
t_krs PK PK
nim kd_matkul kelas batal_time
kd_matkul kelas hari jam ruang kapasitas
User Interface
LAPORAN KERJA PRAKTEK
SISTEM PENGOLAHAN DATA JUAL BELI KAYU JADI PERUSAHAAN KAYU “UD. MAJU MAKMUR”
Disusun oleh : Nama : MUHAMAD IQBAL No. Mhs : 99.05.1540
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 2004
Barang
Customer
Data Barang
Pembelian Data Customer Nota, Surat Jalan
P.0 Sistem Pengolahan Data Jual Beli Kayu Jadi
Pembelian
Supplier
Data Supplier Nota
Laporan Keuangan Laporan Stok Barang Laporan Utang Laporan Piutang
Diagram Kontek
ii
Pemilik Perusahaan
Data Barang
Data Barang Barang
Customer
Supplier
D1 Barang.db Data Customer
P.1 Data
Data Customer
D2 Customer.db Data Supplier
Data Supplier
Nota
D3 Supplier.db
Stok Barang
D4 Stok.db Pembelian Pembelian Customer Nota, Surat Jalan
D1 Barang.db
Data Pembelian P.2 Transaksi
Data Barang
Data Utang
D5 Beli.db D6 Utang.db
Data Penjualan
D7 Jual.db Data Customer Data Piutang
D2 Customer.db D3 Supplier.db
D8 Piutang.db Data Supplier
Data Penghasilan
D9 Penghasilan.db Data Penghasilan
D4 Stok.db
D6 Utang.db
P.3
Keuangan
Laporan
Stok Barang Utang
D8 Piutang.db
Piutang
Diagram Arus Data Level 0
iii
Pemilik Perusahaan
Barang
Customer
Supplier
Data Barang
P.1.1 Data Barang
Data Barang
Data Customer
P.1.2 Data Customer
Data Customer
Data Supplier
P.1.3 Data Supplier
Data Supplier
Pembelian Data Barang
P.2.1 Transaksi Pembelian
D4 Stok.db
Stok Barang Data Pembelian
D5 Beli.db
Stok Barang Data Utang
D2 Customer.db
Data Customer Pembelian
Customer
D3 Supplier.db
Data Penghasilan
Input Data Barang
D4 Stok.db
D2 Customer.db
Data supplier
Nota
D1 Barang.db
D1 Barang.db
P.2.2 Transaksi Penjualan
D6 Utang.db
Data Penjualan
D7 Jual.db Data Piutang
Nota, surat jalan
D8 Piutang.db
Data Penghasilan
D9 Penghasilan.db P.3.1 Laporan Keuangan
D4 Stok.db
Stok Barang
Data Utang
D6 Utang.db
D8 Piutang.db Diagram
Data Piutang
Arus
P.3.2 Laporan Stok Barang P.3.4 Laporan Utang P.3.3 Laporan Piutang Data
iv
Data Penghasilan
Keuangan Stok Barang Pemilik Perusahaan
Utang
Piutang
Level
1
HIPO Hipo Menu Utama SISTEM PENGOLAHAN DATA JUAL BELI KAYU JADI PERUSAHAAN KAYU UD. MAJU MAKMUR
FILE
TRANSAKSI
LAPORAN
Hipo Menu File FILE
BARANG
INPUT
SUPPLIER
BROWSE
INPUT
CUSTOMER
BROWSE
INPUT
BROWSE
Hipo Menu Transaksi TRANSAKSI
PEMBELIAN
PENJUALAN
BROWSE PEMBELIAN
BROWSE PENJUALAN
Hipo Menu Laporan LAPORAN
STOK BARANG
HARIAN
UTANG PERUSAHAAN
KEUANGAN
KESELURUHAN
v
PIUTANG PERUSAHAAN
Desain Basis Data Barang Nama Item Data KdBrg * Nama HarbelB HarbelM HarjulB HarjulM
Type Alpha Alpha Num Num Num Num
Lebar 13 60
Keterangan Kode Barang Nama Barang Harga Beli / Batang Harga Beli / Kubik Harga Jual / Batang Harga Jual / Kubik
vi
Supplier Nama Item Data KdSup * Nama Alamat Telp
Type Alpha Alpha Alpha Alpha
Lebar 5 25 30 15
Keterangan Kode Supplier Nama Alamat Telp
Customer Nama Item Data KdCus * Nama Alamat Telp
Type Alpha Alpha Alpha Alpha
Lebar 6 25 30 15
Keterangan Kode Customer Nama Alamat Telp
Beli Nama Item Data NoNota * TglNota KdSup ** KdBrg ** QuantityB QuantityM HarbelB HarbelM HarjulB HarjulM Total Keterangan
Type Alpha Date Alpha Alpha Num Num Num Num Num Num Num Alpha
Lebar 15
Keterangan Nomer Nota Tanggal Nota Kode Supplier Kode Barang Quantity dalam Batang Quantity dalam Kubik Harga Beli / Batang Harga Beli / Kubik Harga Jual / Batang Harga Jual / Kubik Total Pembayaran Keterangan Pembelian
Jual Nama Item Data NoNota * TglNota NoSurjal KdCus ** KdBrg ** QuantityB QuantityM HarjulB HarjulM Total Keterangan
Type Alpha Date Alpha Alpha Alpha Num Num Num Num Num Alpha
Lebar 15
5 13
15
15 6 13
15
Keterangan Nomer Nota Tanggal Nota Nomer Surat Jalan Kode Customer Kode Barang Quantity dalam Batang Quantity dalam Kubik Harga Jual / Batang Harga Jual / Kubik Total Pembayaran Keterangan Pembelian
vii
Stok Nama Item Data KdBrg * StokM StokK Sisa
Type Alpha Num Num Num
Lebar 13
Keterangan Kode Barang Barang Masuk Barang Keluar Sisa Barang
Penghasilan Nama Item Data NoNota * TglNota Debet Kredit JumTot
Type Alpha Date Num Num Num
Lebar 15
Keterangan Nomer Nota Tanggal Nota Debet Kredit Jumlah Total
Utang Nama Item Data NoNota * TglNota JumTot KirimCash KirimBank Sisa Keterangan
Type Alpha Date Num Num Num Num Alpha
Lebar 15
Keterangan Nomer Nota Tanggal Nota Jumlah Total Pembayaran Dengan Cash Pembayaran Melalui Bank Sisa Pembayaran Keterangan
Piutang Nama Item Data NoNota * TglNota JumTot KirimCash KirimBank Sisa Keterangan
Type Alpha Date Num Num Num Num Alpha
Lebar 15
25
25
Keterangan Nomer Nota Tanggal Nota Jumlah Total Pembayaran Dengan Cash Pembayaran Melalui Bank Sisa Pembayaran Keterangan
viii
Desain Dialog Layar Terminal
Kode Kayu Nama Kayu Bentuk Kayu Ukuran Kayu (t x l x p) Simpan
x
x
Batal
Selesai
Pemasukan Data Barang
Kode Supplier Nama Alamat Telp.
Simpan
Batal
Selesai
Pemasukan Data Supplier
Kode Customer Nama Alamat Telp.
Simpan
Batal
Selesai
Pemasukan Data Customer
ix
x
Desain Dialog Keluaran
UD. MAJU MAKMUR Daftar Stok Barang Edit Manual
Hapus
Kode Barang
Nama Barang
Stok Masuk
Stok Keluar
Sisa
xxxx xxxx
xxxxxxxxxxxx xxxxxxxxxxxx
xxxx xxxx
xxxx xxxx
xxxx xxxx
Refresh
Pencarian Data Kode Barang
Selesai
Desain Laporan Daftar Stok Barang
UD. MAJU MAKMUR Laporan Harian Stok Barang + Daftar Transaksi Daftar Pembelian No Nota
Kd BRG
Tanggal
xxxx xx/xx/xx xxxx xxxx xx/xx/xx xxxx Kd BRG
Jml B
Jml K
xxxx xxxx
xxxx xxxx
xxxx xxxx
Quan t. B
Quant .M
Jml B
Jml K
xxxx xxxx
xxxx xxxx
xxxx xxxx
xxxx xxxx
Stok Masuk Xx/xx/xxxx
Daftar Penjualan No Nota
All Kd BRG
Tanggal
xxxx xx/xx/xx xxxx xxxx xx/xx/xx xxxx Kd BRG
Jml B
Jml K
xxxx
xxxx
xxxx
Quan t. B
Quant .M
xxxx xxxx
xxxx xxxx
Data Barang
Stok Keluar
Desain Laporan Daftar Stok Barang Harian
xi
Keluar
UD. MAJU MAKMUR Daftar Keuangan Perusahaan Update Jual
No Nota xxxx xxxx
Update Beli
Tgl. Nota xx/xx/xx xx/xx/xx
Pendapatan Rata-Rata
…/…/
Dari
Debet xxxxxxxxx xxxxxxxxx
Rata-rata Pendapan per-
Jumlah total xxxxxxxxxxx xxxxxxxxxxx
Pengurutan No Nota Sort By. Tgl Nota Debet Kredit
…/…/ -
Kredit xxxxxxxxx xxxxxxxxx
Hari Bulan Tahun
xxxxxxxxxxx xxxxxxxxxxx Jumlah Pendapatan
Total Pendapatan Proses
Selesai
Desain Laporan Keuangan Perusahaan
UD. MAJU MAKMUR Daftar Utang Perusahaan Sort By.
No Nota xxxx xxxx
No. Nota Tgl. Nota Jml Total Kirim Cash Kirim Bank Sisa Bayar
Tgl Nota
Jml Total
xx/xx/xx xx/xx/xx
xxxxxxxx xxxxxxxx
Pencarian Data Nomor Nota
Kirim Cash xxxxxxxx xxxxxxxx
Kirim Bank xxxxxxxx xxxxxxxx
Save
Hapus
Sisa Bayar
Keterangan
xxxxxxxxx xxxxxxxxx
xxxxxxxxx xxxxxxxxx
Refresh
Desain Laporan Utang Perusahaan
xii
Selesai
UD. MAJU MAKMUR Daftar Piutang / Tagihan Perusahaan Sort By.
No Nota xxxx xxxx
No. Nota Tgl. Nota Jml Total Kirim Cash Kirim Bank Sisa Bayar
Tgl Nota
Jml Total
xx/xx/xx xx/xx/xx
xxxxxxxx xxxxxxxx
Pencarian Data Nomor Nota
Kirim Cash xxxxxxxx xxxxxxxx
Kirim Bank xxxxxxxx xxxxxxxx
Save
Hapus
Sisa Bayar
Keterangan
xxxxxxxxx xxxxxxxxx
xxxxxxxxx xxxxxxxxx
Refresh
Selesai
Desain Laporan Piutang Perusahaan
UD. MAJU MAKMUR ………………………… Kepada Tuan ………………….. Toko …………………. ………………….
No. …………… Surat Jalan Faktur Menyusul
Dengan kendaraan ini ……….. No….….kami kirimkan kepada Sdr. barang2 sebagai berikut : Banyaknya Nama Barang
Total Tanda tangan sipenerima
Rp. Hormat kami,
Desain Print Out Surat Jalan
xiii
SKRIPSI
KOMPUTERISASI SISTEM PENGOLAHAN PERSEDIAAN BARANG DAGANG Pada UD. BAROKAH Dengan MENGGUNAKAN VISUAL BASIC 6.0 DAN SQL SERVER 7.0 ( COMPUTERITATION of MANAGEMENT SYSTEM STOCK of GOODS in UD. BAROKAH USING VISUAL BASIC 6.0 and SQL SERVER 7.0 )
Disusun oleh : NAMA NO. MHS
: MUHAMAD SYAIQ : 00.05.1796
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 2005
E
Mulai Berdasarkan BPPR
FAKTUR Cek Jumlah Barang
( ditandatangani )
Mencatat Jml & Hrg Satuan
Barang Ada Y/T
1
Y BPPR
T
Membuat Laporan Scr Lisan Kpd i k A
Tidak Pesan Barang Selesai
KETERANGAN : BPPR : Buku Pemasukan Dan Pengeluaran Barang
Flowchart Sistem Lama Pengadaan Persediaan Barang ( Bagian Administrasi )
T
C
A Pemesanan Brg Scr Lisan
2 1 FAKTUR
Memesan Barang
Bersama Barang Memeriksa Dan Mencocokan Barang
B T
Cocok Y/T Y
D
Tandatangani FAKTUR
2 1 FAKTUR (ditandatangani)
Bersama Uang/Cek/BG Pemasok
E
Flowchart Sistem Lama Pengadaan Persediaan Barang ( Direktur / Pemilik Usaha Dagang )
Mulai Order Pembeli
Memesan Brg Y/T
Pemeritahuan scr lisan
T Y F
Membuat Nota (Rangkap 3)
3 2 1 NOTA KIRIM
Y/T
BPPR Diberikan Kpd Pembeli F
T
Y Penundaan Pengiriman Brg
Bersama Pesanan Brg
F Selesai
Flowchart Sistem Lama Proses Pengeluaran Barang ( Bagian Administrasi )
Diagram Konteks
DFD level 0
DFD level 1
DFD level 2
DFD level 3 Sistem Pengolahan Barang UD. Barokah
Struktur Menu Aplikasi
Menu Utama Program
Sub Menu Data
Sub Menu Transaksi
Sub Menu Laporan
Sub Menu Hutang Piutang
Sub Menu Bantuan
Desain Tabel Database Barang Baku Field 1. 2. 3. 4.
Coloumn Name Kode_BrgBaku* Nama_BrgBaku Satuan Stok
Type Length Keterangan nvarchar 5 Kode Barang Baku nvarchar 20 Nama Barang Baku nvarchar 10 Satuan Barang Baku int 4 Stok Barang Baku
Barang Jadi Field 1. 2. 3. 4.
Coloumn Name Kode_BrgJadi* Nama_BrgJadi Satuan Stok
Type Length Keterangan nvarchar 5 Kode Barang Jadi nvarchar 20 Nama Barang Jadi nvarchar 10 Satuan Barang Jadi int 4 Stok Barang Jadi
Suplier. Field 1. 2. 3. 4.
Coloumn Name Kode_Suplier * Nama_Suplier Alamat Telp
Data Type nvarchar nvarchar nvarchar nvarchar
Length 5 20 30 12
Keterangan Kode Suplier Nama Suplier Alamat Suplier No. Telephon Suplier
Pelanggan Field 1. 2. 3. 4.
Coloumn Name Kode_Pelanggan * Nama_ Pelanggan Alamat Telp
Pembelian Field
Coloumn Name
1. 2. 3. 4. 5. 6. 7. 8. 9.
No_Fak_Beli * Tanggal Kode_BrgBaku ** Kode_Suplier ** Jumlah_Beli Harga_ Satuan Total_Beli Diskon Total_Harga
Data Type nvarchar nvarchar nvarchar nvarchar
Data Type nvarchar datetime nvarchar nvarchar int money money int Money
Length 5 20 30 12
Keterangan Kode Pelanggan Nama Pelanggan Alamat Pelanggan No Telephon
Length
Keterangan
5 8 5 5 4 8 8 4 8
Nomor Faktur Pembelian Tanggal Pembelian Barang Kode Barang Baku Kode Suplier Banyaknya Pembelian Harga Satuan Barang Total Pembelian Diskon Pembelian Total Harga Pembelian
Penjualan Field 1. 2. 3. 4. 5. 6. 7. 8. 9.
Coloumn Name No_Fak_Jual * Tanggal Kode_BrgJadi ** Kode_Pelanggan ** Jumlah_Jual Harga_ Satuan Total_Jual Diskon Total_Harga
Data Type Numeric datetime nvarchar nvarchar int money money int Money
Length 9 8 5 5 4 8 8 4 8
Keterangan Nomor Faktur Penjualan Tanggal Penjualan Kode Barang Jadi Kode Pelanggan Jumlah Penjualan Barang Harga Satuan Barang Total Harga Diskon Total Harga Penjualan
Hutang Field 1. 2. 3. 4. 5. 6. 7.
Coloumn Name Tanggal_Hutang Kode_Suplier ** No_Faktur Kode_BrgBaku ** Total_Beli Bayar Hutang
Data Type Datetime nvarchar nvarchar nvarchar money money Money
Length 8 5 5 5 8 8 8
Keterangan Tanggal Hutang Kode Suplier Nomor Faktur Pembelian Kode Barang Baku Total biaya pembelian Besar Pembayaran Hutang Dagang
Piutang Field 1. 2. 3. 4. 5. 6. 7.
Coloumn Name Tanggal_Piutang Kode_Pelanggan ** No_Faktur Kode_BrgJadi ** Total_Jual Bayar Piutang
Retur_Suplier Field Coloumn Name 1. Tanggal_Retur * 2. No_Fak_Beli 3. Tanggal 4. Kode_BrgBaku ** 5. Kode_Suplier ** 6. Jumlah Retur_Pelanggan Field Coloumn Name 1. Tanggal_Retur * 2. No_Fak_Jual 3. Tanggal 4. Kode_BrgJadi ** 5. Kode_Pelanggan ** 6. Jumlah
Data Type datetime nvarchar nvarchar nvarchar money money money
Data Type Datetime nvarchar datetime nvarchar nvarchar Int
Data Type Datetime nvarchar datetime nvarchar nvarchar int
Length 8 5 5 5 8 8 8
Length 8 5 8 5 5 4
Keterangan Tanggal Piutang Kode Pelanggan No Faktur Jual Kode Barang Jadi Total Penjualan Besar Pembayaran Piutang
Keterangan Tanggal Retur No Faktur Pembelian Tanggal Pembelian Kode Barang Baku Kode Suplier Jumlah Retur
Length 8 5 8 5 5 4
Keterangan Tanggal Retur No Faktur Penjualan Tanggal Penjualan Kode Barang Jadi Kode Suplier Jumlah Retur
Kembali_ReturPlg Field Coloumn Name 1. Tanggal_kembali 2. Tanggal_Retur 3. Kode_BrgJadi ** 4. Nama_BrgJadi 5. Jumlah
Data Type Datetime Datetime nvarchar nvarchar int
Length 8 8 5 10 4
Keterangan Tanggal Kembali Retur Tanggal Retur Kode Barang Jadi Nama Barang Jadi Jumlah Retur Kembali
Kembali_ReturSupl Field Coloumn Name 1. Tanggal_kembali 2. Tanggal_Retur 3. Kode_BrgBaku** 4. Nama_BrgBaku 5. Jumlah
Data Type Datetime Datetime nvarchar nvarchar int
Length 8 8 5 10 4
Keterangan Tanggal Kembali Retur Tanggal Retur Kode Barang Jadi Nama Barang Jadi Jumlah Retur Kembali
Relasi Antar File / Basis Data
Perancangan Input / Output Sistem Desain Dialog Password
Desain Form Input Data Barang
Desain Form Input Data Suplier
Desain Form Input Data Pelanggan
Desain Form Input Data Pembelian
Desain Form Input Data Penjualan
Desain Form Input Data Retur Pembelian
Desain Form Input Data Retur Penjualan
Desain Form Input Data Pengeluaran
Desain Form Input Data Pembayaran Piutang
Desain Form Input Data Pembayaran Hutang
Desain Laporan Persediaan Barang Dagang
Desain Laporan Pembelian
Desain Laporan Penjualan
Desain Laporan Pengeluaran
TUGAS AKHIR
ENTRY KRS MELALUI SMS (KRS ENTRY VIA SMS)
Disusun Oleh : MUHTAROM ISMANI 01351214
PROGRAM STUDI MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS DAN TEKNOLOGI AKPRIND YOGYAKARTA 2005
Komputer sbg Server KABEL DATA SMS Gateway
PDU Prog. Aplikasi Jaringan GSM
DELPHI
database
Skema Sistem
Diagram Kontek Projec t Name: Projec t Path: Chart File: Chart Name: Created On: Created By: Modif ied On: Modif ied By :
New Projec t Name d:\mydocu~1\tarom\easy_c~1\ df d00001.dfd kontekt Apr-20-2005 Yus ron
f
g
h
Batas
Bayar
Ajar
Dt Batas
Dt Bayar
a Jurusan
Dt Aja r Dt Jurusan
b Th_Akademik
l Bag Keuangan
Dt Akademik Bukti Pembay aran
1 c
Dt Matakuliah
Sistem Entry KRS Melalui SMS
Matakuliah
d Dosen
Jurusan
e Mahasisw a
Dt SMS
Dt Mahasisw a
a
Dt Nilai, Ajar, KRS KRS, SMS Balasan
Dt Dosen
e Mahasisw a
Dt Matakuliah, Mahasisw a, Dosen
Dt Pass w ord Dt Nilai i
j
k
Nilai
SMS
Passw d_Login
DAD Level-0
Projec t Name: Projec t Path: Chart File: Chart Name: Created On: Created By: Modif ied On: Modif ied By :
New Projec t Name d:\mydocu~1\tarom\easy_c~1\ df d00004.dfd level0 000 Apr-20-2005 Yus ron Apr-20-2005 Yus ron a Jurusan
Dt Jurusan
h
i
Ajar
Nilai
D1
File Jurusan
D2
File Akademik
Dt Jurusan b Th_Akademik
Dt Aja r Dt Akademik Dt Nilai
D6
File Batas
D7
File Bayar
Dt Batas Dt Akademik
c Matakuliah
Dt Matakuliah
File Matakuliah Dt Matakuliah D3
1
Dt Bayar d Dosen
Dt Dosen
Dt Dosen
D4
Input Data
File Dosen
Dt Mahasisw a Dt Jurusan Dt Nilai Dt Akademik Dt Matakuliah Bukti Pembay aran Dt Dosen Dt Mahasisw a Dt Batas Dt Bayar Dt Aja r
Dt Batas
File D5 Mahasisw a
l Bag Keuangan
g Bayar
Dt Bayar
Dt SMS 2
D10
File SMS
D11
File Entry
D12
File KRS
j SMS
D9
File Nilai
Dt Nilai Dt Mahasisw a
f Batas
File Ajar
Dt Aja r
e Mahasisw a
D8
Dt Entry KRS Dt SMS
Proses Entry KRS Dt KRS Dt Jurusan Dt Akademik Dt Matakuliah
Dt Dosen Dt Aja r Dt Entry Dt Batas Dt Nilai Dt KRS Dt SMS a KRS, Nilai
3
Jurusan
e KRS Laporan
Mahasisw a
DAD Level-1
D2
File Akademik
D3
Dt Akademik
D1
File Jurusan
Dt Jurusan
c
d
Matakuliah
Dosen
Dt Jurusan
Dt Matakuliah
2 Input Data Jurusan
Dt Dosen
3
Input Data Th_Akademik
File Dosen
Dt Dosen
b
Dt Akademik
Jurusan
D4
Dt Matakuliah
Th_Akademik
1
a
File Matakuliah
4 Input Data Matakuliah
Input Data Dosen
Dt Jurusan File D5 Mahasisw a
Dt Mahasisw a
D8 Dt Dosen 5
e Mahasisw a
Dt Akademik
Dt Mahasisw a
Input Data Mahasisw a
Dt Matakuliah
File Ajar
Dt Aja r 8
Dt Mahasisw a
h Input Data Pengaja r
Ajar
Dt Aja r
Dt Aja r D6
File Batas
Dt Batas
D9
File Nilai
Dt Nilai 6
f Batas
Dt Nilai
Dt Batas
Dt Batas
9
Input Data Batas
i Input Data Nilai
Nilai
Dt Nilai
Dt KRS File D7 Bayar
Dt Bayar
Dt SMS, Dt Entry
Dt Bayar Bala san SMS 7
g Bayar
Dt Bayar
11
Proses Pembalasan SMS
10
Dt KRS D12 Dt KRS
13
Mahasisw a
Laporan
KRS Laporan
KRS, Nilai
a Jurusan
j Input Data SMS
Proses KRS
SMS Bala san
e
File SMS
Dt SMS
12 Input Data Bayar
D10
File KRS
SMS
Dt SMS
Dt Entry D11
File Entry
Perancangan Basis Data Jurusan
Th_Akademik
Matakuliah
Dosen
Batas
Mahasiswa
Bayar
Ajar
Nilai
SMS
Entry KRS
KRS
KRS Detil
Passwd_Login
Bayar
KRS
Kd_Reg NIM Kd_Bayar Tanggal Jml_Bayar Tot Bayar
Mahasiswa NIM Nm_Mahasiswa Kd_Jurusan Angkatan Tmp_Lahir Tgl_Lahir Jenis_Kel Gol_Darah Agama Al_Mahasiswa Kd_Dosen Password
Batas_SKS
Nilai
IP Batas
Kd_Reg NIM IP
Th_Akademi k
Entry_KRS SMS Kd_SMS No_Ponsel Tgl Isi_SMS
Jurusan Kd_Jurusan Nm_Jurusan
Kd_Reg Semester Th_Akademik
Pengajar
Kd_Dosen Nm_Dosen Bdg_Ilmu Al_Dosen No_Telepon
Kd_Reg Kd_Matakuliah Kd_Dosen
Matakuliah Kd_Matakuliah Nm_Matakuliah SKS Semester Status Th_Kurik Kd_Jurusan
HIPO Menu Utama MENU UTAMA
LOGIN
INPUT DATA
SMS KRS
UTILITY LAPORAN
HIPO Menu Login
LOGIN
PASSWORD
LOGOUT
KRS_Detil Kd_Matakuliah Nm_Matakuliah SKS
Semester
Kd_SMS NIM Password Kd_Matakuliah
Dosen Passwd_Logi n Passwd
Kd_Reg NIM Kd_Matakuliah Jlm SKS Batas
KELUAR
HIPO Menu Data DATA
DATA JURUSAN
DATA DOSEN
DATA MATAKULIAH
DATA MAHASISWA
DATA BATAS SKS
DATA THN AKADEMIK
HIPO Menu Input INPUT
DATA PENGAJAR
DATA BAYAR
Gambar 3.9 HIPO Menu Input
HIPO Menu KRS KRS
KRS
Gambar 3.10 HIPO Menu KRS
DATA NILAI
HIPO Menu SMS SMS
SETING SMS
SMS TERIMA
HIPO Menu Laporan LAPORAN
DATA MAHASISWA
DATA DOSEN
DATA BAYAR
DATA MATAKULIAH
KRS
DATA NILAI
HIPO Menu Utility UTILITY
BACKUP
RESTORE
UBAH PASSWORD
Desain Input Desain Input Jurusan
Data Jurusan Cari Data Jurusan
Input Data Jurusan
Kode Jurusan
:
X(5)
Nama Jurusan
:
X(40)
Tambah
Simpan
Edit
Batal
Keluar Desain Input Tahun Akademik
Data Tahun Akademik Input Data Tahun Akademik
Cari Data Tahun Akademik
X(5) Kode Regristrasi
:
Semester
:
Tahun Akademik
:
Tambah
X(6) X(9)
Simpan
Keluar
Edit
Batal
Desain Input Matakuliah
Data Matakuliah CARI DATA
INPUT DATA
Kode Matakuliah
:
X(7)
Nama Matakuliah
:
X(40)
SKS
:
X(2)
Semester
:
X(2)
Status
:
Tahun Kurikulum
:
X (4)
Kode Jurusan
:
X(5)
Tambah
Wajib
Simpan
Pilihan
Edit
Batal
Keluar Desain Input Data Dosen
Data Dosen Cari Data Dosen
Input Data Dosen
Kode Dosen
:
X(5)
Nama Dosen
:
Bidang Ilmu
:
X(40) X(20)
Alamat
:
X(40)
Nomor Telepon
:
X(15)
Tambah
Simpan
Edit
Keluar
Batal
Desain Input Data Mahasiswa DATA MAHASISWA Input Data Mahasiswa NIM
:
Nama Mahasiswa
:
X(8) X(30)
Kode Jurusan
:
X(5)
Angkatan
:
Tempat Lahir
:
Tanggal Lahir
:
X (4) X(20) X(8)
Jenis Kelamin
:
Pria
Golongan Darah
:
A
Agama
:
Alamat
:
Password
:
Kode Dosen
:
Tambah
Wanita B
AB
X(8) X(40) X (4) X(5) Simpan Keluar
Input Data Batas SKS
Cari Data Mahasiswa
Edit
Batal
O
Data Batas SKS Cari Data Batas SKS
Input Data Batas SKS
IP
:
Batas SKS
:
X(11) X(2) Simpan
Tambah
Edit
Batal
Keluar
Desain Input Data Pembayaran
Data Pembayaran Input Data Pembayaran
Kode Regristrasi
:
NIM
:
Kode Bayar
:
Tanggal
:
Jumlah Pembayaran : Total Pembayaran Tambah
:
Cari Data Pembayaran
X(5) X(8) X(13) X(8) X(8) X(8) Simpan
Edit
Keluar
Desain Input Data Dosen Pengajar
Batal
Data Dosen Pengajar Cari Data Dosen Pengajar
Input Data Dosen Pengajar
X(5)
Kode Regristrasi
:
Kode Matakuliah
:
X(5)
Kode Dosen
:
X(5) Simpan
Tambah
Batal
Edit
Keluar
Desain Input Nilai
Data Nilai Cari Data Nilai
Input Data Nilai
Kode Regristrasi
:
X(5) :
NIM
:
X(8)
IP
:
X(5)
Tambah
Simpan
Edit
Batal
Keluar
Desain Output Desain Output Data Matakuliah INSTITUT SAINS DAN TEKNOLOGI AKPRIND
YOGYAKARTA Laporan Data Matakuliah Jurusan
: X(30)
Tahun Kurikulum : X(8) No
Kode
Nama Matakuliah
SKS
Status
Matakuliah 999 99999999
xxxxxxxxxxxxxxxx
9
xxxxxxxxxxx
999 99999999
xxxxxxxxxxxxxxxx
9
xxxxxxxxxxx
Jumlah Matakuliah : 99 Jumlah SKS
: 999 Yogyakarta, dd – mm – yyyy Ketua Jurusan (xxxxxxxxxxxx)
Desain Output Data Mahasiswa INSTITUT SAINS DAN TEKNOLOGI AKPRIND YOGYAKARTA Laporan Data Mahasiswa Jurusan
: X(30)
Angkatan
: X(4)
Tahun Akademik : X(8)
No
NIM
Nama
Alamat
No. Telepon
999 99999999 xxxxxxxxxxx xxxxxxxxxxxxxxxxx 999999999 999 99999999 xxxxxxxxxxx xxxxxxxxxxxxxxxxx 999999999 Jumlah Mahasiswa
: 9999 Yogyakarta, dd – mm - yyyy Ketua Jurusan
( XXXXXXXXX )
Desain Output Data Dosen INSTITUT SAINS DAN TEKNOLOGI AKPRIND
YOGYAKARTA Laporan Data Dosen Pengajar Jurusan
: X(30)
Tahun Akademik : X(8) No NIP Nama
Bidang
Alamat
No.
Ilmu
Telepon
999 99999999 xxxxxxxxxx
xxxxx
xxxxxxxxxx 999999999
999 99999999 xxxxxxxxxx
xxxxx
xxxxxxxxxx 999999999
Jumlah Dosen : 999 Yogyakarta, dd – mm – yyyy Ketua Jurusan ( XXXXXXXXX ) Desain Output Laporan Pembayaran SPP INSTITUT SAINS DAN TEKNOLOGI AKPRIND YOGYAKARTA Laporan Pembayaran SPP Jurusan
: X(30)
Angkatan
: X(4)
Semester
: X(6)
Tahun Akademik
: X(9)
No
NIM
99 xxxxxx 99 xxxxxx Jumlah Total
Nama xxxxxx xxxxxx
Total 99999 99999 99999
Yogyakarta, dd – mm - yyyy Kepala Bagian Keuangan ( xxxxxxxxxxxx ) Desain Output Laporan Data IP INSTITUT SAINS DAN TEKNOLOGI AKPRIND YOGYAKARTA Laporan Data IP
Jurusan
: X(30)
Tahun Kurikulum : X(8) No
NIM
Nama Mahasiswa
Semester
IP
Batas SKS
999 99999999
xxxxxxxxxxxx
99
999
99
999 99999999
xxxxxxxxxxxx
99
999
99
Jumlah Data : 99 Yogyakarta, dd – mm – yyyy Ketua Jurusan (xxxxxxxxxxxx)
Desain Output KRS INSTITUT SAINS DAN TEKNOLOGI AKPRIND YOGYAKARTA KARTU RENCANA STUDI Nomor Mahasiswa
: X(5)
Tahun Akademik
: X(8)
Nama Mahasiswa
: X(30)
Semester
: X(2)
Jurusan
: X(30)
Dosen Wali
:X(30)
No Kode
Nama Matakuliah
SKS
Semester
Matakuliah 99
xxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
9
99
99
xxxxxxxx
xxxxxxxxxxxxxxxxxxxxx
9
99
Total SKS 99 Yogyakarta, dd – mm - yyyy Ketua Jurusan ( xxxxxxxxxxxx ) Desain Utility Desain Dialog Utility – Backup Data
File Sumber Backup ke BACKUP
KELUAR
Desain Dialog Utility – Restore Data Backup File Restore ke RESTORE
KELUAR
Desain Dialog Utility – Ganti Password
Ganti Password Password
:
Password Baru
:
Simpan
Batal
Keluar
SKRIPSI
APLIKASI THREE-TIER MANAJEMEN DATABASE PADA SISTEM TOKO BUKU ONLINE THREE-TIER APPLICATION OF DATABASES MANAGEMENT ON THE BOOKSTORE ONLINE SYSTEM
Disusun oleh : Nama
: Eni Kadarwati
No. Mhs
: 00. 05. 1663
JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI INSTITUT SAINS & TEKNOLOGI AKPRIND YOGYAKARTA 2004
DFD (Data Flow Diagram) DFD Level 0
DFD Level 1
Gambar 3.2 DFD Level 1. Alur Proses Sistem
DFD Level 2
a. Pengujian kesalahan DFD
Kerelasian Antar Tabel Database
Desain Client Application (Front Tier) Mengumpulkan data yang akan ditampilkan Merancang Homepage Proses Pembuatan Home page
Membuat Dokumen Web
Publikasi Pemasangan Home page di server
HIPO (Hierarchy Input-Proses-Output) HIPO Level 0 0 HOME
1
2
3
4
Tentang Kami
Basket
Buku Tamu
Mn.Tambahan
5 Cari HIPO Level 1 2 BASKET
2.1
2.2
2.3
2.4
Cara Bayar
Cara Belanja
Login
Shopping Basket
HIPO Level 1Submenu Mn Tambahan 4 Mn Tambahan
4.1
4.2
4.3
Berita
Polling
Forum
4.4 Pengarang
4.6
4.5
Kontak
Penerbit
Desain Dialog Desain Halaman Utama Website
Gambar
Header Animasi
Gambar
1. PILIHAN MENU
POLLING KATEGORI
PRODUK FORUM
Link ke halaman lain
Katalog Halaman Kategori Produk Bagian Header Pilihan Kategori
Daftar produk berdasarkan kategori yang dipilih
Halaman Deskripsi Produk
GAMBAR BUKU
Judul
:
Harga
:
Pengarang
:
Penerbit
:
SINOPSIS BUKU
Bagian Pencarian Produk Halaman Header PENCARIAN CARI Halaman Footer
Shopping Chart SHOPPING BASKET
CHECKOUT
PEMESANAN
Gambar 3.18 Struktur Website Bagian Shopping Chart
Shopping Basket Halaman Header
Kode Buku
Judul
Harga Satuan
Jumlah
Harga Ubah
Hapus
Pajak Total Harga Lanjut Belanja
Checkout Halaman Footer
a. Halaman Checkout dan Pemesanan Halaman Checkout berisi form isian untuk input username dan password dari pengunjung. Hal ini dilakukan untuk memverifikasikan apakah pengunjung tersebut sudah login atau belum. Jika belum maka akan ditampilkan pesan bahwa ia tidak berhak untuk melakukan transaksi pemesanan produk dan akan diarahkan ke halaman regristrasi. Jika sudah melakukan login,maka akan dimunculkan halaman login, sehingga
cukup mengisi username dan password yang telah dimasukkan sebelumnya. Kemudian akan menuju ke halaman selanjutnya yang akan menampilkan semua produk yang telah dipesan, dan terdapat bagian : a. Link Pembayaran,
untuk mengetahui cara pembayaran dari
produk yang telah dipesan. b. Link Kontak, akan menuju halaman yang menyediakan form untuk menuliskan permasalahan ataupun pertanyaan kepada pihak manajemen.
c. Link Home, menuju kehalaman utama dan dapat mencoba menu-menu yang lain. d. Link Logout. Setelah melakukan proses transaksi maka user dapat melakukan logout, dimana user sudah tidak memiliki hak untuk transaksi atau username yang digunakan tidak aktif sebelum melakukan proses Login kembali. Halaman Header TANGGAL PESAN Ucapan terima Kasih NO. PESAN
DAFTAR PRODUK YANG TELAH DIPESAN
LOGOUT
Halaman Footer
Gambar 3.20 Desain Halaman Checkout •
Cara Bayar
Pada bagian ini berisi tentang tata cara pembayaran setelah pengunjung merasa yakin akan membeli produk yang sudah dipilihnya.
Halaman Header
CARA PEMBAYARAN
Gambar 3.21 Desain Halaman Cara Bayar •
Cara Belanja Seperti
pada halaman cara bayar, halaman ini menjelaskan
bagaimana cara pemesanan produk yang ada.
Halaman Header
CARA BELANJA
Gambar 3.22 Desain Halaman Cara Belanja •
Pendaftaran/ Regristrasi Pengunjung Bagian ini
berisi bagaimana seorang pembeli mendaftarkan diri
atau melakukan regristrasi untuk dapat melakukan proses Login. Untuk bagian ini masih terbagi menjadi 2 bagian, yaitu pendaftaran member dan penghapusan data member. a. Pendaftaran Member Struktur halaman bagian pendaftaran member: DAFTAR
KONFIRMASI DAFTAR
Gambar 3.23 Struktur Halaman Bagian Pendaftaran Member
Didalam bagian pendaftaran member, pengunjung mengisikan formulir pendaftaran dengan benar. Jika halaman form pendaftaran telah di “DAFTAR” maka akan ditampilkan halaman konformasi member. Jika form pengisian ada yang masih kosong atau ada kesalahan format penulisan, maka akan muncul kesalahan bahwa data yang dimasukkan belum terisi semua. Apabila data yang dimasukkan sudah benar, maka langsung menuju halaman yang meminta username dan password yang telah dimasukkan.Di halaman ini berisi username dan password yang telah diisikan oleh member untuk digunakan sebagai login setiap kali akan melakukan pemesanan produk.
Halaman Header
FORM ISIAN (FORMULIR PENDAFTARAN) Daftar
Hapus Form
Gambar 3.24 Desain halaman pendaftaran member
Desain untuk konfirmasi login dapat digambarkan sebagai berikut: Halaman Header USERNAME
PASSWORD
Gambar 3.25 Desain Halaman Konfirmasi login
b. Penghapusan Data Member Pada bagian ini, data yang telah dimasukkan dapat dihapus dengan mengklik “Hapus Form”. Apabila pengunjung batal melakukan regristrasi, maka bagian ini dapat digunakan untuk menghapusnya. •
Berita
Pada halaman ini berisi berita lengkap yang dapat langsung di baca oleh pengunjung. Halaman Header
Daftar Judul Berita
•
BERITA LENGKAP Gambar 3.26 Desain Halaman Berita
Pengarang Disediakan informasi beberapa nama pengarang dan profilnya dalam
menu ini, dan diambil dari database yang digunakan. Halaman Header
Pilihan Link
Deskripsi Pengarang Gambar 3. 27 Desain Halaman Pengarang
•
Penerbit Dalam menu penerbit ini, akan ditampilkan nama dan deskripsi
penerbit Halaman Header
Pilihan Link
Deskripsi Penerbit Gambar 3.28 Desain Halaman Penerbit
•
Tentang Kami Pada bagian ini
akan ditampilkan profil perusahaan. Informasi
dimulai profil perusahaan, visi dan misi perusahaan tersebut
Halaman Header Sekilas Visi dan Misi Gambar 3.29 Desain Tentang Kami
3.1 Desain Aplikasi Administrator ( Middle tier) Di bagian inilah seorang Admin melakukan proses manipulasi database. 3.1.1 HIPO (Hierarchy Input Process Output ) a.
HIPO Level 0 0 Sistem Pengelolaan Data Toko Buku Online
1
2
3
Menu Produk
Menu Transaksi
Menu Tambahan
4 Laporan
6 Buku Online 5 HIPO Level 0 Sistem Pengelolaan Data Toko Gambar 3. 30 PadaTools HIPO Level 0 ini, dapat diterangkan About bahwa terdapat beberapa menu aplikasi, antara lain: 1. Menu Produk, menu ini akan berisikan submenu ynag berhubungan dengan produk buku, seperti menu item produk, kategori buku, pengarang maupun penerbit buku. 2. Menu
Transaksi, berhubungan dengan proses transaksi ynag
melibatkan submenu user, item produk dan transaksi user. 3. Menu
Tambahan,
berisi
submenu
yang
merupakan
menu
tambahan aplikasi yang dapat diakses secara langsung oleh user, seperti polling, forum, berita serta form pengisian buku tamu.
4. Laporan, digunakan sebagai arsip dari proses aplikasi. Laporan yang dapat disajikan dari aplikasi ini antara lain laporan data user, laporan transaksi user, laporan dari Menu Produk dan laporan dari Menu Tambahan 5. Tools, merupakan fasilitas admin yang didalamnya terdiri dari submenu BackUp dan Restore Data dan juga fasilitas Ubah Password Admin. 6. About, didalammya terdapat submenu Tentang Program dan juga Profil. a. HIPO Level 1 1 Menu Produk
1.2 1.3 1.4 Gambar 3.31 HIPO Level 1 Submenu Menu Produk Kategoribeberapa submenu,antara Pengarang Penerbit Buku Produk ini memiliki Menu lain: 1.1
1. Buku, dalam submenu ini akan ditampilakn data buku yang telah disediakan oleh database, seperti id_buku, judul buku, halaman, harga dan lain-lain. 2. Kategori,
akan ditampilkan data kategori yang mengadung dua
field yaitu id_kategori dan keterangan kategori. 3. Pengarang
,
menampilkan
data
pengarang
buku,
seperti
id_pengarang, nama dan sedikit profil dari pengarang tersebut. 4. Penerbit, juga akan menampilkan data mengenai penerbit seperti nama, alamat dan juga profil penerbit yang ada. 2 Menu Transaksi
2.1
2.2
User
Order
Gambar 3. 32 HIPO Level 1 Submenu Menu Transaksi Pada Menu Transaksi terdapat submenu yaitu: 1. Submenu User yang menampilkan data user yang telah masuk ke dalam database. 2. Submenu Order, menampilkan data pesanan dari transaksi yang telah dilakukan user setelah melakukan Login.
3 Menu Tambahan
3.1 3.2 3.3 3.4 Gambar 3.33 HIPO Level 1 Submenu Menu Tambahan Berita Forumdari: Tamu Polling Menu Tambahan terdiri 1. Submenu Berita, yang menyajikan berita-berita yang telah dimuat. 2. Submenu Forum, juga menampilkan judul forum di sisi user. 3. Submenu Tamu, menampilkan data tamu yang telah masuk. 4. Submenu Polling, menampilkan pilihan serta jawaban polling. 4 Laporan
4.1 Data Buku
i.
4.2
4.3
4.4
Data Tambahan
Data Pengarang
Data Penerbit
Gambar 3. 34 HIPO Level 1 Submenu Laporan 4.5 4.6 Laporan Data Buku, menampilkan data buku yang Data User tedapat dalam database.
Transaksi
ii. Laporan Data Tambahan, diambil dari Menu Tambahan. iii. Laporan Data Pengarang, menampilkan data pengarang. iv. Laporan Data Penerbit, menampilkan data penerbit. v.
Laporan Data User, menampilkan data user yang telah melakukan transaksi.
vi.
Laporan Transaksi, akan menampilkan namanama pesanan / order yang diperoleh setelah user melakukan transaksi. 5 Tools
5.3
5.2
5.4
Gambar 3.35 HIPO LevelData 1 Submenu Tools Restore Backup Data UbahPassword Dalam Menu Tools terdapat fasilitas: 1. BackUp data, untuk mem-BackUp data secara otomatis. 2. Restore data, untuk mengembalikan data yang sudah diBackUp 3. Ubah Password, digunakan untuk mrngubah password Admin. 5 About
5.1 5.2Help Gambar 3.36 HIPO Level 1 Submenu Menu About terdiri dari: Tentang Program i.
Profil
Submenu Tentang Program, digunakan sebagai petunjuk pemakaian program aplikasi.
ii.
Submenu Profil, menampilkan profil dari pembuat program.
3.1.2 Desain Input a. Input Data Buku
Bagian input data buku digunakan untuk melakukan manipulasi data yang ada dalam tabel buku. Terdapat fasilitas Edit,Hapus, Tambah dan fasilitas Cari untuk pencarian berdasarkan jenis fieldnya. Input Data Buku Id Buku Judul Kategori Id Pengarang Id Penerbit Tahun Terbit ISBN Halaman Harga Deskrips Image
: XXXXX : XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX : XXXXXXXXXXXXXXXXXXX : XXXXX : 9999 Cari : 9999 : XXXXXXXXXXXXX : 999 : 9999999 :XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX : XXXXXXXXXXXXXXXXXXXX Gambar 3.37 Desain Input Data Buku
b. Input Data Kategori Hapus Input, Edit untuk Batal melakukan Cetak EditKeluar Tambah Bagian Simpan ini digunakan maupun
penghapusan data kategori kedalam tabel ketegori yang sudah tersedia, terdapat button Cari untuk pencarian kategori. Input Data Kategori Kategori
: XXXXXXXXXXXXXXXXXXX
Keterangan
: XXXXXXXXXXXXXXXXXXX
Image
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Tambah
Cari
HapusKategori Simpan Edit Desain Batal Cetak Gambar 3.38 Input Data
Keluar
c. Input Data Pengarang Data pengarang yang telah dimasukkan dapat dilihat maupun diedit dalam bagian ini. Menu Hapus dan Cari juga disediakan. Input Data Pengarang Cari
Id Pengarang
: XXXXXX
Nama Pengarang
: XXXXXXXXXXXXXXXXXXXX
Deskripsi
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Tambah
Simpan
Edit
Batal
Hapus
Cetak
Keluar
Gambar 3. 39 Desain Input Data Pengarang d. Input Data Penerbit Digunakan untuk memasukkan data-data penerbit ke dalam database. Input Data Penerbit Id Penerbit
: XXXXX
Nama Penerbit : XXXXXXXXXXXXXXXXXXXX
XXXX
Alamat
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Deskripsi
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Tambah
Gambar 3.40 Desain Input Data Penerbit
Simpan
Edit
Batal
Hapus
Cetak
Keluar
e. Input Data Berita Berita yang akan ditampilkan ke jendela user dapat diinputkan di bagian ini. Menu Tambah dan Hapus data juga disediakan. Input Data Berita Id Berita
: XXXXXXXXXX
Tanggal Kirim
: XXXXXXXXXX
Pukul Kirim
: XXXXXXXX
Judul
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Isi Berita
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Tambah
Gambar Edit 3. 41 Desain InputHapus Data Berita Batal Cetak
Simpan
Keluar
f. Input Data Forum Bagian ini menyediakan fasilitas Tambah, Edit dan Hapus data forum yang akan ditampilkan ke jendela user. Input Data Forum Id Forum
: XXXXXXXXX
Judul Forum
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Keterangan
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Tambah
Simpan
Edit
Batal
Hapus
Cetak
Gambar 3. 42 Desain Input Data Forum
Keluar
g. Input Data Polling Data polling juga dapat diinputkan atau dapat
dihapus
melalui
bagian ini. Input Data Polling Id Polling
: XXXXX
Judul Polling
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Pilihan
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Jawaban
: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Tambah
Simpan Edit Desain BatalInput Hapus Cetak Gambar 3.43 Data Polling
Keluar
3.1.3 Desain Output (Laporan) a. Laporan Data Buku Laporan ini menampilkan data buku yang terdapat dalam tabel buku. Disertai dengan image buku apabila diinginkan. DATA BUKU Id Buku
:XXXXX
Judul
:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Kategori
:XXXXXXXXXXXXXXXXXXX
Id Pengarang
:XXXXXX
Id Penerbit
:XXXX
Tahun terbit
:9999
ISBN
:XXXXXXXXXXXXXX
Halaman
:999
Harga
:9999999
Deskripsi
Gambar 3.44 Desain Laporan Data Buku :XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
b. Laporan Data Pengarang Image :XXXXXXXXXXXXXXXXXXX Data pengarang-pengarang buku dapat ditampilkan dalam laporan ini. DATA PENGARANG Id Pengarang
Nama Pengarang
Deskripsi
XXXXXX
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXX
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXX
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXX
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
XXXXXX
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXX
Gambar 3.45 Desain Laporan Data Pengarang c. Laporan Data Penerbit Laporan ini akan menampilkan semua data penerbit yang ada dalam database. DATA PENERBIT Id Penerbit
Nama Penerbit
Alamat
Deskripsi
XXXXXX
XXXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXX
XXXXXX
XXXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXX
XXXXXX
XXXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXX
XXXXXX
XXXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXX
XXXXXX
XXXXXXXXXX
XXXXXXXXXXX
XXXXXXXXXXXX
Gambar 3. 46 Desain Laporan Data Penerbit
d. Laporan Data User Data dari user yang telah melakukan regristrasi dengan mengisi data pada form yang telah disediakan juga dapat ditampilkan dalam format laporan sebagai arsip dari perusahaan. DATA USER Username
: XXXXXXXXXX
Password
: XXXXXXXXXX
Nama
: XXXXXXXXXXXXXXXXXXXX XXXXXXXXXX
Alamat
: XXXXXXXXXXXXXXXXXXXX
Kode pos
: 99999
Kota
: XXXXXXXXXX
Propinsi
: XXXXXXXXXXXXXXXXXXXX
No.Telepon
: 9999999999
Gambar 3.47 Desain Laporan Data User e. Laporan Transaksi Laporan transaksi akan menampilkan semua pesanan dari transaksi yang telah dilakukan oleh para user setelah melakukan proses Login. Lapora ini dapat diperoleh dengan melakukan query antara tabel buku, tabel pesan dan tabel pesan_akhir.
DATA TRANSAKSI
Username
: XXXXXXXXXX
No.Urut
: 99
Tanggal Pesanan
: dd/mm/yyyy
Id Buku
: XXXXX
Judul Buku
: XXXXX XXXXXXXXXXXXXXXXXXXXXXXXX
Kategori Buku
: XXXXX XXXXXXXXXXXXXXX
Harga
: 9999999
Jumlah Pesanan
: 999999999
Jumlah Harga
: 99999999
User Total Harga Gambar 3. 48 Desain Laporan Transaksi : 999999999 Pajak
: 999999999
3.2 Desain Database (Back Tier) Total Harga Keseluruhan 3.2.1
Struktur Tabel Database
: 999999999
Sistem pemesanan buku online menggunakan satu kesatuan database. Secara umum database yang akan diimplementasikan pada pemesanan buku online terdiri dari beberapa tabel yang membentuk satu kesatuan sitem
a. Tabel Buku Primary Key : Id_buku Tabel 3.1 Tabel Buku No
Field Name
Type
Width
keterangan
1. Id_buku *
Varchar
5
Id tiap-tiap buku
2. Judul
Varchar
50
Judul buku
3. Id_kategori
Varchar
10
Kategori buku
4. Id_pengarang
Varchar
6
Id pengarang buku
5. Id_penerbit
Varchar
5
Id penerbit buku
6. Thn_terbit
Integer
4
Tahun terbit buku
7. ISBN
Varchar
13
Nomor isbn buku
8. Halaman
Integer
3
Jumlah halaman buku
9. Harga
Integer
8
Harga buku
10. Deskripsi
Text
11. Image
Varchar
Deskripsi buku 20
Gambar sampul buku
b. Tabel Kategory Primary Key :Id_kategori Tabel 3.2 Tabel Kategory No
Field Name
Type
Width
keterangan
1. 2.
3.
Id_kategori *
Varchar
Keterangan
Varchar
Image
Varchar
10
Id Kategori buku
20
Keterangan kategori buku
60
Gambar Kategori
c. Tabel Penerbit Primary Key : Id_penerbit Tabel 3.3 Tabel Penerbit No
Field Name
Type
Width
keterangan
1. Id_penerbit *
Varchar
5
Id tiap penerbit
2. Nama_penerbit
Varchar
25
Nama penerbit buku
3. Alamat
Varchar
30
Alamat penerbit
4. Deskripsi
Text
Deskripsi penerbit
d. Tabel Pengarang Primary Key : Id_pengarang Tabel 3.4 Tabel Pengarang No
Field Name
Type
Width
keterangan
1. Id_pengarang *
Varchar
6
Id pengarang buku
2. Nama_pengarang
Varchar
20
Nama pengarang buku
3.
Deskripsi
Text
e. Tabel Pesan Composit Key
: Id_pesan Tabel 3.5 Tabel Pesan
Deskripsi tiap pengarang
No
Field Name
Type
Width
keterangan
1. Id_pesan
Int
11
Id pesan pembeli
2. No_urut
Int
2
No urut pembeli
3. Id_buku
Varchar
5
Id tiap-tiap buku
4. Tanggal
Date
5. Jumlah
Int
Tanggal pemesanan 11
Jumlah produk pesanan
f. Tabel User Primary Key : Username Tabel 3.6: Tabel User No
Field Name
Type
Width
Keterangan
1. Username *
Varchar
10
Username pengunjung
2. Password
Varchar
10
Password
3. Nama
Varchar
30
Nama pembeli
4. Alamat
Varchar
20
Alamat User
5. Kodepos
Varchar
5
Kodepos wilayah
6. Kota
Varchar
10
Nama kota
7. Propinsi
Varchar
20
Nama Propinsi
8. Telp
Varchar
12
Nomor telepon
9. Email
Varchar
20
Alamat email
g. Tabel Pesan_akhir Primary Key : Id_pesan Tabel 3.7: Tabel Pesan_akhir No
Field Name
Type
Width
Keterangan
1. Id_pesan *
Integer
11
Id pesan
2. Username
Varchar
10
Username pengunjung
3. Status_pesan Char
3
Status pesanan
4. Totalbayar
Double
Total pembayaran
5. Tanggal
Date
Tanggal Transaksi
h. Tabel Forum Primary Key : Id_forum Tabel 3.8 : Tabel Forum No
Field Name
Type
Width
Keterangan
1. Id_forum*
Integer
11
Id foum
2. Judul
Varchar
50
Judul forum
3. Ket
Text
i.
Keterangan forum
Tabel Topik
Primary Key : Id_topik Tabel 3.9: Tabel Topik No
Field Name
Type
Width
Keterangan
1. Id_topik *
Integer
11
Id topik
2. Id_forum
Integer
11
Id forum
3. Judul_topik
Varchar
50
Judul topik
j. Tabel Tekstopik Primary Key : Id_teks Tabel 3.10: Tabel tekstopik No
Field Name
1. Id_teks *
Type Integer
Width 11
Keterangan Id teks
2. Id_topik
Integer
11
Id topik
3. Id_forum
Integer
11
Id forum
4. Pengirim
Varchar
30
Nama pengirim
5. Teks
Text
Teks topik
k. Tabel Tamu Primary Key : Id Tabel 3.11: Tabel Tamu No
Field Name
Type
Width
Keterangan
1. Id *
Integer
5
Id pengunjung
2. Nama
Varchar
20
Nama pengunjung
3. Email
Varchar
20
Alamat email pengunjung
4. Alamat
Varchar
30
Alamat pengunjung
5. Pesan
Text
Pesan yang ditulis
6. Tglkirim
Date
Tanggal pengiriman
7. Pklkirim
Time
Pukul pengiriman
l. Tabel Admin Primary Key : Username Tabel 3.12: Tabel Admin No
Field Name
Type
Width
Keterangan
1. Username*
Varchar
10
Username pengunjung
2. Password
Varchar
10
Password
m. Tabel Polling Primary Key : Id Tabel 3.13: Tabel Polling No
Field Name
Type
Width
Keterangan
1. Id*
Integer
5
Id polling
2. Judul
Varchar
50
Judul polling
3. Pilihan
Varchar
100
Pilihan jawaban
4. Jawaban
Varchar
30
Jawaban
n. Tabel Berita Primary Key : Id Tabel 3.14: Tabel Berita No
Field Name
Type
Width 11
Keterangan
1. Id*
Integer
2. Tglkirim
Date
Tanggal kirim berita
3. Pukulkrm
Time
Pukul kirim
4. Judul
Varchar
5. Isiberita
Text
50
Id berita
Judul berita Isi berita
n. Tabel Counter Primary Key : Id Tabel 3.15: Tabel Counter No
Field Name
1. Id *
Type Integer
Width 11
Keterangan Id counter
o. Tabel Kontak Primary Key : -
Tabel 3.16: Tabel Kontak No
Field Name
Type
Width
Keterangan
1. Nama
Varchar
20
Nama pengunjung
2. Email
Varchar
15
Alamat email
3. Judul
Varchar
40
Judul pesan
4. Pesan
Text
Pesan yang dikirim
p. Tabel Validasi Nama Tabel :Validasi Tabel 3.17: Tabel Validasi No
Field Name
Type
Width
Keterangan
1 a
Text
Penampung username admin
2. b
Text
Penampung password admin