Minggu, 13 Desember 2020

Aplikasi CRUD Sederhana Dengan CodeIgniter

CodeIgniter adalah sebuah web application network yang bersifat open source yang digunakan untuk membangun aplikasi php dinamis. CodeIgniter menggunakan konsep MVC(Model View Controller) dalam membangun sebuah aplikasi  web dinamis menggunakan PHP.

Pada kesempatan kali ini saya akan menunjukkan sebuah aplikasi pengelolaan data atau profil mahasiswa yang saya buat menggunakan salah satu framework PHP yaitu CodeIgniter 4. Pada blog kali ini saya hanya menampilkan fungsionalitas dari aplikasi yang saya buat. Anda dapat mengunduh source code pada link GitHub di akhir artikel.

Berikut adalah penjelasan tentang aplikasi pengelolaan data atau profil mahasiswa yang saya buat menggunakan CodeIgniter.

A. Dokumentasi Fungsionalitas Aplikasi


Saat pertama mengakses web, user diwajibkan login karena hanya akun yang sudah terdaftar menjadi admin yang dapat menggunakan aplikasi. Saya menggunakan sistem authentication dalam memprogam web ini. Jika belum memiliki akun, pengguna bisa mendaftar untuk mendapatkan akun admin. Fitur login ini sudah dilengkapi dengan validasi.


Gambar diatas ini merupakan tampilan registrasi dari web pengelolaan data atau profil mahasiswa. Setelah melakukan registrasi data akan tersimpan ke dalam database dan pengguna dapat langsung login ke dalam aplikasi.



Gambar diatas merupakan halaman utama dari web yang berisi daftar mahasiswa yang sudah tersimpan dalam database. Halaman ini dilengkapi dengan fitur searching atau pencarian. Pengguna bisa mencari data mahasiswa berdasarkan nama atau nim. Saya juga menambahkan fitur pagination dalam halaman ini. Fitur pagination dapat dengan mudah kita buat dengan menggunakan CodeIginter 4 karena sudah tersedia fungsi yang dibutuhkan. Dapat dilihat dalam dokumentasi CodeIgniter 4 pada webnya.

Gambar diatas merupakan implementasi dari "Read" dalam CRUD. Dimana aplikasi menampilkan data dari database.



Gambar diatas merupakan halaman detail. Halaman utama hanya menampilkan nama dan nim dari mahasiswa. Data lengkap mahasiswa dapat dilihat pada halaman detail. Pada halaman ini, terdapat dua tombol yaitu edit untuk mengedit data mahasiswa, dan hapus untuk menghapus data mahasiswa.

    
Gambar diatas merupakan tampilan dari edit data dimana pengguna dapat mengedit atau mengubah data mahasiswa. Ini merupakan implementasi dari "Update" dari CRUD.





Gambar diatas merupakan proses hapus data mahasiswa. Pengguna dapat menghapus data mahasiswa dengan menekan tombol hapus, kemudian menekan ok. Ini merupakan implementasi dari "Delete" dalam CRUD.







Beberapa gambar diatas ini merupakan langkah dari tambah data mahasiswa. Pengguna masuk ke halaman tambah data dengan menkan tombol tambah data mahasiswa pada halaman utama. Data tersebut akan langsung tersimpan ke dalam database dan tampil pada halaman utama. Ini merupakan Implementasi dari "Create" dalam CRUD.

Pada project ini, saya menggunakan dua tabel dalam database yaitu user dan mahasiswa







B. Dokumentasi Kode Program
    
Seperti yang saya bilang di awal artikel, pada blog kali ini saya hanya menampilkan dokumentasi dari fungsionalitas aplikasi. Untuk dokumentasi kode program saya lampirkan dalam bentuk link GitHub karena artikel ini akan sangat panjang jika saya menjelaskan tentang kode program. Source Code ini dapat anda unduh gratis.

SC CRUD sederhana :







Sabtu, 16 November 2019

FLOATING POINT

PENJELASAN FLOATING POINT , FLOATING POINT 32Bit dan 64Bit

Apa Itu Floating Point ?


Floating-point (bilangan titik mengembang) adalah sebuah bilangan pendekatan dari bilangan real untuk mempresentasikan sebuah nilai yang sangat besar. Karena itu lah, floating-point biasa ditemukan di sebuah sistem yang mengandung bilangan yang sangat kecil atau sangat besar, yang membutuhkan kecepatan dalam pemrosesannya. Bilangan tersebut dapat direpresentasikan sebagai notasi ilmiah, yaitu berupa angka pecahan desimal yang dikalikan dengan 10 dengan pangkat bilangan bulat.

Notasi ilmiah dapat direpresentasikan menjadi dua bagian, yakni mantisa dan eksponen. Bagian mantisa menentukan digit dalam angka tersebut, sementara eksponen menentukan nilai berapa besar pangkat pada bagian mantisa tersebut (pada posisi titik desimal). Contoh 231700000 dapat dituliskan dalam bentuk floating-point seperti berikut : 2317E5 (artinya 2317 x 10 pangkat 5).


CPU biasanya hanya bisa melakukan operasi berdasarkan bilangan bulat (integer) saja dan tidak mendukung operasi berdasarkan floating-point. Sehingga dibutuhkan unit yang dikhususkan untuk menangani operasi floating-point, yaitu FPU atau Floating-Point Unit (co-processor).

Format bilangan Floating Point distandarkan oleh IEEE 754 yang dibuat pada tahun 1985 oleh Institute of Electrtical and Electronics Engineers (IEEE). Standarisasi floating point berdasarkan tiga komponen : 
  • Bit tanda (S)
  • Bit Eksponen (E)
  • Bit Mantisa (M)

Floating Point 32Bit (Single-Precision)

Bilangan Floating point 32Bit terdiri atas 
  • 1 Bit tanda (S)
  • 8 Bit Eksponen (E)
  • 23 Bit Mantisa (M)




Bit tanda (S) menyatakan bilangan positif jika S = 0 dan negatif jika S = 1. Field eksponen adalah basis 2. Nilai eksponen bisa negatif atau positif untuk menyatakan bilangan yang sangat kecil atau sangat besar. Format eksponen yang digunakan adalah excess-127. Nilai 127 ditambahkan dari nilai eksponen sebenarnya (Exp), yaitu Exp = E − 127. Dengan excess-127, nilai E akan selalu positif dengan jangkauan 0 sampai 255.


Nilai ekstrem adalah untuk E = 0 dan E = 255:
E = 0 menyatakan bilangan NOL (jika M = 0) dan subnormal (jika M ≠ 0)
E = 255 menyatakan bilangan TAK TERHINGGA (jika M = 0) dan NAN/not-a-number (jika M ≠ 0)
Nilai normal adalah 1 ≤ E ≤ 254 yang menunjukkan nilai eksponen sebenarnya dari -126 sampai 127. Contoh: Emin(1) = −126, E(50) = −77, dan Emax(254) = 127.


Tabel nilai eksponen di format floating-point 32-bit
Eksponen (E)
Mantissa = 0
Mantissa ≠ 0
Persamaan
0
0, -0
Subnormal
  (−1)S × 0.bit signifikan × 2−126
1-254
Nilai ternormalisasi
(−1)S × 0.bit signifikan × 2E−127
255
Bukan bilangan
(NAN=not-a-number)
Saat nilai mantissa (M) dinormalisasi, most significant bit (MSB) selalu 1. Namun, bit MSB ini tidak perlu disertakan secara eksplisit di field mantisa (Tabel diatas). Nilai mantissa yang sebenarnya adalah 1.M, sehingga nilai bilangan floating-pointnya menjadi:


Di bilangan subnormal, nilai mantissa sebenarnya adalah 0.M, sehingga bilangan floating-pointnya menjadi:


Dengan mantissa 23 bit ini ditambah 1 bit implisit, total presisi dari representasi floating-point 32-bit ini adalah 24 bit atau sekitar 7 digit desimal (yaitu 24 × log10(2) = 7,225). Dalam bahasa pemrograman, suatu bilangan single-precision ini dideklarasikan dengan tipe data float (C, C++, Java) atau single (Pascal, VB, MATLAB).


Bilangan Floating Point 64Bit (Double-precision)

Bilangan floating-point 64-bit tersusun atas:
• 1 bit tanda (S)
• 11 bit eksponen (E)
• 52 bit mantisa (M)






Seperti halnya dengan bilangan single-precission, bit tanda (S) menyatakan bilangan positif jika S = 0 dan negatif jika S = 1. Field eksponen adalah basis 2. Nilai eksponen bisa negatif atau positif untuk menyatakan bilangan yang sangat kecil atau sangat besar. Format eksponen yang digunakan adalah excess-1023. Nilai 1023 ditambahkan dari nilai eksponen sebenarnya (Exp), yaitu Exp = E − 1023. Dengan excess-1023, nilai E akan selalu positif dengan jangkauan 0 sampai 2047.

Nilai ekstrem adalah untuk E = 0 dan E = 2047:
E = 0 menyatakan bilangan NOL (jika M = 0) dan subnormal (jika M ≠ 0)
E = 255 menyatakan bilangan TAK TERHINGGA (jika M = 0) dan NAN/not-a-number (jika M ≠ 0)
Nilai normal adalah 1 ≤ E ≤ 2047 yang menunjukkan nilai eksponen sebenarnya dari -1022 sampai 1023. Contoh: Emin(1) = −1022, E(100) = −923, dan Emax(254) = 1023.

Tabel nilai eksponen di format floating-point 64-bit
Eksponen (E)
Mantissa = 0
Mantissa ≠ 0
Persamaan
0
0, -0
Subnormal
  (−1)S × 0.bit signifikan × 2−1022
1-2046
Nilai ternormalisasi
(−1)S × 0.bit signifikan × 2E−1023
2047
Bukan bilangan
(NAN=not-a-number



Nilai mantisa (M) dinormalisasi, yang berarti most significant bit (MSB) selalu 1. Bit MSB ini tidak perlu disertakan secara eksplisit di field mantisa. Nilai mantisa sebenarnya adalah 1.M, sehingga nilai bilangan floating-pointnya menjadi:

Dengan mantissa 52 bit ini ditambah 1 bit implisit, total presisi dari representasi floating-point 32-bit ini adalah 53 bit atau sekitar 16 digit desimal (yaitu 53 × log10(2) = 15.955). Dalam pemrograman, suatu bilangan double-precision ini dideklarasikan dengan tipe data double (C, C++, Java).




sumber :


Minggu, 08 September 2019

Relational Database Management System ( RDBMS ) and NoSQL

Di era saat ini, terdapat berbagai jenis opsi database seperti RDBMS, NoSQL, Big Data, Database Appliance, dll. Teknologi pengolahan database ini terus mengalami perkembangan seiring dengan kemajuan dunia teknologi dan informasi. Pada artikel ini saya akan membahas RDBMS dan NoSQL.


RDBMS

RDBMS ( Relational Database Management System ) adalah program yang melayani sistem basis data yang entitas utamanya terdiri dari tabel-tabel yang mempunyai relasi dari satu tabel ke tabel yang lain. Suatu database terdiri dari banyak tabel, tabel terdiri dari banyak field yang merupakan kolomnya. Isi tiap baris dari tabel inilah yang merupakan data. Setiap tabel memiliki kunci yang disebut dengan primary key untuk dihubungkan ke tabel berikutnya yang memiliki foreign key. Dengan relational database ini maka data akan secara konsisten disimpan di suatu tabel, kemudian tabel lain yang membutuhkan data lainnya tinggal menghubungkan melalui foreign key. Pada awalnya RDBMS hanya digunakan perusahaan-perusahaan besar, namun saat ini sudah banyak jenis basis data yang menerapkan model RDBMS didalamnya, seperti Microsoft Access, MySQL, SQL Server, Oracle, PostgreSQL, OpenOffice Base dan FoxBase.


NoSQL

NoSQL adalah database yang tidak relasional/tanpa relasi. NoSQL juga merupakan penyimpanan data yang tidak terstruktur. NoSQL database seperti SQL database yang menggunakan tabel dalam penyusunan datanya. NoSQL menggabungkan semua database dan tidak membedakan jenis-jenisnya dan tanpa karasteristik umum. Tapi kecepatan NoSQL ini lebih cepat dibandingkan SQL, pencariannya lebih terfokus. Database NoSQL dibuat dengan tujuan khusus untuk model data spesifik dan memiliki skema fleksibel untuk membuat aplikasi modern. Database NoSQL dikenal secara luas karena kemudahan pengembangan, fungsionalitas, dan kinerja dalam berbagai skala. Database NoSQL menggunakan berbagai model data, termasuk dokumen, grafik, nilai kunci, dalam memori, dan pencarian.

RDBMS vs NoSQL



Dua tipe utama dari basis data modern dikenal sebagai basis data relasional dan non-relasional, yang juga disebut sebagai SQL vs NoSQL.

Database relasional (RDBMS) telah ada selama lebih dari 40 tahun. Secara historis, RDBMS bekerja dengan baik untuk saat-saat dimana struktur data jauh lebih sederhana dan statis. Namun, seiring dengan kemajuan teknologi dan aplikasi data besar, basis data relasional berbasis SQL tradisional kurang diperlengkapi untuk menangani volume data yang berkembang pesat dan kompleksitas struktur data yang berkembang.

Dalam dekade terakhir, database NoSQL telah mendapatkan popularitas dan peminat yang banyak karena mereka menawarkan alternatif yang lebih fleksibel, terukur, hemat biaya, alternatif untuk database relasional berbasis SQL tradisional. Ada beberapa hal utama yang membedakan database NoSQL dengan teknologi relasional ( RDBMS ).

Berikut adalah empat perbedaan utama SQL dan NoSQL.

1. Model dan skema data
    Basis data NoSQL menampilkan skema dinamis, dan memungkinkan kita untuk menggunakan apa yang disebut sebagai "data tidak terstruktur." Pada basis data NoSQL, kita dapat membangun aplikasi tanpa harus terlebih dahulu menentukan skema. Sedangkan dalam basis data relasional, kita harus menentukan skema  sebelum menambahkan data ke sistem. Tidak adanya skema yang telah ditentukan dalam basis data SQL membuat basis data NoSQL jauh lebih mudah untuk diperbarui ketika data dan persyaratan berubah. Mengubah struktur skema dalam basis data relasional bisa jadi memerlukan biaya yang sangat mahal, memakan waktu, dan sering kali melibatkan gangguan downtime atau layanan.

2. Struktur data
    Database relasional berbasis tabel. Sedangkan database NoSQL dapat berbasis dokumen, basis data grafik, pasangan nilai kunci, atau wide-column stores. Database relasional dirancang untuk data yang sebagian besar terstruktur dan didefinisikan dengan jelas oleh relasinya. Basis data NoSQL dirancang untuk menangani data yang tidak terstruktur (seperti teks, posting media sosial, foto, video, email) seperti kebanyakan data yang ada saat ini.

3. Scaling
    Database relasional melakukan penskalaan secara vertikal ( vertically scalable ), tetapi biasanya mahal. Karena memerlukan satu server untuk meng-host seluruh database, untuk skala, Anda perlu membeli server yang lebih besar dan lebih mahal. Dalam melakukan penskalaan, NoSQL jauh lebih murah dibandingkan dengan basis data relasional, karena kita dapat menambah kapasitas dengan penskalaan horizontal ( horizontally scalable ) atas server komoditas yang murah.

4. Development model
    Database NoSQL cenderung menjadi bagian dari komunitas open-source. Sedangkan database relasional biasanya merupakan sumber tertutup dengan biaya lisensi dimasukkan ke dalam penggunaan perangkat lunak mereka.



Sumber :


Picture :

Aplikasi CRUD Sederhana Dengan CodeIgniter

CodeIgniter adalah sebuah web application network yang bersifat open source yang digunakan untuk membangun aplikasi php dinamis . CodeIgnite...