Minggu, 28 Agustus 2022

Basis Data dalam pandangan Islam

Tidak ada yang sia-sia ketika mempelajari suatu ilmu. Misalnya salah satu bahasan dalam bidang IT ini yaitu basis data. Jika dalam psikotes ada tes untuk mengenali pola. Maka latihan untuk mempelajari berbagai kasus dalam suatu sistem paling cocok adalah dengan latihan mempelajari basis data. Kadang sebelum melakukan terlihat ruwetnya dan kurang paham manfaatnya maka jadi malas mendalami. Jadi menurut saya motivasi terbaik adalah memahami fungsi dari mata pelajaran ini. Fungsinya kalau kita jadi orang IT, bahkan fungsinya jika kita tidak jadi orang IT. Atau bahkan mungkin fungsinya jika kita hanya jadi warga negara yang baik di negeri ini. Sering berlatih basis data mungkin membuat orang lebih peka terhadap masalah sistem. Lebih mampu menghormati jika ada konflik dalam suatu sistem. Jadi mungkin kalau ingin membentuk SDM yang baik hati mungkin dari jalur IT. Mungkin ini hanya bercanda.

Motivasi dalam Al-Qur'an:

QS. Az-Zariyat tentang pentingnya membagi-bagi urusan. Untuk bisa membagi-bagi urusan harus paham sistem. Mungkin salah satu latihannya dengan mempelajari database.

QS. Al-Isra'  tentang pembawaan manusia yang bermacam-macam. Biasanya pendidikan itu bisa mengakar dari pembiasaan.

QS. Al-Anfaal bahwa ada konflik & penanggulangannya. Untuk melatihnya mungkin dengan mempelajari sistem renik seperti basis data.

Notes: komentar ini perlu dikaji ulang dengan ustadz/ustadzah yang kompeten.

To the point, bagaimana belajar basis data yang enak diterapkan, mungkin urutan yang cocok adalah sebagai berikut:

1. Mempelajari Sunatullah dalam bentuk pattern/pola sistem

2. Mempelajari sistem tertentu

3. Mempelajari cara desain database

4. Mempelajari cara membuat database

Mungkin begitu, coba ditanyakan ke pengajar basis data terdekat. Untuk mempelajari Sunatullah dimana kita bisa mempelajari pola/pattern sistem, bisa dipelajari di Al-Qur'an. Kalau tidak bisa bahasa arab dengan terjemahan. Dengan terjemahan Depag yang beredar di pasaran rentan salah. Mungkin banyak kasus di dunia ini kok dulu saya sering kurang paham terjemahan dan lebih nyaman ke ulama yang punya tafsir lain beserta makna bahasa yang berbeda, tahu runutan penjelasan pelengkapnya seperti asbabun nuzulnya(penyebab turun) dan hubungan dengan sistem alam rimba raya. Bisa dicoba daftar ngaji ke kajian tafsir Al-Qur'an yang terpercaya. Soalnya saya nemu beberapa kata yang multi tafsir. Allahualam.

Senin, 10 Januari 2022

Tes Testimoni

Sebenarnya artikel protokol jaringan ini untuk tes case hasil penyembuhan skizofrenia menggunakan metode yang ada di Al-Qur'an. Saya menemukan cara diet detoks untuk menyembuhkan gangguan skizofrenia setelah mempelajari QS. Abasa ayat 24: "maka hendaklah manusia itu memperhatikan makanannya". Saya merasakan perbaikan konsentrasi drastis ketika shalat setelah berhenti mengkonsumsi minyak goreng kemasan. Ternyata cara ini tidak hanya bisa digunakan untuk penyembuhan penyakit fisik seperti testimoni Dewi Hughes, tapi juga skizofrenia. Meskipun belum seratus persen. Ini tanpa obat psikiatri. Alhamdulillah.

Sudah sekitar 1 tahun saya melakukan diet detoks. Saya sampai pending tulisan yang lain untuk menyelesaikan tulisan ini. Sekalian untuk bahan pembelajaran Komputer Jaringan Dasar sebagai salah satu tupoksi saya. Protokol jaringan adalah materi yang sengaja terlewat dalam modul Komputer Jaringan Dasar yang saya susun tahun 2019. Karena materi ini kurang implementatif untuk kelas SMK yang lebih cocok dengan pelajaran teknis. Tetapi berhubung KBM daring membuat murid malas belajar, maka sepertinya mereka butuh stimulus yang memadai. Setidaknya materi protokol jaringan ini kalau dibahas mirip mind map untuk bidang RPL.

Skizofrenia saya belum sembuh benar. Muncul was-was dengan istilah PKI. Begini saja. Saya ulang deklarasi ketika SMA: Saya Tauhid! Ganyang PKI!

Insya Allah tak akan bahagia orang yang menyembah setan.

Rabu, 05 Januari 2022

Protokol Jaringan dari sudut pandang RPL

Saya akan mencoba menjelaskan cara lain untuk memandang konsep protokol jaringan dengan tambahan untuk dianalisis lebih lanjut kebenarannya oleh pembaca. Bahan yang ada dalam artikel ini diambil dari sumber lain di internet, misalnya wikipedia. Saya tertarik dengan konsep discovery learning yang memotivasi guru untuk memberi stimulus. Sebenarnya dalam kegiatan belajar mengajar, tugas guru hanya mengarahkan siswa bagaimana cara mempelajari suatu topik. Dengan menunjukkan rute apa saja yang harus dilampaui/dipelajari. Ini namanya protokol pembelajaran. Toh kalau ingin suatu ilmu dengan detail bisa didapat dari buku atau internet.

Protokol jaringan adalah standarisasi sistem yang mengatur komunikasi hubungan dan perpindahan data yang ada pada sebuah komputer dan jaringan. Sistem ini menentukan aturan-aturan yang perlu ditaati oleh perangkat pengirim dan juga penerima agar hubungan jaringan berlangsung dengan baik. Seperti apakah bagian-bagian sistem protokol jaringan? Jika komputer disusun dari hardware & software, maka sistem protokol ini mestinya juga terdiri dari hardware & software. 

Contoh kasus yang lebih detail adalah membuka web, web yang dibuka dalam sebuah browser, maka datanya akan melewati beberapa protokol. Semua protokol harus dilalui agar data web bisa keluar dan diterima komputer lain pada jaringan yang sama atau berbeda. Jadi protokol ini meliputi jalur sistem jaringan mengeksekusi komunikasi data melalui jaringan yang dibutuhkan. Protokol ini bisa berupa rangkaian file atau program.

Untuk bisa menjalankan sebuah web, maka web server yang berupa file program harus dijalankan. Web server ini mempunyai cara supaya file web bisa dirun untuk ditampilkan di web browser. Contoh web server adalah apache. Apache ini bisa digunakan untuk menjalankan file php. Jika menggunkan paket installer XAMPP, maka file php diletakkan dalam folder htdocs. Kemudian web server harus dinyalakan melalui fasilitas services. Tetapi jika menggunakan XAMPP, maka ada aplikasi sendiri yang disediakan untuk start web server apache, database server mysql, dll. Lalu untuk menjalankan file php, maka bisa dibuka web browser kemudian ditulis url web server, misal localhost/namafile.php. Ini adalah contoh jika filenya bernama namafile.php.

Jika kita berusaha memahami konsep protokol jaringan, biasanya menemukan kesulitan dalam istilah-istilah yang digunakan untuk pengklasifikasian. Contohnya adalah pada artikel tentang OSI model di wikipedia. https://id.wikipedia.org/wiki/Model_OSI

Jadi model OSI ini menggambarkan versi lengkap dari protokol jaringan di komputer. Jika kita membuat protokol baru untuk fungsi yang lebih spesifik, maka biasanya diadopsi dari bagian-bagian model OSI sesuai kebutuhan. Seperti misalnya TCP/IP yang digunakan untuk mengatur pengalamatan jaringan di windows. Jika model OSI ada 7 layer, maka dalam protokol TCP/IP ada 4 layer yang dipakai.

Pada pembahasan layer, bisa dipahami fungsi dari layer ini. Untuk teknologi (aplikasi/sistem) yang digunakan untuk merealisasikannya bisa dilihat dalam daftar berikutnya di link wikipedia. Dengan berusaha memahami jenis teknologi yang termasuk dalam layer-layer tersebut, insya Allah kita bisa semakin memahami alasan penggolongan protokol tersebut menjadi layer-layer.

Jadi setiap layer OSI menghasilkan suatu bentuk output data yang perlu dikelola oleh layer lainnya sesuai kebutuhan. Data yang dikirim dari port jaringan itu ada formatnya. Kebutuhan tiap aplikasi bisa berbeda-beda. Salah satu contoh yang bisa dipakai adalah autentifikasi dokumen penting milik suatu perusahaan. Misalnya ada aplikasi yang mengecek apakah sebuah file dokumen dikirim oleh PT.ABC adalah benar milik PT. ABC. Maka file ini dienkripsi dengan menggunakan PKI (Public Key Infrastructure) PT. ABC. Maka data yang dikirim via jaringan adalah file yang sudah terenkripsi. PKI ini banyak dipakai untuk autentifikasi data. PKI telah diimplementasikan dengan berbagai aplikasi seperti S/MIME, HTTPS, VPN, dll. Maka antara mengirim file PT.ABC dengan mengirim data chat biasa membutuhkan jumlah layer yang berbeda. Karena file PT. ABC membutuhkan fungsi enkripsi yang ada di presentasion layer.

The OSI Layer Model

OSI mempunyai 7 layer yaitu:
1. Application Layer
Layer OSI ini paling berdekatan dengan end user. Layer ini terdiri sekumpulan program yang bertanggung jawab atas pertukaran informasi antara program komputer seperti program email, service, service, server printer atau aplikasi chat. Layer ini adalah sekumpulan program yang berhubungan dengan aplikasi yang bisa diakses di monitor. Misal aplikasi chat membutuhkan file apa saja, maka standarisasinya ada di bagian Application Layer.
Contoh teknologi yang terkait dalam layer aplikasi: FTAMX.400X.500DAPROSERTSEACSE, CMIP

2. Presentasion Layer
Berfungsi untuk menterjemahkan data yang hendak ditransmisikan oleh aplikasi ke dalam format yang dapat ditransmisikan melalui jaringan sesuai kebutuhan, misal: Melakukan enkripsi data atau pesan, Melakukan proses kompresi dan dekompresi, Melakukan proses pemformatan pada bentuk – bentuk grafis, Mentranslasi konten yang ada, Menyajikan data, Menentukan tipe data yang ada. Protokol yang berada dalam tingkat ini adalah perangkat lunak redirektor (redirector software), seperti layanan Workstation (dalam Windows NT) dan juga Network shell (semacam Virtual Network Computing (VNC) atau Remote Desktop Protocol (RDP)), VTP (Virtual Terminal Protocol), SMTP(Simple Mail Transfer Protocol), SNMP(simple Network Management Protocol), RPC (Remote Prosedure Cell), ISO/IEC 8823, X.226, ISO/IEC 9576-1, X.236. Referensi: https://dosenit.com/jaringan-komputer/teknologi-jaringan/fungsi-presentation-layer-jaringan-komputer

3. Session Layer
Apabila pada beberapa lapisan OSI layer sebelumnya, erat kaitannya dengan perangkat keras tertentu, seperti data link layer yang berkaitan degnan perangkat keras bridge dan switch, serta network layer yang berkaitan erat kerjanya dengan router, maka lapisan session layer pada OSI model ini tidak berkaitan dengan perangkat keras komputer, melainkan dengan perangkat lunak.
Kebanyakan lapisan session layer ini bekerja pada perangkat lunak yang memiliki fungsi pengelolaan data, salah satunya adalah SQL. Dengan menggunakan perangkat lunak SQL ini, maka session layer dapat bekerja dalam membangun komunikasi dengan jaringan, sehingga terbangunlah sebuah koneksi jaringan tertentu. selain itu, sistem operasi komputer juga memiliki peranan yang cukup penting dalam proses yang terjadi di dalam lapisan session layer ini.

Lapisan session layer ini juga memiliki protocol – protocol tertentu dalam bekerja. Berikut ini adalah beberapa protocol – protocol yang membantu dan mengatur fungsi dari lapisan session layer : PPTP (Point-to-Point Tunneling Protocol), RPC (Remote Procedure Call Protocol), RTCP (Real-time Transport Control Protocol).

4. Transport Layer
Berfungsi untuk memecah data ke dalam paket-paket data serta memberikan nomor urut ke paket-paket tersebut sehingga dapat disusun kembali pada sisi tujuan setelah diterima. Selain itu, pada tingkat ini juga membuat sebuah tanda bahwa paket diterima dengan sukses (acknowledgement), dan mentransmisikan ulang terhadap paket-paket yang hilang di tengah jalan.
Contoh teknologi yang terkait dalam layer transport: ISO/IEC 8073, TP0, TP1, TP2, TP3, TP4 (X.224), ISO/IEC 8602, X.234

5. Network Layer
Berfungsi untuk mendefinisikan alamat-alamat IP, membuat header untuk paket-paket, dan kemudian melakukan routing melalui internetworking dengan menggunakan router dan switch layer-3.
Contoh teknologi yang terkait dalam layer network: ISO/IEC 8208, X.25 (Packet-LaISO/IEC 8878, X.223, ISO/IEC 8473-1, CLNP X.233

6. Data Link Layer
Berfungsi untuk menentukan bagaimana bit-bit data dikelompokkan menjadi format yang disebut sebagai frame. Selain itu, pada tingkat ini terjadi koreksi kesalahan, flow control, pengalamatan perangkat keras (seperti halnya Media Access Control Address (MAC Address)), dan menentukan bagaimana perangkat-perangkat jaringan seperti hubbridgerepeater, dan switch layer-2 beroperasi. Spesifikasi IEEE 802 membagi tingkatan ini menjadi dua tingkatan yang lebih kecil, yaitu lapisan Logical Link Control (LLC) dan lapisan Media Access Control (MAC).
Contoh teknologi yang terkait dalam layer data link adalah ISO/IEC 7666, X.25 (LAPB), Token Bus, X.222, ISO/IEC 8802-2 LLC Type 1 and 2

7. Physical Layer
Berfungsi untuk mendefinisikan media transmisi jaringan, metode pensinyalan, sinkronisasi bit, arsitektur jaringan (seperti halnya Ethernet atau Token Ring), topologi jaringan dan pengkabelan. Selain itu, tingkat ini juga mendefinisikan bagaimana Network Interface Card (NIC) dapat berinteraksi dengan media kabel atau radio.
Contoh teknologi yang terkait dalam layer physical: X.25 (X.21bis, EIA/TIA-232, EIA/TIA-449, EIA-530, G.703) 
 
Protokol TCP/IP

Untuk perbandingan antara model basic yang dijabarkan dengan rinci, kita ambil salah satu protokol yang paling sering dibahas. Mungkin karena paling lengkap dan paling banyak meliputi model OSI. Penjelasan lebih lengkap protokol TCP/IP bisa juga dibaca dari artikel berikut https://gig.id/stories/tech/apa-itu-tcp-ip

TCP/IP adalah singkatan dari Transmission Control Protocol/Internet Protocol. Merupakan rangkaian protokol komunikasi yang digunakan untuk menghubungkan perangkat jaringan di internet. TCP/IP juga digunakan sebagai protokol komunikasi dalam jaringan komputer pribadi.

Internet Protocol (IP) adalah sistem alamat internet dan memiliki fungsi untuk mengirimkan paket informasi dari perangkat sumber ke perangkat target. IP adalah cara utama di mana koneksi jaringan dibuat. IP tidak menangani pemesanan paket atau pemeriksaan kesalahan. Untuk menjalankan fungsi tersebut, akan diperlukan protokol lain. Biasanya TCP.

TCP/IP ini seperti kita mengirim pesan yang ditulis dan dibagi menjadi banyak bagian. Setiap bagian kemudian dikirim dan melalui perjalanan melalui rute berbeda, beberapa di antaranya bisa lebih lama dari yang lain. Ketika setiap potongan tiba setelah melintasi jalur yang berbeda, bisa saja bagian tersebut rusak. Internet Protocol memastikan bagian ini bisa tiba di alamat tujuannya. 

Protokol TCP dapat menyatukan bagian-bagian itu dalam urutan yang benar, meminta bagian yang hilang untuk dikirim ulang, dan memberi tahu pengirim bahwa pesan telah diterima. TCP akan memelihara koneksi dengan pengirim dari sebelum bagian pertama dikirim hingga setelah bagian terakhir dikirim. Memastikan integritas dari pesan ada selama proses berlangsung.

Banyak protokol tingkat tinggi yang mengirimkan data menggunakan Protokol TCP. Contohnya termasuk metode berbagi peer-to-peer seperti File Transfer Protocol (FTP), Secure Shell (SSH), dan Telnet. Hal ini juga digunakan untuk mengirim dan menerima email melalui:

  • Internet Message Access Protocol (IMAP)
  • Post Office Protocol (POP)
  • Simple Mail Transfer Protocol (SMTP)
  • Untuk akses web akan melalui Hypertext Transfer Protocol (HTTP).

Layer yang dipakai dalam Protokol TCP/IP:

1. Lapisan Aplikasi

Menyediakan aplikasi dengan pertukaran data standar. Protokolnya termasuk HTTP, FTP, Post Office Protocol 3, Simple Mail Transfer Protocol dan Simple Network Management Protocol. 

Contoh teknologi yang terkait dalam layer aplikasi: NNTP, SIP, SSI, DNS, FTP, Gopher, HTTP, NFS, NTP, DHCP, SMPP, SMTP, SNMP, Telnet, RIP, BGP

 2. Lapisan Transport

Memelihara komunikasi ujung ke ujung di seluruh jaringan. TCP menangani komunikasi antara host dan menyediakan kontrol aliran, multiplexing, dan handling. Protokol transport termasuk TCP dan User Datagram Protocol, yang terkadang digunakan sebagai pengganti TCP untuk tujuan khusus.

Contoh teknologi yang terkait dalam layer transport:TCP, UDP, SCTP, DCCP

3. Lapisan Internet/Jaringan

Bisa disebut lapisan internet, menangani paket dan menghubungkan jaringan independen untuk mengangkut paket melintasi jaringan. Protokol lapisan jaringan adalah IP dan Internet Control Message Protocol, yang digunakan untuk pelaporan kesalahan.

Contoh teknologi yang terkait dalam layer transport: IP, IPsec, ICMP, IGMP, OSPF

4. Lapisan Fisik

Dikenal sebagai lapisan interface jaringan atau lapisan data link, terdiri dari protokol yang beroperasi hanya pada komponen jaringan yang menghubungkan node atau host dalam jaringan. Protokol di lapisan paling bawah ini termasuk Ethernet untuk jaringan area lokal dan Address Resolution Protocol.

 Contoh teknologi yang terkait dalam layer fisik:  PPP, SBTV SLIP, PPTP?

Kalau mengeksplorasi model protokol jaringan di atas, bisa terbayang bagaimana pembagian tugas para geek di dunia pemrograman jaringan. Tampaknya ruwet ya? Ini baru ilmu Allah dalam seluk beluk jaringan. Untuk pemanasan, bisa mengeksplorasi macam-macam teknologi jaringan misal DNS (Domain Name System), POP3 (Post Office Protocol version 3), IMAP (Internet Message Access Protocol), HTTP (Hypertext Transfer Protocol), FTP ( File Transfer Protocol), SSH (Secure Shell), UDP (User Datagram Protokol), Internet Control Message Protocol (ICMP). Bisa diperkirakan, teknologi itu menggunakan layer apa saja.

Kalau ini hanya review dari guru IT yang menelaah materi protokol jaringan untuk ditambahkan dalam modul pembelajaran saja. Belajar cara belajar. Semoga bermanfaat. Happy learning.

Rabu, 19 September 2018

Sequence Diagram dalam Pemodelan Perangkat Lunak

Pada tahap desain software, seorang software designer merancang struktur software. Kerangka program dibuat disini. Maka dibuatlah diagram-diagram yang menggambarkan kerangka program. Salah satunya adalah sequence diagram yang merupakan bagian penting dari UML. Berikut adalah contoh sederhana penerapan sequence diagram untuk sebuah aplikasi yang sangat sederhana menggunakan java netbeans. Aplikasi terdiri dari sebuah tampilan frame yang memiliki dua inputan dan satu tombol. Jika tombol ini diklik, maka ditampilkan hasil penambahan kedua inputan. Dengan demikian, berikut sequence diagramnya.


Tugas programer adalah merealisasikan desain yang digambarkan pada sequence diagram. Jika dipetakan ke dalam kode program, maka dari sequence diagram di atas dibuat dua kelas yaitu NewJFrame dan ctrlOperasi. Kelas NewJFrame memiliki method jButton1MouseClicked. Sedangkan ctrlOperasi memiliki method Tambah. User memasukkan bil1 dan bil2. Kemudian ada interaksi lagi antara user dengan view NewJFrame yang menyebabkan pemanggilan method jButton1MouseClicked. Setelah itu dipanggil method ctrlOperasi.Tambah(a,b).

Begitulah cara membuat dan memetakan sequence diagram. Seorang programmer harus punya pengetahuan tentang ini agar dia bisa merealisasikan hasil desain seorang software designer. Software designer berbeda dengan graphic designer. Software designer merancang software, membagi-baginya ke dalam modul-modul dan membagi-bagikan kepada tim implementator yang terdiri dari para programmer. Beginilah sebuah team work software development yang ideal. Happy software designing!

Minggu, 26 Agustus 2018

Mapping dari CDM ke PDM

Langkah langkah yang dilakukan untuk mapping/memetakan ER diagram (CDM) ke tabel relasional (PDM) yaitu sebagai berikut:

1. Untuk setiap entitas kuat EK, buat tabel baru EK yang menyertakan seluruh simple atribut dan simple atribut dari composite atribut yang ada. Pilih salah satu atribut kunci sebagai primary key.

2. Untuk setiap entitas lemah EH, buat tabel baru EH dengan mengikutsertakan seluruh simple atribut. Tambahkan primary key dari entitas kuatnya (owner entity type) yang akan digunakan sebagai primary key bersama-sama partial key dari entitas lemah.

3. Untuk setiap multivalued atribut R, buatlah tabel baru R yang menyertakan atribut dari multivalue tersebut. Tambahkan primary key dari relasi yang memiliki multivalue tersebut. Kedua atribut tersebut membentuk primary key dari tabel R.

4. Untuk setiap relasi binary 1:1, tambahkan primary key dari sisi yang satu pada tabel yang berelasi dengannya. Begitu juga sebaliknya.

5. Untuk setiap relasi binary 1:N yang tidak melibatkan entitas lemah, tentukan mana sisi yang lebih “berat” (sisi N). Tambahkan primary key dari sisi yang “ringan” (berkardinalitas 1) ke tabel sisi yang lebih “berat” (berkardinalitas N). Maka primary key tersebut menjadi foreign key yang bukan primary di tabel berkardinalitas N.

6. Untuk setiap relasi binary M:N, buatlah tabel baru R dengan atribut seluruh simple atribut yang terdapat pada relasi biner tersebut. Tambahkan primary key yang terdapat pada kedua sisi ke tabel R. Kedua foreign key yang didapat dari kedua sisi tersebut digabung menjadi satu membentuk primary key dari tabel R.

7. Untuk setiap relasi lebih dari dua entitas, n-nary (ternary), meliputi dua alternatif yaitu:
   a. Buatlah tabel R yang menyertakan seluruh primary key dari entitas yang ikut serta. Sejumlah n foreign key tersebut akan membentuk primary key untuk tabel R. Tambahkan seluruh simple atribut yang terdapat pada relasi n-ary tersebut.
   b. Mengubah bentuk relasi ternary menjadi entitas lemah, kemudian memperbaiki relasi yang terjadi antara entitas lemah tersebut dengan entitas-entitas kuatnya dan melakukan algoritma mapping sesuai dengan aturan mapping.
8. Inheritance mewariskan primary key nya ke entitas turunannya. Bisa juga diset mewariskan semua atributnya pada entitas turunannya.

Rabu, 22 Agustus 2018

Main Kriptografi dengan OpenSSL

Ketika kita menggunakan  php, untuk keperluan enkripsi selain dengan mcrypt, kita juga bisa menggunakan openssl. Apalagi mcrypt sudah tidak disertakan pada php 7.2. Openssl bisa jadi pilihan tepat untuk kebutuhan kriptografi. Untuk bisa menggunakan library openssl, kita harus mengaktifkannya dengan mengedit file php/php.ini. Dan menghilangkan semicolon(;) di depan:
extension=php_openssl.dll
Setelah itu restart web server (apache)nya. Jika library openssl sudah diaktifkan, kita bisa mulai bermain kriptografi dengan menggunakan fungsi-fungsinya. Fungsi yang disediakan untuk enkripsi adalah:

Sabtu, 18 Agustus 2018

Main Kriptografi dengan Mcrypt

Ketika kita menggunakan php, untuk keperluan enkripsi disediakan library mcrypt. Untuk bisa menggunakan library ini, kita harus mengubah setting di file php.ini Hilangkan semicolon (;) yang ada di depan baris yang ada mcryptnya yaitu:

mcrypt.algorithms_dir=/usr/local/lib/libmcrypt.
mcrypt.modes_dir=/usr/local/lib/libmcrypt

Setelah itu restart web server (apache)nya. Jika library mcrypt sudah diaktifkan, kita bisa mulai bermain kriptografi dengan menggunakan fungsi-fungsinya. Fungsi yang disediakan untuk enkripsi adalah:

chipertext = mcrypt_encrypt(ALGORITMA, key, plaintext, MODE, iv)

Sedangkan untuk mendapatkan teks asli disediakan fungsi:

plaintext = mcrypt_decrypt(ALGORITMA, key, chipertext, MODE, iv)

Kamis, 16 Agustus 2018

Antara DFD dan UML sebagai Alat Pemodelan Perangkat Lunak

DFD (Data Flow Diagram) adalah diagram yang populer sebelum UML dikenal. Diagram ini menggambarkan aliran data dari proses-proses yang terjadi pada sebuah sistem/aplikasi. DFD sendiri memiliki 2 macam simbol, yaitu gane / sarson dan yourdon / de marco. Pada power designer 15 DFD disediakan dalam simbol Gane / Sarson. Ini yang membuat saya berfikir DFD yang saya kenal dulu tidak digunakan lagi. Ternyata ada 2 versi. DFD masih digunakan untuk menjelaskan sistem yang berbasis struktur. Sedangkan UML untuk sistem yang dibangun secara obyek oriented. Jika sudah mengenal, UML memang terasa lebih mengasyikkan. Karena beraneka ragamnya diagram akan membuat informasi yang disajikan sangat detail sehingga mendesain software dengan menggunakannya bisa membuat kita serasa mengkoding di atas kertas. Toh mayoritas aplikasi saat ini dikembangkan secara obyek oriented. Jadi tak ada keraguan untuk lebih prioritas mempelajari UML.

Minggu, 12 Agustus 2018

Sekilas tentang Mandatory dalam Database

Pada power designer, ketika membuat atribut di CDM, kadang kita mendapati pilihan yang perlu dicentang: M, P, D. M untuk mandatory, P untuk primary dan D untuk displayed. Jika centang P, maka otomatis M akan tercentang. Apa sebenarnya mandatory itu?

Mandatory menjelaskan bahwa suatu atribut atau kolom harus diisi. Jika mengisi record baru, kolom ini tidak boleh dikosongi. Karenanya kalau suatu kolom diset sebagai primary key, suatu kolom bersifat mandatory atau dengan kata lain wajib diisi.

Sabtu, 11 Agustus 2018

MVC dalam OOP

MVC (Model View Controller) adalah model pemrograman yang banyak dipakai. Kenapa ada penyeragaman model seperti ini? Ini memudahkan komunikasi antar programmer karena class yang dibuat dibedakan menjadi 3 kelompok yaitu model, view dan controller. Class model adalah class yang digunakan untuk memanipulasi database. Class view adalah class yang digunakan untuk mengatur tampilan. Controller adalah class yang berisi algoritma untuk memproses.

Misal ada tabel siswa, maka dibuat class mSiswa untuk memanipulasi tabel siswa. Dimana kolom dalam tabel siswa menjadi atributnya. Ditambah operasi manipulasi tabel siswa yang dibutuhkan sistem menjadi methodnya.

MVC juga digunakan dalam framework yang disebarkan bebas di internet. Seperti framework PHP codeigniter. CI menyediakan class model dan controller yang bisa diturunkan menjadi class model dan controller kita. Dengan demikian kita bisa langsung menggunakan atribut dan method yang disediakan class Model dan Controller. Dan kemudian kita melakukan penambahan atau modifikasi di class kita. Jika menggunakan fitur yang disediakan CI, maka kita harus mempelajari method apa saja yang disediakan CI beserta bagaimana cara menggunakannya. Kebanyakan programmer menganggap cara ini lebih cepat daripada membuat class(beserta atribut dan methodnya) sendiri dari awal.

Pada tool pemodelan rational rose, penggambaran MVC dalam sequence diagram dicover dengan tiga simbol yang berbeda. Interface mewakili view, boundary mewakili model dan controller. Namun pada tool powerdesigner, sequence diagram hanya punya 1 simbol untuk class.

Kamis, 09 Agustus 2018

Inheritance dalam Desain Database dengan CDM

Ketika mendesain database, kita terkadang menemukan kasus generalisasi. Misal pada database perpustakaan, dimana jenis koleksi yang dipinjamkan terdiri dari bermacam-macam jenis seperti buku, majalah, paper dan CD. Tiap jenis koleksi memiliki beberapa atribut yang sama. Namun tiap jenis koleksi ini juga memiliki beberapa atribut yang beda. Contoh CDM yang menggunakan inheritance adalah sebagai berikut.



CDM di atas, jika digenerate menjadi PDM akan menghasilkan diagram sebagai berikut:



Primary key entitas KOLEKSI, menjadi kolom foreign key pada tabel turunannya. Inheritance ini  jugs bisa diset untuk mewariskan semua atributnya menjadi kolom tabel anak. Apakah ada kasus generalisasi lain? Banyak. Misal sparepart di bengkel, tipe kendaraan di dealer.

Senin, 06 Agustus 2018

Relasi Ternary dalam CDM Database

Relasi ternary adalah relasi yang melibatkan tiga entitas. Bagaimanakah merealisasikannya dalam Conceptual Data Model(CDM)? Untuk menggambar relasi ternary kita bisa menggunakan association. Bahkan jika menggunakan association, relasi ini bisa diberi atribut. Karena itu jika menemukan relasi unary atau binary beratribut, kita juga bisa menggunakan association.

Berikut contoh penggunaan association untuk menggambarkan relasi ternary pelanggan yang menggunakan layanan beserta petugasnya. Dibuat dengan power designer 15.


Jika dikonversi ke dalam PDM (Physical Data Model), relasi ini akan menjadi tabel yang memiliki tiga foreign key yang sekaligus berfungsi sebagai primary key. Berdasarkan contoh di atas, maka pada PDM akan dibuat tabel PENGGUNAANLAYANAN yang memiliki fk dan pk IDLAYANAN, IDPELANGGAN DAN IDPETUGAS sehingga menunjukkan informasi pelanggan menggunakan layanan apa dan petugasnya siapa. Selain itu tabel ini berisi atribut TANGGAL dan JAM.

Bagaimana satu relasi yang menghubungkan lebih dari tiga entitas? Caranya sama, bisa menggunakan association.

Jumat, 03 Agustus 2018

Anggota Tim Proyek Perangkat Lunak

Dalam proyek pembuatan perangkat lunak, tim memiliki beberapa personil dengan tugas yang berbeda. Mereka adalah:

  1. Project Manager. Orang yang memimpin proyek.
  2. System Analyst. Tugasnya menganalisa proses bisnis sistem.
  3. Software Designer. Tugasnya memodelkan perancangan perangkat lunak. Dia membagi-bagi proyek menjadi beberapa modul yang kemudian dikerjakan programmer. Meskipun tugasnya memodelkan, tetapi dia harus paham kunci-kunci pemrograman.
  4. Programmer. Orang yang mengimplementasikan model rancangan perangkat lunak dengan programming.
  5. Graphic Designer. Orang yang mendesain tampilan antarmuka program.
  6. Technical Writer. Nama lainnya dokumentator. Orang yg mengatur tata bahasa dokumen2 perangkat lunak terutama panduan pemakaian.
  7. Tester. Tugasnya melakukan tes penggunaan software/program.

Kamis, 02 Agustus 2018

Usecase Diagram dalam UML

UML (Unified Model Language) adalah bahasa pemodelan yang telah disepakati bersama oleh developer di seluruh dunia untuk memodelkan perangkat lunak berorientasi objek. Jika bahasa pemodelan telah diseragamkan, para developer akan dengan mudah berkomunikasi dengan developer lain dengan menggunakan diagram-diagram yang ada dalam UML. Dalam jurusan RPL SMK, materi UML ini diberikan pada mata pelajaran Pemodelan Perangkat Lunak. Sebenarnya untuk benar-benar memahami materi ini, peserta didik harus sudah memahami cara memprogram secara objek oriented karena yang dipelajari adalah menotasikan dan mendiagramkan objek dan sirkulasi dalam program tersebut. Diagram yang biasanya dibahas pertama kali adalah usecase diagram. Diagram ini digunakan untuk menggambarkan proses bisnis suatu sistem secara global. Berikut contoh usecase diagram:
Objek berbentuk seperti orang adalah actor. Sedangkan objek berbentuk oval adalah usecase. Contoh diatas menunjukkan bagian usecase digram toko online. Berikut keterngan tentang simbol dalam usecase diagram:
  1. Actor : Sesuatu yang mengakses/melakukan aktivitas pada usecase. Bisa berupa orang, mesin atau objek pelaku lainnya.
  2. Usecase : objek yang menggambarkan fungsi sistem. Biasanya usecase dinamai dengan kalimat kerja. Sedangkan pelakunya adalah aktor yang direlasikan. Usecase yang satu bisa berelasi dependensi / ketergantungan dengan usecase seperti usecase pembelian dengan usecase login.

Setiap usecase nantinya akan dijelaskan lagi secara detail dengan beberapa diagram yaitu:
  1. Activity diagram
  2. Sequence diagram
  3. Statechart diagram

Rabu, 01 Agustus 2018

Antarmuka Perangkat Lunak

Dalam DPPL perlu ditampilkan gambaran antarmuka software yang dibuat. Tampilan apa saja yang perlu dibuat bisa dirunut dari activity diagram. Misalnya dalam activity diagram CRUD promo dapat dilihat ada antarmuka:
1. Halaman daftar promo
2. Form tambah promo
3. Form edit promo

Bentuk diagram antarmuka ini boleh dibuat sederhana jika memang antarmuka software belum dibuat. Konsep antarmuka bisa dibuat dengan aplikasi desain grafis seperti paint, inkscape atau corel draw. Contoh bentuk halaman daftar promo:

Tugas
Buat diagram antarmuka untuk satu activity diagrammu! Pilih salah satu activity diagram dan buat semua antarmuka yang diakses dalam activity diagram tersebut.

Activity Diagram dalam UML

Activity diagram digunakan untuk menggambarkan proses bisnis yang dikerjakan oleh suatu actor dalam sebuah usecase. Biasanya 1 usecase memiliki minimal satu activity diagram sebagai penjelasan. Bentuk activity diagram mirip flowchart karena memang diagram ini menggambarkan alur aktivitas dalam sebuah sistem.

Simbol-simbol dalam activity diagram:

sumber: https://www.codepolitan.com/mengenal-uml-contoh-uml-diagram-model-activity-diagram

Contoh penggunaan simbol-simbol di atas adalah sbb:

Kotak dengan nama owner merupakan swimlane yang menunjukkan aktor dengan nama owner. Jika dalam suatu usecase ada lebih dari satu aktor yang terlibat, maka dibentuk lebih dari satu kotak swimlane. Activity diagram ini menggambarkan case CRUD (Create Read Update Delete) promo produk. Fork bisa digunakan untuk menunjukkan aktivitas apa saja yang bisa dilakukan setelah aktivitas tertentu.

Tugas:
Buat activity diagram yang melibatkan lebih dari satu aktor, sehingga dalam diagram tersebut ada beberapa swimlane!

Fungsi SKPL dan DPPL dalam Pemodelan Perangkat Lunak

Dalam dunia rekayasa perangkat lunak, ketika mengerjakan proyek ada tahapan requirement dan design. Pada tahapan ini semua kebutuhan perangkat lunak diidentifikasi kemudian didokumentasikan dalam dokumen SKPL(Spesifikasi Kebutuhan Perangkat Lunak). Setelah itu pada tahap desain software dibuat desain sistemnya dan didokumentasikan dalam dokumen DPPL (Deskripsi Perancangan Perangkat Lunak). Berikut adalah fungsi dokumen SKPL dan DPPL:

1. Komunikasi antar anggota tim pengembang
Dalam suatu proyek yang dikerjakan beberapa anggota tim, misal beberapa programmer, kadang ada pergantian SDM. Misal ada programmer yang resign. Namun ada penggantinya. Dengan adanya SKPL dan DPPL, anggota tim baru bisa mempelajari sistem dengan mudah tanpa banyak tanya pada anggota tim lain. Dan dia bisa segera beradaptasi dengan mudah melanjutkan pekerjaan programmer yang dia gantikan. Sehingga pergantian SDM dalam proyek pengembangan perangkat lunak ini tidak mengalami hambatan yang signifikan.

2. Mengkomunikasikan sistem yang dikembangkan kepada orang awam seperti customer
Dengan deskripsi yang ada dalam 2 dokumen ini, seorang customer dapat memahami dengan detail rancangan tim pengembang. Sehingga ini memudahkan sinkronisasi keinginan customer dengan asumsi tim pengembang.

3. Konon pengembang yang melengkapi softwarenya dengan dokumentasi ini bisa disebut developer software yang mature. Ini wajar mengingat kendala karena pergantian SDM bisa diatasi dengan mudah sehingga proses pengerjaan bisa sesuai jadwal dan hasil sesuai harapan karena sudah direncanakan dengan sangat matang.

Itulah mengapa dikembangkan UML (Unified Model Language) yang telah disepakati bersama. Ada beberapa diagram yang melengkapi dokumentasi ini, misalnya usecase diagram, activity diagram, sequence diagram, statechart diagram dan class diagram. Sedangkan untuk data modeling kita gunakan conceptual data model dan physical data model. Dua diagram ini dirasa perlu ditambahkan dalam dppl. Seorang pengembang software wajib paham bagaimana menggunakan diagram-diagram ini dalam menggambarkan konsep sistem yang dikembangkan.

Oke, next kita bahas tiap diagram yang saya sebuatkan diatas. Materi ini dibahas dalam mata pelajaran pemodelan perangkat lunak.