Selasa, 10 Mei 2016

Pengertian Rekayasa perangkat lunak



BAB 1
PENGANTAR RPL

Rekayasa perangkat lunak merupakan sebuah disiplin ilmu yang bertujuan mengembangkan sistem perangkat lunak yang efektif dari segi biaya. Perangkat lunak bersifat abstrak dan tidak nyata. Rekayasa perangkat lunak masih merupakan disiplin yang relatif muda. Istilah rekayasa perangkat lunak pertama kali diajukan pada tahun 1968.

1.1       PENGERTIAN RPL

Banyak orang menyamakan istilah perangkat lunak dengan program komputer. Sesungguhnya pandangan ini terlalu dangkal, perangkat lunak tidak hanya mencakup program, tetapi juga semua dokumentasi dan konfigurasi data yang berhubungan (Sommerville, 2003). Rekayasa perangkat lunak adalah disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pemeliharaan.
Di sisi lain terdapat istilah yang juga tidak kalah populer adalah computer science atau ilmu komputer. Pada intinya computer science berhubungan dengan teori dan metode yang mendasari sistem komputer dan perangkat lunak. Sedangkan rekayasa perangkat lunak berhubungan dengan masalah-masalah praktis dalam memproduksi perangkat lunak. Pengetahuan tetang computer science sangat penting bagi perekayasa perangkat lunak sama seperti pengetahuan tentang fisika sangat penting bagi teknik kelistrikan.
Istilah lain yang juga populer adalah rekayasa sistem atau rekayasa sistem berbasis komputer. Rekayasa sistem berhubungan dengan pengembangan perangkat keras, perancangan kebijakan dan proses, dan penyebaran sistem sebagaimana pada rekayasa perangkat lunak. Rekayasa sistem merupakan disiplin yang lebih tua dari rekayasa perangkat lunak.
1.1.1 Product
Saat ini perangkat lunak memiliki dua peran. Peran pertama berfungsi sebagai sebuah produk dan peran kedua sebagai kendaraan yang mengantarkan sebuah produk (Pressman, 2002). Sebagai produk  perangkat lunak mengantarkan potensi perhitungan yang dibangun oleh perangkat lunak komputer. Tidak peduli apakah perangkat lunak ada dalam telepon seluler, dalam mainframe komputer. Perangkat lunak merupakan transformer informasi yang memproduksi, mengatur, memperoleh, memodifikasi, menampilkan atau menyebarkan informasi dimana pekerjaan ini dapat menjadi sederhana suatu bit tunggal atau sekompleks simulasi multimedia. Sebagai kendaraan yang dipakai untuk  mengantarkan produk, perangkat lunak berlaku sebagai dasar untuk kontrol komputer (sistem operasi), komunikasi informasi (jaringan komputer).
Untuk memperoleh pemahaman tentang perangkat lunak serta pemahaman tentang rekayasa perangkat lunak penting juga untuk mengetahui karakteristik yang membuat perangkat lunak berbeda dengan dengan produk lain yang dihasilkan oleh manusia. Ketika perangkat lunak dibuat proses kreatif manusia (analisis, desain, konstruksi dan pengujian) diterjemahkan ke dalam bentuk fisik.
1.1.2 Process
Proses perangkat lunak merupakan serangkaian kegiatan dan hasil-hasil relevan yang menghasilkan perangkat lunak. Kegiatan-kegiatan ini sebagian besar dilakukan oleh perekayasa perangkat lunak. Ada empat kegiatan proses dasar perangkat lunak:
1)    Spesifikasi perangkat lunak, fungsional perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
2)    Pengembangan perangkat lunak, perangkat lunak yang memenuhi spesifikasi tersebut harus dipenuhi.
3)    Validasi perangkat lunak, perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan.
4)      Evolusi perangkat lunak, perangkat lunak harus dikembangkan untuk memenuhi kebutuhan pelanggan yang berubah-ubah.
Proses perangkat lunak yang berbeda mengatur kegiatan ini dengan cara yang berbeda dan dijelaskan dengan tingkat kerincian yang berbeda pula. Waktu kegiatan bervariasi, sebagaimana hasilnya.
Proses perangkat lunak sangat rumit dan seperti semua proses intelektual, bergantung pada penilaian manusia. Karena dibutuhkan penilaian dan kreatifitas keberhasilan usaha untuk mengotomasi proses perangkat lunak menjadi terbatas. Satu alasan mengapa otomasi proses memiliki cakupan terbatas adalah adanya keragaman proses perangkat lunak. Tidak ada proses yang ideal dan organisasi berbeda yang mengembangkan pendekatan yang benar-benar berbeda dalam pengembangan perangkat lunak.

1.1.2.1 Model Proses Perangkat Lunak
Model proses perangkat lunak merupakan deksripsi yang disederhanakan dari proses perangkat lunak yang dipresentasikan dengan sudut pandang tertentu. Model sesuai sifatnya, merupakan penyederhanaan sehingga model proses bisa mencakup kegiatan yang merupakan bagian dari proses perangkat lunak, produk perangkat lunak, peran orang yang terlibat pada rekayasa perangkat lunak.
1)     Model Air Terjun (Waterfall)
Model ini dikenal sebagai model air terjun atau siklus hidup pengembangan perangkat lunak. Model ini dapat dilihat pada Gambar 1.1. Tahap-tahap utama dari model ini memetakan kegiatan-kegiatan pengembangan dasar, yaitu:
1)    Analisis dan Definisi persyaratan. Pelayanan, batasan dan tujuan sistem ditentukan melalui konsultasi dengan user sistem. Persyaratan ini kemudian didefinisikan secara rinci dan berfungsi sebagai spesifikasi sistem.
2)    Perancangan sistem dan perangkat lunak. Proses perancangan sistem membagi persyaratan dalam sistem perangkat keras atau perangkat lunak. Kegiatan ini menentukan arsitektur sistem secara keseluruhan. Perancangan perangkat lunak melibatkan identifikasi dan deskripsi abstraksi sistem perangkat lunak yang mendasar dan hubungan-hubungannya.
3)    Implementasi dan pengujian unit. Pada tahap ini, perancangan perangkat lunak direalisasikan sebagai serangkaian program atau unit program. Pengujian unit melibatkan verifikasi bahwa setiap unit telah memenuhi spesifikasi.
4)    Integrasi dan pengujian sistem. Unit program atau program individual diintegrasikan dan diuji sebagai sistem yang lengkap untuk menjamin bahwa persyaratan sistem telah dipenuhi. Setelah pengujian sistem, perangkat lunak dikirim kepada pelanggan.
5)    Operasi dan pemeliharaan. Biasanya merupakan fase siklus hidup yang paling lama. Sistem diinstall dan dipakai. Pemeliharaan mencakup koreksi dan berbagai error yang tidak ditemukan pada tahap-tahap terdahulu, perbaikan atas implementasi unit sistem dan pengembangan pelayanan system, sementara persyaratan-persyaratan baru ditambahkan.
Gambar 1.1 Model Waterfall
2)     Model Sekuensial Linier
Gambar 1.2a menggambarkan sekuensial linier untuk rekayasa perangkat lunak, yang sering disebut juga dengan “siklus kehidupan klasik” atau “model air terjun.”
Gambar 1.2a Fase lingkaran pemecahan masalah (Raccoon, 1995)
Gambar 1.2b Fase-fase di dalam fase lingkaran pemecahan masalah (Raccoon, 1995)

Gambar 1.3 Model sekuensial linier
Sekuensial linier mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian, dan pemeliharaan. Dimodelkan setelah siklus rekayasa konvensional, model sekuensial linier melingkupi aktivitas-aktivitas sebagai berikut:


a)  Rekayasa dan Pemodelan Sistem/Informasi
Karena perangkat lunak selalu merupakan bagian dari sebuah sistem (bisbis) yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke perangkat lunak tersebut. Pandangan sistem ini penting ketika perangkat lunak harus berhubungan dengan elemen-elemen yang lain seperti perangkat lunak, manusia, dan database. Rekayasa dan analisis sistem menyangkut pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil analisis serta desain tingkat puncak. Rekayasa informasi mencakup juga pengumpulan kebutuhan pada tingkat bisnis strategis dan tingkat area bisnis.
b)  Analisis Kebutuhan Perangkat Lunak
Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami sifat program yang dibangun, perekayasa perangkat lunak (analis) harus memahami domain informasi, tingkah laku, unjuk kerja, dan antar-muka (interface) yang diperlukan. Kebutuhan baik untuk sistem maupun perangkat lunak di dokumentasikan dan dilihat lagi dengan pelanggan.
c)  Desain
Desain perangkat lunak sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda; struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) procedural. Proses desain menerjemahkan syarat/kebutuhan ke dalam sebuah representasi perengkat lunak yang dapat diperkirakan demi kualitas sebelum dimulai pemunculan kode. Sebagaimana persyaratan, desain didokumentasikan dan menjadi bagian dari konfigurasi perangkat lunak.
d)  Generasi Kode
Desain harus diterjemahkan ke dalam bentuk mesin yang bisa dibaca. Langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis.
e)  Pengujian
Sekali kode dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal perangkat lunak, memastikan bahwa semua pernyataan sudah diuji, dan pada eksternal fungsional – yaitu mengarahkan pengujian untuk menemukan kesalahan-kesalahan dan memastikan bahwa input yang akan memberikan hasil actual yang sesuai dengan hasil yang dibutuhkan.
f)   Pemeliharaan
Perangkat lunak akan mengalami perubahan setelah disampaikan kepada pelanggan (perkecualian yang mungkin adalah perangkat lunak yang dilekatkan). Perubahan akan terjadi karena kesalahan-kesalahan ditentukan, karena perangkat lunak harus disesuaikan untuk mengakomodasi perubahan-perubahan di dalam lingkungan eksternalnya (contohnya perubahan yang dibutuhkan sebagai akibat dari perangkat peripheral atau sistem operasi yang baru), atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk kerja. Pemeliharaan perangkat lunak mengaplikasikan lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi.
Model sekuensial linier adalah paradigma rekayasa perangkat lunak yang paling luas dipakai dan paling tua. Tetapi kritik dari paradigma tersebut telah menyebabkan dukungan aktif untuk mempertanyakan kehandalannya (Hanna, 1995). Masalah-masalah yang kadang–kadang terjadi ketika model sekuensial linier diaplikasikan adalah:
a)      Jarang sekali proyek nyata mengikuti aliran sekuensial yang dianjurkan oleh model. Meskipun model linier bias mengakomodasi iterasi, model itu melakukannya dengan cara tidak langsung. Sebagai hasilnya, perubahan-perubahan dapat menyebabkan keraguan pada saat tim proyek berjalan.
b)      Kadang-kadang sulit bagi pelanggan untuk menyatakan semua kebutuhannya secara ekplisit. Model linier sekuensial memerlukan hal ini dan mengalami kesulitan untuk mengakomodasi ketidakpastian natural yang ada pada bagian awal beberapa proyek.
c)      Pelanggan harus bersikap sabar. Sebuah versi kerja dari program-program itu tidak akan diperoleh sampai akhir waktu proyek dilalui. Sebuah kesalahan besar, jika tidak terdeteksi sampai program yang bekerja tersebut dikaji ulang, bias menjadi petaka.
d)      Pengembang sering melakukan penundaan yang tidak perlu. Di dalam analisis yang menarik tentang proyek actual, (Bradac, 1994) mendapatkan bahwa sifat alami dari siklus kehidupan klasik membawa kepada blocking state dimana banyak anggota tim proyek harus menunggu tim yang lain untuk melengkapi tugas yang saling memiliki ketergantungan. Kenyataannya, waktu yang dipakai untuk menunggu bisa mengurangi waktu untuk usaha produktif! Blocking state cenderung menjadi lebih lazim pada awal dan akhir sebuah proses sekuensial linier.
Masing-masing dari masalah tersebut bersifat riil. Tetapi paradigm siklus kehidupan klasik memiliki tempat yang terbatas namun penting di dalam kerja rekayasa perangkat lunak. Paradigma itu memberikan template dimana metode analisis, desain, pengkodean, pengujian, dan pemeliharaan bisa dilakukan. Siklus kehidupan klasik tetap menjadi model bagi rekayasa perangkat lunak yang paling luas dipakai. Sekalipun memiliki kelemahan, secara signifikan dia lebih baik daripada pendekatan yang sifatnya sembrono kepada pengembangan perangkat lunak.
3)     Model Prototipe
Sering seorang pelanggan mendifinisikan serangkaian sasaran umum bagi perangkat lunak, tetapi tidak melakukan mengidentifikasi kebutuhan output, pemrosesan, ataupun input detail. Pada kasus yang lain, pengembang mungkin tidak memiliki kepastian terhadap efisiensi algoritme, kemampuan penyesuaian dari sebuah system operasi, atau bentuk-bentuk yang harus dilakukan oleh interaksi manusia dengan mesin. Dalam hal ini, serta pada banyak situasi yang lain, prototyping paradigm mungkin menawarkan pendekatan yang terbaik.
Prototyping paradigma (Gambar 1.4) dimulai dengan pengumpulan kebutuhan. Pengembang dan pelanggan bertemu dan mendefinisikan obyektif keseluruhan dari perangkat lunak, mengidentifikasi segala kebutuhan yang diketahui, dan area garis besar dimana definisi lebih jauh merupakan keharusan kemudian dilakukan “perancangan kilat”. Perancangan kilat berfokus pada penyajian dari aspek –aspek perangkat lunak tersebut yang akan Nampak bagi pelanggan/pemakai (contohnya pendekatan input dan format output). Perancangan kilat membawa kepada konstruksi sebuah prototype. Prototipe tersebut dievaluasi oleh pelanggan/pemakai dan dipakai untuk menyaring kebutuhan pengembangan perangkat lunak. Iterasi terjadi pada saat protipe disetel untuk memenuhi kebutuhan pelanggan, dan pada saat yang sama memungkinkan pengembang untuk secara lebih baik memahami apa yang harus dilakukannya.
Mendengarkan Pelanggan
Uji Pelanggan-Mengendalikan Market
Membangun Memperbaiki Market

Gambar 1.4 Prototipe Paradigma
Secara ideal prototype berfungsi sebagai sebuah mekanisme untuk mengidentifikasi kebutuhan perangkat lunak. Bila prototype yang sedang bekerja dibangun, pengembang harus mempergunakan fragmen-fragmen program yang ada atau mengaplikasikan alat-alat bantu (contohnya report generator, window manager, dll) yang memungkinkan program yang bekerja untuk dimunculkan secara cepat.
Tetapi apa yang kita lakukan dengan prototype tersebut pada saat dia sudah melayani usulan yang digambarkan di atas? (Brooks, 1975) memberikan jawabannya:
Pada sebagian besar proyek, system pertama yang dibangun baru saja bisa dipergunakan. Sistem mungkin terlalu pelan, terlalu besar, janggal di dalam pemakaian, atau bahkan ketiganya. Tidak ada alternatif lain selain mulai lagi, tidak dengan halus tetapi dengan lebih halus lagi, dan membangun sebuah versi yang dirancang kembali di mana masalah-masalah tersebut bisa diselesaikan … Ketika sebuah konsep system baru atau teknologi baru dipergunakan, seseorang harus membangun sebuah system sebagai pembuangan, bahkan untuk perencanaan terbaik sekalipun, tidak akan mudah untuk membuatnya benar pada pertama kalinya. Dengan demikian, pertanyaan manajemen tidaklah untuk membangun sebuah system contoh dan untuk membuangnya. Anda akan melakukannya. Satu-satunya pertanyaan adalah apakah akan merencanakan lebih dulu untuk membangun sebuah pembuangan, atau menjanjikan untuk menyampaikan pembuangan tersebut kepada pelanggan …………..
Prototipe bisa berfungsi sebagai “system yang pertama”. Brooks setuju bila kita membuangnya. Tetapi mungkin ini merupakan pandangan yang ideal. Memang benar bahwa baik pelanggan maupun pengembang menyukai paradigma prototype. Para pemakai merasa enak dengan system aktual, sedangkan pengembang bisa membangunnya dengan segera. Tetapi prototyping bisa juga menjadi masalah  karena alasan-alasan sebagai berikut:
a)   Pelanggan melihat apa yang tampak sebagai versi perangkat lunak yang bekerja tanpa melihat bahwa prototype itu dijalin bersama-sama “dengan permen karet dan baling wire”, tanpa melihat bahwa di dalam permintaan untuk membuatnya bekerja, kita belum mencantumkan kualitas perangkat lunak secara keseluruhan atau kemampuan pemeliharaan untuk jangka waktu yang panjang. Ketika diberi informasi bahwa produk harus dibangun lagi agar tingkat kualitas yang tinggi bisa dijaga, pelanggan akan meneriakkan kecurangan dan permintaan agar dipakai “beberapa campuran” untuk membuat protipe menjadi sebuah produk yang bekerja yang lebih sering terjadi, sehingga manajemen pengembangan perangkat lunak menjadi penuh dengan belas kasihan.
b)   Pengembang sering membuat kompromi-kompromi implementasi untuk membuat prototype bekerja dengan cepat. Sistem operasi atau bahasa pemrograman yang tidak sesuai bisa dipakai secara sederhana karena mungkin diperoleh dan dikenal; algoritma yang tidak efisien secara sederhana bisa diimplementasikan untuk mendemontrasikan kemampuan. Setelah selang waktu tertentu, pengembang mungkin mengenali pilihan-pilihan tersebut dan melupakan semua alasan mengapa mereka tidak cocok. Pilihan yang kurang ideal telah menjadi bagian integral dari sebuah system.
Meskipun berbagai masalah bisa terjadi, prototype bisa menjadi paradigm yang efektif bagi rekayasa perangkat lunak. Kuncinya adalah mmendefinisikan aturan-aturan main pada saat awal; yaitu pelanggan dan pengembang keduanya harus setuju bahwa prototype dibangun untuk berfungsi sebagai mekanisme pendefinisian kebutuhan. Prototipe kemudian disingkirkan (paling tidak sebagian), dan perangkat lunak actual direkayasa dengan tertuju kepada kualitas dan kemampuan pemeliharaan.
4)     Pengembangan Evolusioner
Pengembangan evolusioner berdasarkan ide untuk mengembangkan implementasi awal, memperlihatkannya kepada user untuk dikomentari, dan memperbaikinya versi demi versi sampai sistem yang memenuhi persyaratan diperoleh. Model pengembangan evolusioner dapat dilihat pada Gambar 1.5.
Gambar 1.5 Model Evolusioner

5)     Pengembangan Sistem Formal
Pengembangan sistem formal merupakan pendekatan terhadap pengembangan perangkat lunak yang memiliki kesamaan dengan model air terjun (waterfall). Tetapi proses pengembangannya didasarkan pada transformasi matematis dari spesifikasi sistem menjadi program yang dapat dijalankan. Model pengembangan sistem formal dapat dilihat pada Gambar 1.6.
Gambar 1.6 Model Sistem Formal
6)     Pengembangan Berorientasi Pemakaian Ulang
Pada pengembangan perangkat lunak yang besar, terjadi pemakaian ulang. Hal ini biasanya terjadi secara informal ketika orang yang bekerja di proyek tersebut mengetahui adanya rancangan atau kode yang mirip dengan yang dibutuhkan. Mereka mencari rancangan atau kode ini, memodifikasinya sebagaimana dibutuhkan, dan menggabungkannya dalam sistem. Model pengembangan berorientasi pemakaian ulang dapat dilihat pada Gambar 1.7.
Gambar 1.7 Model Pengembangan Berorientasi Pemakaian Ulang

1.2 KEGUNAAN RPL
Perangkat lunak kini sudah menjadi kekuatan yang menentukan. Perangkat lunak menjadi mesin yang mengendalikan pengambilan keputusan di dalam dunia bisnis. Berfungsi sebagai dasar dari semua bentuk pelayanan serta penelitian keilmuan modern. Perangkat lunak dilekatkan pada semua sistem, seperti transportasi, medis, telekomunikasi, militer, proses industri, hiburan, produk kantor dan sebagainya. Program-program perangkat lunak sudah tersebar secara luas, dan masyarakat memandangnya sebagai kenyataan teknologi dalam kehidupan.
1.3 PERKEMBANGAN RPL
Selama masa awal era komputer, perangkat lunak dilihat hanya sebagai suatu permenungan. Pemrograman komputer menjadi seni di mana di situ terdapat banyak metode yang sistematis. Perkembangan perangkat lunak sebenarnya tidak dapat diatur sampai terjadi jadwal yang bergeser, atau biaya yang mulai melonjak. Para pemrogram kemudian mulai berusaha untuk membuat semuanya benar kembali.
Era kedua evolusi sistem komputer  melingkupi decade pertengahan tahun 1960 dan 1970-an. Sistem multiprogram dan multiprosesor memperkenalkan konsep baru interkasi manusia dan komputer. Konsep ini membuka sebuah dunia aplikasi yang baru serta tingkat kecanggihan perangkat lunak dan perangkat keras yang baru pula. Sistem real-time dapat mengumpulkan, menganalisis, serta mengubah data dari banyak sumber sehingga proses pengontrolan dan penghasilan output tidak lagi berada dalam skala menit, melainkan detik. Kemajuan dalam penyimpanan online membawa ke generasi pertama sistem manajemen database.

Tabel 1.1 perkembangan RPL
Tahun-Tahun Awal
Era Kedua
Era Ketiga
Era Keempat
-     Orientasi Batch
-     Distribusi terbatas
-     Perangkat lunak customisasi
-     Multiuser
-     Real-time
-     Database
-     Perangkat lunak produk
-    Sistem terdistribusi
-    Embedded intelligence
-    Perangkat keras rendah biaya
-     System desktop bertenaga kuat
-     Teknologi berorientasi objek
-     Sistem pakar
-     Jarigan syaraf tiruan
-     Komputasi parallel
-     Komputer jaringan


1.4 DESKRIPSI RPL
Secara umum rekayasa perangkat lunak memakai pendekatan yang sistematis dan terorganisir terhadap pekerjaan karena cara ini seringkali paling efektif untuk menghasilkan perangkat lunak. Rekayasa perangkat lunak adalah disiplin ilmu yang membahas semua aspek produksi perangkat lunak. Mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Pada definisi ini ada dua istilah kunci:
1)    Disiplin Rekayasa
Perekayasa membuat suatu alat bekerja. Mereka menerapkan teori, metode, dan alat bantu yang sesuai. Selain itu mereka juga menggunakannya dengan selektif dan selalu mencoba mencari solusi terhadap permasalahan, walaupun tidak ada teori atau metode yang mendukung. Perekayasa juga menyadari bahwa mereka harus bekerja dalam batasan organisasi dan keuangan, sehingga mereka berusaha mencari solusi dalam batasan-batasan ini.
2)    Semua Aspek Produksi Perangkat Lunak
Rekayasa perangkat lunak tidak hanya berhubungan dengan proses teknis dari pengembanga perangkat lunak, tetapi juga dengan kegiatan seperti manajemen proyek perangkat lunak dan pengembangan alat bantu, metode, dan teori untuk mendukung produksi perangkat lunak.

1. 5 KARAKTERISTIK RPL
Perangkat lunak lebih kepada logika dan bukan semata elemen fisik. Perbedaan perangkat lunak dengan perangkat keras yang mendasar adalah:
1)      Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuknya yang klasik.
2)      Perangkat lunak tidak pernah usang.
Sebagian besar perangkat lunak dibuat secara custom (pemesanan) serta tidak dapat dirakit dari komponen yang sudah ada.

1.6 KOMPONEN RPL
Bersamaan dengan perkembangan disiplin keteknikan diciptakan sekumpulan komponen perancangan standar. Komponen-komponen yang dapat digunakan lagi sudah diciptakan sehingga ahli teknik dapat benar-benar berkonsentrasi pada elemen-elemen inovatif suatu perancangan. Dalam dunia perangkat keras hal ini merupakan hal yang harus dicapai dalam skala yang luas.
Reusability meruapakan suatu cirri penting dari komponen perangkat lunak kualitas tinggi. Sebuah komponen perangkat lunak harus didesain dan diimplementasi sehingga dapat dipakai lagi pada berbagai program yang berbeda. Komponen perangkat lunak dibangun dengan bahasa pemrograman yang memiliki kosakata terbatas, sebuah tata bahasa yang dibatasi secara eksplisit. Bahasa tingkat mesin merupakan perwakilan simbolik dari serangkaian instruksi CPU. Bahasa tingkat menengah memungkinkan pengembang perangkat lunak serta program tidak bergantung pada mesin.

1. 7 APLIKASI RPL
Perangkat lunak dapat diaplikasikan ke berbagai situasi dimana serangkaian procedural (seperti algoritma) telah didefinisikan (pengecualian-pengecualian yang dapat dicatatat pada aturan ini adalah sistem pakar dan jaringan syaraf tiruan dalam aplikasi kecerdasan buatan). Kandundan informasi dan determinasi merupakan faktor penting dalam menentukan sifat aplikasi perangkat lunak.

1.8  EVALUASI
1)      Apakah yang dimaksud dengan perangkat lunak?
2)      Apakah rekayasa perangkat lunak itu?
3)      Apa perbedaan antara rekayasa perangkat lunak dan computer science?
4)      Apa perbedaan rekayasa perangkat lunak dan rekayasa sistem?
5)      Apakah yang dimaksud dengan proses perangkat lunak?
6)      Apakah model proses perangkat lunak itu?















Senin, 09 November 2015

SEJARAH KLASIFIKASI




Klasifikasi adalah suatu cara pengelompokan mahkluk hidup yang didasarkan pada ciri-ciri tertentu.

Taksonomi : ilmu yang mempelajari tentang pengelompokan / klasifikasi makhluk hidup

Tujuan Klasifikasi makhluk hidup adalah :
  • Mengelompokkan makhluk hidup berdasarkan persamaan ciri-ciri yang dimiliki 
  • Mengetahui ciri-ciri suatu jenis makhluk hidup untuk membedakannya dengan makhluk hidup dari jenis lain
  • Mengetahui hubungan kekerabatan makhluk hidup memberi nama makhluk hidup yang belum diketahui namanya atau belum memiliki nama 
Manfaat Klasifikasi bagi manusia, antara lain : 
  • Klasifikasi memudahkan kita dalam mmpelajari makhluk hidup yang sangat beraneka ragam 
  • Klasifikasi membuat kita mengetahui hubungan kekerabatan antarjenis makhluk hidup 
  • Klasifikasi memudahkan komunikasi

SEJARAH KLASIFIKASI 
  • Aristoteles (384 – 322 SM), mengelompokkan makhluk hidup menjadi dua kelompok, yaitu tumbuhan dan hewan. Tumbuhan dikelompokkan menjadi herba, semak dan pohon. Sedangkan hewan digolongkan menjadi vertebrata dan avertebrata. 
  • John Ray (1627 – 1708), merintis pengelompokkan makhluk hidup kearah grup-grup kecil. Ia telah melahirkan konsep tentang jenis dan spesies. 
  • Carolus Linnaeus (1707 – 1778), mengelompokkan makhluk hidup berdasarkan pada kesamaan struktur. Ia juga mengenalkan pada system tata nama makhluk hidup yang dikenal dengan binomial nomenklatur. Karena itu Carolus linneaus dikenal sebagaibapak Taksonomi dunia
  • R.H Whittaker pada tahun 1969 mengelompokkan makhluk hidup menjadi 5 (lima) kingdom / kerajaan, yaitu : Monera, Protista, Fungi, Plantae dan Animalia
1. Monera (bakteri dan ganggang biru) 
Makhluk hidup yang dimasukkan dalam kerajaan Monera memiliki sel prokariotik. Kelompok ini terdiri dari bakteri dan ganggang hijau biru (Cyanobacteria) 

2. Protista (ganggang dan protozoa) 
Makhluk hidup yang dimasukkan dalam kerajaan Protista rnemiliki sel eukariotik. Protista memiliki tubuh yang tersusun atas satu sel atau banyak sel tetapi tidak berdiferensiasi. Protista umumnya memiliki sifat antara hewan dan tumbuhan. Kelompok ini terdiri dari Protista menyerupai hewan (Protozoa) dan Protista menyerupai tumbuhan (ganggang), dan Protista menyerupai jamur. 

3. Fungi (jamur) 
Fungi memiliki sel eukariotik. Fungi tak dapat membuat makanannya sendiri. Cara makannya bersifat heterotrof, yaitu menyerap zat organik dari lingkungannya sehingga hidupnya bersifatparasit dan saprofit. Kelompok ini terdiri dari semua jamur, kecuali jamur lendir (Myxomycota)dan jamur air (Oomycpta)

4. Plantae (tumbuhan) 
Tumbuhan memiliki sel eukariotik. Tubuhnya terdiri dari banyak sel yang telah berdiferensiasi membentuk jaringan. Tumbuhan memiliki kloroplas sehingga dapat membuat makanannya sendiri (bersifat autotrof). Kelompok ini terdiri dari tumbuhan lumut, tumbuhan paku, tumbuhan berbiji terbuka, dan tumbuhan berbiji tertutup 

5. Animalia (hewan) 
Hewan memiliki sel eukariotik. Tubuhnya tersusun atas banyak sel .yang telah berdiferensiasi membentuk jaringan. Hewan tidak dapat membuat makanannya sendiri sehingga bersifatheterotrof. Kelompok ini terdiri dari semua hewan, yaitu hewan tidak bertulang belakang (invertebrata) dan hewan bertulang belakang (vertebrata). 



TINGKATAN TAKSON 
Dalam sistem klasifikasi, makhluk hidup dikelompokkan menjadi suatu kelompok besar kemudian kelompok besar ini dibagi menjadi kelompok-kelompok kecil sehingga pada akhirnya terbentuk kelompok-kelompok terkecil yang beranggotakan satu jenis makhluk hidup. 

Tingkatan-tingkatan pengelompokan itu disebut takson, ilmunya Taksonomi.

Semakin tinggi tingkat taksonnya :
  • Anggotanya semakin banyak 
  • Tingkat persamaannya semakin kecil 
  • Detil pengelompokkannya semakin sederhana 
  • Perbedaannya semakin banyak karena tuntutan kesamaannya sedikit 
  • Tingkat kekerabatannya semakin jauh 
Sebaliknya tingkat takson semakin rendah sifat-sifatnya kebalikan dari yang disebutkan di atas.

Tingkatan Takson :
  • Dunia/Kerajaan 
  • Divisio (untuk hewan) atau Filum  (untuk tumbuhan)
  • Kelas 
  • Ordo 
  • Suku 
  • Genus/Marga 
  • Spesies/Jenis 
1. KINGDOM
Kingdom merupakan tingkatan takson tertinggi makhluk hidup. Kebanyakan ahli Biologi sependapat bahwa makhluk hidup di dunia ni dikelompokkan menjadi 5 kingdom (diusulkan oleh Robert Whittaker tahun 1969). Kelima kingdom tersebut antara lain : Monera, Proista, Fungi, Plantae, dan Animalia.

2. FILUM/DIVISIO (KELUARGA BESAR)
 Nama filum digunakan pada dunia hewan, dan nama division digunakan pada tumbuhan. Filum atau division terdiri atas organism-organisme yang memiliki satu atau dua persamaan ciri. Nama filum tidak memiliki akhiran yang khas sedangkan nama division umumnya memiliki akhiran khas, antara lain phyta dan mycota. 

3. KELAS (CLASSIS)
 Kelompok takson yang satu tingkat lebih rendah dari filum atau divisio 

4. ORDO (BANGSA)
Setiap kelas terdiri dari beberapa ordo. Pada dunia tumbuhan, nama ordo umumnya diberi akhiran ales. 

5. FAMILI 
Famili merupakan tingkatan takson di bawah ordo. Nama famili tumbuhan biasanya diberi akhiran aceae, sedangkan untuk hewan biasanya diberi nama idea. Dalam penyebutan indonesia nama suku selalu diulang penyebutannya : kacang-kacangan , angrek-anggrekan , jahe-jahean.

6. GENUS (MARGA)
Genus adalah takson yang lebih rendah dariada famili. Nama genus terdiri atas satu kata, huruf pertama ditulis dengan huruf kapital, dan seluruh huruf dalam kata itu ditulis dengan huruf miring atau dibedakan dari huruf lainnya. 

7. SPECIES (JENIS) 
Species adalah takson yang terendah. Spesies adalah suatu kelompok organisme yang dapat melakukan perkawinan antar sesamanya untuk menghasilkan keturunan yang fertil (subur) aturan penulisannya disebut binomial nomenklatur.

TATA NAMA BINOMIAL NOMENKLATUR
Untuk memudahkan komunikasi, makhluk hidup harus diberikan nama yang unik dan dikenal di seluruh dunia. Berdasarkan kesepakatan internasional, digunakanlah metode binomial nomenklatur. Metode binominal nomenklatur artinya tata nama ganda. Disebut tata nama ganda karena pemberian nama jenis makhluk hidup selalu menggunakan dua kata (nama genus dan species) 

Aturan pemberian nama adalah sebagai berikut :
1.     Nama species terdiri atas dua kata, kata pertama merupakan nama genus, sedangkan kata kedua merupakan penunjuk spesies (epitheton specificum) 
2.     Huruf pertama nama genus ditulis huruf kapital, sedangkan huruf pertama penunjuk spesies/jenis digunakan huruf kecil
3.     Nama species menggunakan bahasa latin atau yang dilatinkan 
4.     Nama species harus ditulis berbeda dengan huruf-huruf lainnya (bisa miring, garis bawah, atau lainnya) 
5.     Jika nama species tumbuhan terdiri atas lebih dari dua kata, kata kedua dan berikutnya harus digabung atau diberi tanda penghubung. 
6.     Jika nama species hewan terdiri atas tiga kata, kata ke tiga tersebut bukan nama species, melainkan nama subspecies (anak jenis), yaitu nama takson di bawah species 
7.     Nama species juga mencantumkan inisial pemberi nama tersebut, misalnya jagung (Zea Mays L.). huruf L tersebut merupakan inisial Linnaeus.

CONTOH KLASIFIKASI
  • Kingdom : Plantae (Tumbuhan)
  • Subkingdom : Tracheophyta (Tumbuhan berpembuluh)
  • Divisio : Spermatophyta (Menghasilkan biji)
  • Sub Divisio : Antophyta (Tumbuhan berbunga)
  • Classis : Dicotyledoneae (berkeping biji dua / dikotil)
  • Sub Classis : Asteridae
  • Ordo : Gentianales
  • Family : Apocynaceae
  • Genus : Adenium
  • Species : Adenium obesum (Forssk.) Roem. & Schult )
  • Daerah : kembang kamboja ( Sembojo jawa)