Sabtu, 27 April 2019

Belajar Framework Laravel

Laravel adalah sebuah framework PHP yang dirilis dibawah lisensi MIT, dibangun dengan konsep MVC (model view controller). Laravel adalah pengembangan website berbasis MVP yang ditulis dalam PHP yang dirancang untuk meningkatkan kualitas perangkat lunak dengan mengurangi biaya pengembangan awal dan biaya pemeliharaan, dan untuk meningkatkan pengalaman bekerja dengan aplikasi dengan menyediakan sintaks yang ekspresif, jelas, dan menghemat waktu.
MVC adalah sebuah pendekatan perangkat lunak yang memisahkan aplikasi logika dari presentasi. MVC memisahkan aplikasi berdasarkan komponen-komponen aplikasi, seperti : manipulasi data, controller, dan user interface.
1. Model
    Model mewakili struktur data. Biasanya model berisi fungsi-fungsi yang membantu seseorang dalam pengelolaan basis data seperti memasukkan data ke basis data, pembaruan data, dan lain-lain.
2. View
    View adalah bagian yang mengatur tampilan ke pengguna. Bisa dikatakan berupa halaman web.
3. Controller
    Controller merupakan bagian yang menjembatani model dan view.


Berikut adalah contoh pembuatan halaman registrasi yang dibuat berdasarkan tutorial pada id-laravel.com .

Langkah 1 : Model

Membuat database user seperti berikut
CREATE TABLE `users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `password` varchar(255) DEFAULT NULL,
  `email` varchar(255) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

Konfigurasi database pada app/config/database.php atau pada file .env

Membuat model
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    //
}

Langkah 2 : View

Membuat halaman form dengan nama register.blade.php
<!DOCTYPE html>
<html>
<head>
    <title>Register</title>

    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="stylesheet" type="text/css" href="<?php echo asset('css/kube.min.css') ?>" />
</head>
<body style="width:80%;margin:40px auto">
    <?php if(Session::has('register_success')): ?>
        <div class="message message-success">
            <span class="close"></span>
            <?php echo Session::get('register_success') ?>
        </div>
    <?php endif; ?>

    <div class="units-container">
        <form method="post" action="" class="forms">
            @csrf
            <h3>Form Registrasi</h3>
            <label>
                Email <span class="error"><?php echo $errors->first('email') ?></span>
                <input type="text" name="email" value="<?php echo Form::old('email') ?>" class="width-50" />
            </label>
            <label>
                Password <span class="error"><?php echo $errors->first('password') ?></span>
                <input type="password" name="password" value="<?php echo Form::old('password') ?>" class="width-50" />
            </label>
            <label>
                Password Confirmation <span class="error"><?php echo $errors->first('password_confirmation') ?></span>
                <input type="password" name="password_confirmation" value="<?php echo Form::old('password_confirmation') ?>" class="width-50" />
            </label>
            <input type="submit" class="btn" value="Submit">
        </form>
    </div>
</body>
</html>

Langkah 3 : Routing

Membuat routing sekaligus controllernya
<?php

use Illuminate\Support\Facades\Input;
use App\User;

Route::get('/', function () {
    return view('welcome');
});

Route::get('/register', function()
{
    return View::make('register');
});

Route::post('/register', function()
{
    // var_dump($_POST);

    // 1. setting validasi
    $validator = Validator::make(
        Input::all(),
        array(
            "email"                 => "required|email|unique:users,email",
            "password"              => "required|min:6",
            "password_confirmation" => "same:password",
        )
    );

    // 2a. jika semua validasi terpenuhi simpan ke database
    if($validator->passes())
    {
        $user = new User;
        $user->email    = Input::get('email');
        $user->password = Hash::make(Input::get('password'));
        $user->save();

        return Redirect::to("register")->with('register_success', 'Selamat, Anda telah resmi menjadi pengangguran, silakan cek email untuk aktivasi :P');
    }
    // 2b. jika tidak, kembali ke halaman form registrasi
    else
    {
        return Redirect::to('register')
            ->withErrors($validator)
            ->withInput();
    }
});

Hasil

Akses halaman dengan menuliskan localhost:8000/register pada url


Isikan email dan kosongkan field yang lain lalu klik submit, maka akan muncul notifikasi seperti berikut


Isikan email dan password yang pertama serta kosongkan password yang kedua lalu klik submit, maka akan muncul notifikasi seperti berikut


Isi semua field lalu klik submit, maka akan muncul notifikasi berikut


Ini adalah tampilan database sebelum ada data yang disimpan


Setelah diklik submit otomatis data user akan tersimpan pada database


Jumat, 12 April 2019

Implementasi Aplikasi Monitoring Tugas Akhir

Deskripsi Sistem

Monta atau Monitoring Tugas Akhir merupakan aplikasi berbasis website untuk pengajuan tugas akhir mahasiswa dengan menggunakan framework Codeigniter. Proses yang terjadi pada sistem ini di antaranya: pengajuan judul tugas akhir, pengajuan proposal, verifikasi proposal dan penentuan sidang proposal, pengajuan tugas akhir itu sendiri, verifikasi tugas akhir dan penentuan sidang tugas akhir. Proses yang awalnya harus memakan waktu yang cukup lama -- karena dilakukan secara manual,  verifikasi pun harus dilakukan dengan bertatap muka antara mahasiswa yang bersangkutan dengan dosen pembimbingnya, dengan aplikasi ini menjadi lebih efektif dan efisien.

Aktor pada aplikasi ini:
a. Administrator
b. Kaprodi
c. Verifikator RMK
d. Dosen
e. Mahasiswa

Perbaikan yang telah dilakukan
a. Menambahkan akses untuk kaprodi dan verifikator RMK
b. Menambahkan form bimbingan
c. Memperbaiki tampilan

Source code : di sini
Demo program : di sini
*) username : admin
    password : admin
    untuk user lain silahkan cek pada data user.


Fitur yang terdapat pada aplikasi Monta

a. Halaman Awal / Home


b. Halaman Daftar Prodi & Jurusan


c. Halaman Daftar Tugas Akhir


d. Halaman Login




Administrator

a. Dashboard


b. Halaman Data User
    Administrator dapat menambahkan, mengedit, dan menghapus data user.


c. Data Institusi
    Admonistrator dapat menambah, mengedit, dan menghapus data fakultas dan data jurusan.


d. Data Dosen
    Administrator dapat mengedit dan menghapus data dosen.


e. Data Mahasiswa
    Administrator dapat mengedit dan menghapus data mahasiswa.




Kaprodi

a. Dashboard


b. Data RMK
    Kaprodi dapat menambahkan, mengedit, dan menghapus data RMK.
    Pada halaman ini hanya akan ditampilkan RMK sesuai dengan jurusan atau program studi dari user.
    Misal pemilik akun dengan nama dosen : Dr. Eng. Darlis Heru Murti, S.Kom., M.Kom. yang merupakan kaprodi Informatika.
    maka hanya akan ditampilkan RMK dari jurusan Informatika.


c. Data Dosen RMK
    Kaprodi dapat menambahkan, mengedit, dan menghapus data dosen RMK.
    Ketika menambahkan dosen RMK, yang ditampilkan hanyalah daftar dosen dan daftar RMK yang sesuai dengan jurusan atau program studi dari user.


d. Data Judul
    Kaprodi dapat mengedit pembimbing 1 maupun pembimbing 2 dari data judul yang tersedia.
    Pada halaman ini hanya akan ditampilkan data judul tugas akhir yang statusnya DITERIMA dari mahasiswa yang jurusannya sesuai dengan jurusan atau program studi dari user.


e. Data Proposal
    Kaprodi dapat mengedit status proposal dan menambahkan catatan revisi bila diperlukan dari data proposal yang tersedia.
    Pada halaman ini hanya akan ditampilkan data proposal tugas akhir yang telah terverifikasi oleh pembimbing 1 dan pembimbing 2 dari mahasiswa yang jurusannya sesuai dengan jurusan atau program studi dari user.


f. Data Tugas Akhir
    Kaprodi dapat mengedit status tugas akhir dan menambahkan catatan revisi bila diperlukan dari data tugas akhir yang tersedia.
    Pada halaman ini hanya akan ditampilkan data tugas akhir yang telah terverifikasi oleh pembimbing 1 dan pembimbing 2 dari mahasiswa yang jurusannya sesuai dengan jurusan atau program studi dari user.


g. Data Sidang
    Kaprodi dapat menambahkan, mengedit, dan menghapus data Sidang.
    Pada halaman ini hanya akan ditampilkan data sidang sesuai dengan jurusan atau program studi dari user.




Verifikator RMK

a. Dashboard


b. Data Judul
    Verifikator dapat mengedit status judul dari data judul yang tersedia.
    Pada halaman ini hanya akan ditampilkan data judul tugas akhir dari mahasiswa yang jurusannya sesuai dengan jurusan atau program studi dari user.


c. Data Proposal
    Verifikator dapat mengedit status proposal dan menambahkan catatan revisi bila diperlukan dari data proposal yang tersedia.
    Pada halaman ini hanya akan ditampilkan data proposal tugas akhir yang telah terverifikasi oleh pembimbing 1 dan pembimbing 2 dari mahasiswa yang jurusannya sesuai dengan jurusan atau program studi dari user.


d. Data Tugas Akhir
    Verifikator dapat mengedit status tugas akhir dan menambahkan catatan revisi bila diperlukan dari data tugas akhir yang tersedia.
    Pada halaman ini hanya akan ditampilkan data tugas akhir yang telah terverifikasi oleh pembimbing 1 dan pembimbing 2 dari mahasiswa yang jurusannya sesuai dengan jurusan atau program studi dari user.




Dosen

a. Dashboard


b. Data Judul
    Pada halaman ini hanya akan ditampilkan data judul tugas akhir mahasiswa yang memiliki dosen pembimbing sesuai dengan nama user.
    Misal pemilik akun dengan nama dosen : Dr. Eng. Nanik Suciati, S.Kom., M.Kom.
    maka hanya akan ditampilkan judul tugas akhir mahasiswa yang pembimbing 1 atau pembimbing 2 nya adalah Dr. Eng. Nanik Suciati, S.Kom., M.Kom.


c. Data Proposal
    Pada halaman ini hanya akan ditampilkan data proposal tugas akhir mahasiswa yang memiliki dosen pembimbing sesuai dengan nama user. User dapat melakukan verifikasi terhadap data proposal dan mengubah data sidang proposal dari anak bimbingnya.


d. Data Bimbingan
    Pada halaman ini hanya akan ditampilkan data bimbingan yang memiliki dosen pembimbing sesuai dengan nama user. Di halaman ini juga, user dapat melakukan verifikasi terhadap data bimbingan anak bimbingnya.


e. Data Tugas Akhir
    Pada halaman ini hanya akan ditampilkan data tugas akhir mahasiswa yang memiliki dosen pembimbing sesuai dengan nama user. User dapat melakukan verifikasi terhadap data tugas akhir dan mengubah tanggal sidang tugas akhir dari anak bimbingnya.




Mahasiswa

a. Dashboard


b. Pengajuan Judul
    Pada halaman ini, mahasiswa dapat melakukan pengajuan judul tugas akhir dan memilih pembimbing yang diinginkan. Apabila status judul DITOLAK, maka mahasiswa dapat mengedit judul yang telah diajukan sebelumnya. Apabila status judul DITERIMA, maka mahasiswa sudah tidak dapat melakukan perubahan pada data judul, dan diharuskan segera memproses data proposal dari judul yang telah diajukan.


c. Pengajuan Proposal
    Pada halaman ini, mahasiswa dapat melakukan pengajuan proposal tugas akhir dari judul yang telah diajukan sebelumnya. Apabila status proposal REVISI, maka mahasiswa dapat mengedit proposal yang telah diajukan sebelumnya. Apabila status proposal OK, maka mahasiswa sudah tidak dapat melakukan perubahan pada data proposal, dan diharuskan segera memproses bimbingan tugas akhir.


d. From Bimbingan
    Pada halaman ini, mahasiswa dapat menambah, mengedit, dan menghapus data bimbingan yang telah diajukan.
    Ketika melakukan penambahan data bimbingan, hanya akan tersedia 2 nama pembimbing sesuai dengan nama pembimbing pada proposal yang telah diajukan sebelumnya.


e. Pengajuan Tugas Akhir
    Pada halaman ini, mahasiswa dapat melakukan pengajuan tugas akhir dari proposal yang telah diajukan sebelumnya. Apabila status tugas akhir REVISI, maka mahasiswa dapat mengedit tugas akhir yang telah diajukan sebelumnya. Apabila status tugas akhir LULUS, maka mahasiswa sudah tidak dapat melakukan perubahan pada data tugas akhir. Maka proses pengajuan pun selesai.
    *) Pengajuan tugas akhir hanya dapat dilakukan jika status proposal OK dan jumlah bimbingan telah mencapai minimum, yakni 8 kali.


Implementasi Aplikasi Manajemen Surat