INTELLIGENT AGENT (Russell, Norvig)

AGENT adalah segala sesuatu yang mengambarkan persepsi ENVIROMENT (Lingkungan) melalui SENSOR dan ACTING (bertindak) berdasarkan ACTUATOR.

Seperti penjelasan diatas, AGENT mempunyai Sensor sebagai penerima input dan Actuator sebagai media output, Input diperoleh dari lingkungannya dan outputnya pun ke lingkungan yang sama. Contoh misalkan Human Agent memiliki mata, telinga, kulit sebagai input dan tangan, kaki, mulut sebagai Actuator. Software Agent memiliki sensor, keyboard, file/data, network packet sebagai SENSORS dan ACTING pada ENVIOMENTnya dengan ditampilkan dilayar, output file, printout dan pengiriman paket data networking.

Specifying Task Enviroment, Menentukan Tugas pada lingkungan. Kita perlu menentukan pengkuran performance. Setiap performance harus terdapat measurment, jika tidak ada pengukuran maka belum tepat jika disebut sebagai Agent Kecerdasan Buatan. Penentuan tugas pada lingkunganya, kita menggunakan PEAS (performance Measure, Enviroment, Actuator, dan Sensors).

Contoh Studi kasus Analisa Kebutuhan Sistem Informasi Kasir

Pada post kali ini saya hanya akan memberi contoh studi kasus bagaimana cara menganalisa kebutuhan dari user. User yang saya angkat kali ini adalah user sebuah toko frozen food, toko yang berjualan produk-produk makanan beku. Mari kita berasumsi nama user toko tersebut adalah Robig.

robig mengedaki toko yang dimiliki sekarang mempunyai sistem informasi, karena tanpa sistem informasi Robig harus merekap setiap bulan untuk mengetahui omset yang dimiliki, dan kebingungan ketika terlalu banyak pesanan (indend), dan juga susah untuk melihat informasi barang yang paling sering dibeli.

Fitur-fitur sistem informasi yang ingin dimiliki oleh Robig pada sistem informasinya sebagai berikut: 

    • Sistem informasi tersebut dapat mendata PRODUK dengan attribute : idProduk, namaProduk, harga.
    • Mendata CUSTOMER dengan attribute : idCustomer, namaCustomer, alamatCustomer, dan telpCustomer. 
    • mendata setiap PEMESANAN yang masuk dengan attribute yang akan data: tanggal pesanan, nomer pesanan, nama customer pemesan, total harga seluruh produk yang akan dipesan.
    • mendata setiap PEMBELIAN, dengan attribute yang didata: tanggal pembelian, nomer pemesan, nama customer jika termasuk member, total yang harus dibayar, produk-produk yang dibeli. 
    • jika sudah melakukan transaksi PEMESANAN dan akan melakukan PEMBELIAN, user menghendaki hanya tinggal input nomer PEMESANAN saja. 
    • Laporan transaksi setiap bulan. 

Kenapa Harus DATABASE? (Korth & Silberschatz)

Apakah ada cara lain untuk menyimpan data selain database? cara lain untuk menyimpan data selain database adalah di file system, seperti notepad, excel, word atau kita mempunyai file dengan format khusus. Tetapi dengan penyimpanan file system ada beberapa kemampuan yang tidak kita peroleh, Seperti :

  • Data Redudandcy and Inconsistency
  • Diffuculty in accesing data
  • Data Isolation
  • Concurrent Access Anomalies
  • Security Problems
  • Integrity Problems

Data Redudancy dan Inconsistency. Ketika kita membuat file program, maka setiap programer akan mempunyai format khusus terhadap file tersebut. Karena khusus tersebut sehingga programer lain akan kesulitan meneruskan format file tersebut. Hal lain bisa terjadi ketika dibutuhkan banyak client, seluruh file program harus mengikuti program yang telah dibuat. Bisa dikatakan bahwa file program atau file system akan tidak konsisten dan juga akan mengakibatkan data redundant (data sama). Sebagai contoh kasus data redundant, jika kita mempunyai customer dan transaksi pembelianya, maka disetiap cabang toko harus mempunyai data customer. Data customer tidak boleh hanya dimiliki oleh satu toko saja, hal ini mengakibatkan pembengkakan ukuran kebutuhan storage.

Difficulty in Access Data. Untuk menghilangkan redudan data seperti contoh diatas maka jalan satu-satunya adalah mensharing file data customer. tetapi hal tersebut akan menimbulkan masalah baru yaitu kesulitan untuk mengakses data tersebut. diperlukan code khusus untuk membaca dan menulis data yang baru. sebuah contoh kasus yang lain, jika kita ingin melakukan pencarian data customer yang bertempat tinggal di kota khusus, maka kita harus bekerja extra keras untuk membuat program tersebut.

Data Isolation. Ketika kita akan mengembangkan program maka kita harus tetap mempekerjakan programer yang lama, ketika kita menganti programer kemungkinan besar data yang telah kita koleksi tidak akan digunakan lagi, maka data akan terisolasi.

Concurrent data anomalies. Kesusahan yang lain ketika akan terjadi keanehan data atau tidak sinkoron. jika kita melakukan file system, ada kemingkinan setiap client akan memiliki file format masing-masing maka yang format akan juga berbeda. akan sangat susah mendeteksi keanehan data. misalkan client A menerapkan format tanggal bulan tahun, client B menerapkan tahun bulan tanggal, manager perusahaan itu akan kesulitan mencari data disemua client pada kurun waktu tertentu.

Security dan Integration Problems. Ketika file system kita sharing maka sangat rentan data itu akan dicuri atau dibaca orang yang tidak diberi hak akses. atau sebaliknya ketika kita mengijinkan role kasir untuk mengakses data Barang akan menjadi sangat susah untuk programer memberi hak akses kasir hanya memperbolehkan melihat data barang, tanpa boleh menganti atau mendelete data Barang. Sama halnya dengan Integrasi, integrasi ke program yang baru akan punya chalengge yang besar. karena format tidak standart.

Entity Types, Entity Sets, Attributes, and Keys

ER model mendeskripkan entitas-entitas, relasi-relasi dan atribute-atribute.

Entitas dan Atribute

ER model sebenarnya adalah pemetaan entitas dan relasi terhadap entitas yang lain. lalu entitas itu apa? entitas dalam dunia nyata bisa berupa objek nyata secara fisik, misalkan dalam entitas mobil, karyawan, sekolah, gaji, transaksi penjualan dan lain-lain. setiap entitas mempunyai beberapa attribute, attribute ini melekat pada setiap entitas, atribute adalah deskripsi khusus dari sebuat entitas, misal entitas pegawai bisa kita deskripsikan dari nomer ktp, nama, alamat, telp, tanggal lahir, sex, dll.

contoh entitas dan attributnya

gambar diatas terdisi dari dua entitas, e1 dan c1. e1 mengambarkan entitas pegawai ke-1, dimana pegawai tersebut mempunyai nama john smith, alamat 2311 kirby huston 7701, texas, dan selebihnya. c1 mengambarkan entitas Company ke-1 dimana setiap company akan mempunyai nama, kantor pusar dan presiden. entitas c1 mempunyai nama sunco oil, kantor pusat di houston dan presidennya adalah john Smith.

Dalam ER ada beberapa jenis-jenis dari attribut: simple versus composite, single value versus multivalue, dan stored versus derived

Simple (Atomic) versus Composite Attribute. composite attribute adalah attribut yang masih bisa dipecah-pecah lagi menjadi atomic atau simple attribute. composite attribute dapat dijadikan hirarki attribute, seperti contoh gambar dibawah, address termasuk attribute composite. seperti contoh pada e1 alamatnya 2311 kirby huston 7701. Jika kita pecah menjadi atomic attribute maka nomer:2311, jalan : kirby, kota:houston, kode pos: 7701. Pertanyaannya kapan kita gunakan composite atau atomic? untuk menjawab pertanyaan tersebut jawaban paling umum adalah melihat kondisi, kondisi seperti apa? jika kondisi attribute tersebut berupa kesatuan dan kita tidak perlu melakukan pencarian dari detail tersebut maka kita bisa mengunakan composite, contoh, alamat-> sidosermo 4/36-d. Kebalikanya jika kondisi kita membutuhkan detail dan detail itu bisa dijadikan konstrain pencarian data maka sebaiknya kita gunakan atomic attribute, contoh merk: honda, type: jazz, tahun: 2018, cc:1500.

Single Valued versus Multivalued Attribute. Pada umumnya nilai-nilai attribute yang ada adalah single value, artinya hanya mempunyai satu nilai, contoh nama pegawai, umur, sex. Tetapi ada kalanya attribute bisa diisi dengan multivalue. multivalue berarti banyak nilai dalam satu attribut. contoh warna mobil, warna mobil bisa satu, atau lebih dari satu warna. Pertanyaanya adalah apakah diperbolehkan multivalue? jika kita melihat dari normalisasi maka tidak boleh ada attribute yang bersifat multivalue, tapi terlepas dari itu apakah bisa? saya bisa menjawab dengan BISA. sangat dimungkinan dalam database, apa kekurangan jika multivalue? kekurangan jika multivalue adalah kita harus membuat size dari attribute lebih besar dengan asumsi beberapa data bisa masuk. misalkan warna mobil, jika single value kita bisa membuat size attribute warna dengan melihat list warna dengan character paling panjang. tetapi jika attribute multivalue, kita harus membuat size attribute 3 kali atau 4 kali lebih lebar menantisipasi terdapat multi nilai.

Stored versus Derived Attributes. Beberapa attribute ada yang mempunyai hubungan seperti umur dan tanggal lahir. attribute-attribute tersebut mempunyai hubungan, umur bisa dilihat dari tanggal lahir. jadi attribute umur adalah attribute derived (attribute turunan) ditirunkan dari attribute tanggal lahir dimana disebut attribute stored. pada beberapa kasus attribute derived bisa diturunkan dari entitas yang berhubungan atau diluar attribute entitas tersebut. contohnya adalah total pekerja pada attribute employ, bisa berasalah dari attribute employ.

Null Attribute, nule attribute berarti attribute itu boleh tidak diberi nilai atau kosong. ada beberapa kasus yang attribute itu tidak harus diberi nilai, contohnya nomer appartment. jika pegawai tidak mempunyai appartment maka nomer appartment tidak bisa diisini.

Complex Attribute, attribute ini terdiri dari gabungan dari multivalue attribute dan composite attribute. contoh pada dunia nyata adalah ketika kita mendata pegawai dengan lebih dari satu alamat. satu alamat memuat banyak nilai.

Studi Kasus Pembentukan Desain Database (Navathe & Elmasri)

Pada Artikel ini akan memberi contoh pembentukan sistem database COMPANY, akan dibahas langkah demi langkah pembuatan CDM dari proses requirment. database COMPANY akan mencatat pegawai, depaterment, dan projek yang dimiliki oleh COMPANY. Kita asumsikan proses pemetaan kebutuhan telah dilaksanakan dan menghasillkan poin-poin sebagai berikut :

  • perusahaan terorganisasi ke departerment-depaterment. setiap depaterment memiliki nama yang unique, nomer unik dan pegawai khusus yang mengepalai departerment tersebut. akan dicatat kapan pegawai tersebut mulai menjadi kepala depaterment. sebuah depaterment bisa mempunyai beberapa lokasi berbeda.
  • setiap depaterment mengkontrol jumlah dari projek yang didapatkan, setiap projek akan mempunyai nomer, nama yang unik dan single location.
  • menyimpan setiap data pegawai : nama, nomer ktp, alamat, salary, sex, dan tanggal lahir. setiap pegawai akan ditempatkan di satu departerment, tetapi mungkin bekerja diberapa project yang mana tidak harus dideparterment yang sama. akan harus dicatat berapa jam lama bekerja dalam seminggu yang ditempuh pegawai untuk satu project. dan juga dicatat supervisor yang ditunjuk untuk membawahi pegawai-pegawai yang dimana dia juga termasuk pegwai.
  • dan perusahaan ingin mencatat hubungan antar pegawai untuk asuransi pegawai. yang akan dicatat adalah nama depan, sex, tanggal lahir dan relasi terhapad pegawai lain.

selanjutnya akan dibahas step by step proses pembuatan desain database dalam post yang selanjutnya, guna memperdalam materi.

DATA MODELING USING ENTITY RELATIONSHIP MODEL

Entitity Relationship Model adalah sebuah pemodelan data yang paling populer digunakan, umunya disebut juga sebagai high-level konseptual pemodelan data. Dikatakan high-level karena menggunakan konsep seperti dunia nyata. Level pada model ini hanya bersifat konsep, bukan apa yang diimplementasikan dalam DBMS.

Langkah – Langkah pembuatan Database dengan ER

Gambar diatas adalah proses sederhana dari proses pembentukan desain database. Langkah pertama adalah requirements collection and analysis, memetakan kebutuhan dan analisa. pada proses ini pembuat database harus meninjau dengan teliti prespective penguna database untuk memahami apa yang diinginkan dan dokumen kebutuhan-kebutuhan data. Hasil dari proses ini biasa disebut sebagai user requirment. Proses user requirment haruslah secara detail dan jika dimungkinkan mendapatkan tabel-tabel yang lengkap. akan sangat berguna sekali jika kita menghasilkan functional requirment, kebutuhan-kebutuhan fungsionalitas dalam sistem yang akan dibangun.

Setelah requirment kita dapatkan dan kita analisis, langkah selanjutnya adalah membuat schema database high-level atau langkah ini akan menghasilkan conceptual design (Conceptual Design Model CDM). Setelah proses pembentukan conceptual design, maka kita perlu melakukan analisa terhadap fungsionalitas program yang akan dibuat. Jika ada ketidak cocokan diantara keduanya maka perlu dirubah lagi desain CDM.

Setelah proses-proses diatas dilewati maka proses selanjutnya adalah merubah bentuk conseptual menjadi implementasi, implementasi dari consep disebut dengan phy

DATABASE

Pengantar Basisdata (Elmasri and Navathe)

Basis Data dan teknologi basis data mempunyai pengaruh besar terhadap perkembangan penggunaan komputer. Sangat wajar jika kita mengatakan bahwa basis data mempunyai peranan penting pada hampir seluruh area bidang komputer yang digunakan, termasuk bisnis, teknik, pengobatan, penginapan, pendidikan dan lain-lain.

basis data adalah koleksi dari data. data sendiri mempunyai pengertian fakta yang dicatat dan mempunyai makna yang jelas. sebagai contoh : nama, nomer telephone, dan alamat dari seseorang yang kita ketahui. kita simpan data-data tersebut di notebook atau di file, kita kumpulkan data-data dari banyak teman-teman sekelas atau satu sekolah. koleksi dari data-data yang berkorelasi ini disebut sebagai database.

Database Management System (DBMS) adalah sebuah perangkat lunak yang berfungsi untuk membentuk dan mengatur database. Oleh karena itu DBMS adalah sebuah sistem software yang diperuntukan atau menyediakan fasilitas proses: defining, custructing, dan manipulating database untuk berbagai keperluan. defining database adalah pembuatan atau pendefinisian dari database. defining meliputi proses menentukan tipe data, strukture dan constrains untuk data yang akan disimpan di database. Constructing database adalah proses memasukkan data itu sendiri pada database. Manipulating database meliputi proses pemangilan data, update data dan juga pembuatan laporan dari data.