Jumat, 18 Oktober 2013

Pemrograman Basis Data

Dosen : Titik Lusiani, M.Kom., OCP

1.    Your stored procedure, GET_BUDGET, has a logic problem and must be modified. The script that contains the procedure code has been misplaced. Which data dictionary view can you query to capture the source code for this procedure?
    1. USER_SOURCE
  User source memuat nama,type procedure,line number dan isi dari user source
2.    The database administrator has informed you that the CREATE PROCEDURE privilege has been granted to your account. Which objects can you now create?
D.       procedures, functions, and packages
Privilege (Hak Akses) merupakan tipe khusus dari pernyataan SQL untuk mengakses object dari user lain. dua jenis privilege yaitu : system privilege dan object privilege.
Ø System privilege adalah hak untuk  user agar bisa mengeksekusi perintah ke databasenya. ada tujuh system privilege yang disediakan oleh ORACLE.
                            1.       create table = ijin buat table
                            2.       create any tabel= ijin buat tabel di user lain
                            3.       create sequence = ijin buat sequence
                            4.       create view = ijin buat view
                            5.       create indextype= ijin buat index
                            6.       create procedure= ijin buat stored procedure
                            7.       create session = ijin login database

Ø Object privilege : hak akses user unutk bisa mengakses database user lain berikut object privilege yang terdapat dalam oracle :
·         select = ijin melihat data
·         insert = ijin memasukkan data
·         update = ijin melakukan perubahan data
·         delete = ijin menghapus data
·         alter = ijin mengubah struktur table
·         index = ijin membuat index
·         references = ijin membuat foreign key pada kolom tabel
3.    Which data dictionary table can you query to determine all stand-alone procedures that reference the THEATER_PCK package?
D.    USER_DEPENDENCIES
 User_dependencies merupakan data dictionary yang saling terkait antar object.
4.    Which data dictionary view can you query to examine all the dependencies between the objects that you own?
C.  USER_DEPENDENCIES
          User_dependencies dapat melakukan refenerce untuk data dictionary view.
5.     Due to a change to a particular table, you are concerned with the number of stored procedures and functions that may have been affected. Which table can you query to check the status of each subprogram and determine which procedures and functions must be recompiled?
C.  USER_OBJECTS
     User_object memuat informasi tentang semua object yang dimiliki, valid tidaknya suatu procedure.
6.    You have lost the script file that contains the source code for the THEATER_PCK package. Which command will produce the source code stored in the database?
A.    SELECT text FROM user_source WHERE name = 'THEATER_PCK';
          Perintah yang digunakan untuk memanggil tehater_pck adalah seperti syntax diatas.
7.    Which view can you query to determine the validity of a particular procedure?
C.USER_OBJECTS
          User_object digunakan untuk memvalidasi suatu prosedure.
8.    Which data dictionary view must you query to determine when a particular procedure or function was created?
C.USER_OBJECTS
          User_object melihat semua informasi tentang object yang dimiliki.
9.        All users in the HR_EMP role have UPDATE privileges on the EMPLOYEE table. You create the UPDATE_EMPLOYEE procedure. HR_EMP users should only be able to update the EMPLOYEE table using this procedure. Which two statements should you execute? (Choose two.)
C.REVOKE UPDATE ON employee FROM hr_emp;
E.GRANT EXECUTE ON update_employee TO hr_emp;
    GRANT, merupakan perintah yang digunakan untuk mengizinkan seorang user
untuk mengakses tabel pada database tertentu. Seorang administrator database biasanya akan melakukan pembatasan hak akses user terhadap tabel dalam database. Tujuan akhirnya adalah untuk manajemen keamanan database.
REVOKE, merupakan perintah yang digunakan untuk mencabut hak akses seorang user pada tabel dalam database tertentu. REVOKE digunakan untuk mencabut hak akses seorang user mengakses tabel dalam database tertentu. Pencabutan hak akses ini dengan klausa REVOKE. Pemakai adalah nama user yang akan dicabut hak aksesnya.
10.    Which statement concerning the use of a procedure is true?
C . A user needs only the privilege to execute the procedure and does not need privileges on the underlying tables.
User menggunakan hak akses (privilege) untuk membuat prosedure. Pada lingkungan multi-user, dapat mengatur keamanan dari akses database dan mengontrol akses user. Security dari database Oracle mengijinkan untuk:
·         Mengontrol akses ke database
·         Memberikan akses terhadap objek-objek tertentu di dalam database
·         Mengkonfirmasi privilege yang diberikan dan diterima melalui data dictionary
·         Menciptakan synonym untuk objek-objek database
11.    Examine this procedure:
            CREATE OR REPLACE PROCEDURE update_theater (v_name IN VARCHAR2) IS
            BEGIN
            DELETE theater WHERE id = 34;
            END update_theater;
            This procedure is owned by PROD. The user JSMITH must execute this procedure. Which command(s) must PROD execute to grant the necessary privileges to JSMITH?
A.    GRANT EXECUTE ON update_theater TO jsmith
GRANT EXECUTE digunakan untuk memberi hak akses melalui sebuah prosedure yang bernama update_theater kepada JSMITH.
12.    You have just successfully dropped the CALC_COMM procedure and deleted the script file containing the source code. Which command can you execute to recover this procedure?
D.  Only the database administrator can recover this procedure using backups.
Drop digunakan untuk melakukan penghapusan tabel. Melakukan penghapusan table dengan perintah DROP, berarti mengerjakan hal berikut :
->Semua data dan struktur dari table akan dihapus
->Semua transaksi pending akan di-commit
->Semua indeks akan dihapus
->Perintah drop ini tidak bisa di-rollback
Hanya database administrator yang dapat merecovernya.
13.              Examine this procedure:
            CREATE OR REPLACE PROCEDURE remove_department (v_deptno IN NUMBER) IS
            BEGIN
            DELETE dept WHERE deptno = v_deptno;
            END;
            After executing this procedure, you receive this message:
            ORA-02292: integrity constraint (SCOTT.FK_DEPTNO) violated - child record found
            What must be added to the procedure to handle this error?
D.      Declare a new exception and associate it with error code -2292. Create an exception section, and add code to handle this non-predefined exception that you just declared.
Handling Exceptions merupakan salah satu kelebihan dari PL/SQL yang digunakan untuk menangani error yang terjadi pada saat run time.
Sebagai contoh, pada saat kita menuliskan sebuah query, dan data tersebut tidak ditemukan di dalam database, maka oracleakan membangkitkan eksepsi NO_DATA_FOUND  dengan kode ORA-01403 yang berarti data tidak ditemukan.
16.    Examine this procedure:
            CREATE PROCEDURE add_theater IS
            BEGIN
            INSERT INTO theater
            VALUES (35, 'Riverplace Theatre', '1222 River Drive, Austin, Tx.');
            END;
            This procedure already exists in the database. You have made a change to the code and want to recreate the procedure. Which command must you now use to prevent an error?
D .CREATE OR REPLACE PROCEDURE
Command yang digunakan untuk mengubah database yang telah ada sebelumnya yaitu menggunakan CREATE or REPLACE PROCUDERE.
Schema Trigger:
CREATE [ OR REPLACE ] TRIGGER [ schema. ]trigger
{ BEFORE | AFTER | INSTEAD OF }
{ dml_event_clause
| { ddl_event [ OR ddl_event ]...
          | database_event [ OR database_event ]...
  } ON { [ schema. ]SCHEMA
           | DATABASE
           }
}
[ WHEN (condition) ]
{ pl/sql_block | call_procedure_statement } ;
19.              You execute this code:
          CREATE OR REPLACE PROCEDURE find_seats_sold (v_movie_id IN NUMBER DEFAULT 34) IS
          v_seats_sold gross_receipt.seats_sold%TYPE;
          BEGIN
          null;
          END;
          Which statement is true?
A.    The statement compiles, and the procedure is created.
Pernyataan yang benar yang benar yang dapat dijalankan dari code diatas yaitu procedure berhasil dibuat.
23.    Which statement about formal parameters is true?
B.  An IN OUT formal parameter does not require a value before returning to the calling environment.
Perlu diketahui lebih dahulu, parameter yang terdapat pada Procedure dinamakan Formal Parameter. Sedangkan Parameter yang terdapat pada si pemanggil Procedure adalahActual Parameter.
Tipe Parameter pada Procedure ada 3 :
  1. IN parameter, Merupakan Tipe parameter yang didefinisikan pada aktual parameter untuk kemudian ditangkap oleh formal parameter. Kita tidak perlu menuliskan IN untuk mendefinisikan parameter tersebut, karena parameter IN telah didefinisikan secara DEFAULT oleh Oracle.
  2. OUT parameter. Merupakan  tipe parameter pada procedure yang nilainya dapat digunakan oleh si pemanggil procedure dan bisa dibilang OUT parameter merupakan kebalikan dari IN parameter.
  3. IN OUT parameter. Tipe parameter yang digunakan untuk mengirimkan sebuah nilai ke procedure yang kemudian akan diproses dan dikembalikan kepada si pemanggil procedure.
  1. Examine this procedure:
            CREATE OR REPLACE PROCEDURE find_seats_sold
            (v_movie_id IN NUMBER DEFAULT 34, v_theater_id IN NUMBER) IS
            v_seats_sold gross_receipt.seats_sold%TYPE;
            BEGIN
            SELECT seats_sold INTO v_seats_sold
            FROM gross_receipt
            WHERE movie_id = v_movie_id AND theater_id = v_theater_id;
            END;
            Which command will successfully invoke this procedure in SQL*Plus?
     C.     EXECUTE find_seats_sold (v_theater_id => 500);
Command yang digunakan untuk memanggil procedure find_seat_sold adalah EXECUTE find_seat_sold(v_thetater_id =>500);,v_movie_id telah diisi dengan 34 karena di default dan v_theater_id diisi 500.
27.              Which statement about declaring parameters is true?
B .Data type and maximum length are required.
Pendeklarasian parameter yang benar dalam oracle dengan tipe varchar2 yaitu harus menambahkan data type dan maximum length.
29.    The CALC_COMM procedure is no longer needed and should be removed. Which command will successfully remove this procedure from the database?
A.    DROP calc_comm;
DROP digunakan untuk menghapus suatu object database tertentu.
3     30.  Examine this procedure:
     CREATE PROCEDURE add_theater IS
     BEGIN
     INSERT INTO theater
     VALUES (35, 'Riverplace Theatre', '1222 River Drive, Austin, Tx.');
     END;
     Which three statements about this procedure are true? (Choose three.)
A.    The ADD_THEATER procedure is written in SQL.
B.     The ADD_THEATER procedure can be shared by multiple programs.
C.     The ADD_THEATER procedure will be stored in the database as a schema object.




Practice II

1.      The UPDATE_EMPLOYEE procedure contains an algorithm that calculates an employee's commission multiple times throughout the program. If a change is made to the algorithm, the change must be made multiple times. How can this procedure be modified to simplify the code and reduce duplicated code?
C. Add a local subprogram containing the algorithm
Alasan :
UPDATE_EMPLOYEE dimodifikasi agar tidak mengulang maka menggunakan local subprogram  yang berisi subprogram tersebut.
2.      For which Alasan might you create a subprogram within a procedure?
D. to store a repeating block of code once without creating a separate construct
Alasan :
Prosedure dengan Subprogram digunakan untuk memanggil berulang-ulang dengan repeat blok tanpa membuat create ualng subprogramnya, Sehingga lebih mudah untuk digunakan
3.      When invoking a procedure, you can specify the arguments using the positional method by listing the values in the order of the argument list. Which method would you use to list values in an arbitrary order?
D. named
Alasan :
Method yang digunakan untuk mengembalikan nilai dengan memakai named Methodnya.
4.      Which type of construct should you create to solely perform an action without returning a value?
C. procedure
Alasan :
a.       Suatu blok PL/SQL yang menyimpan sekumpulan perintah
b.      Dapat pengembalian nilai
c.       No Return datatype
5.      Examine this procedure:
            CREATE OR REPLACE PROCEDURE find_seats_sold
            (v_movie_id IN NUMBER DEFAULT 34, v_theater_id IN NUMBER) IS
            v_seats_sold gross_receipt.seats_sold%TYPE;
            BEGIN
            SELECT seats_sold INTO v_seats_sold FROM gross_receipt
            WHERE movie_id = v_movie_id AND theater_id = v_theater_id;
            END;
            Which command will successfully invoke this procedure in SQL*Plus?
C. EXECUTE find_seats_sold (v_theater_id => 500, v_movie_id => 34);
Alasan :
a.       Eksekusi procedure menggunakan sintakEXECUTE
b.      (v_movie_id IN NUMBER DEFAULT 34, v_theater_id IN NUMBER)à
·         Nilai inputan number untuk variable v_movie_idyang otomatis bernilai 34
·         Nilai inputan number untuk variable v_theater_id yang bernilai inputannya 500
6.      Examine this procedure:
            CREATE OR REPLACE PROCEDURE find_seats_sold
            (v_movie_id IN NUMBER) IS
            v_seats_sold gross_receipt.seats_sold%TYPE;
            BEGIN
            SELECT seats_sold INTO v_seats_sold
            FROM gross_receipt
            WHERE movie_id = v_movie_id;
            END;
            Which command will successfully invoke this procedure in SQL*Plus?
C.EXECUTE find_seats_sold (34);
Alasan :
Mengeksekusi procedure dengan nama find_seats_sold yang Nilai inputan number untuk variable v_movie_id yang otomatis bernilai 34
7.      A stored function can be invoked in many different ways. Which invocation example is NOT valid?
D. executing the stored function within a CHECK constraint of a table
Alasan :
Tidak boleh menggunakan Constraint tabel (CHECK )
8.      Examine this function:
CREATE OR REPLACE FUNCTION get_budget
            (v_studio_id IN NUMBER) RETURN number IS
            v_yearly_budget NUMBER;
            BEGIN
            SELECT yearly_budget INTO v_yearly_budget
            FROM studio WHERE id = v_studio_id;
            RETURN v_yearly_budget;
            END;
C. VARIABLE g_yearly_budget NUMBER
     EXECUTE :g_yearly_budget := GET_BUDGET(11);
Alasan :
Menggunakan perintah EXECUTE dan INSERT
VARIABLE g_yearly_budget NUMBER
EXECUTE:g_yearly_budget := GET_BUDGET(11); àeksekusi(:g_yearly_budget pada form) diisi dalamGET_BUDGET yang bernilai 11
9.      Examine this function:
            CREATE OR REPLACE FUNCTION get_budget
            (v_studio_id IN NUMBER, v_max_budget IN NUMBER) RETURN number IS
            v_yearly_budget NUMBER;
            BEGIN
            SELECT yearly_budget INTO v_yearly_budget FROM studio
            WHERE id = v_studio_id;
            IF v_yearly_budget > v_max_budget THEN
            RETURN v_max_budget;
            ELSE
            RETURN v_yearly_budget;
            END IF;
            END;
A.    SELECT id, name, get_budget(id,200) FROM studio;
Alasan :
Menggunakan perintah EXECUTE dan INSERT
SELECT id, name, get_budget(id,200) FROM studio;
10.  For which purpose are formal parameters used when creating functions?
B.     passing values to the function
Alasan :
passing values to the function

11.  When creating a function in SQL*Plus, you receive an error message stating that the function created with compilation errors. What must you do to see the compilation errors?
A.    Issue the SHOW ERRORS command.
Alasan :
Menggunakan perintah SHOW ERROR untuk mengecek erorà(Issue the SHOW ERRORS command)
12.  Examine this function:
            CREATE OR REPLACE FUNCTION set_budget
            (v_studio_id IN NUMBER, v_new_budget IN NUMBER) IS
            BEGIN
            UPDATE studio SET yearly_budget = v_new_budget
            WHERE id = v_studio_id;
            IF SQL%FOUND THEN RETURN TRUE;
            ELSE RETURN FALSE;
            END IF;
            COMMIT;
            END;
C.     Add "RETURN BOOLEAN" immediately before the IS keyword.
Alasan :
Add "RETURN BOOLEAN" immediately before the IS keyword. Karena didalam sintaknya terdapat fungsi boolean
13.  Procedures and functions can be created and stored in the database or in an Oracle Developer application. How is performance improved when storing procedures and functions in the database?
D.    Network traffic is decreased by bundling commands.
Alasan :
Network traffic is decreased by bundling commands.
14.  Examine this function:
            CREATE OR REPLACE FUNCTION set_budget
            (v_studio_id IN NUMBER, v_new_budget IN NUMBER)
            RETURN BOOLEAN IS
            BEGIN
            UPDATE studio
            SET yearly_budget = v_new_budget
            WHERE id = v_studio_id;
            IF SQL%FOUND THEN
            RETURN TRUE;
            ELSE RETURN FALSE;
            END IF;
            COMMIT;
            END;
Which code will successfully invoke this function?
D. DECLARE v_updated_flag BOOLEAN;
            BEGIN
            v_updated_flag :=      set_budget(11,500000000);
            END;

Alasan :
DECLARE v_updated_flag BOOLEAN;
BEGIN
v_updated_flag := set_budget(11,500000000);
END;
15.  Which two subprogram headers are correct? (Choose two.)
B.  CREATE OR REPLACE PROCEDURE get_sal (v_sal IN number) IS
D. CREATE OR REPLACE FUNCTION calc_comm (p_amnt IN number) RETURN number
Alasan :
·      CREATE OR REPLACE PROCEDURE get_sal (v_sal IN number) IS
·      CREATE OR REPLACE FUNCTION calc_comm (p_amnt IN number) RETURN number
16.  Procedures and functions are very similar. For which Alasan would you choose a function over a procedure?
B.     A function can be used in a SQL statement.
Alasan :
SQL statement dapat digunakan untuk mendapatkan nilai dari sebuah function. Contoh SELECT employee_id,last_name,  Lihat_gaji(employee_id) FROMemployees.
17.  The GET_BUDGET function is no longer needed and should be removed. Which command will successfully remove this function from the database?
C.        DROP FUNCTION get_budget;
Alasan :
Perintah DROP SQL digunakan untuk menghapus objek dari database.
18.     Which code successfully calculates commission returning it to the calling environment?
D.    CREATE OR REPLACE FUNCTION calc_comm (v_emp_id IN NUMBER) RETURN number IS
            v_total NUMBER;
            BEGIN
            SELECT SUM(ord.total) INTO v_total
            FROM ord,customer
            WHERE ord.custid = customer.custid
            AND customer.repid = v_emp_id;
            RETURN (v_total * .20);
            END;
Alasan :
CREATE [OR REPLACE] FUNCTION nama_function
[(argumen [IN|OUT|IN OUT] tipe_data,
  argumen [IN|OUT|IN OUT]tipe_data,
  ...)]
RETURN tipe_data {IS|AS}
[deklarasi variabel lokal] 

BEGIN
badan fungsi       
END;
19.  Examine this function:
                 CREATE OR REPLACE FUNCTION get_budget
            (v_studio_id IN NUMBER, v_max_budget IN NUMBER) RETURN number IS
                 v_yearly_budget NUMBER;
                 BEGIN
                 SELECT yearly_budget INTO v_yearly_budget FROM studio
                 WHERE id = v_studio_id;
                 IF v_yearly_budget > v_max_budget THEN RETURN v_max_budget;
                 ELSE RETURN v_yearly_budget;
                 END IF;
                 END;
                 Which set of statements will successfully invoke this function within SQL*Plus?
  1. SELECT id, name, get_budget(id,200) FROM studio;
Alasan :
Perintah diatas adalah query yang dapat dijalankan dengan SQL*Plus.
  1. A stored function can be invoked in many different ways. Which invocation example is NOT valid?
D. executing the stored function within the DEFAULT clause of the CREATE TABLE
Alasan :
Saat memanggil fungsi dari SELECT, INSERT, UPDATE, DELETE, fungsi tidak boleh mengandung statement SQL untuk control statement (misal COMMIT), session control statement (SET ROLE) atau system control statement (seperti ALTER SYSTEM) dan tidak boleh mengeksekusi DDL statement seperti CREATE karena akan diikuti dengan atomatik commit.
  1. You have just created a PL/SQL user-defined function called CALC_COMM. Which statement will successfully test it?
D. SELECT * FROM ord GROUP BY ordid HAVING calc_comm(total) > 5000;
Alasan :
  1. How do functions simplify maintainability?
a.       by limiting changes to logic to one location
Alasan :
Menyederhanakan fungsi adalah dengan memberikan parameter.
  1. Which two statements are true? (Choose two.)
                                                              i.      A function must return a value.
D. A function can be invoked from within a PL/SQL expression.
Alasan :
Fungsi merupakan  suatu blok PL/SQL yang mengembalikan nilai. Fungsi dapat juga di invoke dengan menggunakan SQL*Plus.
  1. Examine this statement:
     SELECT id, theater_pck.get_budget(id)
     FROM studio;
     What must be true about the GET_BUDGET function for this statement to be successful?
b.      It must not modify the database.
Alasan :
  1. Examine this function:
     CREATE OR REPLACE FUNCTION get_budget
     RETURN number IS
     v_yearly_budget NUMBER;
     BEGIN
     SELECT yearly_budget INTO v_yearly_budget
     FROM studio WHERE id = v_studio_id;
     RETURN v_yearly_budget;
     END;
     What additional code is needed to compile this function successfully?
D . Add "(v_studio_id IN NUMBER)" right before the RETURN statement of the header.
Alasan :
CREATE [OR REPLACE] FUNCTION function_name
[(parameter1 [mode1] datatype1,
RETURN datatype
IS | AS
PL/SQL block;
  1. Which subprogram type can be invoked from within a SQL statement?
    1. function
Alasan :
Function adalah jenis PL/SQL block yang menghasilkan satu nilai.Secara umum function digunakan untuk melakukan perhitungan,mengecek eksistensi dan kevalidan suatu data.Function dapat dijalankan dengan SQL*Plus.
27.  Examine this function:
            CREATE OR REPLACE FUNCTION get_budget
            (v_studio_id IN NUMBER) RETURN number IS
            v_yearly_budget NUMBER;
            BEGIN
            SELECT yearly_budget INTO v_yearly_budget
            FROM studio WHERE id = v_studio_id;
            END;
            To execute this function successfully, what additional code must be added to the executable section?
D . RETURN v_yearly_budget;
Alasan :
 v_yearly_budget telah dideklarasikan pada query diatas maka RETURN v_yearly_budget dapat mengexecute function diatas.
  1. While creating a package, you placed the function name in the specification and the body. Which type of construct have you created?
    1. public
Alasan :
Semua yg dideklarasikan pada package spesifikasi adalah public, maka jika akan membuat variable, konstanta, prosedur, fungsi, dan lainnya sebagai public maka deklarasikan pada package spasification.
  1. Examine this code:
     CREATE OR REPLACE PACKAGE prod_pack IS
     g_tax_rate NUMBER := .08;
     END prod_pack;
     Which statement about this code is true?
  1. This package specification can exist without a body.
Alasan : Sebuah Blok PL / SQL terdiri dari tiga bagian.Bagian Deklarasi (opsional). Bagian Eksekusi (wajib). Eksepsi (atau Kesalahan) Penanganan bagian (opsional). Contohnya :
DECLARE
  deklarasi variable
BEGIN
  eksekusi program
EXCEPTION
  exception handling
END;

  1. Examine this package specification:
     CREATE OR REPLACE PACKAGE theater_package IS
     PROCEDURE find_cpt
     (v_movie_id IN NUMBER, v_cost_per_ticket IN OUT NUMBER);
     PROCEDURE update_theater (v_name IN VARCHAR2);
     PROCEDURE find_seats_sold
     (v_movie_id IN NUMBER DEFAULT 34, v_theater_id IN NUMBER);
     PROCEDURE add_theater;
     END theater_package;
     Which statement about the procedures in this specification is true?
  1. They are public procedures.
Alasan :
Blok Procedure merupakan  suatu blok PL/SQL yang menyimpan sekumpulan perintah yang tidak disertai dengan pengembalian nilai.
Bentuk umum :
CREATE OR REPLACE PROCEDURE
nama_procedure
(parameter_1 tipe_data, ….) AS
variabel-1 tipe_data;
begin
statment_1
END;


















.






















Selasa, 01 Oktober 2013

RESUME TDA PERT 2,3 dan 4

Proses Dokumentasi
Bicara proses dokumentasi, dibenak pikiran  akan muncul suatu kata yang membicarakan tentang bagaimana / cara atau langkah mendokumentasikan suatu aplikasi. Sebelum melangkah lebih jauh tentang cara atau langkah-langkah dalam mendokumentasikan aplikasi berikut indicator, fungsi serta tujuan dari proses dokumentasi:
Indikator dari proses dokumentasi adalah :
·           Ketepatan menjelaskan hubungan antara kebutuhan project dan system yang sedang dikembangkan 
·            Ketepatan menjelaskan langkah-langkah pembuatan dokumentasi aplikasi
Fungsi dari proses dokumentasi :
Mencatat seluruh proses dari pembangunan sampai pemeliharaan proses mulai dari perencanaan, penjadwalan sampai ke standarisasinya.

AGILE SOFTWARE DEVELOPMENT
Salah satu ciri dari Agile Software Development adalah tim yang tanggap terhadap perubahan. Mengapa? Karena perubahan adalah hal yang utama dalam membangun software: perubahan kebutuhan software, perubahan anggota tim, perubahan teknologi dll. Selain itu Agile Software Development juga melihat pentingnya komunikasi antara anggota tim, antara orang-orang teknis dan businessmen, anatara developer dan managernya. Ciri lain adalah klien menjadi bagian dari tim pembangun software. Ciri-ciri ini didukung oleh 12 prinsip yang diterapkan oleh Agile Alliance. Menurut Agile Alliance, 12 prinsip ini adalah bagi mereka yang ingin berhasil dalam penerapan Agile Software Development :
·         Kepuasan klien adalah prioritas utama dengan menghasilkan produk lebih awal dan terus menerus
·         Menerima perubahan kebutuhan, sekalipun diakhir pengembangan
·         Penyerahan hasil/software dalam hitungan waktu dua minggu sampai dua bulan
·         Bagian bisnis dan pembangun kerja sama tiap hari selama proyek berlangsung
·         Membangun proyek dilingkungan orang-orang yang bermotivasi tinggi yang bekerja dalam lingkungan yang mendukung dan yang dipercaya untuk dapat menyelesaikan proyek.
·         Komunikasi dengan berhadapan langsung adalah komunikasi yang efektis dan efisien
·         Software yang berfungsi adalah ukuran utama dari kemajuan proyek
·         Dukungan yang stabil dari sponsor, pembangun, dan pengguna diperlukan untuk menjaga perkembangan yang berkesinambungan.
·         Perhatian kepada kehebatan teknis dan desain yang bagus meningkatkan sifat agile
·         Kesederhanaan penting
·         Arsitek. Kebutuhan dan desain yang bagus muncul dari tim yang mengatur dirinya sendiri
·         Secara periodic tim evaluasi diri dan mencari cara untuk lebih efektif dan segera melakukannya.
Kedua belas prinsip tersebut menjadi suatu dasar bagi model-model proses yang punya sifat agile. Dengan prinsip-prinsip tersebut agile process model berusaha untuk menyiasati 3 asumsi penting tentang proyek software pada umumnya :
·         Kebutuhan software sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berjalannya proyek.
·         Desain dan pembangunan sering tumpang tindih. Sulit diperkirakan seberapa jauh desain yang diperlukan sebelum pembangunan
·         Analisis, desain, pembangunan dan testing tidak dapat diperkirakan seperti yang diinginkan.

A. Waterfall
Metode ini merupakan metode yang sering digunakan oleh penganalisa sistem pada umumnya. Inti dari metode waterfall adalah pengerjaan dari suatu sistem dilakukan secara berurutan atau secara linear. Jadi jika langkah satu belum dikerjakan maka tidak akan bisa melakukan pengerjaan langkah 2, 3 dan seterusnya.  Secara otomatis tahapan ke-3 akan bisa dilakukan jika tahap ke-1 dan ke-2 sudah dilakukan.


Secara garis besar metode waterfall mempunyai langkah-langkah sebagai berikut : Analisa, Design, Code dan Testing, Penerapan dan Pemeliharaan.
1. Analisa
Langkah ini merupakan analisa terhadap kebutuhan sistem. Pengumpulan data dalam tahap ini bisa malakukan sebuah penelitian, wawancara atau study literatur. Seorang sistem analis akan menggali informasi sebanyak-banyaknya dari user sehingga akan tercipta sebuah sistem komputer yang bisa melakukan tugas-tugas yang diinginkan olehuser tersebut. Tahapan ini akan menghasilkan dokumen user requirment atau bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan sistem. Dokumen ini lah yang akan menjadi acuan sistem analis untuk menterjemahkan ke dalam bahasa pemprogram.
2. Design
Proses desain akan menerjemahkan syarat kebutuhan ke sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada : struktur data, arsitektur perangkat lunak, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirment. Dokumen inilah yang akan digunakan proggrammer untuk melakukan aktivitas pembuatan sistemnya.
3. Coding & Testing
Coding merupan penerjemahan design dalam bahasa yang bisa dikenali oleh komputer. Dilakukan oleh programmer yang akan meterjemahkan transaksi yang diminta oleh user.Tahapan ini lah yang merupakan tahapan secara nyata dalam mengerjakan suatu sistem. Dalam artian penggunaan komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut dan kemudian bisa diperbaiki.
4. Penerapan
Tahapan ini bisa dikatakan final dalam pembuatan sebuah sistem. Setelah melakukan analisa, design dan pengkodean maka sistem yang sudah jadi akan digunakan oleh user.
5. Pemeliharaan
Perangkat lunak yang sudah disampaikan kepada pelanggan pasti akan mengalami perubahan. Perubahan tersebut bisa karena mengalami kesalahan karena perangkat lunak harus menyesuaikan dengan lingkungan (periperal atau sistem operasi baru) baru, atau karena pelanggan membutuhkan perkembangan fungsional.
Keuntungan Metode Waterfall
·         Kualitas dari sistem yang dihasilkan akan baik. Ini dikarenakan oleh pelaksanaannya secara bertahap. Sehingga tidak terfokus pada tahapan tertentu.
·         Document pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya. Jadi  setiap fase atau tahapan akan mempunyai dokumen tertentu.
Kelemahan waterfall
·         Diperlukan majemen yang baik, karena proses pengembangan tidak dapat dilakukan secara berulang sebelum terjadinya suatu produk.
·         Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal pengembangan.
·         Pelanggan sulit menyatakan kebutuhan secara eksplisit sehingga tidak dapat mengakomodasi ketidakpastian pada saat awal pengembangan.
Kategori Proses Dokumentasi :
·               Plan
Dokumen yang dikerjakan oleh seorang manajer yang digunakan untuk memprediksi dan mengontrol proses software. Berisi rencana proyek, schedule proyek.
·               Report
Suatu bentuk penyampaian berita, keterangan,pemberitahuan ataupun pertanggungjawaban baik secara lisan maupun secara tertulis dari bawahan kepada atasan sesuai dengan hubungan wewenang dan tanggung jawab yang ada diantara mereka. Salah satu cara pelaksanaan komunikasi dari pihak yang satu kepada pihak yang lainnya.
 Fungsi Laporan
Fungsi laporan diantaranya adalah sebagai berikut:
- pertanggungjawaban bagi orang yang diberi tugas
- landasan pimpinan dalam mengambil kebijakan/keputusan
- alat untuk melakukan pengawasan
- dokumen sebagai bahan studi dan pengalaman bagi orang lain.

·               Standart
Dokumen ini membahas bagaimana dokumen diimplementasikan, dapat dibuat dari suatu organisasi,nasional maupun internasional. Standar proses software dokumentasi ditetapkan oleh IEEE Software Engineering Standart Commite (SESC)
·               Working Paper
Menjelakan garis besar permasalahan dan strategi implementasi, desain sistem dan desain metodologi, mencakup flowchart dari sistem, desain database,dan desain jaringan.
·               E-mail Message
Dokumen bersifat sementara (out to date). Rencana pembuatannya sudah di buat sebelumnya. Dokumen ini akan berkurang kegunaannya karen atidak disimpan.

Dokumentasi Produk
Aktifitas dalam perusahaan diusahaan agar dapat terjadi kesinambungan maka perlu dokumentasi yang memadai, oleh karena itu dokumentasi produksi perlu sekali dilakukan dalam program pengembangan produk.
Tipe dari dokumentasi aplikasi :
·  Deskripsi fungsi sistem
·  Instalasi dokumen
·  Pengantar manual
·  Referensi manual