Anda di halaman 1dari 17

LAPORAN PRAKTIKUM

KONSTRUKSI DAN EVOLUSI PERANGKAT LUNAK


“Laporan Praktikum Minggu 11 Sampai Minggu 16”

DISUSUN Oleh :
Nama : MUSTOPA

NPM : 1061815

Prodi : DIV TRPL 3 TRPL

Mata Kuliah : Konstruksi Dan Evolusi Perangkat Lunak

Dosen : Yang Agita Rindri, M.Eng

PROGRAM STUDI TEKNOLOGI REKAYASA PERANGKAT


LUNAK POLITEKNIK MANUFAKTUR NEGERI BANGKA
BELITUNG 2020/2021
PRAKTIKUM
DEFENSIVE PROGRAMMING – EXCEPTION

A. Dasar Teori
Defensive programming adalah suatu proses penulisan kode (programming)
di mana programmer sebisa mungkin untuk mengantisipasi terjadinya failure
terhadap suatu kode.

Contoh defensive programming adalah dalam membuat fitur login, programmer


membuat berbagai rule, misalnya rule bahwa password harus terdiri dari minimal 8
karakter yang terdiri dari angka, huruf, dan karakter. Apabila user menginputkan
data yang tidak sesuai dengan maksud program, maka sistem akan melakukan
exception dengan menampilkan dialog box bahwa data yang diinput tidak sesuai.
Salah satu teknik dalam defensive programming adalah Exception Handling
(penanganan pengecualian).

Exception handling terdapat pada hampir semua bahasa aras tinggi. Pada Phyton,
error yang muncul disebabkan oleh 2 penyebab, yaitu kesalahan sintak dan
exception. Kesalahan sintak terjadi saat ada kekeliruan dalam penulisan sintak
Phyton, sedangkan exception muncul karena peristiwa internal terjadi sehingga
mengubah aliran program

Beberapa exceptions dasar yang mungkin dialami saat menulis program.

 NameError

exception ini muncul ketika program-nya tidak dapat menemukan


sebuah nama lokal atau global. Nama yang tidak dapat ditemukan dimasukkan
ke dalam pesan error-nya.
 TypeError

Pengecualian ini muncul ketika sebuah fungsi dilewatkan ke sebuah objek dari
tipe yang tidak tepat sebagai sebuah argumen. Detil lengkapnya disediakan
melalui pesan error.

 ValueError

Pengecualian ini terjadi ketika sebuah fungsi argumen memiliki tipe


yang benar namun nilai yang salah.

 NotImplementedError

Pengecualian ini muncul ketika sebuah objek seharusnya mendukung


sebuah operasi namun belum diterapkan. Kamu seharusnya tidak
menggunakan error ini ketika fungsi yang diberikan tidak ditujukan untuk
mendukung tipe dari argumen masukan-nya. Pada situasi tersebut,
memunculkan TypeError exception jauh lebih tepat.

 ZeroDivisionError

Exception ini muncul ketika kamu menyediakan angka 0 argumen kedua


untuk operasi pembagian atau modulo.

 FileNotFoundError

Exception ini muncul ketika berkas atau direktori yang program minta
tidak ditemukan atau tidak ada.

B. Kegiatan Praktikum
1. Percobaan 1
 Source code
 nilai=10
try:
hasilbagi=nilai/0
print(hasilbagi)
except ZeroDivisionError:
print("An error ocurred")
 Output

 Penjelasan
Dalam percobaan 1, kode program menggunakan exception handling
ZeroDivisionError yaitu kondisi dimana ketika user tidak dapat
membagi bilangan dengan penyebut bernilai 0. Ketika kondisi pada
try terpenuhi maka akan dilemparkan pada except ZeroDivisionError
untuk menampilkan error.
2. Percobaan 2
 Source code
nilai=[100,40,30]
try:
print("Elemen ke dua = "+str(nilai[1]))

print("Elemen ke 4 = "+str(nilai[3]))

except IndexError:
print("Sebuah erorr muncul")
 Output

 Penjelasan
Pada percobaan kedua menggunakan exception handling IndexError
dimana biasanya error handling ini digunakan untuk
meminimalisirkan error ketika pengguna salah dalam penampilan
jumlah index dari suatu array.
3. Percobaan 3
 Source code
nilai = int(input("Masukan sembarang nilai = "))
try:
k = 5//nilai
except ZeroDivisionError:
print("\n Can't divide by zero")

else:
print(k)
finally:
print("This is always executed")

 Output
 Penjelasan
Dalam percobaan 3, kode program menggunakan exception handling
Zero Division Error yaitu kondisi Ketika user tidak dapat membagi
bilangan dengan penyebut bernilai 0. Ketika kondisi pada try
terpenuhi maka akan dilemparkan pada except ZeroDivisionError
untuk menampilkan error.
4. Percobaan 4
 Source code
nilai=[1,2,3,4,5]

try:
kontak=open("contact.txt",'r')
print (nilai[1])
except (IOError):
print("Terjadi Error IO : ")

print(nilai)

 Output

 Penjelasan
Percobaan 4 menggunakan IOError yaitu digunakan saat
programmer meminimalisir kesalahan dalam input dan output ketika
user menginput.
5. TUGAS EXCEPTION HANDLER
 Source code
try:
nilai = int(input("Masukan nilai = "))
print(nilai)
except ValueError:
print("itu bukan tipe integer")

 Output

 Penjelasan
Percobaan 4 menggunakan ValueError yaitu digunakan saat
programmer meminimalisir kesalahan saat user salah memasukan
nilai berupa integer.

C. Kesimpulan
Kesimpulannya adalah bahwa exception merupakan teknik pengkodean
untuk meminimalisir programmer melakukan failure terhadap kode. Biasanya
exception ini kondisi yang menyebabkan program menjadi error dari alur normal
yang telah ditentukan. Ada banyak sekali exception handle yang bisa dilihat disini
https://docs.python.org/2/library/exceptions.html#exception-hierarchy .
PRAKTIKUM
FRAMEWORK CODE IGNITER

A. Dasar Teori
Framework bahasa pemrograman adalah kerangka kerja yang disediakan
untuk membantu developer dalam mengembangkan aplikasi yang berbasis web,
desktop, ataupun mobile. Framework memudahkan dan mempercepat pekerjaan
developer karena developer tidak perlu membuat aplikasi dari 0. Framework juga
menyediakan library-library yang dapat digunakan untuk mempercepat proses
pengembangan perangkat lunak. Selain itu, Framework juga dapat membuat kode
program yang lebih terstruktur sehingga lebih mudah untuk dimengerti dan
dikembangkan oleh developer yang lain. Tanpa menggunakan framework, kegiatan
pengembangan perangkat lunak menjadi tidak efisien, tidak fleksibel, dan aplikasi
yang dihasilkan lebih sulit untuk dimaintanaance dan dikembangkan lebih lanjut.

Framework dibedakan berdasarkan bahasa pemrograman yang digunakan. Beberapa


contoh framework berdasarkan bahasa pemrogramnya, antara lain:
1. PHP Framework : Code Igniter
2. CSS Framework : Bootstrap
3. Python Framework : Django
4. Javascript Framework : ReactJS, AngularJS

Setiap framework menyediakan aturan-aturan yang harus diikuti oleh semua


penggunanya. Aturan-aturan ini menyebabkan penulisan kode pada framework
menjadi konvensi umum yang harus ditaati oleh penggunanya sehingga kode pada
framework dapat dipahami oleh semua developer. Contoh aturan-aturan pada
framework: 1. Aturan dalam meletakan source code pada folder-folder tertentu 2.
Aturan dalam menuliskan code 3. Aturan dalam pola desain 4. Dan lain-lain
B. Kegiatan Praktikum
Membuat suatu sistem informasi toko printer dimana menggunakan CRUD untuk
menampilkan, menginput, mengupdate serta menghapus.
1. Membuat database
Buatlah satu buah database dan buat satu tabel. Setelah itu buat
beberapa field untuk tabel tersebut seperti gambar diatas.

2. Menghubungkan dengan CodeIgniter


Buka file pada application/config/autoload.php. Setelah itu, cari
coding $autoload[‘libraries’] dan isi dengan database. Hasilnya akan seperti
ini:

Setelah itu buka Buka application/config/database.php. Setelah itu, Anda


bisa cari kode di bawah ini. Lalu, isikan username, password, dan database
Anda.
3. Membuat model untuk tabel
Model merupakan kode yang berhubungan dengan data. Di dalam
model, kita dapat memodelkan data dari database. Biasanya 1 model untuk 1
tabel. Untuk praktikum ini, kita akan mencoba membuat model untuk tabel
printer.
 Buat 1 file baru di dalam aplication/model dengan nama
Printer_model.php (nama diawali huruf kapital)
 Menulis kode program pada file Printer_model.php

<?php defined('BASEPATH') OR exit('No direct script access


allowed');

class Printer_model extends CI_Model


{
// isi sesuai dengan nama tabel kita
private $_table = "data";
//isi seusai field tabel kita
public $no;
public $nama_merk;
public $warna;
public $jumlah;
// kita buatkan rules untuk input ke tabel printer
public function rules()
{
return [
['field' => 'nama_merk',
'label' => 'Merk Printer',
'rules' => 'required'],
['field' => 'warna',
'label' => 'Warna Printer',
'rules' => 'required'],

['field' => 'jumlah',


'label' => 'Jumlah Printer',
'rules' => 'numeric']
];

}
public function getAll()
{
return $this->db->get($this->_table)->result();
// perintah di atas kurang lebih sama dengan
// Select * from printer
}

public function getById($no)


{
return $this->db->get_where($this->_table, ["no"
=> $no])->row();
// perintah di atas kurang lebih sama dengan
// Select * from printer where no - $id
}
public function save()
{
$post = $this->input->post();
$this->no = uniqid();
$this->nama_merk = $post["nama_merk"];
$this->warna = $post["warna"];
$this->jumlah = $post["jumlah"];
return $this->db->insert($this->_table, $this);
}
public function update()
{
$post = $this->input->post();
$this->no = $post["no"];
$this->nama_merk= $post["nama_merk"];
$this->warna = $post["warna"];
$this->jumlah = $post["jumlah"];
return $this->db->update($this->_table, $this,
array('no' => $post['no']));
}
public function delete($no)
{
return $this->db->delete($this->_table,
array("no" => $no));
}
}
4. Membuat controller yang menghubungkan Printer_model.php dengan view
Printer.php
 Buat sebuah file baru di dalam folder controller, yakni pada direktory
application/controllers/admin dengan nama Printer.php
 Tulis code berikut ini:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Printer extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model("Printer_model");
$this->load->library('form_validation');
}
public function index()
{
$data["printer"] = $this->Printer_model->getAll();
$this->load->view("admin/printer/list", $data);
}
public function add()
{
$printer = $this->Printer_model;
$validation = $this->form_validation;
$validation->set_rules($printer->rules());
if ($validation->run()) {
$printer->save();
$this->session->set_flashdata('success', 'Berhasil
disimpan');
header("location: ../printer");
}
$this->load->view("admin/printer/new_form");
}
public function edit($no = null)
{
if (!isset($no)) redirect('admin/printer');

$printer = $this->Printer_model;
$validation = $this->form_validation;
$validation->set_rules($printer->rules());
if ($validation->run()) {
$printer->update();
$this->session->set_flashdata('success', 'Berhasil
disimpan');
header("location: ..");
}
$data["printer"] = $printer->getById($no);
if (!$data["printer"]) show_404();

$this->load->view("admin/printer/edit_form", $data);
}
public function delete($no=null)
{
if (!isset($no)) show_404();

if ($this->Printer_model->delete($no)) {
// redirect(site_url('admin/printer'));
header("location: ..");
}
}
}

5. Membuat View
View merupakan bagian yang bertugas mengurus tampilan. Ada tiga
view yang akan dibuat dalam aplikasi ini:
1. list.php untuk menampilkan data;
2. new_form.php untuk menampilkan form tambah data;
3. dan edit_form.php untuk menampilkan form edit data.

Langkah-langkah membuat view”


1. Buatlah 1 buah folder di directory application/views/admin. Beri nama
folder dengan printer
2. Buat 3 buah file di dalam folder printer tersebut, masing-masing diberi
nama dengan list.php untuk menampilkan data; new_form.php untuk
menampilkan form tambah data; dan edit_form.php untuk menampilkan
form edit data.
3. Tulis kode pertama kita pada folder view untuk menampilkan daftar
nama printer di file list.php dengan code sebagai berikut:

<!DOCTYPE html>
<html>
<head>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 100%;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
</head>
<body>
<h2>Daftar Printer</h2>
<table>
<tr>
<th>Merk Printer</th>
<th>Warna</th>
<th>Jumlah</th>
<th>Action</th>
</tr>
<?php foreach ($printer as $printer):
?>
<tr>
<td><?php echo $printer->nama_merk ?></td>
<td><?php echo $printer->warna ?></td>
<td><?php echo $printer->jumlah ?></td>
<td>
<a href="printer/edit/<?php echo $printer->no ?> " >Edit</a> ||
<a href="printer/delete/<?php echo $printer->no ?>">Delete</a>
</td>
</tr>
<?php endforeach; ?>
</table>
<br></br>
<a href="printer/add">Add New</a>
</body>
</html>

Output

 Selanjutnya kita akan mencoba menambahkan data baru ke database


melalui form Add New.
 Silahkan buat file baru di dalam folder view/admin/printer/ dengan
nama new_form.php, lalu ketikkan dengan kode sederhana berikut ini.

<!DOCTYPE html>
<html>
<body>
<h2>Tambah Printer</h2>
<form action="add" method="post" enctype="multipart/form-data" >
<label for="fname">Merk Printer:</label><br>
<input type="text" id="nama_merk" name="nama_merk"
value=""><br>
<label for="lname">Warna Printer:</label><br>
<input type="text" id="warna" name="warna" value=""><br><br>
<label for="lname">Jumlah:</label><br>
<input type="text" id="jumlah" name="jumlah" value=""><br><br>

<input type="submit" value="Submit">


</form>
</body>
</html>

Output

 Selanjutnya, kita akan membuat form edit di dalam directori


application/views/admin/printer dengan nama edit_form.php. Ketikkan
kode berikut ini.

<!DOCTYPE html>
<html>
<body>
<h2>HTML Forms</h2>
<form action="" method="post" enctype="multipart/form-data">
<input type="hidden" name="no" value="<?php echo $printer->no?>"
/>
<label for="fname">Merk Printer:</label><br>
<input type="text" id="nama_merk" name="nama_merk"
value="<?php echo $printer->nama_merk ?>"><br>
<label for="lname">Warna Printer:</label><br>
<input type="text" id="warna" name="warna" value="<?php
echo $printer->warna ?>"><br><br>
<label for="lname">jumlah:</label><br>
<input type="text" id="jumlah" name="jumlah" value="<?php
echo $printer->jumlah ?>"><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>

Output:

C. Kesimpulan
Tutorial ini tidak mencakup semua hal yang diharapkan dari content
management system, tetapi memperkenalkan ke topik yang lebih penting
tentang routing, menulis controller, dan model. CodeIgniter memiliki konsep MVC
memudahkan dalam script program yang terstruktur dengan adanya pemisahan antara
model yang berinteraksi denngan database. View sebagai penerima data dan
merepresentasikan data kepada user, dan controller yang berfungsi sebagai penerima
request data dari user untuk menentukan proses yang diambil.

Anda mungkin juga menyukai