• Tea Linux Operating System

    TeaLinuxOS adalah distro Linux turunan Ubuntu yang dikembangkan oleh Dinus Open Source Community (DOSCOM) yang berorientasi pemrograman. Dengan menghadirkan filosofi, “Nikmatnya sebuah racikan”, TeaLinuxOS dikembangkan secara terbuka dan bersama-sama untuk menghasilkan distro Linux pemrograman yang dikhususkan untuk dunia pendidikan.

  • Part 1 - Introduction to Software Engineering

    Software adalah program-program komputer dan dokumentasi terkait. Produk software dapat dikembangkan untuk pelanggan atau dapat dikembangkan untuk pasar umum. Software engineering adalah disiplin teknik yang berkaitan dengan semua aspek produksi perangkat lunak.

  • Arsitektur Multi User Database

    Dalam Basis Data terdapat empat macam arsitektur multi user database, yaitu arsitektur Teleprocessing, File-Server, Client-Server, dan Three Tier. Dari keempat arsitektur tersebut masing-masing mempunyai kelebihan dan kekurangan yang akan dijelaskan di sini.

  • Dari Imajinasi Lahirlah Teknologi Baru

    Pada era modern seperti sekarang ini, teknologi semakin canggih. Bahkan dalam kehidupan sehari-hari manusia membutuhkan teknologi untuk memenuhi kebutuhan masing-masing. Seolah-olah teknologi merupakan bagian dari diri mereka. Selain itu pada jaman sekarang manusia cenderung ingin yang serba praktis. Oleh karena itu lahirlah berbagai macam teknologi baru yang praktis, salah satunya adalah PDA (Personal Digital Assistant).

  • Sejarah GPS (Global Positioning System)

    GPS (Global Positioning System) adalah sebuah peralatan navigasi yang awalnya didesain pada saat menghadapi permasalahan dari pasukan Amerika serikat dalam menghadapi perang Vietnam.

  • Konsep Dasar Pemrograman Bahasa C

    Buku ini membahas tentang konsep dasar pemrograman dengan bahasa C. Bahasa C yang dipilih adalah yang sesuai dengan standar dari ANSI (American National Standards Institute) yang termasuk di dalam standar ini diantara adalah Turbo C.

  • Mengganti Tampilan Cursor

    Cursor adalah tanda panah yang bergerak sesuai instruksi yang diberikan oleh mouse. Bagi sobat yang masih kesulitan mengganti cursor pada blog, aku akan membagikan tips buat sobat sekalian.

Kamis, 10 April 2014

Posted by Unknown
1 comment | 21.35

Halloo.. Ini kedua kalinya saya membuat postingan di blog ini mengenai aplikasi Android. Pada kesempatan ini saya ingin berbagi tips untuk membuat user interface Tab View yang berisi tiga fragment, dan aplikasi kamera sederhana. Berikut adalah langkah-langkahnya.

Pertama, buat project baru, misalnya dengan nama UIDemo. Jika teman-teman masih lupa bagaimana cara membuat project bisa lihat postingan saya yang Membuat Aplikasi Helloworld yang sudah pernah saya jelaskan sebelumnya.

Setelah selesai, kita buat beberapa string yang dibutuhkan dalam aplikasi yang akan kita buat. Buka folder res > values > strings.xml kemudian tambahkan beberapan string yang nantinya kita butuhkan.


Setelah itu, kita mulai mengatur tampilan awal dari aplikasi ini. Buka folder res > layout > activity_main.xml. Di dalam tampilan awal ini saya menambahkan sebuah textview yang berisi nama saya, dan dua buah button vertikal. Button pertama yang akan mengarah ke halaman Tab View, dan button kedua untuk yang mengarah ke aplikasi kamera.


Kemudian buka folder src > com.uidemo (sesuai nama package) > MainActivity.java untuk menambah / mengatur method-method apa yang diperlukan di halaman utama. Dalam method onCreate kita menggunakan activity_main untuk view-nya dengan menggunakan setContentView. Lalu kita tambahkan aksi untuk kedua button tadi. Button pertama yang mengarah ke id buttontab (untuk tab view) dan button kedua mengarah ke id buttoncam (untuk aplikasi kamera).


Selanjutnya kita buka file AndroidManifest.xml lalu kita tambahkan feature untuk kamera dan permission untuk mengakses kamera dan memori penyimpanan untuk menyimpan foto. Selain itu kita juga tambahkan activity untuk tab view dan aplikasi kamera.


Langkah selanjutnya adalah membuat activity untuk Tab View. Kita buat 4 class baru, yaitu ActivityTwo untuk halaman dasar tab view, dan 3 class baru untuk fragment-nya, yaitu FragmentOne, FragmentTwo, FragmentThree. Jadi nantinya kita akan ada 3 halaman tab dalam ActivityTwo. Caranya klik kanan pada com.uidemo (sesuai nama package) > New > Class.

Selain itu, kita juga perlu membuat sebuah layout baru untuk layout dari activity tersebur, saya beri nama main_two.xml. Cara membuatnya, buka folder res > layout > klik kanan > New > Android XML File. Selanjutnya saya tambahkan 3 gambar dalam folder res > drawable-hdpi yaitu :

naruto.jpg

naruto2.jpg

background.jpg
Gambar backgroud.jpg saya gunakan untuk background-nya, gambar naruto.jpg untuk tab yang kedua, naruto2.jpg untuk tab yang ketiga.

Sekarang kita akan mengisi layout main_two.xml. Disini saya beri nama id main_two_layout dan background-nya dengan gambar background.jpg yang sudah ditambahkan tadi.

 

Selanjutnya kita edit file FragmentOne.java. Dalam fragment ini saya membuat tampilan berupa list view.


Kemudian kita edit file Fragment kedua. Dalam fragment ini saya membuat tampilan berupa grid view. Untuk itu kita perlu membuat layout grid view terlebih dahulu. Dalam grid view yang saya buat mempunyai horizontal dan vertikal spacing 5dp, jumlah kolom 4, dan saya beri nama id mainGrid.


Setelah itu baru kita edit FragmentTwo.java. Dalam fragment ini saya menggunakan tampilan grid view untuk gambar naruto.jpg dengan jumlah gambar yang saya tampilkan adalah 40 gambar.


Selanjutnya kita edit FragmentThree.java. Dalam fragment ini saya menggunakan tampilan gambar ukuran asli untuk gambar naruto2.jpg.


Sekarang kita tinggal menjadikan ketiga fragment tersebut kedalam tampilan tab pada file ActivityTwo.java.


Nah sekarang bagian halaman fragment tab sudah selesai. sekarang kita buat aplikasi kameranya. Buat class baru dengan nama CaptureImage.java dan CameraPreview.java, kemudian buat sebuah layout baru dengan nama camera.xml.

Class CaptureImage.java digunakan untuk menjalankan aplikasi kamera buatan kita sendiri (bukan aplikasi bawaan dari smartphone).

package com.uidemo;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;

public class CaptureImage extends Activity {

    private Camera mCamera;
    private CameraPreview mPreview;
    public static final int MEDIA_TYPE_IMAGE = 1;


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.camera);
        Button captureButton = (Button) findViewById(R.id.btn_capture);
        System.out.println("Starting!");

        // Create an instance of Camera
        mCamera = getCameraInstance();
        // Create our Preview view and set it as the content of our activity.
        mPreview = new CameraPreview(this, mCamera);
        FrameLayout preview = (FrameLayout) findViewById(R.id.preview_cam);
        preview.addView(mPreview);

        final PictureCallback mPicture = new PictureCallback() {

            public void onPictureTaken(byte[] data, Camera camera) {

                File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);

                if (pictureFile == null){
                    return;
                }

                try {
                    FileOutputStream fos = new FileOutputStream(pictureFile);
                    fos.write(data);
                    fos.close();
                    MediaStore.Images.Media.insertImage(getContentResolver(),
                            pictureFile.getAbsolutePath(), pictureFile.getName(),
                            pictureFile.getName());
                } catch (FileNotFoundException e) {

                } catch (IOException e) {

                }
              }
            };

         // Add a listener to the Capture button
            captureButton.setOnClickListener(

                new View.OnClickListener() {

                    public void onClick(View v) {
                        // get an image from the camera  

                        System.out.println("Photo Taking!");
                        mCamera.takePicture(null, null, mPicture);

                    }
                }
            );

    }

    /** A safe way to get an instance of the Camera object. */
    public static Camera getCameraInstance(){
        Camera c = null;
        try {
            c = Camera.open(); // attempt to get a Camera instance
        }
        catch (Exception e){
            // Camera is not available (in use or does not exist)
        }
        return c; // returns null if camera is unavailable
    }

    @Override
    protected void onPause() {
        super.onPause();
        releaseCamera();        
    }



    private void releaseCamera(){
        if (mCamera != null){
            mCamera.release();      
            mCamera = null;
        }
    }



    /** Create a File for saving an image or video */
    private  File getOutputMediaFile(int type){
        // To be safe, you should check that the SDCard is mounted
        // using Environment.getExternalStorageState() before doing this.

   File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
                  Environment.DIRECTORY_PICTURES), "kamera UIDemo");

        if (! mediaStorageDir.exists()){
            if (! mediaStorageDir.mkdirs()){
                return null;
            }
        }

        // Create a media file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        File mediaFile;
        if (type == MEDIA_TYPE_IMAGE){
            mediaFile = new File(mediaStorageDir.getPath() + File.separator ita edit
            "IMG_"+ timeStamp + ".jpg");
        } else {
            return null;
        }

        return mediaFile;
    }
    }

Selanjutnya kita edit class CameraPreview.java untuk melihat preview dari hasil fotonya.

package com.uidemo;

import java.io.IOException;

import android.content.Context;
import android.hardware.Camera;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {

    private SurfaceHolder mHolder;
    private Camera mCamera;

    public CameraPreview(Context context, Camera camera) {
        super(context);
        mCamera = camera;
        mHolder = getHolder();
        mHolder.addCallback(this);
    }

    public void surfaceCreated(SurfaceHolder holder) {
        try {
            mCamera.setPreviewDisplay(holder);
            mCamera.startPreview();
        } catch (IOException e) {
            Log.d("CameraPreview", "Error setting camera preview: " + e.getMessage());
        }
    }

    public void surfaceDestroyed(SurfaceHolder holder) {
        // empty. Take care of releasing the Camera preview in your activity.
    }

    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {

        if (mHolder.getSurface() == null){
          // preview surface does not exist
          return;
        }

        // stop preview before making changes
        try {
            mCamera.stopPreview();
        } catch (Exception e){
          // ignore: tried to stop a non-existent preview
        }
        try {
            mCamera.setPreviewDisplay(mHolder);
            mCamera.startPreview();

        } catch (Exception e){
            Log.d("CaameraPreview", "Error starting camera preview: " + e.getMessage());
        }
    }

}

Langkah terakhir adalah mengedit camera.xml untuk layout kameranya.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
   
    <FrameLayout
    android:id="@+id/preview_cam"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    />

  <Button
    android:id="@+id/btn_capture"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/btn_cam"
    android:layout_gravity="center"
    />

</LinearLayout>

Nah sekarang aplikasi kita sudah jadi. Sekarang kita coba jalankan. Untuk hasil yang lebih optimal sebaiknya langsung dicoba jalankan di smartphone teman-teman. Saya coba jalankan di tablet saya hasilnya seperti ini.






Sekian tutorial yang dapat saya berikan. Semoga bermanfaat bagi teman-teman. Sampai jumpa di tutorial selanjutnya.

Kamis, 20 Maret 2014

Posted by Unknown
No comments | 22.09

Salam jumpa teman-teman semua. Pada kesempatan ini saya ingin membagi sedikit tutorial bagaimana membuat aplikasi Hello World! yang berisi salam, identitas, dan kata-kata mutiara. Sebelum saya menjelaskan bagaimana langkah-langkahnya, ada beberapa tools utama yang harus teman-teman sediakan, yaitu Eclipse ADT dan Android SDK, seperti pada gambar berikut :


Jika teman-teman ingin mendapatkannya dalam satu paket, bisa download ADT Bundle. Dalam ADT Bundle sudah terdapat tools utama yang akan kita gunakan. Jika teman-teman sudah punya tools tersebut langsung saja ikuti langkah-langkah berikut :

Buka aplikasi Eclipse, kemudian buat project baru. Caranya pilih menu File - New - Android Application Project.


Kemudian isi nama aplikasi, nama project, dan nama package sesuai keinginan teman-teman. Lalu pilih SDK minimal, SDK target, SDK untuk compile, dan tema. Berikut ini adalah contoh buatan saya.




Kemudian pilih Next, maka akan masuk ke halaman Configure Project. Jika tidak ada yang ingin diubah lagi, langsung pilih Next.

Masuk ke halaman pengaturan ikon untuk launcher-nya. Tersedia tiga pilihan, yaitu Image, Clipart, dan Text. Kali ini saya memilih menggunakan Text. Jika sudah memilih, lalu klik Next.

Langkah selanjutnya adalah memilih Activity. Setelah teman-teman memilih Activity kemudian klik Next.

Langkah terakhir dalam membuat project adalah mengatur nama activity, nama layout, dan jenis navigasi. Jika teman-teman sudah selesai, klik Finish dan akan muncul tampilan seperti berikut.



Pada file activity_main.xml akan tampil tulisan Hello World! seperti ini.



Buka res - values - strings.xml. Langkah selanjutnya adalah membuat string-string yang dibutuhkan, yaitu berupa greeting, nim, nama, kelompok, dan katamutiara. Format penulisan string adalah : 
<string name="nama_string">isi_string</string>  


Setelah selesai memasukkan semua string yang diperlukan, selanjutnya buka file activity_main.xml yang berperan dalam layout / tampilan program. Kemudian masukkan string-string yang sudah dibuat ke dalam file ini seperti format berikut.


Untuk mengatur tata letak tulisan dengan cepat bisa melakukan drag and drop pada Graphical Layout seperti berikut.


Nah.. semua string sudah berhasil ditampilkan dan ditata sesuai keinginan. Sekarang kita coba jalankan menggunakan emulator bawaan dari Eclipse. Langkah pertama adalah klik ikon Android Virtual Device Manager, kemudian pilih New untuk membuat AVD baru. Sebagai contoh, saya buat seperti ini.



Setelah selesai, pilih ikon Run, pilih Run Configuration... Kemudian pilih Browse untuk memilih project yang akan kita jalankan.

 
Setelah itu, pilih Target dan pilih Always prompt to pick device, tujuannya adalah ketika kita ingin menjalankan program bisa memilih device mana yang ingin kita gunakan. Kemudian pilih Run.



Pilih Launch a New Android Virtual Device, kemudian pilih AVD yang sudah kita buat tadi, lalu pilih OK.



Ketika muncul tampilan seperti diatas, maka itu artinya aplikasi kita sedang proses dijalankan di emulator. Siapkan kopi panas dan cemilan karena proses ini bisa membutuhkan waktu yang lumayan lama. hehehehehe...
Ketika sudah muncul tampilan seperti dibawah ini, berarti aplikasi teman-teman berhasil dijalankan.



Sebenarnya ada tips supaya pada saat kita menjalankan aplikasi dengan emulator bawaan Eclipse tidak memakan waktu yang lama. Caranya dengan mendownload Intel x86 Atom System Image yang ada di Android SDK Manager.



Setelah selesai download, kemudian masuk ke Android Virtual Device Manager, lalu pilih AVD yang tadi kita buat dan pilih Edit.


Pada bagian CPU/ABI pilih Intel Atom (x86) kemudian pilih OK.


Setelah itu coba jalankan ulang aplikasinya dan hasilnya lebih cepat daripada yang tadi.

Selain menggunakan emulator dari eclipse, kita juga bisa menjalankan aplikasi langsung di device android. Aplikasi tambahan yang dibutuhkan adalah USB Driver. Masing-masing device membutuhkan USB Driver yang berbeda. Sebagai contoh saya menggunakan Samsung, maka saya ahrus menginstall USB Drivernya Samsung. Setelah terinstall, hubungkan device dan komputer dengan menggunakan kabel data, kemudian jalankan aplikasi yang tadi kita buat.

 
Jika berhasil, maka otomatis aplikasi terinstall dan dijalankan dalam device kita. Ini adalah tampilannya jika dijalankan di Samsung Galaxy Tab 3 8.0 inch.


Sekian tutorial dari saya. Mohon kritik dan saran yang membangun supaya dapat memperbaiki tutorial ini. Semoga bermanfaat.  

Kamis, 04 April 2013

Posted by Unknown
No comments | 10.28

Waterfall Model


Model Waterfall merupakan paradigma rekayasa perangkat lunak yang paling tua dan paling banyak dipakai. Model ini bersifat sistematis, berurutan dalam membangun software. Model ini baik digunakan jika kebutuhannya sudah jauh-jauh hari direncanakan. Model ini cocok digunakan kebutuhan pelanggan sudah sangat dipahami dan kemungkinan terjadinya perubahan kebutuhan selama pengembangan software adalah kecil.

Waterfall Model menurut referensi Sommerville
  1. Requirements analysis and definition: Mengumpulkan kebutuhan secara lengkap kemudian kemudian dianalisis dan didefinisikan kebutuhan yang harus dipenuhi oleh program yang akan dibangun. Fase ini harus dikerjakan secara lengkap untuk bisa menghasilkan desain yang lengkap.
  2. System and software design: Desain dikerjakan setelah kebutuhan selesai dikumpulkan secara lengkap.
  3. Implementation and unit testing: desain program diterjemahkan ke dalam kode-kode dengan menggunakan bahasa pemrograman yang sudah ditentukan. Program yang dibangun langsung diuji baik secara unit.
  4. Integration and system testing: Penyatuan unit-unit program kemudian diuji secara keseluruhan (system testing).
  5. Operation and maintenance: mengoperasikan program dilingkungannya dan melakukan pemeliharaan, seperti penyesuaian atau perubahan karena adaptasi dengan situasi sebenarnya.

Kelebihan Model Waterfall :

  1. Mudah diaplikasikan 
  2. Memberikan template tentang metode analisis, desain, pengkodean, pengujian, dan pemeliharaan 
  3. Cocok digunakan untuk produk software yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya

Kekurangan Model Waterfall :
  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

V-Model

V-Model merupakan variasi dari Model Waterfall. Model ini digunakan dalam proyek teknologi informasi di negara Jerman. Hal ini berlaku terutama untuk proyek teknologi informasi pada sektor pertahanan negara Jerman. Selain itu, V-Model juga digunakan oleg software developer negara Jerman untuk proyek teknologi informasi lain.



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 untuk menambahkan 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 digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.
  3. Membutuhkan orang yang banyak untuk menyelesaikan sebuah proyek berskala besar 
  4. Pengembang dan customer harus punya komitmen yang kuat untuk menyelesaikan sebuah software 
  5. Jika sistem tidak di bangun dengan benar maka RAD akan bermasalah 
  6. Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan customer 
 
Incremental Model
Model ini cocok jika staf yang dimiliki memiliki pergantian yang tinggi sehingga staf tidak dapat terus ikut dalam pengembangan perangkat lunak. Mekanisme tahapan incremental perlu direncanakan terlebih dahulu agar hasil produk dan pengerjaan setiap tahapan increment menjadi lebih baik.
  

 
Kelebihan Incremental Model :
  1. Cocok digunakan bila pembuat software tidak banyak/kekurangan pembuat 
  2. Mampu mengakomodasi perubahan kebutuhan customer  
  3. Lebih efektif dari pendekatan waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan 
  4. Cocok untuk proyek yang memerlukan waktu yang singkat  

Kekurangan Incremental Model :
  1. Tidak cocok untuk proyek skala besar 
  2. Proyek bisa gagal karena waktu yang disepakati tidak dipenuhi
  3. Sistem yang tidak bisa dimodularisasi tidak cocok untuk model ini
  4. Resiko teknis yang tinggi juga kurang cocok untuk model ini

Prototyping Model

Model prototype cocok digunakan untuk menjabarkan kebutuhan pelanggan secara lebih detai karena pelanggan sering kali kesulitan menyampaikan kebutuhannya secara detail tanpa melihat gambaran yang jelas. Untuk mengantisipasi agar proyek dapat berjalan sesuai dengan target waktu dan biaya di awal, maka sebaiknya spesifikasi kebutuhan sistem harus sudah disepakati oleh pengembang dengan pelanggan secara tertulis. Dokumen tersebut akan menjadi patokan agar spesifikasi kebutuhan sistem masih dalam ruang lingkup proyek.


Kelebihan Prototyping Model :
  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 

Kelemahan Prototyping Model :
  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 

Spiral Model

Model ini cocok digunakan untuk pengembangan sistem software berskala besar karena memiliki proses analisis resiko yang dapata meminimalisir resiko yang mungkin terjadi. Model ini memungkinkan pengembang untuk menggunakan prototype pada setiap tahap untuk mengurangi resiko.


Kelebihan Spiral Model :
  1. Dapat disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer. 
  2. Lebih cocok untuk pengembangan sistem dan perangkat lunak skala besar       
  3. Pengembang dan pemakai dapat lebih mudah memahami dan bereaksi terhadap resiko setiap tingkat evolusi karena perangkat lunak terus bekerja selama proses.

Kelemahan Spiral Model :
  1. Sulit untuk menyakinkan pelanggan bahwa pendekatan evolusioner ini bisa dikontrol. 
  2. Memerlukan penaksiran resiko yang masuk akal dan akan menjadi masalah yang serius jika resiko mayor tidak ditemukan dan diatur.
  3.  Butuh waktu lama untuk menerapkan paradigma ini menuju kepastian yang absolute.  


 

Followers