Kelebihan dan Kekurangan Model Proces


1. WATERFALL/ MODEL LINEAR SEQUENTIAL

Waterfall/ Model Linear Sequential merupakan paradigma rekayasa perangkat lunak yang paling tua dan paling banyak dipakai.

  • Kelebihan Waterfall/ Model Linear Sequential :

  1. Mudah diaplikasikan
  2. Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan

  • Kekurangan Waterfall/ Model Linear Sequential :

  1. Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses
  2. Sulit untuk mengalami perubahan kebutuhan yang diinginkan customer
  3. Customer harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap,menyelesaikan tahap awal baru bisa ke tahap selanjutnya
  4. Perubahan ditengah-tengah pengerjaan produk akan membuat bingung team work yang sedang membuat produk
  5. Adanya waktu menganggur bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya

Cocok digunakan untuk produk software yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya

2. MODEL INCREMENT

Model Increment merupakan kombinasi linear sequential model dan filosofi pengulangan dari prototyping model.

  • Kelebihan model Increment :

  1. Mampu mengakomodasi perubahan kebutuhan customer

  • Kekurangan model Increment :

  1. Hanya akan berhasil jika tidak ada staffing untuk penerapan secara menyeluruh
  2. Penambahan staf dilakukan jika hasil incremental akan dikembangkan lebih lanjut
  3. Hanya cocok untuk proyek dengan skala kecil
Cocok digunakan bila pembuat software tidak banyak/kekurangan pembuat

3. MODEL PROTOTYPING

Model Prototyping merupakan model yang dapat diterapkan pada model apapun. 
Model ini tidak memerlukan data yang lengkap dari sisi client dan banyaknya keraguan dari pembuat software karena kondisi yang belum diketahui (seberapa besar software, bagaimana sistem penerapannya).

  • Kelebihan model Prototyping :

  1. Menghemat waktu pengembangan
  2. Adanya komunikasi yang baik antara pengembang dan pelanggan
  3. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan
  4. Penerapan menjadi lebih mudah karena pemakai mengetahui apa yang diharapkannya
  5. User dapat berpartisipasi aktif dalam pengembangan sistem

  • Kekurangan model Prototyping :

  1. Proses analisis dan perancangan terlalu singkat
  2. Biasanya kurang fleksible dalam mengahadapi perubahan
  3. Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang
  4. Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien

Cocok digunakan bila pemakai hanya mendefinisikan objektif umum dari perangkat lunak tanpa merinci kebutuhan input, pemrosesan dan outputnya, sementara pengembang tidak begitu yakin akan efisiensi algoritma, adaptasi sistem operasi, atau bentuk interaksi manusia-mesin yang harus diambil.

4. MODEL SPIRAL

Model spiral merupakan model proses perangkat lunak yang memadukan wujud pengulangan dari model prototyping dengan aspek pengendalian dan sistematika dari linear sequential model.

  • Kelebihan model Spiral :

  1. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses

  • Kekurangan model Spiral :

  1. Sulit untuk meyakinkan pemakai (saat situasi kontrak) bahwa penggunaan pendekatan ini akan dapat dikendalikan
  2. Memerlukan tenaga ahli untuk memperkirakan resiko, dan harus mengandalkannya supaya sukses
  3. Belum terbukti apakah metode ini cukup efisien karena usianya yang relatif baru

Cocok digunakan untuk pengembangan sistem dan perangkat lunak skala besar.

5. V MODEL

V Model merupakan model pengembangan perangkat lunak yang didasarkan pada hubungan antara setiap fase pengembangan siklus hidup yang tercantum dalam model Waterfall yang merupakan pengembangan perangkat lunak dan fase yang terkait pengujian.

  • Kelebihan V Model :

  1. V Model sangat fleksibel. V Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamik. Akibatnya sangat mudah untuk melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan sangat mudah untukmenambahkan method dan tool baru atau menghilangkan method dan tool yang dianggap sudah obsolete.
  2. V Model dikembangkan dan di-maintain oleh publik. User dari V Model berpartisipasi dalam change control board yang memproses semua change request terhadap V Model.

  • Kekurangan V Model :

  1. V Model adalah model yang  project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
  2. V Model terlalu fleksibel dalam arti ada beberapa activity dalam V Model yang digambarkanterlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.

Cocok digunakan untuk projek yang ukuran yang kecil atau medium , model nya sama seperti waterfall tetapi yang membedakan dalam setiap proses ini, dalam proses ini memiliki akomodasi yang banyak dalam perencanaan untuk menguji dan setiap tahapannya harus di uji, setiap proses harus jelas.
Read more »

Process Models

Hallo sobat blogger,
kali ini saya akan memposting tugas dari dosen saya mengenai penjelasan dari Process Models sendiri, ini bagian ini adalah kelanjutan materi sebelumnya yaitu Software dan Software Engineering,
Langsung saja, penjelasannya, ^_^

Sebelumnya apa sih Proses itu sendiri, dan apa sih Proses dari perangkat lunak sendiri :
  • Proses : kumpulan aktifitas-aktifitas (activities), tindakan-tindakan (actions) dan tugas-tugas (tasks)  yang dilakukan ketika suatu produk (PL) dibuat. Tiap aktivitas terdiri dari beberapa tindakan, tiap tindakan terdiri dari beberapa tugas.
  • Proses perangkat lunak, Software process mendefinisikan pendekatan yang diambil untuk membuat perangkat lunak yang akan direkayasa. Rekayasa perangkat lunak juga mencakup teknologi yang mengisi proses Technical methods dan Automated tools.
  • What it is?
    • Langkah-langkah yang terprediksi sebagai road map agar penyelesaian produk perangkat lunak bisa tepat waktu dengan hasil yang berkualitas tinggi.
  • Who does it?
    • Software engineer & pihak manajemen.
  • Why is it important?
    • Karena ia menyediakan stabilitas, kontrol, dan pengaturan pada setiap aktivitas yang dilakukan.
  • What are the steps?
    • Tergantung pada produk yang dibuat?
  • What is the work product?
    • Program, dokumen dan data yang dihasilkan.
  • How do i ensure done it right?
    • Mekanisme penilaian dan perbaikan untuk menilai kematangan / maturitynya.
Definisi Proces Model

Proses Model sendiri secara umum bisa didefinisikan sebagai kumpulan aktivitas kerja, tindakan, dan tugas yang dilakukan ketika beberapa produk kerja yang akan dibuat.  Masing masing kegiatan, tindakan, dan tugas berada dalam kerangka (framework) atau model yang mendefinisikan hubugan mereka dengan proses dan dengan satu sama lain.

Seperti pada posting sebelumnya yang sudah saya bahas, kerangka proses generik untuk software engineering meliputi lima kerangka kegiatan yaitu communication,  planning,  modeling, construction,  and deploymment. Selain itu, Umbrella activities software engineering yaitu Software project tracking and control, Manajemen resiko, Asuransi kualitas software, Review teksnis, Pengukuran, Manajemen konfigurasi software, Usabilitas Manajemen, Produksi dan persiapan produk kerja yang diterapkan di seluruh proses. 

Software Process Framework

Salah satu aspek penting dalam proses software adalah aliran proses (process flow), aliran proses (process flow) menggambarkan bagaimana framework yang terdiri dari aktivitas (activity), tindakan (action) dan tugas (task)  terjadi dalam setiap aktivitas kerangka kerja yang diselenggarakan sehubungan dengan urutan dan waktu.

Ada 4 jenis Process Flow:
  1. Linier
  2. Iterative
  3. Evolutionary
  4. Parallel
1. Linier
Melaksanakan masing-masing dari lima framework activity secara urut  dimulai dengan communication dan mencapai puncaknya dengan deployment

2. Iterative
Mengulang satu atau lebih kegiatan sebelum melanjutkan ke yang berikutnya

3. Evolutionary
Menjalankan aktivitas dengan cara melingkar. Setiap sirkuit yang melalui lima kegiatan mengarah ke versi yang lebih lengkap dari perangkat lunak

4. Parallel
Menjalankan satu atau lebih kegiatan secara paralel dengan kegiatan lain. (Contoh modelling untuk satu aspek pada software akan dijalankan secara parallel dengan construction aspek lain pada software)

Jika proyek ini jauh lebih kompleks dengan berbagai pihak, dimana masing-masing pihak memiliki sekumpulan kebutuhan yang berbeda (yang kadang bertentangan). Sehingga untuk requirements, maka aktivitas komunikasi mungkin memiliki enam tindakan yang berbeda yaitu : inception, elicitation, elaboration, negosiasi, specification, dan validation. Masing-masing tindakan Software Engineering  akan memiliki banyak tugas kerja dan sejumlah produk kerja yang berbeda.

Untuk proyek software kecil yang diminta oleh satu orang dengan sederhana, persyaratan mudah, kegiatan komunikasi dapat meliputi sedikit lebih dari panggilan telepon dengan stakeholder yang tepat. Oleh karena itu, satu-satunya tindakan yang diperlukan adalah percakapan telepon, dan kumpulan tugas (the task set).

Kumpulan tugas (the task set) adalah :
  1. Menghubungi stakeholder via telephone.
  2. Mendiskusikan kebutuhan (requirement) dan membuat catatan.
  3. Mengelola catatan menjadi ringkasan yang ditulis dalam pernyataan kebutuhan.
  4. Mengirim hasilnya ke stakeholder untuk direview dan disetujui.
Process Pattern


Process pattern mendeskripsikan process yang berhubungan dengan masalah yang dihadapi selama pengerjaan software engineering, mengidentifikasi lingkungan dimana masalah dihadapi dan menyajikan satu atau lebih solusi untuk masalah tersebut.

Macam-macam template dari process pattern:

  1. Pattern name
    • Pattern diberikan nama untuk mendeskripsikannya dalam konteks software process.
  2. Forces
    • Lingkungan dimana pattern dihadapi.
  3. Type
    • Ada 3 tipe :
      1. Stage Pattern 
        • Mendeskripsikan masalah yang berhubungan dengan framework activities untuk process.
      2. Task Pattern 
        • Mendeskripsikan masalah yang berhubungan dengan tugas kerja atau tindakan software engineering.
      3. Phase Pattern 
        • Mendefinisikan urutan framework activities yang terjadi dalam process.
  4. Initial context
    • Mendeskripsikan kondisi dimana pattern digunakan.
  5. Problem
    • Masalah khusus yang dapat diselesaikan dengan pattern.
  6. Solution
    • Mendeskripsikan bagaimana mengimplementasikan pattern dengan berhasil.
  7. Resulting context
    • Mendeskripsikan kondisi yang akan menghasilkan pattern yang telah berhasil diimplementasikan.
  8. Related patterns
    • Menyediakan list dari semua process pattern yang berhubungan langsung.
  9. Known uses and examples
    • Mengindikasikan hal khusus dimana pattern digunakan.
Penilaian dan Perbaikan Process


Sejumlah pendekatan yang berbeda untuk penilaian software proses dan perbaikan telah diusulkan selama beberapa dekade terakhir yaitu :
  • Standard CMMI Assessment Method for Process Improvement (SCAMPI)
    • Menyediakan model proses penilaian dalam lima langkah yang menggabungkan lima fase yaitu: initiating, diagnosing, establishing, acting, and learning. Metode SCAMPI mengadopsi SEI CMMl sebagai dasar untuk penilaian.
  • CMM-Berdasarkan penilaian untuk lnternal Process Improvement (CBA lPl)
    • Menyediakan teknik diagnostik untuk menilai kematangan relatif dari perangkat lunak organisasi; menggunakan SEI CMM sebagai dasar untuk penilaian.
  • SPICE (ISO/lEC15504)
    • Standar yang mendefinisikan seperangkat requirement untuk penilaian proses PL. Tujuan dari standar ini adalah untuk membantu organisasi dalam mengembangkan evaluasi, tujuan keberhasilan dari setiap proses software yang didefinisikan [lSO08].
  • ISO 9001:2000 for Software
    • Standar umum yang berlaku untuk organisasi apapun yang ingin meningkatkan kualitas produk, sistem, atau jasa yang diberikannya. Oleh karena itu, standar dapat langsung diterapkan untuk organisasi software dan perusahaan [Ant06].


Penentuan Model Proces


Jenis-Jenis Model Proses : 
  1. Sequence / Linier Model  
    • Waterfall Model
    • V-Model
  2. Incremental Process Model 
  3. Evolutionary Process Model
    • Prototyping
    • Spiral Model
  4. Concurent Model
NB: Setiap model proses mengadopsi satu atau lebih aliran proses (proces flow)

Untuk lebih lengkapnya, penjelasan dan kelebihan serta kekurangan dari macam-macam Model Process tersebut, bisa diklik link pada posting ini Kelebihan dan Kekurangan Model Proces .


Itulah pengertian dan ulasan mengenai Process Models, semoga memberikan tambahan ilmu dan manfaat bagi para pembaca sekalian. Amin, Thanks before,,, ^_^

Note : Sebelum keluar dari situs ini,tolong blog ini di follow dan berikan komentar untuk blog ini serta juga Untuk para blogger alangkah bagusnya bila kita saling bertukar informasi,demi kemajuan blog kita berdua...

Trim's... ^_^
Read more »

Software dan Software Engineering


Dalam bidang teknologi informasi sering kita mendengar kata software. Sebenarnya apa sih software itu? Pernah ada yang mengatakan kalau tanpa software, maka suatu komputer tidak dapat dioperasikan maupun digunakan. Sebuah software itu dibangun dan dirancang oleh software engineer, untuk mengetahui pengertian dan ulasan dari software dan software engineering yang detail, mari simak sedikit penjelasannya di bawah ini : 

Pengertian Software adalah sekumpulan data elektronik yang disimpan dan diatur oleh komputer, data elektronik yang disimpan oleh komputer itu dapat berupa program atau instruksi yang akan menjalankan suatu perintah. Melalui sofware atau perangkat lunak inilah suatu komputer dapat menjalankan suatu perintah.

Penjelasan software lainnya dari buku "Software Engineering A Practitioners Approach 7th Edition" yaitu : 
  • Suatu instruksi (program komputer) yang ketika dijalankan menyediakan fitur, fungsi, dan kinerja yang diinginkan.
  • Data terstruktur  yang memungkinkan program untuk memanipulasi informasi yang memadai.
  • Deskriptif informatif dalam bentuk hard copy dan virtual yang menggambarkan suatu operasi dan penggunaan program

Beberapa pertanyaan-pertanyaan yang sering diajukan mengenai software engineer :
  1. Mengapa begitu lama waktu untuk menyelesaiakan software?
  2. Mengapa biaya pengembangan software begitu tinggi?
  3. Mengapa kita tidak bisa menemukan semua kesalahan sebelum kita memberikan software untuk costumer kita?
  4. Mengapa kita menghabiskan begitu banyak waktu dan usaha untuk maintaining program yang sudah ada?
  5. Mengapa kita terus mengalami kesulitan dalam mengukur progress sebagai software yang sedang dikembangkan dan maintained?
Karakteristik sebuah Software :
  1. Software dikembangkan atau direkayasa, tidak diproduksi dalam pengertian klasik.
  2. Software tidak aus, tetapi tidak memburuk.
  3. Meskipun industri bergerak menuju berbasis komponen konstruksi, sebagian besar software terus menjadi built-kustom.

Berikut macam-macam dari domain software aplikasi :

1. System Software  
Suatu kumpulan program yang ditulis untuk melayani program lain. Contoh: compiler,  editor,  dan  file management utility, dan lain-lain.
2. Software aplikasi
Suatu  program yang berdiri sendiri yang digunakan untuk memecahkan kebutuhan yang spesifik. Contoh : point proses penjualan transaksi, real-time manufaktur proses kontrol.
3. Engineering/scientific software
Software yang digunakan untuk keperluan ilmiah yang berkisar dari ilmu astronomi sampai ilmu vulkanologi, dari analisis tegangan otomotif untuk ruang orbit, dan dari biologi molekuler untuk manufaktur otomatis.
4. Embedded Software
Suatu sistem yang digunakan untuk melaksanakan dan mengendalikan fitur dan fungsi bagi end user dan untuk sistem itu sendiri. Contoh : key pad control untuk microwave oven. 
5. Product – line software
Software yang dirancang untuk memberikan kemampuan khusus yang digunakan oleh banyak pelanggan yang berbeda. Contoh : Pengolah kata, spreadsheet, komputer grafis multimedia, hiburan, manajemen database,dan lain-lain. 
6. Web applications
Software ini sering disebut WebApps yang merupakan software yang berbasis web dan jaringan. 
7. Artificial intelligence software
Suatu software yang menggunakan algoritma non numerik untuk memecahkan masalah yang lebih kompleks. Aplikasi dalam area ini termasuk robotika, sistem pakar, pengenalan pola (gambar dan suara), jaringan saraf tiruan, teorema pembuktian, dan permainan game.

Tantangan Software baru :

1. Computing ada dimana – mana
Membuat software untuk menyediakan mesin semua ukuran untuk berkomunikasi satu sama lain melalui jaringan yang luas. 
2. Netsourcing
Arsitekturnya sederhana dan aplikasinya canggih yang kemanfaatan ditargetkan untuk pasar end user di seluruh dunia. 
3. Open source
Menyebarkan source code untuk aplikasi komputasi sehingga costumer dapat membuat modifikasi lokal dengan mudah dan terpercaya.

Masing-masing tantangan baru niscaya akan dipatuhi hukum dan memiliki efek (untuk pengusaha, software  engineers, dan end user) yang tidak bisa diprediksi saat ini. Namun, software  engineers dapat mempersiapkan diri dengan proses  instant yang lincah untuk mengakomodasi perubahan dramatis dalam teknologi dan aturan bisnis yang pasti akan datang pada dekade berikutnya.

Macam Legacy software:
  • Software harus disesuaikan untuk memenuhi kebutuhan lingkungan teknologi baru.
  • Software harus ditingkatkan untuk mengimplementasikan kebutuhan bisnis baru.
  • Software harus diperluas untuk membuatnya dapat bertukar informasi dengan banyak system modern atau database lainnya.
  • Software harus dapat di arsitektur ulang untuk membuatnya layak dalam lingkungan jaringan.

Pengertian Software engineering :

  • Menurut Roger S Pressman adalah:

  1. Pendekatan yang sistematis, berisi Perangkat  Lunak dan dapat dikuantifikasi untuk dikuantifikasi untuk pengembangan, pengoperasian, dan pemeliharaan perangkat lunak, yaitu penerapan rekayasa terhadap perangkat lunak.
  2. Studi terhadap pendekatan 1.

  • Menurut IEEE (Institute of Electrical and Electronics Engineers) adalah aplikasi sistematik, disiplin, pendekatan kuantitatif untuk pengembangan, operasi dan pemeliharaan dari software atau dapat disimpulkan sebagai teknik aplikasi untuk perangkat lunak. Intinya Software engineering berkaitan dengan pembangunan produk program.

Jika disimpulkan berdasarkan pengertian di atas , software engineering adalah suatu sistem untuk menciptakan, mengembangkan, mengoperasikan , dan memelihara perangkat lunak.

Proses framework dari software engineering terdiri dari 5 aktifitas, yaitu :

1. Communication
Sebelum memulai mengerjakan sebuah proyek, sebaiknya berkomunikasi dan berkolaborasi dengan costumer dan user. Tujuan untuk mengetahui  fitur dan fungsi software yang akan dikerjakan.
2. Planning
Mendeskripsikan kerja software engineering dengan menulis tugas yang akan dilakukan seperti resiko yang mungkin terjadi, sumber daya yang dibutuhkan, hasil produknya, jadwal kerja.
3. Modeling
Software engineering  membuat model untuk membantu developer dan costumer mengerti kebutuhan dan desain software.
4. Construction
Pembuatan code dan testing code yang dibuat tersebut.
5. Deployment
Software yang telah jadi dikirim ke costumer.

Umbrella activities software engineering :

1. Software project tracking and control
Memungkinkan tim untuk menilai kemajuan dan pengkoreksian untuk mempertahankan jadwal yang telah disusun. 
2. Manajemen resiko
Menilai risiko yang dapat mempengaruhi hasil atau kualitas proyek. 
3. Asuransi kualitas software
Aktivitas yang dibutuhkan untuk menjaga kualitas software. 
4. Review teksnis
Menilai produk kerja untuk mengungkap dan menghapus kesalahan sebelum menuju ke aktivitas berikutnya. 
5. Pengukuran
Mendefinisikan dan mengumpulkan proses, proyek, dan langkah-langkah produk untuk membantu tim dalam pertemuan dengan customer. 
6. Manajemen konfigurasi software
Memanage efek perubahan software. 
7. Usabilitas Manajemen
Mendefinisikan kriteria produk kerja untuk digunakan kembali  dan membentuk mekanisme untuk mencapai penggunaan kembali komponen.
8. Produksi dan persiapan produk kerja
Aktivitas untuk membuat model, dokumen, log, bentuk, daftar, dll.

Seringkali kita mendengar Mitos Software, namun customer percaya mitos  tersebut karena manajer dan praktisi software melakukan perbaikan informasi yang keliru. Mitos menyebabkan harapan palsu oleh customer dan pada akhirnya ketidakpuasan dengan develope.

Itulah pengertian dan ulasan mengenai Software dan Software Engineering, semoga memberikan tambahan ilmu dan manfaat bagi para pembaca sekalian. Amin, Thanks before,,, ^_^


Note : Sebelum keluar dari situs ini,tolong blog ini di follow dan berikan komentar untuk blog ini serta juga Untuk para blogger alangkah bagusnya bila kita saling bertukar informasi,demi kemajuan blog kita berdua...

Trim's... ^_^
Read more »

Multi-User DBMS Architectures



Halo para sobat bloger, saat ini saya akan menjelaskan beberapa Multi-User DBMS Architectures beserta kelebihan dan kekurangannya serta apa sih yang paling bagus dari beberapa Multi-User tersebut,
Postingan ini ditujukan untuk mengerjakan tugas Basis Data, oke langsung aja. ^_^

Multi-User DBMS Architectures :

1) Teleprocessing

Teleprocessing adalah suatu arsitektur tradisional untuk multi-user system, dimana sebuah CPU terhubung dengan beberapa workstation.

Gambar 1. Arsitektur Teleprocessing

Pada Arsitektur ini semua pemrosesan dikerjakan dalam batasan fisik komputer yang sama. Terminal untuk pemakai berjenis 'dumb', yang tidak dapat berfungsi sendiri dan masing-masing dihubungkan ke komputer pusat. Terminal-terminal tersebut mengirimkan pesan melalui subsistem pengontrol komunikasi pada sistem operasi ke program aplikasi, yang bergantian menggunakan layanan DBMS. 

Dengan cara yang sama, pesan dikembalikan ke terminal pemakai. Arsitektur ini menempatkan beban yang besar pada komputer pusat yang tidak hanya menjalankan program aplikasi  tetapi juga harus menyelesaikan sejumlah pekerjaan pada terminal seperti format data untuk tampilan di monitor.

Kelebihannya :
  1. Murahnya biaya  telekomunikasi sekarang ini memungkinkan terminal terminal untuk saling berhubungan untuk membentuk real time systems.
  2. Memungkinkan pemakai komputer bersama – sama menggunakan computer.
  3. Komputer akan membagi waktunya bergantian untuk tiap – tiap pemakai.
  4. Dengan time sharing systems sekarang ini sebuah komputer pusat dapat melayani sampai ribuan terminal.
  5. Semua data dan program – program aplikasi tersimpan di hardisk komputer pusat.

Kekurangannya :
  1. Membutuhkan Komputer Besar atau Mainframe yang harganya sangat mahal.


2) File-Server Architecture

File-Server Architecture adalah suatu File-server yang dihubungkan  dengan  beberapa  workstation  melalui  jaringan  (network), Database  diletakan  pada  file-server,  DBMS  dan  aplikasi  dijalankan  pada  masing-masing workstation. 

Meskipun aplikasi dan DBMS dijalankan pada masing-masing workstation tetapi tetap meminta file dari file server jika diperlukan.

Gambar 2. Arsitektur File-Server

Dengan cara ini,file server berfungsi sebagai sebuah hard disk yang digunakan secara bersamaan.

Kelebihannya :
  1. Dapat membagi file seperti dokumen, spreadsheet, gambar dan database.
  2. File server menyimpan file-file yang dibutuhkan oleh aplikasi dan DBMS.
  3. Aplikasi dan DBMS bekerja pada masing-masing workstation, meminta file pada file server ketika dibutuhkan.
  4. File server bertindak sebagai pengelola file dan memungkinkan klien mengakses file tersebut.


Kekurangannya :
  1. Terdapat lalulintas jaringan yang besar sehingga mengakibatkan kepadatan jaringan.
  2. Masing-masing workstation membutuhkan copy DBMS.
  3. Kontrol terhadap  concurrency,  recovery dan  integrity menjadi lebih kompleks karena sejumlah DBMS mengakses file secara bersamaan.
  4. Beban jaringan tinggi karena tabel yang diminta akan diserahkan oleh file server ke klien melalui jaringan.
3) Client-Server Architecture

Untuk mengatasi kelemahan arsitektur-arsitektur di atas maka dikembangkan 
arsitektur  client-server.  Client-server menunjukkan cara komponen  software 
berinteraksi dalam bentuk sistem.

Dalam hal ini server  menangani  database  dan  DBMS,  dan Client  mengatur  user  interface  dan menjalankan aplikasi.

Gambar 3. Arsitektur Client-Server


Gambar 4. Alternative Client-Server Topologies


Tugas dari Client-Server :

Client :
  1. Mengatur user Interface.
  2. Menerima & memeriksa syntax input dari user.
  3. Membangun (Generates) permintaan DB dan mengirimkannya ke server.
  4. Memberikan respon balik ke user.


Server :
  1. Menerima & memroses permintaan DB dari client.
  2. Memeriksa autorisasi.
  3. Menjamin batasan integritas.
  4. Menampilkan queri/proses update dan mengirimkannya ke user.
  5. Memelihara System Catalog.
  6. Menyediakan kontrol recovery.
  7. Menyediakan akses DB yang akurat.

Kelebihannya :
  1. Klien bertanggung jawab dalam mengelola antar muka pemakai (mencakup logika penyajian data, logika pemrosesan data, logika aturan bisnis).
  2. Database server bertanggung jawab pada penyimpanan, pengaksesan, dan pemrosesan database.
  3. Beban jaringan menjadi berkurang.
  4. Otentikasi pemakai, pemeriksaan integrasi, pemeliharaan data dictionary dilakukan pada database server.
  5. Akses yang lebih luas terhadap database.
  6. Meningkatkan performa.
  7. Pengurangan biaya hardware.
  8. Pengurangan biaya komunikasi.
  9. Peningkatan konsistensi.


Kekurangannya:
  1. Database server dituntut memiliki kemampuan pemrosesan yang tinggi.                  


4) Three Tier Architecture

Three Tier Architecture merupakan inovasi dari arsitektur client-server. Pada arsitektur Three-tier ini terdapat  application  server yang berdiri di antara client dan database server. Contoh dari application server adalah IIS (Internet Information Services), WebSphere, dan sebagainya

Application Server umumnya berupa business process layer, dimana bisa didevelop menggunakan PHP, ASP.Net, maupun Java. Dimana yang dikembangkan saat ini menggunakan ASP (Active Server Pages). Sehingga dapat menempatkan beberapa business logic pada tier tersebut.  Arsitektur  Three-Tier ini banyak sekali diimplementasikan dengan menggunakan  Web Application. Karena dengan menggunakan  Web Application,  Client Side (Komputer Client) hanya akan melakukan instalasi Web Browser. Dan saat komputer client melakukan inputan data, maka data tersebut dikirimkan ke application server dan diolah berdasarkan  business process. Selanjutnya application server akan melakukan komunikasi dengan database server. 

Gambar 5. Arsitektur Three Tier

Biasanya, implementasi arsitektur Three Tier terkendala dengan network bandwidthKarena aplikasinya berbasiskan web, maka application server selalu mengirimkan Web  application-nya ke komputer client.  Application server ditempatkan pada sisi client dan hanya mengirimkan data ke dalam database server. Konsep Arsitektur Three-Tier adalah model yang membagi fungsionalitas ke dalam lapisan-lapisan, aplikasi - aplikasi mendapatkan skalabilitas, keterbaharuan, dan keamanan.

Kelebihannya:
  1. Segala sesuatu mengenai database terinstalasikan pada sisi server, begitu pula dengan pengkonfigurasiannya. Hal ini membuat harga yang harus dibayar lebih kecil.
  2. Apabila terjadi kesalahan pada salah satu lapisan tidak akan menyebabkan lapisan lain ikut salah.
  3. Perubahan pada salah satu lapisan tidak perlu menginstalasi ulang pada lapisan yang lainnya dalam hal ini sisi server ataupun sisi client.
  4. Skala besar.
  5. Keamanan dibelakang firewall.
  6. Transfer informasi antara web server dan server database optimal.
  7. Komunikasi antara sistem-sistem tidak harus didasarkan pada standart internet, tetapi dapat menggunakan protocol komunikasi yang lebih cepat dan berada pada tingkat yang lebih rendah.
  8. Penggunaan middleware mendukung efisiensi query database dalam SQL di pakai untuk menangani pengambilan informasi dari database.


Kekurangannya :
  1. Lebih susah untuk merancang.
  2. Lebih susah untuk mengatur.
  3. Lebih mahal.
Kesimpulan :

Dari perbandingan keempat arsitektur diatas menurut saya yang paling bagus adalah Three Tier Architecture, mengapa saya memilih arsitektur tersebut, karena :
  1. Three Tier Architecture merupakan inovasi dari arsitektur client-server, yang memungkinkan lebih unggul dari arsitektur lainnya.
  2. Dari Konsep gambar Three-tier tersebut memungkinkan adanya pemisahan secara fisik antara database server dan application server pada server yang berbeda sehingga diharapkan dapat meningkatkan keamanan pada sisi databasenya.
  3. Memungkinkan diterapkannya backup server jika Application Server mengalami masalah. Hal ini dapat mengurangi resiko hilangnya data pada database server yang diakibatkan oleh kerusakan hardware komputer, kesalahan user, virus, dan lain sebagainya, karena  Application Server ini bisa ditempatkan di server mana saja asalkan terkoneksi dengan jaringan yang ada dilingkungan intranet, jika sewaktu-waktu server mengalami masalah.
  4. Arsitektur ini kebanyakan diimplementasikan dengan menggunakan  Web Application, karena itu arsitektur ini hanya akan melakukan instalasi Web Browser, sehingga harga yang harus dibayar lebih kecil dari arsitektur lainnya.
Dari alasan itulah mengapa saya memilih Three Tier Architecture tersebut yang paling bagus dari lainnya, disamping itu juga dari kelebihan yang sudah saya sebutkan diatas tentang Three Tier Architecture tersebut yang lebih unggul dari lainnya.

Oke, moga postingan ini bisa menambah pengetahuan dan manfaat bagi para sobat blogger sekalian. Amin, Thanks before,,, ^_^

Note : Sebelum keluar dari situs ini,tolong blog ini di follow dan berikan komentar untuk blog ini serta juga Untuk para blogger alangkah bagusnya bila kita saling bertukar informasi,demi kemajuan blog kita berdua...

Trim's... ^_^
Read more »

 
Powered by Blogger