Minggu, 13 Agustus 2017

Membuat CRUD Sederhana dengan PHP dan MYSQL

Membuat CRUD Sederhana dengan PHP dan MYSQL

CRUD adalah singkatan dari Create Read Update Delete , yang sering digunakan pada aplikasi-aplikasi pengolahan data yang kebanyakan mengguanakan fungsi CRUD didalamnya . Fungsi ini digunakan untuk menambahkan data, menghapus data, serta mengupdate data.

Tutorial ini saya tujukan terutama bagi teman-teman yang mungkin baru dalam mempelajari PHP. Memahami konsep CRUD sangat penting jika kita ingin membuat sebuah aplikasi. Tanpa memahami konsep ini, kita tidak bisa membuat aplikasi bahkan yang sangat sederhana sekalipun, kecuali jika aplikasi yang kita buat tidak berhubungan dengan database.

Berikut cara membuat CRUD sederhana :

1. Membuat Database

Buatlah database dengan nama crud_sederhana, bisa dengan menggunakan Command Promt atau dengan phpMyAdmin. Setelah database dibuat, langkah selanjutnya yaitu membuat tabel dengan nama tbl_mahasiswa ke dalam database tadi.

Berikut script untuk membuat tabel tbl_mahasiswa :
CREATE TABLE `tbl_mahasiswa` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nim` char(8) DEFAULT NULL,
  `nama` varchar(100) DEFAULT NULL,
  `jurusan` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
);

2. Membuat Koneksi dengan Database

Sebelum melakukan langkah ini kita harus membuat folder untuk menyimpan file-file yang nantinya akan kita buat. Buat folder dengan nama crud_sederhana di dalam folder xampp/htdocs/disini.

Langkah selanjutnya yaitu membuat file untuk melakukan koneksi ke database. Buat file baru dengan nama koneksi.php, simpan ke dalam folder crud_sederhana tadi, kemudian isi dengan kode dibawah ini:
<?php
  // buat koneksi dengan database mysql
  $host = "localhost";
  $user = "root";
  $pass = "";
  $name = "crud_sederhana";
  $link = mysqli_connect($host,$user,$pass,$name);
  //periksa koneksi, tampilkan pesan kesalahan jika gagal
  if(!$link){
    die ("Koneksi dengan database gagal: ".mysql_connect_errno().
    " - ".mysql_connect_error());
  }
?>
Silahkan sesuaikan variabel $host dan $user sesuai dengan komputer Anda.

File koneksi.php ini nantinya akan kita panggil ke dalam file-file lainnya dengan fungsi include() agar setiap file bisa terhubung ke database.

3. Menampilkan Data (READ)

Langkah ketiga yaitu membuat file untuk menampilkan data. Karena akan kita jadikan sebagai halaman utama maka kita beri nama file ini dengan nama index.php. Setelah membuat file index.php di dalam folder crud_sederhana, isilah dengan kode berikut:
<?php
  // memanggil file koneksi.php untuk melakukan koneksi database
  include 'koneksi.php';
?>

<!DOCTYPE html>
<html>
  <head>
    <style>
      h1 {margin:0}
      table{width: 840px;border-collapse:collapse;}
      tr th,tr td{text-align:left;padding:5px 10px;}
    </style>
  </head>
  <body>
    <h1>Tabel Data Mahasiswa</h1>
    <p><a href="index.php">Tampil Data</a> | <a href="input.php">Input Data</a></p>
    <table border="1">
      <tr>
        <th>No</th>
        <th>NIM</th>
        <th>Nama</th>
        <th>Jurusan</th>
        <th>Aksi</th>
      </tr>
      <?php
      // jalankan query untuk menampilkan semua data diurutkan berdasarkan nim
      $query = "SELECT * FROM tbl_mahasiswa ORDER BY nim ASC";
      $result = mysqli_query($link, $query);
      //mengecek apakah ada error ketika menjalankan query
      if(!$result){
        die ("Query Error: ".mysqli_errno($link).
           " - ".mysqli_error($link));
      }

      //buat perulangan untuk element tabel dari data mahasiswa
      $no = 1; //variabel untuk membuat nomor urut
      // hasil query akan disimpan dalam variabel $data dalam bentuk array
      // kemudian dicetak dengan perulangan while
      while($data = mysqli_fetch_assoc($result)) {
        // mencetak / menampilkan data
        echo "<tr>";
        echo "<td>$no</td>"; //menampilkan no urut
        echo "<td>$data[nim]</td>"; //menampilkan data nim
        echo "<td>$data[nama]</td>"; //menampilkan data nama
        echo "<td>$data[jurusan]</td>"; //menampilkan data jurusan
        // membuat link untuk mengedit dan menghapus data
        echo '<td>
          <a href="edit.php?id='.$data['id'].'">Edit</a> /
          <a href="hapus.php?id='.$data['id'].'"
          onclick="return confirm(\'Anda yakin akan menghapus data?\')">Hapus</a>
        </td>';
        echo "</tr>";
        $no++; // menambah nilai nomor urut
      }
      ?>
    </table>
  </body>
</html>

4. Memasukan Data (CREATE)

Pada tahap ini kita akan membuat dua buah file. File yang pertama berisi sebuah form untuk memasukkan data yang akan kita beri nama input.php. File yang kedua berfungsi untuk memproses data yang telah dimasukkan pada form input.php. File ini kita beri nama input_proses.php.

Berikut ini adalah tampilan kode pada file input.php:
<!DOCTYPE html>
<html>
  <head>
    <style>
      h1{margin:0;margin-bottom:10px;}
      label{width:105px;display:inline-block;margin-bottom:10px;}
      input{padding:2px;}
      input[type=submit]{margin-left:117px;}
    </style>
  </head>
  <body>
    <h1>Input Data</h1>
      <form id="form_mahasiswa" action="input_proses.php" method="post">
        <label for="nim">NIM</label> : <input type="text" name="nim" id="nim" placeholder=""><br/>
        <label for="nama">Nama</label> : <input type="text" name="nama" id="nama"><br/>
        <label for="jurusan">Jurusan</label> : <input type="text" name="jurusan" id="jurusan"><br/>
        <input type="submit" name="input" value="Tambah Data"><br/>
      </form>
  </body>
</html>
Saya rasa kode di atas cukup mudah dipahami karena hanya berupa html. Pada kode di atas terdapat form dengan action = “input_proses.php”, artinya ketika form tersebut disubmit maka data yang diinputkan pada form akan diproses oleh file input_proses.php

Tampilan kode input_proses.php adalah sebagai berikut:
<?php
// memanggil file koneksi.php untuk melakukan koneksi database
include 'koneksi.php';

// mengecek apakah tombol input dari form telah diklik
if (isset($_POST['input'])) {

 // membuat variabel untuk menampung data dari form
 $nim = $_POST['nim'];
  $nama = $_POST['nama'];
  $jurusan = $_POST['jurusan'];

  // jalankan query INSERT untuk menambah data ke database
  $query = "INSERT INTO tbl_mahasiswa VALUES (NULL, '$nim', '$nama', '$jurusan')";
  $result = mysqli_query($link, $query);
  // periska query apakah ada error
  if(!$result){
      die ("Query gagal dijalankan: ".mysqli_errno($link).
           " - ".mysqli_error($link));
  }
}

// melakukan redirect (mengalihkan) ke halaman index.php
header("location:index.php");
?>
File input_proses.php akan mengambil data yang diinput dari form pada halaman input.php kemudian memasukkan data tersebut ke dalam database menggunakan query INSERT INTO.

Sampai tahap ini kita sudah bisa menginput data ke dalam tabel tbl_mahasiswa, namun kita belum bisa melakukan edit data dan hapus data.

5. Mengupdate / Mengedit Data (UPDATE)

Langkah selanjutnya yaitu membuat halaman untuk update/edit data. Sama seperti sebelumnya, pada tahap ini kita akan membuat dua file: file untuk membuat form dan file untuk memproses form.

Sekarang buat file untuk membuat form update data dengan nama edit.php. kemudian isikan kode berikut:
<?php
  // memanggil file koneksi.php untuk membuat koneksi
  include 'koneksi.php';

  // mengecek apakah di url ada nilai GET id
  if (isset($_GET['id'])) {
    // ambil nilai id dari url dan disimpan dalam variabel $id
    $id = ($_GET["id"]);

    // menampilkan data mahasiswa dari database yang mempunyai id=$id
    $query = "SELECT * FROM tbl_mahasiswa WHERE id=$id";
    $result = mysqli_query($link, $query);
    // mengecek apakah query gagal
    if(!$result){
      die ("Query Error: ".mysqli_errno($link).
         " - ".mysqli_error($link));
    }
    // mengambil data dari database dan membuat variabel" utk menampung data
    // variabel ini nantinya akan ditampilkan pada form
    $data = mysqli_fetch_assoc($result);
    $nim = $data["nim"];
    $nama = $data["nama"];
    $jurusan = $data["jurusan"];

  } else {
    // apabila tidak ada data GET id pada akan di redirect ke index.php
    header("location:index.php");
  }
?>
<!DOCTYPE html>
<html>
  <head>
    <style>
    h1{margin:0;margin-bottom:10px;}
    label{width:105px;display:inline-block;margin-bottom:10px;}
    input{padding:2px;}
    input[type=submit]{margin-left:117px;}
    </style>
  </head>
  <body>
    <h1>Edit Data</h1>
      <form id="form_mahasiswa" action="edit_proses.php" method="post">
        <input type="hidden" name="id" value="<?php echo $id; ?>">
        <label for="nim">NIM</label> : <input type="text" name="nim" id="nim" value="<?php echo $nim ?>"><br/>
        <label for="nama">Nama</label> : <input type="text" name="nama" id="nama" value="<?php echo $nama ?>"><br/>
        <label for="jurusan">Jurusan</label> : <input type="text" name="jurusan" id="jurusan" value="<?php echo $jurusan ?>"><br/>
        <input type="submit" name="edit" value="Update Data"><br/>
      </form>
  </body>
</html>
File edit.php akan mengambil nilai $_GET[”id”] dan disimpan pada variabel $id. Setelah itu data mahasiswa yang akan diedit ditampilkan menggunakan query "SELECT * FROM tbl_mahasiswa WHERE id=$id". Hasil query kemudian disimpan pada beberapa variabel. Variabel-variabel ini digunakan untuk mengisi atribut value pada form agar data tersebut dapat tampil di form.

Sekarang buat file edit_proses.php. Lalu isikan kode berikut:
<?php
// mengecek apakah tombol edit telah diklik
if (isset($_POST['edit'])) {
  // buat koneksi dengan database
  include("koneksi.php");

  // membuat variabel untuk menampung data dari form edit
  $id = $_POST['id'];
  $nim = $_POST['nim'];
 $nama = $_POST['nama'];
 $jurusan = $_POST['jurusan'];

  //buat dan jalankan query UPDATE
  $query  = "UPDATE tbl_mahasiswa SET ";
  $query .= "nim = '$nim', nama = '$nama', ";
  $query .= "jurusan = '$jurusan' ";
  $query .= "WHERE id = '$id'";

  $result = mysqli_query($link, $query);

  //periksa hasil query apakah ada error
  if(!$result) {
    die ("Query gagal dijalankan: ".mysqli_errno($link).
       " - ".mysqli_error($link));
  }
}

//lakukan redirect ke halaman index.php
header("location:index.php");

?>
File edit_proses.php akan mengambil data yang diinput dari form pada halaman edit.php kemudian melakukan update data menggunakan query UPDATE.

6. Menghapus Data (DELETE)

Langkah terakhir yaitu membuat halaman untuk menghapus data. Buat file bernama hapus.php kemudian isi dengan kode berikut:
<?php
  // buka koneksi dengan MySQL
  include("koneksi.php");

  //mengecek apakah di url ada GET id
  if (isset($_GET["id"])) {

    // menyimpan variabel id dari url ke dalam variabel $id
    $id = $_GET["id"];

    //jalankan query DELETE untuk menghapus data
    $query = "DELETE FROM tbl_mahasiswa WHERE id=$id ";
    $hasil_query = mysqli_query($link, $query);

    //periksa query, apakah ada kesalahan
    if(!$hasil_query) {
      die ("Gagal menghapus data: ".mysqli_errno($link).
           " - ".mysqli_error($link));
    }
  }
  // melakukan redirect ke halaman index.php
  header("location:index.php");
?>
Sama seperti halaman edit.php, halaman hapus.php ini dapat diakses melalui link yang terdapat pada kolom Pilihan pada Tabel Data Mahasiswa di halaman index.php.

File hapus.php akan mengambil nilai id pada query string menggunakan variabel $_GET[“id”]. Nilai id ini digunakan untuk mengetahui data mahasiswa yang mana yang akan dihapus. Setelah itu data dihapus menggunakan query "DELETE FROM mahasiswa WHERE id=$id ".

Sampai tahap ini kita telah selesai membuat aplikasi CRUD sederhana untuk mengolah data mahasiswa.

Sabtu, 12 Agustus 2017

Pengenalan Bahasa Pemrograman PHP

Pengenalan Bahasa Pemrograman PHP


PHP atau PHP : Hypertext Processor merupakan salah satu bahasa pemrograman di sisi server untuk membuat web dinamis. Bahasa pemrograman PHP diciptakan oleh Rasmus Lerdorf, pada tahun 1995 Lerdorf membuat sebuah alat untuk yang kemudian disebut “Personal Home Page” .

PHP sendiri merupakan bahasa pemrograman yang bebas dipergunakan (open source), dan sudah banyak digunakan oleh pengembang website. PHP juga berdiri sebagai platfrom yang mampu dijalankan di berbagai sistem operasi, baik di Windows, UNIX, Linux maupun Mac, dan juga mendukung penggunaan beberapa database, salah satunya adalah MySQL.

PHP juga merupakan salah satu bahasa pemrograman website yang mempunyai keunggulan selain bahasa pemrograman yang lain misalnya Perl, Microsoft Active Server Page (ASP), Java Server Page (JSP) atau Allaire Cold Fusion. Berbagai keunggulan dari PHP diantaranya adalah :

1. Performansi yang tinggi

PHP mempunyai permoansi yang sangat efisien, dibuktikan dengan banyaknya web site yang dibangun dengan menggunakan PHP.

2. Dapat digunakan di berbagai DBMS (Database Management System).

PHP mendukung penggunaan database sebagai pendukung aplikasi. Berbagai DBMS yang bisa terintegrasi dengan PHP diantaranya MySQL, PostgreSQL, mSQL, Oracle, dbm, filpro, Hyperware, Informix, Interbase and Sybase databases dan lain-lain. Dan dapat juga dengan menggunakan Open Database connectivity Standard (ODBC) sehingga bisa digunakan untuk produk dari Microsoft dan yang mendukung koneksi ODBC.

3. Dibangun dengan kepustakaan yang memadai untuk berbagai penggunaan web.

Banyaknya doveloper yang menggunakan PHP sebagai bahasa pemrograman yang digunakan, maka PHP sendiri mendukung kepustakaan yang lengkap misalnya penggunaan pengaturan gambar dengan ekstensi GIF, JPG yang diperkecil atau diperbesar dari bentuk aslinya, pembuatan dokumen PDF, ekspor dan impor dokument EXCEL dan lain-lain

4. Harga yang murah karena sifatnya open source.

Karena sifatnya open source (gratis) maka pengguna bisa bebas memakai maupun mendownload pengembangan produk PHP berbagai versi, misalnya di http://www.php.net

5. Mudah dipelajari dan digunakan

Kode program dari PHP juga merupakan atau didasarkan pada bahasa pemrograman yang lain misalnya bahasa C, Perl atau Java, sehingga denggan mempunyai atau mengetahui bahasa pemrograman tersebut secara otomatis akan mudah menggunakan bahasa pemrograman PHP.

6. Mudah diaplikasikan di beberapa sistem operasi.

PHP merupakan bahasa pemrograman yang dapat digunakan di berbagai sistem operasi, misalnya Windows, Unix, Linux, FreeBSD. Sehingga tidak perlu merubah kode program jika digunakan lintas sistem operasi.

7. Kebebasan pemakaian kode program

Pengembangan aplikasi dengan menggunakan PHP bisa juga digunakan untuk hasil aplikasi yang gratis maupun digunakan untuk hasil aplikasi yang berbayar (diperjual belikan) meskipun bahasa pemrograman PHP sendiri adalah open source (gratis).

Penggunaan Kode Program PHP

Penggunaan kode program PHP dalam yang akan diterapkan di bahasa pemrograman konsep penulisannya :
  • diawali dengan tag  <?php atau <?
  • diakhiri dengan tag ?>
  • pada setiap akhiran dari penulisan kode program di PHP diakhiri dengan semicolon (;) / titik koma.

Ada beberapa konsep penulisan dari tag php diantaranya :

Kode singkat. (Short Style)

Contoh : <? echo”Latihan PHP”; ?>

Kode ini merupakan kode standar yang digunakan oleh para pengembang yang menggunakan php atau biasa disebut dengan SGML (Standard Generalized Markup Language). Penggunaan kode ini biasanya juga disebut dengan tag pendek (Short Tag)

Kode dengan XML (XML Style)

Contoh : <?php echo”Latihan PHP”; ?>

Penggunaan tag ini dapat digunakan dengan dokumen XML (Extensible Markup language). Dan tag ini juga sering digunakan untuk menghindari kode erro jika server tidak mendukung shot tag.

Bentuk SCRIPT (SCRIPT Style)

Contoh :

<SCRIPT LANGUAGE=’php’> echo “Latihan php”; </SCRIPT>

Penggunaan tag kode program ini digunakan jika pengembangan menerapkan di dalam JavaScript atau VBScript, dan bentuk bisa diterapkan di HTML jika tag yang lain tidak mendukung.

Bentuk ASP (ASP Style)

Contoh : <% echo “Latihan php”; %>

Tag ini berbeda dengan tag-tag yang lain, tag ini digunakan untuk penerapan di bahasa pemrograman ASP (Active Server Page). Dan ini dapat digunakan dengan mengaktifkan pengaturan asp_tags.

Konsep Algoritma Pemrograman

Konsep Algoritma Pemrograman


Konsep Algoritma Pemrograman

Sebelum belajar algoritma pemrograman, akan lebih baik kita pahami terlebih dahulu langkahlangkah pembuatan suatu program. Terdapat beberapa langkah umum dalam pembuatan suatu program yaitu:
  1. Mendefinisikan masalah
  2. Mencari solusinya
  3. Menentukan algoritma
  4. Menulis program
  5. Menguji program
  6. Mendokumentasikan program
  7. Merawat program
  8. Mendefinisikan masalah

Langkah yang pertama dilakukan adalah mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program.

1. Mencari solusi

Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi.

2. Menentukan algoritma

Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan algoritma yang sesuai dan efisien untuk masalah yang dihadapi.

3. Menulis program

Penulisan program bisa dilakukan dengan menggunakan bahasa pemrograman yang dikuasai dan memiliki kompabilitas dengan perangkat keras yang akan menggunakan program tersebut.

4. Menguji program

Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program yang dibuat sudah layak untuk digunakan.

5. Mendokumentasikan program

Penulisan dokumentasi yang biasanya dilupakan oleh pemrogram menjadi sangat penting saat akan dilakukan perubahan pada program yang dibuat. penulisan program ini dapat dilakukan dengan menulis komentar pada source code tentang kegunaannya (variabel, parameter, procedur, fungsi).

6. Merawat program

Program yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug yang belum diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah pengguna program.

Dari penjelasan diatas, dapat kita peroleh kesimpulan bahwa pembelajaran algoritma pemrograman adalah bagian dari langkah-langkah pembuatan program.

Algoritma

Algoritma yaitu kumpulan langkah-langkah / steps untuk menyelesaikan masalah menggunakan komputer (program komputer) dengan syarat tertentu. Adapun syarat-syaratnya adalah sebagai berikut :
  • Setiap langkah harus DEFINITE (pasti, tertentu), dalam algoritma terdapat instruksiinstruksi yang jelas dan tidak ambigu.
  • Minimum mempunyai 1 output (input boleh tidak ada)
  • Harus ada stoping criteria (bisa berhenti).

Algoritma juga mempunyai beberapa jenis yaitu :
  1. Sequence, instruksi dikerjakan berurutan (sekuensial).
  2. Selection, instruksi dikerjakan bila kreteria tertentu terpenuhi.
  3. Iteration, instruksi dikerjakan selama memenuhi kondisi tertentu.
  4. Concurrent, mengerjakan banyak instruksi secara bersama. 

Pengenalan Pemrograman Berorientasi Obyek (OOP)

Pengenalan Pemrograman Berorientasi Obyek (OOP)


OOP/PBO merupakan paradigma pemrograman yang popular saat ini yang telah menggantikan teknik pemrograman berbasis prosedur. Object Oriented Programing yang berarti pula Pemrograman Beorientasi Objek sudah ditemukan sekitar tahun 1960 dan dikembangkan pada permulaan tahun 1970.

Pemrograman Berorientasi Objek (Object Oriented Programming/OOP) merupakan pemrograman yang berorientasikan kepada objek, dimana semua data dan fungsi dibungkus dalam class-class atau object-object. Setiap object dapat menerima pesan, memproses data, mengirim, menyimpan dan memanipulasi data. Beberapa object berinteraksi dengan saling memberikan informasi satu terhadap yang lainnya.

Masing-masing object harus berisikan informasi mengenai dirinya sendiri dan dapat dihubungkan dengan Object yang lain. Pemrograman berorientasi objek berbeda dengan pemrograman prosedural yang hanya menggunakan satu halaman kebawah untuk mengerjakan banyak perintah atau statement. Penggunaan pemrograman berorientasi objek sangat benyak sekali, contoh : java, php, perl, c#, cobol, dan lainnya.

Dalam konsep Pemrograman Berorientasi Objek dikenal beberapa istilah umum, yaitu:

1. Attribute

Atribut dari sebuah kelas adalah variabel global yang dimiliki sebuah kelas, Atribut dapat memiliki hak akses private, public maupun protected.
Sebuah atribut yang dinyatakan sebagai private hanya dapat diakses secara langsung oleh kelas yang membungkusnya, sedangkan kelas lainnya tidak dapat mengakses atribut ini secara langsung.

Sebuah atribut yang dinyatakan sebagai public dapat diakses secara langsung oleh kelas lain di luar kelas yang membungkusnya.

Sebuah atribut yang dinyatakan sebagai protected tidak dapat diakses secara langsung oleh kelas lain di luar kelas yang membungkusnya, kecuali kelas yang mengaksesnya adalah kelas turunan dari kelas yang membungkusnya.

Atribut juga biasa disebut state/ properties/ field merupakan bagian yang dimiliki oleh sebuah class yang tidak melakukan operasi, tetapi kepadanya dilakukan operasi sehingga dapat merubah nilai dari attribute tersebut.

2. Method

Method adalah fungsi atau prosedur yang dibuat oleh seorang programmer didalam suatu Class. Dengan kata lain, method pada sebuah kelas hampir sama dengan fungsi atau prosedur pada pemrograman prosedural.

Pada sebuah method di dalam sebuah kelas juga memiliki izin akses seperti halnya atribut pada kelas, izin akses itu antara lain private, public dan protected yang memiliki arti sama pada izin akses atribut yang telah dibahas sebelumnya. Sebuah kelas boleh memiliki lebih dari satu method dengan nama yang sama asalkan memiliki parameter masukan yang berbeda sehingga kompiler atau interpreter dapat mengenali method mana yang dipanggil.

Hal ini dinamakan overloading. Di dalam sebuah kelas, terdapat juga yang disebut sebagai method atau atribut statis yang memiliki kata kunci static. Maksud dari statis di sini adalah method yang dapat diakses secara berbagi dengan semua objek lain tanpa harus membuat objek yang memiliki method statis tadi (tanpa proses new), tapi sebuah method statis mempunyai keterbatasan yaitu hanya dapat mengakses atribut atau method lain di dalam kelas yang membungkusnya yang juga bersifat statis. Method statis biasanya diimplementasikan untuk method main.

Karakteristik Method

Didalam suatu class, behavior disimpan dalam bentuk Method. Method merupakan serangkaian statemen / perintah (perintah = baris program) dalam suatu class yang menghandle task tertentu. Method merupakan hal-hal yang bisa dilakukan oleh object dari suatu class.

Method didefinisikan pada class akan tetapi dipanggil melalui object. Method memiliki peranan diantaranya :
  • Merubah nilai atribut dari suatu object,
  • Menerima informasi dari object lain, dan
  • Mengirim informasi ke obyek lain untuk melakukan suatu task (cara obyek berkomunikasi dengan obyek lain adalah dengan menggunakan method).

3. Class

Merupakan model yang berisi kumpulan attribute dan method dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh class manusia memiliki attribute berat, tinggi, usia kemudian memiliki method makan, minum, tidur. Method dalam sebuah class dapat merubah attribute yang dimiliki oleh class tersebut. Sebuah class merupakan dasar dari modularitas dan struktur dalam pemrograman berorientasi object.

Class didefinisikan sebagai sebuah blueprint(denah), atau prototipe, yang mendefiniskan variabel-variabel dan metode-metode yang umum untuk semua objek dari n jenis tertentu (n maksudnya jumlah tertentu). Sebuah kelas menyerupai sebuah struktur yang merupakan tipe data sendiri, misalkan tipe data titik yang terdiri dari koordinat x dan y. 

Bahasa Java telah menggunakan sebuah kelas untuk menyatakan tipe data titik karena bahasa pemrograman Java merupakan bahasa pemrograman berorientasi objek murni sehingga tidak mengenal struktur, melainkan mengenal apa yang disebut dengan kelas.

4. Object

Merupakan perwujudan dari class, setiap object akan mempunyai attribute dan method yang dimiliki oleh class-nya, contohnya: amir, ahmad, yani merupakan object dari class manusia. Setiap object dapat berinteraksi dengan object lainnya meskipun berasal dari class yang berbeda.

Definisi dan Gambaran Umum Object

Object merupakan sesuatu yang memiliki identitas (nama), pada umumnya juga memiliki data tentang dirinya maupun object lain dan mempunyai kemampuan untuk melakukan sesuatu dan bisa bekerja sama dengan objek lainnya. Pada dasarnya semua benda yang ada di dunia dapat dianggap sebagai sebuah object. Rumah, mobil, sepeda motor, meja, dan komputer merupakan contoh-contoh object yang ada di dunia nyata. Object adalah implementasi dari class. Secara sederhananya, dapat dikatakan terdiri dari properti (atribut) dan method.

Pemahaman singkatnya :
  • Objek merupakan sebuah objek khusus yang digunakan untuk mengakses anggota objek (atribut atau method) dari dalam objek itu sendiri.
  • Apabila terdapat variabel lain yang memiliki nama yang sama dengan nama atribut di dalam objek, “this” dapat digunakan untuk merujuk ke atribut objek.

Karakteristik Object

Setiap object memiliki dua karakteristik yang utama, yaitu atribut dan behavior. Atribut merupakan status object dan behavior merupakan tingkah laku dari object tersebut.

Konsep-konsep dalam OOP/PBO :

1. Abstraction

Adalah suatu cara untuk melihat suatu object dalam bentuk yang lebih sederhana. Sebagai contoh kita tidak melihat sebuah mobil sebagai ribuan komponen elektronik, sistem mekanik dengan empat buah ban, jok, stir kemudi dan sebagainya. Dengan Abstraction, suatu sistem yang kompleks dapat dipandang sebagai kumpulan subsistem-subsistem yang lebih sederhana, seperti halnya mobil merupakan suatu sistem yang terdiri atas berbagai subsistem, seperti subsistem kemudi, subsistem pengereman dan sebagainya.

Abstraksi merupakan kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari “pelaku” abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan.
Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.

2. Encapsulation

Merupakan suatu mekanisme untuk menyembunyikan atau memproteksi suatu proses dari kemungkinan interferensi atau penyalahgunaan dari luar sistem dan sekaligus menyederhanakan penggunaan sistem tersebut.

Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak. Hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.

3. Inheritance

Merupakan konsep mewariskan attribute dan method yang dimiliki oleh sebuah class kepada class turunannya. Dengan konsep ini class yang dibuat cukup mendefinisikan attribute dan method yang spesifik didalamnya, sedangkan attribute dan method yang lebih umum akan didapatkan dari class yang menjadi induknya.

Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada.Objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)

4. Polymorphism

Merupakan konsep yang memungkinkan digunakannya suatu interface yang sama untuk memerintah suatu object agar melakukan suatu tindakan yang mungkin secara prinsip sama tetapi secara proses berbeda.

Model data berorientasi objek disebut dapat memberi fleksibilitas yang lebih, kemudahan mengubah program dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya selain itu pendekatan OOP lebih mudah dikembangkan dan dirawat.

Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan, dengan metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim.

Pengenalan Pemrograman Desktop

Pengenalan Pemrograman Desktop


Apa Itu Desktop Progamming ?

Pemrograman desktop dibagi 3 yaitu .Net, Java dan Delphi. Bahasa pemrograman .Net yaitu Visual Basic (VB), C++ dan C sharp. Sedangkan pemrograman web dibagi 3 yaitu PHP, ASP dan HTML. Dan untuk pemrograman mobile yang digunakan adalah J2ME.
Tiap pemrograman memiliki kelebihan dan kekurangan masing-masing. Kelebihan pemrograman desktop yaitu tidak perlu online dalam menjalankannya, sedangkan kekurangannya yaitu harus menginstal programnya atau memakan space hardisk. Untuk pemrograman web mempunyai kelebihan yaitu tidak perlu menginstal program ( cukup browsing di internet ) tetapi kekurangannya yaitu harus online. Pemrograman mobile kelebihannya yaitu praktis ( dapat dijalankan dimana saja ) sedangkan kekurangannya yaitu tampilan kecil dan fitur kurang lengkap.

PEMROGRAMAN DESKTOP

1. NET

NET merupakan sebuah bahasa pemrograman yang memiliki ruang lingkup besar dan kompleks. Net dikembangkan oleh Microsoft sebagai sistem untuk mengembangkan aplikasi perangkat lunak.NET Framework dirancang Microsoft dengan terkait pengembangan bahasa-terutama C # dan Visual Basic-untuk mengatasi berbagai masalah yang dialami para pengembang perangkat lunak Windows dan user. Kelebihan .Net yaitu memungkinkan kita membuat aplikasi windows base yang di launch melalui Internet Explorer sehingga kita dapat memanfaatkan rich window component untuk aplikasi web sedangkan kekurangannya boros memori.

Bahasa pemrograman .Net yaitu Visual Basic (VB), C++ dan C sharp (C #):
Microsoft Visual Basic.NET adalah sebuah alat untuk mengembangkan dan membangun aplikasi yang bergerak di atas sistem .Net Framework, dengan menggunakan bahasa basic. Microsoft Visual Basic (sering disingkat sebagai VB) merupakan sebuah bahasa pemrograman yang bersifat event driven dan menawarkan Integrated Development Environment (IDE) visual untuk membuat program aplikasi berbasis sistem operasi Microsoft Windows dengan menggunakan model pemrograman Common Object Model (COM).
C++ dikembangkan di Bell Labs (Bjarne Stroustrup) pada awal tahun 1970-an . C++ merupakan bahasa pemrograman yang memiliki sifat oop.
C# (dibaca: C sharp) merupakan sebuah bahasa pemrograman yang berorientasi obyek yang dikembangkan oleh Microsoft sebagai bagian dari inisiatif kerangka .Net Framework.

2. JAVA

Java’ adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Dikembangkan oleh sun microsystem dan diterbitkan tahun 1995. Fitur pada Java yaitu Java virtual machine (jvm), garbage collection, code security. Kelebihan dari Java adalah multiplatform, perpustakaan kelas yang lengkap, bergaya C++, pengumpulan sampah otomatis. Kekurangan Java adalah tulis sekali, perbaiki di mana saja, mudah didekompilasi, penggunaan memori yang banyak.

3. DELPHI

DELPHI adalah sebuah perangkat lunak (bahasa pemrograman) untuk membuat program / aplikasi komputer berbasis windows. Bahasa pemograman berbasis objek, artinya semua komponen yang ada merupakan objek-objek. Ciri sebuah objek adalah memiliki nama, properti dan method/procedure. Komponen-komponen yang ada tidak hanya berupa teks (yang sebenarnya program kecil) tetapi muncul berupa gambar-gambar. 

Keuntungan dari DELPHI yaitu komunitas pengguna yang besar pada usenet maupun web, dapat mengkompilasi menjadi single executable, memudahkan distribusi dan meminimalisir masalah yang terkait dengan versioning, banyaknya dukungan dari pihak ketiga terhadap VCL (biasanya tersedia berikut source codenya) ataupun tools pendukung lainnya (dokumentasi, tool debugging), optimasi kompiler yang cukup cepat, mendukung multiple platform dari source code yang sama. 

Kekurangan dari DELPHI adalah partial single vendor lock-in (Borland dapat menetapkan standar bahasa, kompatibilitas yang harus mengikutinya), terbatasnya kamampuan portabilitas antar-platform OS (sebelum ada kylix), akses pada platform dan library pihak ketiga membutuhkan file-file header yang diterjemahkan ke dalam bahasa pascal, dokumentasi atas platform dan teknik-teknik yang menyertainya sulit ditemukan dalam bahasa pascal (contoh akses COM dan Win32).

Pengenalan Pemodelan Perangkat Lunak

Pengenalan Pemodelan Perangkat Lunak

Pemodelan dalam suatu rekayasa perangkat lunak merupakan suatu hal yang dilakukan di tahapan awal. Di dalam suatu rekayasa dalam perangkat lunak sebenarnya masih memungkinkan tanpa melakukan suatu pemodelan. Namun hal itu tidak dapat lagi dilakukan dalam suatu industri perangkat lunak. Pemodelan delam perangkat lunak merupakan suatu yang harus dikerjakan di bagian awal dari rekayasa, dan pemodelan ini akan mempengaruhi perkerjaan-pekerjaan dalam rekayasa perangkat lunak tersebut.

Di dalam suatu industri dikenal berbagai macam proses, demikian juga halnya dengan industri perangkat lunak. Perbedaan proses yang digunakan akan menguraikan aktivitas-aktivitas proses dalam cara-cara yang berlainan. Perusahaan yang berbeda menggunakan proses yang berbeda untuk menghasilkan produk yang sama. Tipe produk yang berbeda mungkin dihasilkan oleh sebuah perusahaan dengan menggunakan proses yang berbeda. Namun beberapa proses lebih cocok dari lainnya untuk beberapa tipe aplikasi. Jika proses yang salah digunakan akan mengurangi kualitas kegunaan produk yang dikembangkan.

Pada rekayasa perangkat lunak, banyak model yang telah dikembangkan untuk membantu proses pengembangan perangkat lunak. Model-model ini pada umumnya mengacu pada model proses pengembangan sistem yang disebut System Development Life Cycle (SDLC) seperti terlihat pada gambar dibawah ini,


Setiap model yang dikembangkan mempunyai karakteristik sendiri. Namun secara umum ada persamaannya, yaitu :
  1. Kebutuhan terhadap definisi masalah yang jelas. Input utama dari setiap model pengembangan perangkat lunak adalah pendefinisian masalah yang jelas. Semakin jelas akan semakin baik karena akan memudahkan dalam penyelesaian masalah. Oleh karena itu pemahaman masalah merupakan bagian penting dari model pengembangan perangkat lunak.
  2. Tahapan-tahapan pengembangan yang teratur. Meskipun model-model pengembangan perangkat lunak memiliki pola yang berbeda-beda, biasanya model-model tersebut mengikuti pola umum analysis – design – coding – testing – maintenance.
  3. Stakeholder berperan sangat penting dalam keseluruhan tahapan pengembangan. Stakeholder dalam rekayasa perangkat lunak dapat berupa pengguna, pemilik, pengembang, pemrogram dan orang-orang yang terlibat dalam rekayasa perangkat lunak tersebut.
  4. Dokumentasi merupakan bagian penting dari pengembangan perangkat lunak. Masing-masing tahapan dalam model biasanya menghasilkan sejumlah tulisan, diagram, gambar atau bentuk-bentuk lain yang harus didokumentasi dan merupakan bagian tak terpisahkan dari perangkat lunak yang dihasilkan.
  5. Keluaran dari proses pengembangan perangkat lunak harus bernilai ekonomis. Nilai dari sebuah perangkat lunak sebenarnya agak susah dirupiah- kan. Namun efek dari penggunaan perangkat lunak yang telah dikembangkan haruslah memberi nilai tambah bagi organisasi. Hal ini dapat Setiap model yang dikembangkan mempunyai karakteristik sendiri-sendiri.

Model proses perangkat lunak masih menjadi object penelitian, tapi sekarang ada banyak model umum atau paradigma yang berbeda dari pengembangan perangkat lunak, antara lain:

A. Waterfall Model

Sebuah pendekatan pengembangan perangkat lunak sistematik dan sekuensial. Disebut juga “Classic Life Cycle”. Disebut waterfall (berarti air terjun) karena memang diagram tahapan prosesnya mirip dengan air terjun yang bertingkat, berikut diagram tahapannya :


Aktivitas Waterfall Model
  • Requirements analysis and definition : mengumpulkan kebutuhan secara lengkap kemudian dianalisis dan didefinisikan kebutuhan yang hasrus dipenuhi oleh program yang akan dibangun.
  • System and software design : desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.
  • Implementation and unit testing : desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji.
  • Integration and system testing : penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).
  • Operation and maintenance : mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.
Keunggulan dari waterfall:
  1. Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
  2. Dokumen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
Kekurangan dari waterfall:
  1. Perubahan sulit dilakukan karena sifatnya yang kaku.
  2. Karena sifat kakunya, model ini cocok ketika kebutuhan dikumpulkan secara lengkap sehingga perubahan bisa ditekan sekecil mungkin. Tapi pada kenyataannya jarang sekali konsumen/pengguna yang bisa memberikan kebutuhan secara lengkap, perubahan kebutuhan adalah sesuatu yang wajar terjadi.
  3. Waterfall pada umumnya digunakan untuk rekayasa sistem yang besar dimana proyek dikerjakan di beberapa tempat berbeda, dan dibagi menjadi beberapa bagian sub-proyek.

B. Spiral Model



Proses digambarkan sebagai spiral. Setiap loop mewakili satu fase dari software process. Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya. Setiap Loop dibagi menjadi beberapa sektor :

  1. Objective settings (menentukan tujuan): menentukan tujuan dari fase yang ditentukan. Batasan-batasan pada proses dan produk sudah diketahui. Perencanaan sudah disiapkan. Resiko dari proyek sudah diketahui. Alternatif strategi sudah disiapkan berdasarkan resiko-resiko yang diketahui, dan sudah direncanakan.
  2. Risk assessment and reduction (Penanganan dan pengurangan resiko): setiap resiko dianalisis secara detil pada sektor ini. Langkahlangkah penanganan dilakukan, misalnya membuat prototype untuk mengetahui ketidakcocokan kebutuhan.
  3. Development and Validation (Pembangunan dan pengujian): Setelah evaluasi resiko, maka model pengembangan sistem dipilih. Misalnya jika resiko user interface dominan, maka membuat prototype User Interface. Jika bagian keamanan yang bermasalah, maka menggunakan model formal dengan perhitungan matematis, dan jika masalahnya adalah integrasi sistem model waterfall lebih cocok.
  4. Planning: Proyek dievaluasi atau ditinjau-ulang dan diputuskan untuk terus ke fase loop selanjutnya atau tidak. Jika melanjutkan ke fase berikutnya rencana untuk loop selanjutnya.

Pembagian sektor tidak bisa saja dikembangkan seperti pada pembagian sektor berikut pada model variasi spiral di bawah ini:



  • Customer communication: membangun komunikasi yang baik dengan pengguna/customer.
  • Planning: mendefinisikan sesumber, batas waktu, informasi-informasi lain seputar proyek
  • Risk analysis: identifikasi resiko managemen dan teknis
  • Engineering: pembangunan contoh-contoh aplikasi, misalnya prototype
  • Construction and release : pembangunan, test, install dan support.
  • Customer evaluation: mendapatkan feedback dari pengguna berdasarkan evaluasi PL
Pada model spiral, resiko sangat dipertimbangkan. Resiko adalah sesuatu yang mungkin mengakibatkan kesalahan. Model spiral merupakan pendekatan yang realistik untuk PL berskala besar. Pengguna dan pembangun bisa memahami dengan baik software yang dibangun karena setiap kemajuan yang dicapai selama proses dapat diamati dengan baik. Namun demikian, waktu yang cukup panjang mungkin bukan pilihan bagi pengguna, karena waktu yang lama sama dengan biaya yang lebih besar.

C. Model Rapid Aplication Development (RAD)

Rapid Aplication Development (RAD) adalah sebuah model proses perkembangan software sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier di mana perkembangan cepat dicapai dengan menggunakan pendekatan kontruksi berbasis komponen. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembangan menciptakan “sistem fungsional yang utuh” dalam periode waktu yang sangat pendek (kira-kira 60 sampai 90 hari). Karena dipakai terutama pada aplikasi sistem konstruksi, pendekatan RAD melingkupi fase – fase sebagai berikut :

1. Bussiness modeling

Aliran informasi di antara fungsi – fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan – pertanyaan berikut : informasi apa yang mengendalikan proses bisnis? Informasi apa yang di munculkan? Siapa yang memunculkanya? Ke mana informasi itu pergi? Siapa yang memprosesnya?

2. Data modeling

Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modelling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (disebut atribut) masing–masing objek diidentifikasi dan hubungan antara objek – objek tersebut didefinisikan.

3. Prosess modeling
Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus, atau mendapatkan kembali sebuah objek data.

4. Aplication generation

RAD mengasumsikan pemakaian teknik generasi ke empat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD lebih banyak memproses kerja untuk memkai lagi komponen program yang ada ( pada saat memungkinkan) atau menciptakan komponen yang bisa dipakai lagi (bila perlu). Pada semua kasus, alat – alat bantu otomatis dipakai untuk memfasilitasi konstruksi perangkat lunak.

5. Testing and turnover

Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus di uji dan semua interface harus dilatih secara penuh.

Keunggulan model RAD adalah :
  1. Setiap fungsi mayor dapat dimodulkan dalam waktu tertentu kurang dari 3 bulan dan dapat dibicarakan oleh tim RAD yang terpisah dan kemudian diintegrasikan sehingga waktunya lebih efisien
  2. RAD mengikuti tahap pengembangan sistem seperti umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuat dari awal lagi dan waktu yang lebih singkat
Kekurangan model RAD adalah :
  1. Bagi proyek yang besar tetapi berskala, RAD memerlukan sumber daya manusia yang memadai untuk menciptakan jumlah tim RAD yang baik.
  2. RAD menuntut pengembangan dan pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada, proyek RAD akan gagal.

D. Prototyping Model


Kadang-kadang klien hanya memberikan beberapa kebutuhan umum software tanpa detil input, proses atau detil output. Di lain waktu mungkin dimana tim pembangun (developer) tidak yakin terhadap efisiensi dari algoritma yang digunakan, tingkat adaptasi terhadap sistem operasi atau rancangan form user interface. Ketika situasi seperti ini terjadi model prototyping sangat membantu proses pembangunan software.

Proses pada model prototyping yang digambarkan pada gambar model prototyping, bisa dijelaskan sebagai berikut:
  • Pengumpulan kebutuhan: developer dan klien bertemu dan menentukan tujuan umum, kebutuhan yang diketahui dan gambaran bagian-bagian yang akan dibutuhkan berikutnya. Detil kebutuhan mungkin tidak dibicarakan disini, pada awal pengumpulan kebutuhan.
  • Perancangan : perancangan dilakukan cepat dan rancangan mewakili semua aspek software yang diketahui, dan rancangan ini menjadi dasar pembuatan prototype.
  • Evaluasi prototype: klien mengevaluasi prototype yang dibuat dan digunakan untuk memperjelas kebutuhan software.


Perulangan ketiga proses ini terus berlangsung hingga semua kebutuhan terpenuhi. Prototype-prototype dibuat untuk memuaskan kebutuhan klien dan untuk memahami kebutuhan klien lebih baik. Prototype yang dibuat dapat dimanfaatkan kembali untuk membangun software lebih cepat, namun tidak semua prototype bisa dimanfaatkan. Sekalipun prototype memudahkan komunikasi antar developer dan klien, membuat klien mendapat gambaran awal dari prototype , membantu mendapatkan kebutuhan detil lebih baik namun demikian prototype juga menimbulkan masalah:

Dalam membuat prototype banyak hal yang diabaikan seperti efisiensi, kualitas, kemudahan dipelihara/dikembangkan, dan kecocokan dengan lingkungan yang sebenarnya. Jika klien merasa cocok dengan prototype yang disajikan dan berkeras terhadap produk tersebut, maka developer harus kerja keras untuk mewujudkan produk tersebut menjadi lebih baik, sesuai kualitas yang seharusnya.
Developer biasanya melakukan kompromi dalam beberapa hal karena harus membuat prototype dalam waktu singkat. Mungkin sistem operasi yang tidak sesuai, bahasa pemrograman yang berbeda, atau algoritma yang lebih sederhana. Agar model ini bisa berjalan dengan baik, perlu disepakati bersama oleh klien dan developer bahwa prototype yang dibangun merupakan alat untuk mendefinisikan kebutuhan software.


Sumber : http://www.programming.smktarunabhakti.net/blog/2016/06/23/pemodelan-perangkat-lunak/

Pengenalan Basis Data

Pengenalan Basis Data


Kata “basis data” bisa digunakan untuk menguraikan segala sesuatu dari sekumpulan data tunggal, seperti daftar telepon. Istilah “basis data” tidak termasuk aplikasi, yang terdiri dari form dan report dimana pengguna akan saling berhubungan.

Basis data terdiri dari file-file fisik yang ditetapkan berdasarkan komputer saat menerapkan perangkat lunak basis data. Di sisi lain, suatu model basis data lebih kepada konsep dibandingkan objek fisik dan digunakan untuk menciptakan tabel di dalam basis data.

Sebuah basis data adalah tempat penyimpanan file data. Sebagai file data, suatu basis data tidak menyajikan informasi secara langsung kepada pengguna. Pengguna harus menjalankan aplikasi untuk mengakses data dari basis data dan menyajikannya dalam bentuk yang bisa dimengerti. 

Ketika bekerja dengan file-file data, suatu aplikasi harus dikodekan agar bekerja dengan struktur masing-masing file data. Biasanya, suatu basis data berisi suatu katalog yang menggunakan aplikasi untuk menentukan cara data diorganisir. Aplikasi basis data umum bisa menggunakan katalog tersebut untuk menampilkan data dengan pengguna dari basis data yang berbeda secara dinamis, tanpa terikat pada format data tertentu.

Basis data biasanya memiliki dua bagian utama. Pertama, file yang memegang basis data fisik. Kedua, perangkat lunak sistem manajemen basis data (DBMS) menggunakan aplikasi untuk mengakses data. DBMS bertanggung jawab menguatkan struktur basis data, termasuk :
  1. Memelihara hubungan antardata didalam basis data
  2. Memastikan bahwa data tersimpan secara tepat, dan menetapkan aturan hubungan data agar tidak dilanggar
  3. Pemulihan semua data dari kegagalan sistem

Ada beberapa alasan mengapa kita menggunakan sistem basis data :
  1. Untuk mengatasi kerangkapan data (redundancy data).
  2. Untuk menghindari terjadinya inkonsistensi data.
  3. Untuk mengatasi kesulitan dalam mengakses data.
  4. Untuk menyusun format yang standar dari sebuah data.

Untuk Penggunaan oleh banyak pemakai (multiple user). Sebuah database bisa dimanfaatkan sekaligus secara bersama oleh banyak pengguna (multiuser).

Untuk melakukan perlindungan dan pengamanan data. Setiap data hanya bisa diakses atau dimanipulasi oleh pihak yang diberi otoritas dengan memberikan login dan password terhadap masing-masing data.

Agar pemakai mampu menyusun suatu pandangan (view) abstraksi dari data. Hal ini bertujuan menyederhanakan interaksi antara pengguna dengan sistemnya dan database dapat mempresentasikan pandangan yang berbeda kepada para pengguna, programmer dan administratornya.

Kelebihan Sistem Basis Data antara lain : 

1. Kecepatan dan kemudahan (speed)

Dengan menggunakan basis data pengambilan informasi dapat dilakukan dengan cepat dan mudah. Basis data memiliki kemampuan dalam mengelompokan, mengurutkan bahkan perhitungan dengan metematika. Dengan perancangan yang benar, maka penyajian informasi akan dapat dilakukan dengan cepat dan mudah.

2. Kebersamaan pemakai

Sebuah basis data dapat digunakan oleh banyak user san banyak aplikasi. Untuk data-data yang diperlukan oleh banyak orang/bagian. Tidak perlu dilakukan pencatatan dimasing-masing bagian, tetapi cukup dengan satu basis data untuk dipakai bersama. Misalnya data mahasiswa dalam suatu perguruan tinggi, dibutuhkan oleh banyak bagian, diantaranya: bagian akademik, bagian keuangan, bagian kemahasiswaan, dan perpustakaan. Tidak harus semua bagian ini memiliki catatan dan semua bagian bisa mengakses data tersebut sesuai dengan keperluannya.

3. Pemusatan control data

karena cukup dengan satu basis data untuk banyak keperluan, pengontrolan terhadap data juga cukup dilakuan di satu tempat saja. Jika ada perubahan data alamat mahasiswa misalnya, maka tidak perlu kita meng-update semua data dimasing-masing bagian tetapi cukup hanya disatu basis data.

4. Efesiensi ruang penyimpanan (space)

Dengan pemakain bersama, kita tidak perlu menyediakan tempat penyimpanan diberbagai tempat, tetapi cukup satu saja sehingga ini akan menghemat ruang penyimpanan data yang dimilikioleh sebuah organisasi. Dengan teknik perancangan basis data yang benar, kita akan menyederhanakan penyimpanan sehingga tidak semua data harus disimpan.

5. Keakuratan (Accuracy)

Penerapan secara ketat aturan tipe data, domain data, keunikan data, hubungan antara data, dan lain-lain, dapat menekan keakuratan dalam pemasukan/penyimpanan data.

6. Ketersediaan (availability)

Dengan basis data kita dapat mem-backup data, memilah-milah data mana yang masih diperlukan dan data mana yang perlu kita simpan ke tempat lain. Hal ini mengingat pertumbuhan transaksi suatu organisasi dari waktu ke waktu membutuhkan media penyimpanan yang semakin besar.

7. Keamanan (Security)

Kebanyakan DBMS dilengkapi dengan fasilitas manajemen pengguna diberikan hak akses yang berbeda-beda sesuai dengan pengguna dan posisinya. Basis data bisa diberikan passwordnya untuk membatasi orang yang mengaksesnya.

8. Kemudahan dalam pembuatan program aplikasi baru

Pengguna basis data merupakan bagian dari perkembangan teknologi. Dengan adanya basis data pembuatan aplikasi bisa memanfaatkan kemampuan dari DBMS, sehingga pembuatan aplikasi tidak perlu mengurusi penyimpanan data, tetapi cukup mengatur interface untuk pengguna.

9. Pemakaian secara langsung

Basis data memiliki fasilitas untuk melihat datanya secara langsung dengan tool yang disediakan oleh DBMS. Untuk melihat data, langsung ke table ataupun menggunakan query. Biasanya yang menggunakan fasilitas ini adalah user yang sudah ahli, atau database administrator.

10. Kebebasan data (Data Independence)

Jika sebuah program telah selesai dibuat, dan ternyata ada perubahan isi/struktur data. Maka dengan basis data, perubahan ini hanya perlu dilakukan pada level DBMS tanpa harus membongkar kembali program aplikasinya.

11. User view

Basis data penyediaan pandangan yang berbeda-beda untuk tiap-tiap pengguna. Misalnya kita memiliki data-data dari perusahaan yang bergerak dibidang retail. Data yang ada berupa data barang, penjualan, dan pembelian. Ada beberapa jenis pengguna yang memerlukan informasi terkait dengan data perusahaan tresebut. Mereka adalah pelanggan, kasir, bagian gudang, bagian akutansi dan manajer.

Tidak semua data boleh diakses oleh semua pengguna. Misalnya kasir dia hanya boleh berhak melihat informasi nama barang dan harga jualnya. Sementara itu dia berhak untuk memasukan data penjualan . berbeda dengan pelanggan yang hanya melihat data keberadaan barang dan harga jual tetapi tidak berhak memasukan atau merubah data. Sementara itu bagian akutansi berhak melihat keuntungan dari tiap-tiap barang untuk menganalisa data akutansinya.Basis data mampu memberikan layanan organisasi seperti ini.

Kekurangan Sistem Basis Data antara lain :

1. Lebih Mahal

Sistem basis data membutuhkan sumber daya yang tinggi, terlebih untuk melakukan perawatan secara berkala.

2. Proses back up cukup memakan waktu.

Sistem basis data mencakup banyak file, sehingga jika dilakukan back up akan menghabiskan waktu.

3. Bila ada akses yang tidak benar, kerusakan dapat terjadi.

Kesalahan dalam mengakses bisa menyebabkan berbagai masalah, terutama oleh sembarang pengguna.

4. Sistem lebih rumit, sehingga memerlukan tenaga spesial.

Sistem basis data sangat kompleks, tidak sembarang orang bisa menanganinya. Terutama dengan berbagai macam resiko, sehingga hanya orang ahli yang hanya bisa menanganinya.

Sistem Basis Data

Pengertian basis data sudah saya uraikan diawal. Pada Sistem Basis data ini, setiap aplikasi menuju kepada satu tempat penyimpanan. sehingga, data yang didapatkan itu sama dan tidak terjadi lagi yang namanya kerangkapan data.

Perhatikan juga gambar dibawah ini :

Setelah kita lihat dari gambar, tentu saja berbeda kan antara Sistem Pemrosesan File dengan Sistem basis data? ya, dari gambar terlihat bahwa data disimpan dalam satu tempat untuk sistem basis data. akibatnya adalah adanya sebuah sistem yang lebih besar, dalam gambar disebutkan adalah basis data universitas.

Contoh Penggunaan basis data dalam dunia bisnis yaitu :
  • Bank : Pengelolaan data nasabah, accounting, Dll
  • Universitas : Pengelolaan data Mahasiswa, alumni dan akademik


Sumber :