Sabtu, 06 April 2019

SISTEM INFORMASI TUGAS AKHIR

Saat web dibuka, akan keluar tampilan log in. Bisa login sebagai mahasiswa, dosen, dan kaprodi.


Setelah login, akan diarahkan ke dashboard sesuai dengan akses login.




Pada akses Mahasiswa, ada beberapa menu yaitu, pengajuan judul, melihat daftar tugas akhir, dan melihat status tugas akhir.




Dalam pengajuan judul, Mahasiswa mengisi data serta mengupload file yang butuhkan.


Setelah diupload, akan ditinjau oleh Kaprodi untuk validasi pengajuan tugas akhir dan pemilihan dosen pembimbing. Kaprodi dapat melihat file proposal yang diajukan oleh Mahasiswa.






Setelah tugas akhir di validasi oleh kaprodi maka, Dosen dapat melihat siapa saja anak wali nya dan dapat melihat daftar tugas akhir. Dosen juga dapat melihat file proposal tugas akhir.






Setelah tugas akhir di cek oleh Dosen, maka mahasiswa dapat melihat status tugas akhirnya. Jika statusnya Revisi, maka mahasiswa dapat mengupload file tugas akhir yang telah di perbaiki.



Setelah tugas akhir diperbaiki oleh mahasiswa, maka Dosen dapat mengecek ulang file tugas akhir anak walinya, apabila sudah tidak perlu diperbaiki lagi, maka Kaprodi merubah status tugas akhir menjadi OK dan menjadwalkan sidang tugas akhir.




Sekian penjelasan dari Sistem Informasi Tugas Akhir ini.

Untuk Source Code dapat dilihat disini.

Kamis, 14 Maret 2019

Implementasi Halaman Login PPDB

Nama : Muhammad Gito Qabus Kanz
NRP : 5115100131

Berikut adalah screenshot dari hasil percobaan implementasi login dan CRUD pada aplikasi PPDB denganframework CodeIgniter:

Halaman Utama :

Halaman Login :
Halaman Dashboard :
Halaman Pendaftar :
Form Tambah Pendaftar :

Mengenal Web Framework CodeIgniter

Apa itu Framework?

Framework atau dalam bahasa indonesia dapat diartikan sebagai “kerangka kerja” merupakan kumpulan dari fungsi-fungsi/prosedur-prosedur dan class-class untuk tujuan tertentu yang sudah siap digunakan sehingga bisa lebih mempermudah dan mempercepat pekerjaan seorang programer, tanpa harus membuat fungsi atau class dari awal.

Apa itu CodeIgniter?

CodeIgniter adalah sebuah framework php yang bersifat open source dan menggunakan metode MVC (Model, View, Controller). CodeIgniter bersifat free alias tidak berbayar jika anda menggunakannya. Framework CodeIgniter dibuat dengan tujuan sama seperti framework lainnya yaitu untuk memudahkan developer atau programmer dalam membangun sebuah aplikasi berbasis web tanpa harus membuatnya dari awal.

MVC adalah teknik atau konsep yang memisahkan komponen utama menjadi tiga komponen yaitu model, view, dan controller.
  • Model merupakan bagian penanganan yang berhubungan dengan pengolahan atau manipulasi database.
  • View merupakan bagian yang menangani halaman user interface atau halaman yang muncul pada user.
  • Controller merupakan kumpulan instruksi aksi yang menghubungkan model dan view, jadi user tidak akan berhubungan langsung dengan model secara langsung.
Dari penjelasan diatas dapat disimpulkan bahwa controller menjadi penghubung antara view dan model.

Kelebihan CodeIgniter

Adapun beberapa kelebihan CodeIgniter adalah:
  • Syntax yang terstuktur
  • Mudah dalam menggunakannya
  • CodeIgniter menyediakan fasilitas helper dan library yang dapat membantu developer dalam membuat pagination, session, manipulasi url dan lainnya

Contoh ~ Membuat Halaman Hello World!


  • Rename folder CodeIgniter dengan nama yang lebih mudah atau nama yang dikehendaki.
  • Masuk ke folder application/contig, terdapat 2 file yang harus di setting terlebih dahulu yaitu config.php dan routes.php.
  • Setting alamat akses untuk aplikasi yang akan dibuat.
  • Setting controller pertama yang akan dipanggil oleh aplikasi (load default), di routes.php.
  • Masuk kedalam folder application/controllers.
  • Buat sebuah file php bernama halo.php.
  • Masuk kedalam folder application/view.
  • Buat sebuah file php bernama hello_view.php.
  • Jalankan aplikasi di browser.

Kamis, 31 Mei 2018

Laporan Final Project Manajemen Proyek Perangkat Lunak

Berikut saya lampirkan laporan final Project Manajemen Proyek Perangkat Lunak untuk memenuhi tugas mata kuliah Manajemen Proyek Perangkat Lunak Studi kasus Pembuatan Aplikasi Wallet : Mengatur keuangan anda dalam kehidupan sehari-hari.

Lampiran Dokumen : https://drive.google.com/folderview?id=1-CQ3TIx2bIaOqLBLw6lQgBS6KIUEffOl

Oleh : Muhammad Gito Qabus Kanz (5115100131)

Senin, 05 Maret 2018

Resource List

Resource list adalah daftar resource/sumber daya yang digunakan selama proyek berlangsung. Daftar ini berisi apa saja yang dibutuhkan berdasarkan jadwal proyek dengan mencantumkan deskripsi resource tersebut serta limit ketersediaan resource tersebut. Daftar semacam ini umumnya dapat dibuat menggunakan software manajemen proyek. Tetapi bisa juga dibuat dengan worksheet atau word processor.

Dibawah ini merupakan penjelasan lebih spesifik mengenai sumber daya.

● Sumber Daya Manusia
Perencanaan sumber daya manusia memulai dengan mengevaluasi ruang lingkup serta memilih kecakapan yang dibutuhkan untuk mnyelesaikan pengembangan. Baik posisi organisasi maupun specialty. Jumlah orang yang diperlukan untuk sebuah proyek perangkat lunak dapat ditentukan setelah estimasi usaha pengembangan dibuat.

● Komponen Perangkat lunak (reusable)
Kreasi dan penggunaan kembali blok bangunan perangkat lunak yang seharusnya dikatalog menjadi referensi yang mudah, distandarisasi untuk aplikasi yang mudah, dan divalidasi untuk integrasi yang mudah. Ada empat kategori sumber daya perangkat lunak yang harus dipertimbngkan pada saat perencanaan berlangsung, yaitu :

● Komponen Off-the self
Perangkat lunak yang ada dapat diperoleh dari bagian ketiga atau telah dikembangkan secara internal untuk proyek sebelumnya.

● Komponen Full-Experience
Spesifikasi, kode, desain atau pengujian data yang sudah ada yang dikembangkan pada proyek yang lalu yang serupa dengan perangkat lunak yang akan dibangun pada proyek saat ini.

● Komponen Partial-Experience
Aplikasi, kode, desain, atau data pengujiaan yang ada pada proyek yang lalu yang dihubungkan dengan perangkat lunak yang dibangun untuk proyek saat ini, tetapi akan membutuhkan modifikasi substansial.

● Komponen Baru
Komponen perangkat lunak yang harus dibangun oleh tim perangkat lunak khususnya adalah untuk kebutuhan proyek sekarang . Lebih baik mengkhususkan syarat sumber daya perangkat lunak dari awal. Dengan cara ini evaluasi teknis dari semua alternatif dapat dilakukan dan akuisisi secara berkala dapat terjadi.

● Lingkungan
Lingkungan yang mendukung proyek perangkat lunak, yang disebut juga software engineering environment (SEE), menggabungkan perangkat lunak dan perangkat keras. Karena sebagian besar organisasi perangkat lunak memiliki konstituen ganda yang memerlukan akses ke SEE, maka perencana proyek harus menentukan jendela waktu yang dibutuhkan bagi perangkat keras dan perangkat lunak serta membuktikan bahwa sember-sumber daya tersebut dapat diperoleh.
Pada saat sebuah sistem berbasis komputer akan direkayasa, tim perangkat lunak mungkin membutuhkan akses ke elemen perangkat keras yang sedang dikembangkan oleh tim rekayasa yang lain.

Tugas 2 MPPL E
Muhammad Gito Qabus Kanz
5115100131

Kamis, 01 Juni 2017

EAS PBO Game Snake

Pada kesempatan EAS kali ini saya membuat Final Project tentang sebuah Snake Game, pastinya semua orang pasti mengenal game snake yaitu gameplaynya yang hanya menggunakan arrow atas,kanan,bawah,kiri untuk memakan makanan ular guna ular bertambah panjang dan menambah score. game ini membutuhkan dua kelas yaitu kelas render panel dan kelas snake.
dibawah ini adalah source code dari game snake :

Class RenderPanel : Digunakan untuk mengatur interface dari game snake ini.
  1. package snake;
  2. import java.awt.Color;
  3. import java.awt.Graphics;
  4. import java.awt.Point;
  5. import javax.swing.JPanel;
  6. @SuppressWarnings("serial")
  7. public class RenderPanel extends JPanel
  8. {
  9.     public static final Color GREEN = new Color(1666073);
  10.     @Override
  11.     protected void paintComponent(Graphics g)
  12.     {
  13.         super.paintComponent(g);
  14.        
  15.         Snake snake = Snake.snake;
  16.         g.setColor(GREEN);
  17.        
  18.         g.fillRect(0, 0, 800, 700);
  19.         g.setColor(Color.BLUE);
  20.         for (Point point : snake.snakeParts)
  21.         {
  22.             g.fillRect(point.x * Snake.SCALE, point.y * Snake.SCALE, Snake.SCALE, Snake.SCALE);
  23.         }
  24.        
  25.         g.fillRect(snake.head.x * Snake.SCALE, snake.head.y * Snake.SCALE, Snake.SCALE, Snake.SCALE);
  26.        
  27.         g.setColor(Color.RED);
  28.        
  29.         g.fillRect(snake.cherry.x * Snake.SCALE, snake.cherry.y * Snake.SCALE, Snake.SCALE, Snake.SCALE);
  30.        
  31.         String string = "Score: " + snake.score + ", Length: " + snake.tailLength + ", Time: " + snake.time / 20;
  32.        
  33.         g.setColor(Color.white);
  34.        
  35.         g.drawString(string, (int) (getWidth() / 2 - string.length() * 2.5f), 10);
  36.         string = "Game Over!";
  37.         if (snake.over)
  38.         {
  39.             g.drawString(string, (int) (getWidth() / 2 - string.length() * 2.5f), (int) snake.dim.getHeight() / 4);
  40.         }
  41.         string = "Paused!";
  42.         if (snake.paused && !snake.over)
  43.         {
  44.             g.drawString(string, (int) (getWidth() / 2 - string.length() * 2.5f), (int) snake.dim.getHeight() / 4);
  45.         }
  46.     }
  47. }

Class Snake : Digunakan untuk memberikan logika game snake
  1. package snake;
  2. import java.awt.Dimension;
  3. import java.awt.Point;
  4. import java.awt.Toolkit;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.awt.event.KeyEvent;
  8. import java.awt.event.KeyListener;
  9. import java.util.ArrayList;
  10. import java.util.Random;
  11. import javax.swing.JFrame;
  12. import javax.swing.Timer;
  13. public class Snake implements ActionListener, KeyListener
  14. {
  15.     public static Snake snake;
  16.     public JFrame jframe;
  17.     public RenderPanel renderPanel;
  18.     public Timer timer = new Timer(20, this);
  19.     public ArrayList<Point> snakeParts = new ArrayList<Point>();
  20.     public static final int UP = 0, DOWN = 1, LEFT = 2, RIGHT = 3, SCALE = 10;
  21.     public int ticks = 0, direction = DOWN, score, tailLength = 10, time;
  22.     public Point head, cherry;
  23.     public Random random;
  24.     public boolean over = false, paused;
  25.     public Dimension dim;
  26.     public Snake()
  27.     {
  28.         dim = Toolkit.getDefaultToolkit().getScreenSize();
  29.         jframe = new JFrame("Snake");
  30.         jframe.setVisible(true);
  31.         jframe.setSize(805, 700);
  32.         jframe.setResizable(false);
  33.         jframe.setLocation(dim.width / 2 - jframe.getWidth() / 2, dim.height / 2 - jframe.getHeight() / 2);
  34.         jframe.add(renderPanel = new RenderPanel());
  35.         jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  36.         jframe.addKeyListener(this);
  37.         startGame();
  38.     }
  39.     public void startGame()
  40.     {
  41.         over = false;
  42.         paused = false;
  43.         time = 0;
  44.         score = 0;
  45.         tailLength = 14;
  46.         ticks = 0;
  47.         direction = DOWN;
  48.         head = new Point(0, -1);
  49.         random = new Random();
  50.         snakeParts.clear();
  51.         cherry = new Point(random.nextInt(79), random.nextInt(66));
  52.         timer.start();
  53.     }
  54.     @Override
  55.     public void actionPerformed(ActionEvent arg0)
  56.     {
  57.         renderPanel.repaint();
  58.         ticks++;
  59.         if (ticks % 2 == 0 && head != null && !over && !paused)
  60.         {
  61.             time++;
  62.             snakeParts.add(new Point(head.x, head.y));
  63.             if (direction == UP)
  64.             {
  65.                 if (head.y - 1 >= 0 && noTailAt(head.x, head.y - 1))
  66.                 {
  67.                     head = new Point(head.x, head.y - 1);
  68.                 }
  69.                 else
  70.                 {
  71.                     over = true;
  72.                 }
  73.             }
  74.             if (direction == DOWN)
  75.             {
  76.                 if (head.y + 1 < 67 && noTailAt(head.x, head.y + 1))
  77.                 {
  78.                     head = new Point(head.x, head.y + 1);
  79.                 }
  80.                 else
  81.                 {
  82.                     over = true;
  83.                 }
  84.             }
  85.             if (direction == LEFT)
  86.             {
  87.                 if (head.x - 1 >= 0 && noTailAt(head.x - 1, head.y))
  88.                 {
  89.                     head = new Point(head.x - 1, head.y);
  90.                 }
  91.                 else
  92.                 {
  93.                     over = true;
  94.                 }
  95.             }
  96.             if (direction == RIGHT)
  97.             {
  98.                 if (head.x + 1 < 80 && noTailAt(head.x + 1, head.y))
  99.                 {
  100.                     head = new Point(head.x + 1, head.y);
  101.                 }
  102.                 else
  103.                 {
  104.                     over = true;
  105.                 }
  106.             }
  107.             if (snakeParts.size() > tailLength)
  108.             {
  109.                 snakeParts.remove(0);
  110.             }
  111.             if (cherry != null)
  112.             {
  113.                 if (head.equals(cherry))
  114.                 {
  115.                     score += 10;
  116.                     tailLength++;
  117.                     cherry.setLocation(random.nextInt(79), random.nextInt(66));
  118.                 }
  119.             }
  120.         }
  121.     }
  122.     public boolean noTailAt(int x, int y)
  123.     {
  124.         for (Point point : snakeParts)
  125.         {
  126.             if (point.equals(new Point(x, y)))
  127.             {
  128.                 return false;
  129.             }
  130.         }
  131.         return true;
  132.     }
  133.     public static void main(String[] args)
  134.     {
  135.         snake = new Snake();
  136.     }
  137.     @Override
  138.     public void keyPressed(KeyEvent e)
  139.     {
  140.         int i = e.getKeyCode();
  141.         if ((i == KeyEvent.VK_A || i == KeyEvent.VK_LEFT) && direction != RIGHT)
  142.         {
  143.             direction = LEFT;
  144.         }
  145.         if ((i == KeyEvent.VK_D || i == KeyEvent.VK_RIGHT) && direction != LEFT)
  146.         {
  147.             direction = RIGHT;
  148.         }
  149.         if ((i == KeyEvent.VK_W || i == KeyEvent.VK_UP) && direction != DOWN)
  150.         {
  151.             direction = UP;
  152.         }
  153.         if ((i == KeyEvent.VK_S || i == KeyEvent.VK_DOWN) && direction != UP)
  154.         {
  155.             direction = DOWN;
  156.         }
  157.         if (i == KeyEvent.VK_SPACE)
  158.         {
  159.             if (over)
  160.             {
  161.                 startGame();
  162.             }
  163.             else
  164.             {
  165.                 paused = !paused;
  166.             }
  167.         }
  168.     }
  169.     @Override
  170.     public void keyReleased(KeyEvent e)
  171.     {
  172.     }
  173.     @Override
  174.     public void keyTyped(KeyEvent e)
  175.     {
  176.     }
  177. }

Dua kelas diatas sudah dipaparkan dan jika sudah tidak ada error maka sudah bisa dijalankan atau dieksekusi, maka ini dia hasil game snake yang sudah dijalankan


Dibagian atas terdapat fitur untuk menampilkan score, panjang ular, dan durasi mainnya

Sekian dari final project game snake
Terima Kasih!