Sabtu, 24 Februari 2018

Pengantar Rekayasa Perangkat Lunak

A. Definisi Perangkat Lunak

Perangkat lunak adalah sekumpulan item atau objek yang membentuk konfigurasi yang mencakup program, dokumen dan data. Program komputer, prosedur, dan kemungkinan terkait dokumentasi dan data yang terkait dengan pengoperasian dari sistem komputer.

B. Apa Rekayasa Perangkat Lunak dan Perancangan PL itu? 

Rekayasa Perangkat Lunak adalah pembentukan dan prinsip-prinsip rekayasa yang tepat untuk mendapatkan perangkat lunak yang ekonomis,dapat dipercaya dan bekerja efisien pada mesin sesungguhnya.
Perancangan perangkat lunak adalah disiplin manajerial dan teknis yang berkaitan dengan pembuatan dan pemeliharaan produk perangkat lunak secara sistematis, termasuk pengembangan dan modifikasinya, yang dilakukan pada waktu yang tepat dan dengan mempertimbangkan faktor biaya.

C. Ukuran kualitas Perangkat Lunak


  • Maintainability, harus dapat dengan mudah dirubah sesuai dengan perubahan kebutuhan pengguna

  • Dependability, harus dapat dipercaya (trustworthy) sehingga pengguna dapat menggantungkan sepenuhnya proses bisnis mereka

  • Eficiency, harus esien dan tidak memakai resources yang tinggi

  • Usability, PL harus dapat digunakan(usable) oleh penggunanya dalam memenuhi kebutuhan pengguna.

D. Jenis - jenis Aplikasi Perangkat Lunak

  • System Software 
  • Application Software
  • Embedded Software
  • Engineering/Scientific Software
  • Product Software
  • Web Application
  • AI Software
E. Dokumen Perangkat Lunak

  • Software Project Management Plan (SPMP)

  • Software Requirement Specification (SRS)

  • Software Design Description (SDD)

  • Software Test Plan (STP)

  • Software Test Description (STD)

  • Software Test Result (STR)

  • Software Version

  • User Guide / User Manual
F. Pengembangan Perangkat Lunak

Proses dimana persoalan/kebutuhan pemakai diterjemahkan menjadi produk perangkat lunak melalui suatu rangkaian aktivitas tertentu sesuai model proses, metode, dan alat bantu yang digunakan.


Model proses pengembangan perangkat lunak yaitu cara atau strategi bagaimana perangkat lunak dibuat sedemikian rupa sehingga produk perangkat lunak tersebut dapat diwujudkan.

Beberapa model proses pengembangan perangkat lunak diantaranya:

  • Waterfall
  • Incremental
  • Prototyping Model
  • Spiral Model
  • Rational Unified Process (RUP)
  • Extreme Programming (XP)

Sabtu, 17 Februari 2018

Cloud Computing VS Grid Computing


Cloud computing

Merupakan sistem komputasi kolaboratif yang berbasis internet. Melalui sistem ini, para pengguna komputer dapat berbagi semua sumber dayanya. Mulai dari software, hardware, termasuk pusat data (server). Sehingga para pengguna komputer dapat menggunakan source tanpa perlu membeli, memiliki, atau menginstall program di dalam komputer yang membuat berkurangnya memori penyimpanan dalam komputer serta mempengaruhi kinerja komputer. Namun cukup dengan menyewa sumber daya (lunak atau peranti keras) dari server inti yang dipilih sesuai dengan kebutuhan (pay per use).

Keuntungan Cloud Computing:

(1) Keuntungan bagi para pelaku bisnis adalah minimalisasi biaya investasi infrastruktur publik sehingga bisnis bisa lebih terfokus pada aspek fungsionalitasnya
(2) Bagi application developer, layanan PaaS memungkinkan pengembangan dan implementasi aplikasi dengan cepat sehingga meningkatkan produktivitas
(3) Bagi para praktisi yang bergerak di industri TI, hal ini berarti terbukanya pasar baru bagi industri jasa pengembangan teknologi informasi
(4) Bagi pebisnis di bidang infrastruktur, hal ini merupakan peluang yang besar karena dengan meningkatnya penggunaan layanan SaaS ini akan meningkatkan penggunaaan bandwidth internet
(5) Integrasi aplikasi dengan berbagai perangkat.


Kekurangan Cloud Computing :

(1) service level, artinya kemungkinan service performance yang kurang konsisten dari provider. Inkonsistensi cloud provider ini meliputi, data protection dan data recovery
(2) privacy, yang berarti adanya resiko data user akan diakses oleh orang lain karena hosting dilakukan secara bersama-sama
(3) compliance, yang mengacu pada resiko adanya penyimpangan level compliance dari provider terhadap regulasi yang diterapkan oleh user
(4) data ownership mengacu pada resiko kehilangan kepemilikan data begitu data disimpan dalam cloud
(5) data mobility, yang mengacu pada kemungkinan share data antar cloud service dan cara memperoleh kembali data jika suatu saat user melakukan proses terminasi terhadap layanan cloud Computing.


Contoh Implementasi Cloud Computing :

1.    Salesforce.com
Salesforce.com adalah aplikasi Customer Relationship Management (CRM) berbasis software as services, dimana kita bisa mengakses aplikasi bisnis: kontak, produk, sales tracking, dashboard, dll.
2.    Yahoo dan Gmail
 
Grid Computing

Grid Computing adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar.
Kemampuan komputasi grid adalah setara dengan mainframe karena semua komponennya (grid) di-cluster. Namun tidak seperti mainframe dan server SMP (symmetric multiprocessing) yang besar, grid bersifat terbuka (open system technologies) yang bisa mencakup system kecil-kecil dengan processor Intel dan OS Linux sehingga biaya jadi jauh lebih murah.

Contoh Grid Computing :

Oracle 

Oracle telah membangun software infrastruktur komputasi grid yang mampu membagi dan menyeimbangkan semua beban (workload) di antara server-server yang berbeda, dan me-manage server-server yang berbeda itu sebagai satu kesatuan sistem.
Adapun produk grid dari Oracle adalah:
Storage Grid: Automatic Storage Management (ASM)
Database Grid: Real Application Server (RAC)
Application Grid: Oracle Streams
Grid Control: Enterprise Manager Grid Control


Physical Data Model



Physical Data Model (PDM) adalah presentasi suatu implementasi database secara spesifik dari suatu Logical Data Model (LDM) yang merupakan konsumsi komputer yang mencakup detail penyimpanan data di komputer yang direpresentasikan dalam bentuk record format, record ordering dan access path. Dan menjelaskan bagaimana data itu disimpan di dalam media penyimpanan yang digunakan secara fisik. Sasarannya adalah menciptakan perancangan untuk penyimpanan data yang menyediakan kinerja yang baik dan memastikan integritas, keamanan, serta kemampuan untuk dipulihkan.

Perancangan PDM bertujuan untuk meningkatkan efisiensi dalam pemprosesan data yang mencakup :

1.      Relasi yang sudah ternormalisasi, juga mencakup perhitungan kasar volume data yang akan disimpan.
2.      Definisi dan deskripsi masing-masing atribut pada setiap entitas yang ada.
3.   Deskripsi tentang kapan dan dimana data digunakan, meliputi langkah-langkah pemasukan data, pemanggilan, penghapusan serta pembaruan.
4.      Kebutuhan akan waktu dalam mem-backup, recovery dan pemeliharaan integritas data.
5.      Deskripsi teknologi (sistem database, DBMS) yang digunakan untuk mengimplementasikan data.

Dalam membangun database secara fisik membutuhkan pilihan kritis yang akan berimasukan  pada integritas dan kinerja aplikasi yaitu:

1.    Pemilihan format (Tipe (Tipe data) dengan mempertimbangkan Penggunaan Ruang, niai, perbaikan integritas dan  manipulasi data;
2.      Pengelompokan atribut;
3.      Perekaman, pengorganisasian dan pembaharuan serta recovery;
4.      Pemilihan struktur database
5.      Penyiapan strategi penggunaan query

Physical Data Model (PDM) menjelaskan cara komputer memandang data, bahwa data tersimpan pada lokasi fisik sebagai file-file yang terpisah. Model data fisik terbagi menjadi 2 yaitu :

1. Penyimpanan berurutan
    yaitu organisasi atau penyusunan data di suatu medium penyimpanan yang terdiri dari satu record mengikuti satu record lain dalam suatu urutan tertentu. Misalnya, record pegawai disusun dalam urutan nomor pegawai. Saat penyimpanan berurutan digunakan, data pertama harus diproses pertama, data kedua diproses kedua, dan seterusnya sampai akhir file itu ditemukan. Contoh media penyimpanan ini adalah pita magnetik (magnetic tape).

2. Penyimpanan akses lansung
    yaitu suatu cara mengorganisasikan data yang memungkinkan record-record ditulis dan dibaca tanpa pencarian secara berurutan. Unit perangkat keras yang memungkinkan hal ini disebut Direct Access  Storage Device (DASD). DASD memiliki mekanisme membaca dan menulis yang dapat diarahkan ke lokasi manapun dalam media penyimpanan. Yang paling populer adalah piringan magnetik (magnetic disc).
 

Konseptual Database



Model Konseptual basis data
Perancangan model konseptual basis data dalam sebuah organisasi menjadi tugas dari Administrator basis data. Model konseptual merupakan kombinasi beberapa cara untuk memproses data untuk beberapa aplikasi. Model konseptual tidak tergantung pada aplikasi individual, DBMS digunakan, Hardware komputer dan model fisiknya.
Pada perancangan model konseptual basis data ini penekanan dilakukan pada struktur data dan relasi antara file. Pada perancangan model konseptual ini dapat dilakukan dengan menggunakan model data relasional.
Teknik Model Data Realsional ada 2 yaitu :
· Teknik Normalisasi
· Teknik Entity Relationship

1.     Teknik Normalisasi

Proses normalisasi adalah proses pengelompokan data elemen menjadi tabel-tabel yang menunjukkan entity dan relasinya. Pada proses normalisasi dilakukan pengujian pada beberapa kondisi apakah ada kesulitan pada saatmenambah/menyisipkan, menghapus, mengubah dan mengakses pada suatu
basis data. Bila terdapat kesulitan pada pengujian tersebut maka perlu dipecahkan relasi pada beberapa tabel lagi atau dengan kata lain perancangan basis data belum optimal.

Field (Atribut) Kunci
Setiap file selalu terdapat kunci dari file berupa field atau satu set field yang dapat mewakili record. Misalnya Nomor Pokok Mahasiswa (NPM) merupakan kunci dari tabel mahasiswa suatu Perguruan Tinggi, setiap pencarian cukup dengan menyebut nomor mahasiswa tersebut maka dapat diketahui identitas mahasiswa lainnya seperti nama, alamat dan atribut lainnya.
Nomor Pegawai (NIP) bagi data dosen, NIK untuk data karyawan, Kode_Kuliah untuk data Mata kuliah, dan lain sebagainya.

Jenis Atribut Pada Entitas
Atribut yang melekat pada suatu entitas ada bermacam tipe seperti yang akan
dijelaskan sebagai berikut :

a.    Atribut Sederhana
Atribut sederhana merupakan atribut atomik yang tidak dapat lagi dipecah menjadi atribut lain. Contoh Entitas mahasiswa mempunyai atribut sederhana berupa NIM, Nama Mahasiswa .

b.    Atribut Komposit
atribut komposit merupakan atribut yang masih dapat dipecah menjadi sub-sub atribut yang masing-masing memiliki arti tesendiri.
Contoh : entitas mahasiswa mempunyai atribut alamat. Alamat disini dapat
dipecah menjadi sub atribut seperti nama_kota, kode_pos.

c.    Atribut Bernilai Tunggal:
yaitu atribut yang hanya memiliki satu nilai untuk setiap barisnya. Contoh : entitas mahasiswa mempunyai atribut NPM, Nama, Alamat isi data dari atribut ini hanya boleh diisi dengan 1 data. Setiap mahasiswa hanya memiliki 1 NPM, 1 Nama, 1 Alamat.

d.    Atribut Bernilai Jamak
 yaitu atribut yang boleh memiliki lebih dari satu nilai untuk setiap barisnya.
Contoh : entitas mahasiswa mempunyai atribut Hobby isi data dari atribut ini
boleh lebih dari 1 data. Mahasiswa Roshita memiliki NPM 13402021
beralamat di Jalan Garuda 32 Yogyakarta memiliki Hobby (Olah Raga,
Nyanyi, Masak dan Nonton TV).

e.    Atribut Harus Bernilai
 yaitu atribut yang harus memiliki nilai data untuk setiap barisnya. Biasanya atribut seperti ini sudah ditetapkan dalam perancangan tabelnya sehingga jika dalam pengisian dokosongi akan terjadi kesalahan.
Contoh : entitas mahasiswa mempunyai atribut NPM dan Nama_Mahasiswa
yang harus diisi datanya, sebab jika tidak diisi akan terjadi kekacauan dalam
basis data.

f.     Atribut Bernilai Null
 yaitu atribut yang boleh tidak memiliki nilai data untuk setiap barisnya.
Contoh : entitas mahasiswa mempunyai atribut Alamat, Hobby, Nama_Pacar
yang boleh untuk tidak diisi tetapi kalau diisi akan lebih baik,

g.    Atribut Turunan: yaitu atribut yang nilai-nilainya diperoleh dari pengolahan
atau dapat diturunkan dari atribut lain yang berkaitan.
Contoh : entitas mahasiswa mempunyai atribut IPK yang diperoleh dari pengolahan atribut Nilai pada tabel (entitas Nilai) dengan kode NIM mahasiswa yang sama dan diproses sehingga menghasilkan IPK untuk mahasiswa yang bersangkutan..

Kunci Kandidat (Candidate Key)
Kunci kandidat adalah satu atribut atau satu set atribut yang mengidentifikasikan secara unik suatu kejadian spesifik dari entity. Satu set atribut menyatakan secara tidak langsung dimana anda tidak dapat membuang beberapa atribut dalam set tanpa merusak kepemilikan yang unik.
Jika kunci kandidat berisi lebih dari satu atribut, maka biasanya disebut sebagai composite key (kunci campuran atau gabungan).
Contoh :
File mahasiswa berisi :

·        Nomor Pegawai
·        No KTP
·        Nama Pegawai
·        Tempat Lahir
·        Tanggal Lahir
·        Alamat
·        Kota
Kunci kandidat dalam file mahasiswa di atas dapat dipilih sbb :
·        Nomor Pegawai
·        No KTP
·        Nama (tidak dapat dipakai karena sering seseorang punya nama yang
sama dengan orang lain)
·        Nama + Tanggal Lahir (mungkin bisa dipakai sebagai kunci karena
kemungkinan orang dengan nama yang sama dan tanggal lahir yang
sama cukup kecil)
·        Nama + Tempat Lahir + Tanggal Lahir (dapat dipakai sebagai kunci)
·        Alamat dan Kota (bukan kunci)

Kunci Primer (Primery Key)
Primary key adalah satu atribut atau satu set minimal atribut yang tidak hanya
mengidentifikasi secara unik suatu kekadian spesifik, tetapi juga dapat mewakili setiap kejadian dari suatu entity.
Setiap kunci kandidat dapat menjadi kunci primer tetapi sebaliknya sebaiknya
dipilih satu saja yang dapat mewakili secara menyeluruh terhadap entity yang
ada.
Contoh :

·        No Pegawai (karena sifatnya yang unik maka tidak mungkin pegawai
mempunyai Nomor Pegawai yang sama).
·        No KTP (Bisa dipakai misalnya untuk pegawai yang baru belum
mendapatkan nomor pegawai maka bisa digunakan nomor KTP untuk
sementara sebagai kunci primer.
·        Kode_Kuliah (bisa dipakai untuk data mata kuliah karena kode mata
kuliah bersifat unik untuk tiap mata kuliah)

Kunci Alternatif (Alternate Key)
Kunci alternatif adalah kunci kandidat yang tidak dipakai sebagai kunci primer.
Kunci alternatif ini sering digunakan untuk kunci pengurutan misalnya dalam
laporan.

Kunci Tamu (Foreign Key)
Kunci tamu adalah satu atribut aatau satu set minimal atribut yang melengkapi satu hubungan yang menunjukkan ke induknya. kunci tamu ditempatkan pada entity anak dan sama dengan kunci primer induk yang direlasikan. Hubungan antara entity induk dengan anak adalah hubungan satu lawan banyak (one to many relationship)
Contoh :
File Transaksi Gaji Bulanan
·        No Pegawai
·        No Bukti
·        Tanggal
·        Jumlah Gaji Kotor
·        Jumlah Potongan
·        Jumlah Gaji Bersih
·        Jumlah Pajak
·        Kunci Tamu
·        No Pegawai (karena Gaji berhubungan dengan file Pegawai)
·        Kunci Primer
·        No Bukti (karena unik dan mewakili entity)
·        Kunci Kandidat
·        No Pegawai + Nomor Bukti (Unik dan menunjukkan hubungan dengan
·        file Pegawai)
Dalam hubungan dua buah file yang punya relationship banyak lawan banyak
maka terdapat 2 kunci tamu pada file konektornya.

Contoh :
File Proyek berisi atribut
·        No Proyek
·        Tgl Mulai
·        Tgl Selesai
·        Anggaran
File Pegawai Berisi Atribut
·        No Pegawai
·        Nama
Hubungan antara file tersebut adalah banyak lawan banyak yaitu satu
pegawai mengerjakan lebih dari 1 proyek dan 1 proyek dikerjakan oleh
beberapa pegawai maka untuk menunjukkan hubungan tersebut dipakai file
konektor yang berisi kunci tamu dari kedua file.
File Proyek Pegawai berisi atribut :
·        No Proyek
·        No Pegawai
·        Jam Kerja
Maka pada file proyek pegawai terdapat kunci tamu yaitu nomor proyek dan
no pegawai. Kedua atribut tersebut juga merupakan kunci primer.