Senin, 09 Mei 2011

ERROR HANDLING

ERROR HANDLING

1. Abstraksi

Error Handling adalah salah satu penanganan kesalahan (error) pada berbagai macam keadaan dalam pemrograman. Dengan adanya error handling ini maka setiap ada kesalahan , maka eksekusi program tidak akan dihentikan secara tiba-tiba, tetapi akan diteruskan ke baris program yang terdapat script penanganan kesalahan.

Dengan adanya Error Handling ini maka program akan semakin user friendly bagi penggunanya, dan akan mengatasi kesulitan bagi para programmer apabila ingin mendefinisikan suatu kejadian yang tidak diinginkan dieksekusi.

2. Pendahuluan

Pada saat membuat sebuah aplikasi web, penanganan error (error handling) merupakan hal yang sangat penting. Penanganan error yang standar di PHP sangat sederhana. Error dikirim ke browser berisi pesan error, nama file, baris kode ke berapa tempat terjadinya error. Tanpa penanganan error yang baik, tentunya pada saat terjadi error, error akan tampil di browser dan dilihat oleh semua pengguna. Hal ini bisa menimbulkan ancaman terhadap keamanan website. PHP telah menyediakan function function untuk penanganan error seperti dijelaskan di Error Handling and Logging.

3. Pembahasan

3.1 Penanganan Error Sederhana mengunakan function die()

Function die ( [string $message] ) berfungsi untuk menghentikan eksekusi baris kode berikutnya dan memberi output parameter optional $message. Contoh:

tanpa error handling

$connection = mysql_connect("localhost", "user", "password");

mysql_select_db("test");

$result = mysql_query("select * from nama_table");

while($row = mysql_fetch_array($result)){

echo $row['nama_field'];

}


Tanpa error handling seperti kode php diatas, pada saat tidak bisa melakukan koneksi ke database mysql, maka akan muncul pesan error seperti ini:

mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) in /home/ellyxc/public_html/tutorial/error/die.php on line 3

Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) in /home/ellyxc/public_html/tutorial/error/die.php on line 4

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/ellyxc/public_html/tutorial/error/die.php on line 4

Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) in /home/ellyxc/public_html/tutorial/error/die.php on line 5

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/ellyxc/public_html/tutorial/error/die.php on line 5

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/ellyxc/public_html/tutorial/error/die.php on line 6

Tentu saja pengguna akan bingung melihat error di atas, dengan function die(), pesan error bisa diminimalisir seperti:


//dengan error handling

$connection = mysql_connect("localhost", "user", "password")

or die('Tidak bisa melalukan koneksi ke database');

mysql_select_db("test");

$result = mysql_query("select * from nama_table");

while($row = mysql_fetch_array($result)){

echo $row['nama_field'];

}


Pada saat tidak bisa melakukan koneksi ke database, kode di atas akan memberi output seperti ini

Tidak bisa melalukan koneksi ke database

3.2 Setting Error Reporting Level

PHP memberi kemampuan untuk menentukan error error apa saja yang ditampilkan menggunakan function error_reporting( [int $level ] ). Parameter $level bisa diisi dengan nilai nilai berikut:

Nilai

Konstanta

Deskripsi

1

E_ERROR

Fatal run-time errors. Error yang tidak bisa dihandel, seperti masalah alokasi memori. Eksekusi skrip berhenti.

2

E_WARNING

Run-time warnings (non-fatal errors). Eksekusi Skrip tidak berhenti.

4

E_PARSE

Compile-time parse errors. Error yang terjadi karena kesalahan penulisan kode php.

8

E_NOTICE

Run-time notices. Error yang mengindikasikan bahwa skrip bisa menimbulkan error yang lain.

256

E_USER_ERROR

Pesan error yang digenerate oleh user. Seperti E_ERROR, tapi digenerate menggunakan function trigger_error().

512

E_USER_WARNING

Pesan error yang digenerate oleh user. Seperti E_WARNING, tapi digenerate menggunakan function trigger_error().

1024

E_USER_NOTICE

Pesan error yang digenerate oleh user. Seperti E_NOTICE, tapi digenerate menggunakan function trigger_error().

2048

E_STRICT

Error yang memberikan sugesti perubahan pada kode Anda untuk memastikan interoperabilitas terbaik dan kompatibilitas kode php Anda.

30719

E_ALL

Menampilkan semua error kecuali E_STRICT.

Contoh penggunaan error_reporting() :


//menampilkan semua error

error_reporting(E_ALL);

//menampilkan semua error termasuk E_STRICT

error_reporting(E_ALL|E_STRICT);

//tidak menampilkan error

error_reporting(0);

3.3 Tidak Menampilkan Error

Dari pada menampilkan error yang tidak dimengerti oleh pengguna, terkadang lebih baik tidak menampilkan error sama sekali, tetapi hanya mencatat error yang terjadi ke dalam sebuah file. Untuk itu bisa gunakan kode di bawah.


error_reporting(E_ALL);

ini_set('display_errors', 'Off');

ini_set('log_errors', 'On');

ini_set('error_log', 'logs/error.log');

$connection = mysql_connect("localhost", "user", "password");

mysql_select_db("test");

$result = mysql_query("select * from nama_table");

while($row = mysql_fetch_array($result)){

echo $row['nama_field'];

}


Untuk tidak menampilkan error digunakan function ini_set ('display_errors', 'Off'); (baris ke-3). Di baris ke-5 untuk menyimpan error yang terjadi ke dalam file "logs/error.log". Pada saat terjadi error, file "logs/error.log" akan berisi data seperti ini :

[21-Nov-2010 11:57:56] PHP Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2) in /home/ellyxc/public_html/tutorial/error/die.php on line 6

[21-Nov-2010 11:57:56] PHP Stack trace:

[21-Nov-2010 11:57:56] PHP 1. {main}() /home/ellyxc/public_html/tutorial/error/die.php:0

[21-Nov-2010 11:57:56] PHP 2. mysql_connect() /home/ellyxc/public_html/tutorial/error/die.php:6

Mengambil pilihan untuk tidak menampilkan error bisa membingungkan pengguna. Cara yang lebih baik adalah dengan membawa user ke halaman tertentu, untuk memberi tahu pengguna bahwa sedang terjadi error.


3.4 Membuat Custom Error Handler

Selain menyediakan penanganan error standar, PHP juga memberikan kemampuan untuk membuat sebuah function yang bertugas untuk menangani error yang terjadi yang disebut dengan Custom Error Handler. Sebuah Custom Error Handler memiliki format seperti ini

// error_funciton($error_level,$error_message, $error_file,$error_line,$error_context)

Contoh:

function customError($errorLevel,$errorMsg){

@session_start();

$_SESSION['error_msg'] = $errorMsg;

header("Location: error.php");

exit;

}

set_error_handler("customError");

error_reporting(E_ALL);

$connection = mysql_connect("localhost", "user", "password");

mysql_select_db("test");

$result = mysql_query("select * from nama_table");

while($row = mysql_fetch_array($result)){

echo $row['nama_field'];

}

Baris 2-7 merupakan contoh Custom Error Handler, pesan error disimpan ke dalam sebuah session, dan pengguna dibawa ke halaman "error.php" pada saat terjadi error. Di baris 8 digunakan function set_error_handler($handler); untuk menentukan Custom Error Handler yang digunakan pada saat terjadi error.


3.5 Men-generate atau Men-trigger Error

PHP memberikan kemampuan untuk mengenerate custom error message menggunakan function trigger_error(). Function ini bisa digunakan misalnya pada saat pengguna memasukkan karakter karakter ilegal, seperti memasukkan tag html. Contoh:

$input = "hurup tebal";

if(preg_match('/<(.+)>/', $input)){

trigger_error("anda tidak boleh memasukkan html tag");

}

Menggunakan trigger_error bersama Custom Error Handler

function customError($errorLevel,$errorMsg){

@session_start();

$_SESSION['error_msg'] = $errorMsg;

header("Location: error.php");

exit;

}

set_error_handler("customError", E_USER_WARNING);

$input = "hurup tebal";

if(preg_match('/<(.+)>/', $input)){

trigger_error("anda tidak boleh memasukkan html tag", E_USER_WARNING);

}

3.6 Mengirim Email Saat Terjadi Error

Bagi para programmer atau webmaster, mendapatkan email saat terjadi error sangat membantu untuk mengambil tindakan yang cepat dan bila diperlukan untuk memperbaiki kode yang ada. Untuk itu bisa menggunakan kode seperti:

function customError($errorLevel,$errorMsg){

echo "Error: [$errorLevel] $errstr
";

echo "Admin terlah diberi tahu";

error_log("Error: [$errorLevel] $errorMsg",1,

"admin@example.com","From: error@example.com");

}

set_error_handler("customError", E_USER_WARNING);

$input = "hurup tebal";

if(preg_match('/<(.+)>/', $input)){

trigger_error("anda tidak boleh memasukkan html tag", E_USER_WARNING);

}

4. Penutup

4.1 Kesimpulan

Error Handling sangat lah dibutuhkan oleh setiap program agar setiap terjadi kesalahan memiliki suatu penanganan khusus sehingga program tersebut menjadi user friendly, karena eksekusi program tidak akan dihentikan apabila terjadi suatu kesalahan melainkan eksekusi program akan diteruskan ke blok program error handling tersebut.

4.2 Saran

Bagi setiap programmer sebaiknya mempertimbangkan suatu blok error handling sebelum mulai membuat program. Karena hal ini sangat vital bagi proses eksekusi program tersebut. Jika programmer melupakan error handling maka dapat dipastikan bahwa program yang diciptakan tidak akan berjalan dengan sempurna, atau dengan kata lain program tersebut kurang dapat dijalankan dengan sempurna

Demikian lah pembahasan saya mengenai Error Handling dalam rangka menyelesaikan tugas Interaksi Manusia & Komputer (IMK) jurusan Sistem Komputer Universitas Gunadarma. Diharapkan pembahasan yang sedikit ini dapat dijadikan suatu pembelajaran dan bermanfaat bagi yang membacanya.

Sumber :

http://searchsoftwarequality.techtarget.com/definition/error-handling

http://www.php.net/manual/en/errorfunc.constants.php

http://www.w3schools.com/php/php_error.asp

Jumat, 04 Maret 2011

Prinsip Usability

Prinsip Usability pada mata kuliah Interaksi Manusia dan Komputer adalah suatu masalah optimasi penggunaan sistem oleh pengguna. Sistem akan bekerja dengan baik apabila dipergunakan secara maksimal oleh pengguna sehingga semua kemampuan sistem dapat termanfaatkan secara maksimal.

Didalam Prinsip Usability terdapat hal-hal yang harus diperhatikan diantaranya Human Ability, Human Capabilities, Memori, Problem Solving.

Human Ability

adalah suatu kemampuan manusia untuk melakukan sesuatu yang dimilikinya. Memiliki 2 perbedaan yaitu:

HUMAN ABILITIES BAIK
- Kapasitas Long Term Memory (LTM) tidak terbatas
- Durasi LTM tidak terbatas dan komplex
- Kemampuan memahami tinggi
- Mekanisme konsentrasi powerful
- Pengenalan pola pikir powerful
HUMAN ABILITIES BURUK
- Kapasitas Short Term Memory (STM) terbatas
- Durasi STM terbatas
- Akses yang tidak dapat diandalkan pada STM
- Proses yang cenderung salah
- Proses yang lambat

Human Capabilities

Pengertiannya hampir sama dengan Human Ability tetapi Human Capabilities lebih mengarah ke anggota Penginderaan / Panca indra (Mata, Telinga, Peraba) pada manusia itu sendiri.

MATA (penglihatan)

Mata adalah mekanisme untuk menerima cahaya dan mentransformasikannya menjadi energi listrik. Penglihatan manusia merupakan hal yang kompleks dengan batasan fisik dan persepsi dan menjadi sumber utama informasi.

Konsep penglihatan pada manusia terdiri dari dua tahap yaitu
-Penerimaan stimulus dari luar secara fisik
-Pemrosesan serta interpretasi dari stimulus tersebut
TELINGA (pendengaran)

Telinga adalah suatu panca indera yang digunakan untuk mendengar. Proses mendengat diawali dengan adanya getaran di udara atau dikenal sebagai gelombang suara. Telinga menerima gelombang ini dan mentransmisikannya ke system syaraf auditory melalui berbagai tahap.

Telinga terdiri dari tiga bagian yaitu:

-Telinga bagian luar (outer ear) yang merupakan bagian yang terlihat, terdiri dari dua bagian yaitu pinna yang melekat pada kepala, dan auditory canal yang melewatkan gelombang suara ke telinga bagian tengah. Telinga bagian luar ini melindungi telinga bagian dalam yang sensitif terhadap kerusakan, kotoran, dan mempertahankan suhu yang konstan. Telinga bagian luar juga memperkuat gelombang suara (amplify) dari beberapa jenis suara.

-Telinga bagian tangah (middle ear) merupakan lubang kecil yang terdiri dari tulang terkecil dalam tubuh manusia disebut ossicles dan terhubung dengan telinga bagian luar oleh sebuah gendang telinga yang disebut membrane tympanic dan dengan telinga bagian dalam oleh cochlea. Gelombang suara dilewatkan melalui melalui auditory canal dan menggetarkan gendang telinga dan akhirnya ke ossicles yang kemudian melewatkan getaran tersebut ke cochlea dan telinga bagian dalam.

-Telinga bagian dalam (inner ear) terdapat liquid-filled cochlea yang memiliki sel-sel rambut halus yang disebut cilia yang merespon getaran dari telinga bagian tengah dan mentransmisikan reaksi kimia ke saraf auditory (pendengaran)

Suara memiliki beberapa karakteristik, yaitu :
- Pitch : frekuensi suara (20 – 20.000 HZ)
- Loudness : amplitudo suara (30 – 100dB)
- Timbre : tipe atau jenis suara

Telinga manusia dapat mendengar frekuensi 20 Hz hingga 15 KHz.

PERABA (Touch)

Peraba (touch/haptic perception) memungkinkan kita memperoleh informasi mengenai lingkungan sekitar kita. Dari perabaan, kita dapat mengetahui apakah sesuatu itu panas atau dingin.

Kulit memiliki tiga jenis sensor penerima (sensory receptor), yaitu :
-Thermoceptor yang merespon panas / dingin
-Nociceptor yang merespon pada tekanan yang intens, rasa sakit
-Mechanoceptor yang merespon pada tekanan.

Mechanoceptor terbagi menjadi dua kelompok berdasarkan responnya terhaap perbedaan tekanan, yaitu:

-Rapidly adapting mechanoceptor merespon pada tekanan yang diberikan dengan cepat.

-Slowly adapting mechanoceptor merespon pada tekanan yang diberikan secara kontinyu.

Meskipun seluruh tubuh manusia memiliki receptor, namun pada beberapa bagian memiliki sensitivitas yang lebih dibandingkan yang lain. Aspek lain dari indera perabaan adalah kinesthesis, yaitu kesadaran terhadap posisi tubuh dan alat gerak yang bergantung pada jumlah receptor pada persendian. Terdapat tiga jenis kinesthesis, yaitu:

-Rapidly adapting yang merespon saat alat gerak bergerak kea rah tertentu

-Slowly adapting yang merespon gerakan dan posisi statis, dan

-Positional receptor yang hanya merespon pada keadaan statis.
Memori

Sebagian besar aktivitas manusia bergantung pada memori. Selain menyimpan paengetahuan faktual, memori manusia juha menyimpan pengetahuan procedural.pengetahuan tersebut melakukan aktivitas secara berulang, menggunakan bahasa, menggunakan informasi yang kita terima dari indera, serta memberikan identitas pada manusia dengan menyimpan informasi mengenai pengalaman masa lalu. Terdapat tiga jenis memori atau fungsi memori:

  1. Memori Sensor
  2. Memori Jangka Pendek (STM)
  3. Memori Jangka Panjang (LTM)

MEMORI SENSOR

Memori sensor bekerja sebagai buffer yang menampung masukan yang diterima dari panca indera manusia.memori sensor terdiri dari:

-Memori iconic untuk indera visual

-Memori echoic untuk indera aural/auditory, dan

-Memori haptic untuk indera peraba.

MEMORI JANGKA PENDEK (STM)

Memori jangka pendek atau disebut sebagai memori kerja mentimpan informasi yang dibutuhkan dalam waktu yang singkat / sementara pada saat kita sedang melakukan suatu pekerjaan.

Memori jangka pendek dapat diakses dengan cepat, namun berkurang secara cepat pula. Memori ini juga memiliki kapasitas yang terbatas. Ada dua metode yang dapat digunakan untuk mengukur kapasitas memori jangka pendek:

-Berdasarkan panjang suatu deret (sequence) yang dapat diingat secara terurut

-Berdasarkan kemampuan mengingat kembali item-item secara acak.

MEMORI JANGKA PANJANG (LTM)

Memori jangka panjang merupakan sumber daya penyimpanan utama yang menyimpan informasi faktual, pengetahuan berdasarkan eksperimen / pengalaman, aturan-aturan prosedur tingkah laku, dan sebagainya atau bisa dikatakan menyimpan semu hal yang kita ketahui. Kapasitasnya lebih besar, waktu akses yang lebih lambat, serta proses hilangnya informasi lebih lambat. Terdapat dua jenis memori jangka panjang:

-Memori episodic, menggambarkan karakteristik memori yang menyimpan “data” kejadian atau pengalaman dalam bentuk serial menurut waktu

-Memori semantic adalah bentuk memori yang menyimpan record-rekord fakta, konsep, keahlian (skill).

Ada tiga jenis aktivitas yang dilakukan oleh memori jangka pnjang:

- Menyimpan atau mengingat informasi
- Menghilangkan atau melupakan informasi
- Memanggil kembali informasi.

Proses melupakan informasi terdiri dari dua bentuk, yaitu:

-Decay adalah proses melupakan informasi karena informasi tersebut sudah lama berada di long-term memory sehingga lambat laun akan terlupakan.

-Interference disebabkan karena adanya informasi baru yang dapat mengakibatkan informasi yang lama terlupakan.

Proses memanggil kembali informasi yang ada di long-term memory terdiri dari dua bentuk, yaitu:

-Recall adalah memanggil kembali secara langsung informasi yang ada di long-term memory

-Recognition, informasi didapatkan dengan presentasi sejumlah pengetahuan (knowledge) yang terkait sebagai petunjuk.

PROBLEM SOLVING

Jika penalaran merupakan mekanisme untuk menarik kesimpulan atau informasi baru dari hal yang sudah diketahui, maka penyelesaian masalah merupakan proses menemukan solusi suatu tugas dengan menggunakan pengetahuan yang dimiliki. Penyelesaian masalah pada manusia dikarakteristikkan oleh kemampuan mengadaptasikan informasi dengan situasi yang baru. Terdapat beberapa pandangan mengenai cara manusia menyelesaikan masalah. Gestalt memandang bahwa proses pemecahan masalah melibatka penggunaan pengetahuan dan proses mantal (insight). Teori problem space melihat bahwa pikiran manusia adalah proses informasi yang terbatas.

(Sumber : Buku Interaksi Manusia dan Komputer Penerbit GUNADARMA)

Sabtu, 01 Januari 2011

Contoh Aplikasi Manajemen Proyek & Resiko

Konsep manajemen proyek meliputi :

  1. Proyek merupakan suatu kegiatan yang sifatnya sementara dengan tujuan tertentu dan memanfaatkan sumber – sumber daya
  2. manajemen proyek adalah proses pencapaian tujuan proyek dalam suatu wadah tertentu
  3. manajemen proyek meliputi langkah – langkah perencanaan, pelaksanaan, pengawasan, dan penyesuaian proyek.
  4. kendala / hambatan proyek adalah spesifikasi kerja, jadwal waktu dan dana
  5. bentuk organisasi atau wadah yang dimaksud dalam manajemen proyek adalah organisasi fungsional, koordinator gugus tegas dan matrik

Menurut para ahli pengertian menajemen proyek sebagai berikut:
  • H.Kurzner
Manajemen proyek adalah merencanakan,menyusun organisasi, memimpin, dan mengendalikan sumber daya perusahaan untuk mencapai sasaran jangka pendek yang telah ditentukan.

Manajemen proyek merupakan suatu usaha merencanakan, mengorganisasi, mengarahkan, mengkordinasi, dan mengawasi kegiatan dalam proyek sedemikian rupa sehingga sesuai menjadwalkan yang telah ditetapkan.
Aplikasi dari manajemen proyek ini misalnya sebuah perusahaan pertambangan batu bara, dimana dalam perusahaan tersebut terdiri dari :
A. Pemimpin perusahaan
B. Manajer umum
C. Manajer teknik
D. Manajer keuangan
E. Menajer produksi
F. Pengendalian mutu
G. Biaya dan jadwal
Setiap pimpinan diatas mempunyai tanggungjawab satu sama lain yang bergerak secara bersama-sama supaya perusahaan menghasilkan keuntungan sesuai yang di kehendaki..
Dari setiap pemimpin diatas mulai dari tertinggi mempunyai hak dan kewajiban.

a. Pemimpin perusahaan
Pemimpin perusahaan mempunyai wewenang penuh dalam pengelolaan proyek pertambangan batu bara, sebagai komando tunggal yang memiliki wewenang dan tanggungjawab yang jelas dan sasaran spesifik, menanggapi dari setiap perubahan dan mengambil keputusan yang tepat.

b. Manajer
Manajer dari setiap bagian mempunyai tugas dan tanggungjawab yang besar terhadap pemimpin yaitu sebagai berikut:
1. Mempunyai orientasi yang kuat dalam pencapaian pertambangan batu bara, harus berinisiatip tinggi,luwes, bertanggungjawab, kritis.
2. Semangat dalam menghadapi tantangan.
3. menguasai aspek hubungan antara manusia karena adanya hubunganvertikal dan horizontal.
4. Generalisasi dan spesifikasi
5. Kekuasaan berasal keahlian mengajak anggota dan pekerja tanggap terhadap keinginan manajer.

Adapun tugas dari setiap manajer atau kepala bagian dari perusahaan pertambangan perusahaan ini adalah:
A. Manajer umum
Mempunyai tugas untuk mengelola kegiatan dan harus mampu mengintegrasikan menjadio suatu kegiatan yang terpadu.

B. Manajer teknik
Bertugas untuk menyiapkan desain engering, membuat daftar harga barang untuk pembelian alat dan alat material lainnya, dan pemakaian subkontraktor bila diperlukan.

C. Manajer keuangan
Bertanggungjawab dalam mengelola keungan perusahaan baik yang masuk dan keluar, membagi upah dari setiap karyawan.

D. Manajer produksi
Bertanggungjawab besar terhadap hasil perusahaan pertambangan batu bara, supaya hasil maksimal.

E. Pengendalian mutu
Bertugas mengendalikan mutu agar sesuai dengan standar mutu.

F. Biaya dan jadwal
Bertugas terhadap biaya terhadap semua operasional dan penjadwalan pertambangan.

Manajemen risiko merupakan aplikasi dari manajemen umum yang secara khusus membahas strategi untuk mengatasi aktivitas-aktivitas yang menimbulkan risiko yang terjadi.

Contoh Proyek yang ada dilingkungan kita:
1. Proyek konstruksi yaitu Hasilnya berupa pembangunan jembatan, gedung, jalan raya,
dsb.
2. Proyek Industri Manufaktur Kegiatannya mulai dari merancang hingga terciptanya
suatu produk baru.
3. Proyek penelitian dan pembangunan: Melakukan penelitian dan pengembangan hingga
tercuptanya sebuah produk tertentu dengan tujuan untuk memperbaiki atau
meningkatkan suatu produk, pelayanan atau suatu metode tertentu.
4. Proyek padat modal: Suatu proyek yang memerlukan modal yang besar. Misalnya
pembebasan tanah, pembelian dan pengadaan suatu barang, pembangunan suatu
fasilitas produksi dsb.
5. Proyek Infrastruktur: Penyediaan kebutuhan masyarakat luas dalam hal prasarana
transportasi, Waduk, pembangkit listrik, instalasi telekomunikasi dan penyediaan
sumber air minum.

Jadi dapat kita simpulkan dari masing-masing pengertian manajemen dan proyek. Apabila digabungkan, Manajemen Proyek adalah kegiatan merencanakan, mengorganisasikan, mengarahkan dan mengendalikan sumber daya organisasi perusahaan untuk mencapai tujuan tertentu dalam waktu tertentu dengan sumber daya tertentu pula. Manajemen proyek sangat cocok untuk suatu lingkungan bisnis yang menuntut kemampuan akuntansi, fleksibilitas, inovasi, kecepatan, dan perbaikan yang berkelanjutan.

Kegiatan proyek biasanya dilakukan untuk berbagai bidang antara lain sebagai berikut:

  • Pembangunan fasilitas baru. Artinya merupakan kegiatan yang benar-benar baru dan belum pernah ada sebelumnya, sehingga ada penambahan usaha baru.
  • Perbaikan fasilitas yang sudah ada. Merupakan kelanjutan dan usaha yang sudah ada sebelumnya. Artinya sudah ada kegiatan sebelumnya, namun perlu dilakukan tambahan atau perbaikan yang diinginkan.
  • Penelitian dan pengembangan. Merupakan kegiatan penelitian yang dilakukan untuk suatu fenomena yang muncul di masyarakat, lalu dikembangkan sedemikian rupa sesuai dengan tujuan yang diharapkan.
(Disadur dari Sumber : http://www.btw.web.id/pengertian-dan-contoh-management-proyek-dan-resiko.php)