Minggu, 06 Mei 2012

Backup Semua Database

Ada beberapa cara yang bisa dilakukan untuk melakukan backup database di MySQL. Berikut adalah artikel mengenai penggunaan MySQLDump.

Menggunakan MYSQLDUMP

mysqldump adalah utilitas client yang datang bersama distribusi MySQL. Aplikasi ini akan menghasilkan script SQL di console, sehingga bisa didump ke file melalui IO pipe.

Berikut adalah contoh-contoh penggunaan mysqldump untuk backup database :
  • Backup semua database  - struktur dan data

    mysqldump -uusername -ppassword -A

    atau

    mysqldump -uusername -ppassword --all-databases

    atau jika output ke file melalui mekanisme pipe

    mysqldump -uusername -ppassword -A > backup-all.sql

  • Backup semua database - hanya struktur

    mysqldump -uusername -ppassword -A -d

    atau

    mysqldump -uusername -ppassword --all-databases --no-data

    atau jika output ke file melalui mekanisme pipe

    mysqldump -uusername -ppassword --all-databases --no-data > backup-all.sql

Mengubah Nama dan Memodifikasi Field Tabel Database MySQL



Berikut ini akan saya beri sampel bagaimana cara memodifikasi atau lebih tepatnya mengubah nama table beserta mengubah struktur field yang ada dalam suatu table Database MySQL menggunakan Query SQL.
Misalkan anda mempunyai table bernama user dan field-fieldnya (no, username, password, tgl_lahir), lebih jelasnya mempunya struktur seperti di bawah:
1CREATE TABLE user(
2no int(5),
3username varchar(100),
4tgl_lahir varchar(100)
5password varchar(100)
6)
Ketika database sudah jadi, bisa saja suatu saat anda mungkin saja ingin mengubah Nama Tabel-nya atau ingin memodifikasi struktuf field-fieldnya yang ada pada table. Nah pada tutorial ini saya akan coba memberikan contoh cara melakukan modifikasi table dan field-field menggunakan Query SQL yang diantaranya ialah
1. Mengubah Nama Table
2. Mengubah Nama Field
3. Menambah Field Baru
4. Membuat Primary Key
5. Mengubah tipe data Field
6. Mengubah property Field
7. Menghapus Primary Key
Contoh:
1. Mengubah Nama Table
Table user menjadi pengguna
1ALTER TABLE user RENAME TO pengguna;
2. Mengubah Nama Field
Field username menjadi namauser
1ALTER TABLE user CHANGE username namauser varchar(100);
3. Menambah Field Baru
Field baru bernama alamat dengan tipe data varchar(100)
1ALTER TABLE user ADD alamat varchar(100);
4. Membuat Primary Key
Field no di jadikan Primary Key
1ALTER TABLE user ADD PRIMARY KEY (no);
Atau kedua Field no dan username akan dijadikan primary key
1ALTER TABLE user ADD PRIMARY KEY (no,username);
5. Mengubah tipe data Filed
Field no dengan type data int(5) menjadi varchar(5)
1ALTER TABLE user CHANGE no no varchar(5);
6. Mengubah Property Field
Mengubah Property Field no agar tidak boleh kosong (NOT NULL)
1ALTER TABLE user CHANGE no no NOT NULL;
Mengubah Property Field no agar boleh kosong (NULL)
1ALTER TABLE user CHANGE no no NULL;
Mengubah Property Field tgl_lahir dari tipe data varchar(100) menjadi DATE dan dari NULL (boleh kosong) menjadi NOT NULL (tidak boleh kosong)
1ALTER TABLE user CHANGE tgl_lahir tgl_lahir DATE NOT NULL;
7. Menghapus Primary Key
Perlu anda ketahui bahwa untuk menghapus Primary Key pada Table tidak bisa di lakukan satu persatu.
Misalkan dua Field no dan username sebelumnya sudah diset menjadi primary key dan kemudian ingin agar Field username bukan lagi Primary Key.
Maka anda tidak bisa Menghapus Primary Key dari field username saja. tetapi harus menghapus keseluruhan Primary Key no dan username
1ALTER TABLE user DROP PRIMARY KEY;

Sabtu, 05 Mei 2012

Copy atau Duplikasi Table Pada MySQL

Anda ingin melakukan "copy table" baik struktur maupun isinya dari satu database ke database lain ?

Tentu saja Anda bisa, ada dua perintah yang perlu dieksekusi yaitu :
  1. duplikasi struktur table dengan perintah "CREATE TABLE database_tujuan.table_tujuan LIKE database_asal.table_asal".
  2. populasi data dengan perintah "INSERT INTO database_tujuan.table_tujuan SELECT * FROM database_asal.table_asal".

Contoh Penggunaan :

Misalkan saat ini saya memiliki 2 database, yaitu database PHI_MINIMART dan database PHI_COPY.  Saya ingin menduplikasi table ms_produk dari database PHI_MINIMART ke PHI_COPY.

Maka urutan eksekusi perintah yang saya lakukan adalah sebagai berikut :

CREATE TABLE olap.ms_produk LIKE oltp.ms_produk; -- digunakan untuk duplikasi struktur
 
INSERT INTO olap.ms_produk SELECT * FROM oltp.ms_produk
-- digunakan untuk populasi data sesuai sumber
 

Membuat Stored Procedure di MySQL

Stored procedure adalah salah satu objek routine yang tersimpan pada database MySQL dan dapat digunakan untuk menggantikan berbagai kumpulan perintah yang sering kita gunakan, seperti misalkan sejumlah row ke table lain dengan filter tertentu.

Stored procedure sangat berguna ketika kita tidak ingin user mengakses table secara langsung, atau dengan kata lain membatasi hak akses user dan mencatat operasi yang dilakukan. Dengan demikian resiko kebocoran dan kerusakan data dapat lebih diminalisir.

Pembuatan Stored Procedure

Kita dapat membuat trigger dengan perintah CREATE PROCEDURE. Berikut adalah syntax lengkapnya :

CREATE
    [DEFINER = { user | CURRENT_USER }]
    PROCEDURE sp_name (proc_parameter[,...])
    
[characteristic ...] routine_body

Keterangan :
  • sp_name : nama stored procedure.
  • proc_parameter : parameter input / output dari stored procedure tersebut (opsional).
  • characteristic : menjelaskan karakteristik dari stored procedure (COMMENT, LANGUAGE SQL, dan lain-lain).
  • routine_body : kumpulan perintah pada stored procedure tersebut.
  • Jika DEFINER dispesifikasikan maka kita memutuskan trigger tersebut dijalankan hanya oleh user tertentu (dalam format penulisan user@host). Jika tidak dispesifikasikan, maka user yang melakukan perubahan (CURRENT_USER) adalah pilihan default.

Contoh Penggunaan

Berikut adalah contoh pembuatan dan penggunaan stored procedure untuk menghapus data berdasarkan "kode produk" untuk tiga table yaitu table "ms_produk", "ms_harga_harian", dan "tr_penjualan".

  1. Buatlah satu stored procedure dengan nama HapusProduk, dengan satu argumen yaitu kode_produk_param bertipe teks (varchar) dengan perintah berikut :

    DELIMITER |
     
    CREATE PROCEDURE HapusProduk(IN kode_produk_param VARCHAR(12))
    BEGIN
            DELETE FROM ms_produk WHERE kode_produk = kode_produk_param;
            DELETE FROM ms_harga_harian WHERE kode_produk = kode_produk_param;
            DELETE FROM tr_penjualan WHERE kode_produk = kode_produk_param;
    END;
     
    |
     
    DELIMITER ;

  2. Setelah selesai dieksekusi, pastikan stored procedure tersebut sudah terbentuk di database kita.

  3. Sebelum kita mengeksekusi stored procedure tersebut. Kita coba lihat hasil query untuk produk "PROD-0000002" untuk ketiga table yang disebutkan di atas. Ini untuk memastikan adanya row untuk produk tersebut.

    Add caption
  4. Sekarang coba panggil stored procedure HapusProduk dengan parameter "PROD-0000002" dan tunggu beberapa saat sampai eksekusi selesai.

    CALL HapusProduk('PROD-0000002');

  5. Coba lakukan kembali perintah pada point no. 3 dan terlihat bahwa sudah tidak terdapat data untuk produk  "PROD-0000002" pada ketiga table tersebut.

  6. Selesai
sumber : http://mysql.phi-integration.com/sql/membuat-stored-procedure-di-mysql

Cara Replikasi Database Di MySQL

Definisi :
Replication Database adalah suatu fitur teknologi pada dunia pemrograman database yang memungkinkan suatu database untuk mereplikasi atau mengopy datanya ke database lain secara otomatis. Secara sederhana replikasi database adalah proses automatik perintah dari database satu ke database lain yang tentunya terhubung dalam jaringan.
Kegunaan :
Kegunaan dari proses replikasi ini adalah bila suatu database satu mengalami kerusakan maka secara otomatis semua data yang telah disimpan pada database satu dapat dilihat kembali di database lain. Kalau pada pembahasan diatas yaitu Proses Backup dan Restore agak kurang praktis, maka konsep inilah solusi keefektifan dalam menjawab kekurangpraktisan kedua proses diatas. Konsep ini merupakan konsep teknologi yang unik, karena secara otomatis segala perintah yang ada pada database satu akan tersimpan pada database lain sehingga bila kehilangan data pada database satu, database masih tersimpan rapih di database lain.
Praktik Proses Replikasi :
Praktik proses replikasi database ini saya lakukan dengan database MySQL. Pada MySQL sendiri sudah mendukung konsep teknologi Replikasi namun tidak secara default langsung terseting untuk melakukan proses replikasi. Kita mesti menyeting terlebih dahulu agar bisa melakukan proses ini.
Satu hal yang penting saat penyetingan proses Replikasi adalah sudah ada 2 komputer yang terkoneksi / terhubung dan 2 komputer tersebut sudah ter-install MySQL sebagai proses kegiatan database.
Dalam proses replikasi database dikenal 2 server database atau 2 MySQL pada komputer yaitu sebagai Master server dan Slave server. Master server adalah server yang biasa dipergunakan untuk melakukan kegiatan managing database. Sedangkan Slave Server adalah database yang bertindak sebagai pencatat sekaligus pereplikasi / pengopian data setiap melakukan kegiatan managing database pada Master Server. Slave Server memiliki alamat IP 192.168.1.1 sedangkan alamat Master Server memiliki alamat IP 192.168.1.2
Sebelum itu pula kita mesti membuat user pada Server Slave yang dapat diakses oleh siapapun dalam jaringan manapun. Disini kami membuat user dengan nama tamu dan password tamu serta user tamu ini memiliki akses GRANT ALL pada semua database.

[ gambar 1 ]
Bila sudah, mari kita mulai menyeting konfigurasinya :
Pada Komputer Master Server :
Pada komputer Master Server cari file my.ini, biasanya selalu ada pada installan MySQL kita. Kalau pada komputer kami berada pada path C:\Program Files\MySQL\MySQL Server
5.1\my.ini
. Bila sudah ditemukan, coba buka dengan notepad, lalu lihat konfigurasinya.
Lalu ketikan dibawah [mysqld] dengan :
log
log-bin=mysql-log.bin
binlog-do-db=nama_database_replication
server-id=1
Lengkapnya bisa dilihat gambar dibawah ini :

[ gambar2 ]
Pada gambar diatas, dataku adalah nama database yang akan dipergunakan untuk proses replikasi, database yang akan secara otomatis disimpan pada Slave Server. Bila sudah, simpan perubahan tersebut, lalu restart service mysql dengan cara mematikan dan menghidupkan lagi servicenya.

[ gambar3 ]
Bila sudah, masuk ke konsol mysql dengan user root lalu buat user yang akan melakukan proses replikasi. Caranya dengan mengetikan perintah ini :
mysql> grant replication slave on *.* to ‘tamu’@’192.168.1.1’ identified by ‘tamu’;
Bila sudah refresh perubahan user baru dengan perintah :
mysql> flush privileges
Bila sudah merefress, coba lihat status Master dengan cara mengetikan perintah ini :

[ gambar4 ]
Pada gambar, terdapat file log yang berisi perintah-perintah Master Server disimpan, posisi Master Server dan Database yang di replikasi. Sampai sini, sekarang kita setting di Slave Server.

Pada Komputer Slave Server :
Cari file my.ini pada Komputer Slave Server. Sama seperti pada komputer Master Server, file my.ini saya berada pada path C:\Program Files\MySQL\MySQL Server 5.1\my.ini. Bila sudah buka dengan notepad lalu tambahkan dibawah [mysqld] beberapa setingan dibawah ini :
server-id=2
master-host=IP-MASTER SERVER
master-user=user_slave
master-password=passwd_slave
master-connect=60
replicate-do-db=nama_database_replication
Yang terpenting adalah samakan nama database replikasinya dengan setingan pada Master Server dan server-id mesti berbeda valuenya dengan server-id pada setingan di Master Server.
Sesuaikan juga user_slave_server dan passwordnya yang telah kita buat pada langkah diatas.
Lengkapnya bisa dilihat disetingan kami pada gambar dibawah ini:

[ gambar5 ]
Bila sudah simpan perubahan pada file my.ini, lalu lakukan restart service mysqlnya seperti pada gambar 2.

sumber : http://terusbelajar.wordpress.com/2010/03/04/cara-replikasi-database-di-mysql/

MySQL


MySQL.png












MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.
Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.

Keistimewaan MySQL

MySQL memiliki beberapa keistimewaan, antara lain :
  1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
  2. Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
  3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
  4. 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
  5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
  6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
  7. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
  8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
  9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
  10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
  11. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
  12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
  13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.

Penggunaan

MySQL sangat populer dalam aplikasi web seperti MediaWiki (perangkat lunak yang dipakai Wikipedia dan proyek-proyek sejenis) dan PHP-Nuke dan berfungsi sebagai komponen basis data dalam LAMP. Popularitas sebagai aplikasi web dikarenakan kedekatannya dengan popularitas PHP, sehingga seringkali disebut sebagai Dynamic Duo. Text dicoret{{}}

Administrasi

Untuk melakukan administrasi dalam basis data MySQL, dapat menggunakan modul yang sudah termasuk yaitu command-line (perintah: mysql dan mysqladmin). Juga dapat diunduh dari situs MySQL yaitu sebuah modul berbasis grafik (GUI): MySQL Administrator dan MySQL Query Browser. Selain itu terdapat juga sebuah perangkat lunak gratis untuk administrasi basis data MySQL berbasis web yang sangat populer yaitu phpMyAdmin. Untuk perangkat lunak untuk administrasi basis data MySQL yang dijual secara komersial antara lain: MySQL front, Navicat dan EMS SQL Manager for MySQL.

Senin, 30 April 2012

ETIKA PROGRAMMER

ETIKA PROFESI YANG BERLAKU BAGI PROGRAMMER DI
INDONESIA
(Kelompok 1_TI.B)
ANGGOTA KELOMPOK :
1. SUPRAPTI (NIM 12111014)
2. SRI WULAN SUCININGSIH (NIM 12111113)
3. UMMUL FAHRIYYAH (NIM 12111016)
4. YOVI CITRA NINGSIH (NIM 12111022)

1. PENDAHULUAN
Bukanlah suatu hal yang berlebihan jika dikatakan bahwa komputer merupakan alat sosial karena kenyataannya bahwa teknologi tersebut dipergunakan secara intensif pada berbagai komunitas masyarakat seperti institusi, organisasi, perusahaan, dan lain sebagainya. Seperti halnya pada alat-alat sosial yang lain, pemanfaatan teknologi komputer dapat secara langsung maupun tidak langsung berpengaruh terhadap tatanan kehidupan masyarakat yang menggunakannya. Selain dibutuhkan moral yang didefinisikan sebagai suatu prinsip perilaku benar dan salah dan hukum, etika memegang peranan yang sangat penting. Kata Etika berasal dari bahasa Yunani Ethos, yang berarti karakter. Etika adalah satu set kepercayaan, standar, atau pemikiran yang mengisi suatu individu, kelompok atau masyarakat. Semua individu bertanggung jawab kepada masyarakat atas prilaku mereka. Masyarakat dapat berupa suatu kota, negara atau profesi. Tindakan kita juga diarahkan oleh etika. Tidak seperti moral, etika dapat sangat berbeda dari satu masyarakat ke masyarakat lain. Karakteristik etika yang lebih spesifik dalam dunia komputer diperkenalkan oleh seorang profesor dari Darmouth pada tahun 1985. James H. Moor mendefinisikan etika komputer sebagai analisis mengenai sifat dan dampak social teknologi kompter, serta formulasi dan justrifikasi kebijakan dalam menggunakan teknologi tersebut secara etis. Menjadi seorang Programmer atau Jasa Pemrograman sistem harus ditunjang pengalaman yang cukup. Bukan hanya harus mengerti secara detail tentang bagaimana mendevelop suatu sistem, tetapi juga harus bisa menjiwai sistem tersebut. Etika profesi yang berlaku bagi programmer di indonesia 1Dalam arti, dalam pengembangan suatu sistem khususnya kepada klien tidak harus mengikuti 100% apa yang diinginkan oleh kliennya, tetapi juga harus dipikirkan kebutuhan masa depan klien dan kemudahan untuk pengembangan berikutnya. Seringkali seorang programmer hanya mengikuti perintah dari kliennya, sampai keinginan klien semua dikerjakan, tetapi lupa tentang bagaimana jika dimasa depan sistem tersebut akan dikembangkan. Kalau sudah salah mendevelop, akhirnya bisa berakibat fatal yakni jika ingin dikembangkan tidak bisa, karena harus merubah seluruh sistem, program dan database yang ada. Seorang programmer harus berupaya meresapi pemikiran para klien dan apa yang mereka harapkan serta mengarahkan mereka melihat sesuatu lebih ke depan sehingga kesadaran klien bisa digugah. Dengan demikian program yang akan dibuat bisa lebih mudah diterima oleh klien atau calon klien.
2. PENGERTIAN PROGRAMMER
Programmer adalah individu yang bertugas dalam hal rincian implementasi, pengemasan, dan
modifikasi algoritma serta struktur data, dituliskan dalam sebuah bahasa pemrograman tertentu.
Deskripsi Pekerjaan :
a) Menulis program (coding) dengan menggunakan pemograman tertentu ( VB, VB.NET, Java ).
b) Memahami konsep basis data.
c) Mampu mengoperasikan aplikasi basis data.
d) Melakukan pengujian terhadap aplikasi program.
e) Melakukan analisis terhadap aplikasi program.
f) Melakukan riset , desain, dokumentasi dan modifikasi aplikasi software.
g) Melakukan analisis dan memperbaiki kerusakan (error ) pada software dengan tepat dan cara yang
akurat.
3. KODE ETIK PROGRAMMER
Pemrograman komputer membutuhkan sebuah kode etik, dan kebanyakan dari kode-kode etik ini disadur berdasarkan kode etik yang kini digunakan oleh perkumpulan programmer internasional.
Kode etik seorang programmer adalah sebagai berikut :
1. Seorang programmer tidak boleh membuat atau mendistribusikan Malware.
2. Seorang programmer tidak boleh menulis kode yang sulit diikuti dengan sengaja.
3. Seorang programmer tidak boleh menulis dokumentasi yang dengan sengaja untuk membingungkan atau tidak akurat.
4. Seorang programmer tidak boleh menggunakan ulang kode dengan hak cipta kecuali telah membeli atau telah meminta izin.
5. Tidak boleh mencari keuntungan tambahan dari proyek yang didanai oleh pihak kedua tanpa izin.
6. Tidak boleh menerima dana tambahan dari berbagai pihak eksternal dalam suatu proyek secara bersamaan kecuali mendapatkan izin.
7. Tidak boleh menulis kode yang dengan sengaja menjatuhkan kode programmer lain untuk mengambil keuntungan dalam menaikkan status.
8. Tidak boleh membeberkan data-data penting karyawan dalam perusahaan.
9. Tidak boleh memberitahu masalah keuangan pada pekerja dalam pengembangan suatu proyek.
10. Tidak pernah mengambil keuntungan dari pekerjaan orang lain.
11. Tidak boleh mempermalukan profesinya.
12. Tidak boleh secara asal-asalan menyangkal adanya bug dalam aplikasi.
13. Tidak boleh mengenalkan bug yang ada di dalam software yang nantinya programmer akan mendapatkan keuntungan dalam membetulkan bug.
14. Terus mengikuti pada perkembangan ilmu komputer. Pada umumnya, programmer harus mematuhi “Golden Rule”: Memperlakukan orang lain sebagaimana kamu ingin diperlakukan. Jika semua programmer mematuhi peraturan ini, maka tidak akan ada masalah dalam komunitas.
4. FAKTOR YANG MEMPENGARUHI KUALITAS PRODUK DAN PRODUKTIVITAS PROGRAMMER
1. Kemampuan pribadi :
a) Dua aspek dasar kemampuan : kecakapan umum dan terbiasa dengan aplikasi tertentu.
b) Seorang yang cakap dalam pemrograman belum tentu cakap pula dalam aplikasi sains, atau sebaliknya.
c) Ketidakakraban dengan lapangan aplikasi akan menghasilkan produktivitas rendah dan kualitas yang buruk.
d) Yang dimaksud dengan kecakapan umum adalah kemampuan dasar dalam menulis program komputer dengan benar sedangkan ukuran produktivitas seorang programmer adalah banyak baris yang dihasilkan oleh programmer
2. Komunikasi team :
a) Meningkatnya ukuran produk yang dihasilkan akan menurunkan produktivitas programmer akibat meningkatnya kerumitan antara komponen-komponen program dan akibat meningkatnya komunikasi yang perlu dilakukan antara programmer, manajer, dan pelanggan.
b) Jumlah lintasan komunikasi antar programmer yang terjadi dalam sebuah proyek adalah n(n-1)/2, dimana n adalah jumlah programmer yang terlibat dalam proyek tersebut.
c) Penambahan lebih banyak programmer dalam sebuah proyek yang sedang berjalan akan menurunkan produktivitas, kecuali jika para programmer baru tersebut mempunyai tugas yang tidak bergantung kepada hasil kerja programmer lama.
d) Hukum Brooks : Adding more programmers to a late project may make it later.
3. Kerumitan produk
Tiga level kerumitan produk : program aplikasi, program utility, program level sistem.
4. Notasi yang tepat
Bahasa pemrograman menetapkan notasi (baca : token, reserve word) baku, terutama untuk hal-hal yang berkaitan dengan matematika. penetapan notasi antar programer (baca : perancang produk) harus dilakukan sehingga dapat dimengerti dengan jelas.
5. Pendekatan sistematis
Sistem menetapkan teknik dan prosedur baku. pembakuan dalam pengembangan dan pemeliharaan perangkat lunak masih belum mantap.
6. Kendali perubahan
Kelenturan sebuah produk perangkat lunak merupakan sebuah kekuatan, tetapi di pihak lain juga merupakan sumber kesulitan dalam proses perancangannya. perubahan terhadap produk harus tetap meminta persetujuan manajer sebagai Etika profesi yang berlaku bagi programmer di indonesia penanggung jawab proyek. Dampak perubahan harus dapat ditelusuri, diuji, dan didokumentasikan.
7. Tingkat teknologi
Peran penggunaan teknologi dalam proyek perangkat lunak misalnya menyangkut bahasa pemrograman, lingkungan mesin yang digunakan, teknik pemrograman, dan penggunaan tools tertentu. Bahasa pemrograman modern menyediakan fasilitas penyesuaian pendefinisisan dan penggunaan data, konstruksi
aliran kendali, fasilitas modular, dan concurent programming
8. Tingkat keandalan
Setiap produk harus mempunyai keandalan standar. Peningkatan keandalan dihasilkan melalui perhatian yang sangat besar pada tahap analisa. Peningkatan keandalan akan menurunkan produktivitas. Boehm : rasio produktivitas antara dua produk dengan keandalan terendah dengan yang tertinggi adalah 2:1.
9. Pemahaman permasalahan
Pelanggan adalah penyumbang utama terhadap kegagalan dalam memahami masalah adalah :
a) Tidak memahami permasalahan perusahaannya,
b) Tidak mengerti kemampuan dan keterbatasan komputer,
c) Tidak mempunyai pengetahuan dasar tentang logika dan algoritma.
d) Software engineer tidak memahami lapangan aplikasi, gagal mendapatkan informasi kebutuhan pelnggan karena pelanggan bukan seorang end user.
10. Ketersediaan waktu
a) Penetapan lama proyek dan jumlah programmer terlibat harus mempertimbangkan kemampuan pribadi setiap programmer serta kemapuan komunikasi antar mereka.
b) Jumlah programmer yang makin banyak akan meningkatkan overhead di antaranya akibat keperluan komunikasi.
c) Jumlah programmer yang makin sedikit berarti memperbanyak beban kerja kepada setiap programmer.
d) Proyek 1 bulan dengan 6 programmer bisa saja diganti dengan proyek 6 bulan Etika profesi yang berlaku bagi programmer di indonesia 6dengan 1 programmer atau proyek 3 bulan dengan 3 programmer.
11. Persyaratan keterampilan
Berbagai keterampilan harus ada dalam sebuah proyek perangkat lunak, misalnya :
a) Keterampilan berkomunikasi dengan pelanggan untuk memastikan keinginannya dengan sejelas-jelasnya
b) Kemampuan dalam pendefinisian masalah dan perancangan.
c) Kemampuan implementasi dengan penulisan program yang benar.
d) Kemampuan debugging secara deduktif dengan kerangka “what if ”.
e) Dokumentasi.
f) Kemampuan bekerja dengan pelanggan.
g) Semua keterampilan tersebut harus senantiasa dilatih.
12. Fasilitas dan sumber daya
Fasilitas non teknis yang tetap perlu diperhatikan yang berkaitan dengan motivasi programmer misalnya : mesin yang baik, serta tempat yang tenang, atau ruang kerjanya dapat ditata secara pribadi.
13. Pelatihan yang cukup
Banyak programmer yang dilati dalam bidang-bidang : ilmu komputer, teknik elektro, akuntansi, matematika, tetapi jarang yang mendapat pelatihan dalam bidang teknik perangkat lunak.
14. Kemampuan manajemen
Seringkali manajer proyek tidak mempunyai, atau hanya sedikit mengetahui, latar belakang teknik perangkat lunak. Di sisi lain terjadi promosi jabatan menjadi manajer dimana yang berpromosi tidak atau kurang mempunyai kemampuan manajemen. Sasaran yang tepat Sasaran utama dari teknik perangkat lunak adalah pengembangan produk-produk perangkat lunak yang tepat untuk digunakan.
15. Peningkatan kualitas
Dua aspek yang menimbulkan keinginan untuk meningkatkan kualitas produk adalah seberapa banyak fungsi, keandalan, dan kemampuan dapat diberikan melalui Etika profesi yang berlaku bagi programmer di indonesia sejumlah pengembangan, masalah mendasar dari keterbatasan teknologi perangkat Lunak
5. KETERAMPILAN YANG HARUS DIMILIKI SEORANG PROGRAMMER
Membaca kode sumber sebuah program, dari yang sederhana hingga relatif kompleks, adalah keterampilan yang harus dimiliki oleh seorang programmer. Istilah program di sini digunakan tidak hanya dalam pengertian aplikasi utuh, namun juga mencakup level segmen kode, fungsi/subrutin, pustaka atau modul yang digunakan oleh sebuah aplikasi utuh. Manfaat dari terbiasanya kita membaca program adalah
semakin banyaknya sumber informasi yang dapat kita gunakan untuk memecahkan masalah. implementasi sebuah algoritma yang memodifikasi sebentuk struktur data dalam sebuah program dapat kita adaptasikan ke dalam program yang kita buat sendiri dengan konteks dan struktur data yang sama sekali berbeda. Terlepas dari manfaat pedagogisnya, sayangnya keterampilan ini tidak banyak diajarkan (dan setahu saya tidak pernah menjadi matakuliah tersendiri di perguruan tinggi), namun baru terasa urgensinya saat kita disodori kewajiban memodifikasi program yang ditulis dan sebelumnya dikelola oleh orang lain.
Dengan hanya berbekal kode sumber dan dokumentasinya (yang, patut disayangkan, tidak selalu komprehensif), dalam keadaan seperti ini seorang programmer harus mampu melanjutkan pengelolaan program tersebut tanpa menghancurkan organisasi kode yang telah ada atau menambah kompleksitas yang tidak perlu ada. Di sisi lain keadaan ini akan jarang ditemui oleh rata-rata programmer, karena lebih sering penulis asli dari program itulah yang harus melanjutkan pengelolaan, setelah memindahkan perhatian pada hal lain selama beberapa waktu.
Karenanya dapat disimpulkan bahwa secara umum, keterampilan yang harus dimiliki seorang programmer terkait dengan komprehensi kode sumber program, dengan derajat urgensi menurun(Hargo,2008), adalah:
1. Memahami kode sumber yang ditulis sendiri pada saat ia tidak lagi mengingat detail mekanisme dari program tersebut.
2. Melanjutkan pengelolaan, menyesuaikan, mengembangkan dan (bila perlu) merombaknya untuk menyesuaikan program dengan kebutuhan pengguna tanpa mengorbankan kemudahan perawatan di masa mendatang.
3. Memiliki kemampuan sebagaimana dijelaskan dalam point 1. dan 2. untuk program yang ditulis dan didokumentasikan oleh programmer lain.
4. Membaca program untuk memperkaya perkakas yang dimiliki seorang programmer untuk memecahkan masalah.
6. KEWAJIBAN PROGRAMMER
Buat para programmer, Coding adalah kewajiban. Sama halnya menghafal obat-obatan bagi dokter, maupun menghafal undang-undang bagi pengacara. Sebagian programmer menganggap dirinya spesial, karena tidak semua orang IT dapat menguasai salah satu (atau bahkan beberapa) bahasa pemrograman.
Seorang programmer memiliki kewajiban sebagai berikut :
1. Memahami konsep dasar sistem operasi.
Kebanyakan dari programmer Indonesia biasanya membuat aplikasi di atas sistem operasi, sehingga banyak yang berpendapat bahwa tidak perlu memahami cara kerja sistem operasi. Untuk programmer profesional, pemahaman ini akan membuat programmer lebih siap untuk membuat aplikasi server yang biasanya multithreaded dan harus efisien digunakan dalam waktu yang lama. Pemahaman mendalam di salah satu sistem operasi juga merupakan nilai tambah yang signifikan. Dengan mengetahui struktur internal sistem operasi (misalnya Linux), programmer dapat mengetahui berbagai pertimbangan dalam merancang aplikasi besar yang terus berkembang.
Memahami konsep dasar jaringan.
2. Sebuah aplikasi tidak dapat berjalan sendiri. Aplikasi tersebut pasti harus berhubungan dengan internet, melayani banyak pengguna, atau berhubungan dengan perangkat lain seperti handphone atau PDA. Untuk itu, pemahaman atas konsep jaringan sangat penting.
3. Memahami konsep dasar relational database.
4. Setiap aplikasi pasti memiliki sebuah database dalam penyimpanan datanya untuk itu programmer khususnya Database Programmer ditekankan menguasai relational database.
5. Wajib memahami protokol HTTP, FTP, POP3, SMTP, SSH. Karena sekarang jaman internet sehingga ini sangat penting. Protokol HTTP sekarang adalah protokol yang paling banyak digunakan di internet.
6. Wajib memahami Unicode.
Karena sekarang jaman globalisasi. Unicode itu penting supaya aplikasi kita tetap bisa diinstal di komputer mana saja.
7. Lebih dari satu bahasa pemrograman.
Pemahaman lebih dari satu bahasa itu penting agar wawasan programmer lebih terbuka. Bahwa tidak ada bahasa yang one-fit-all, bahwa ada cara berpikir yang berbeda dalam tiap bahasa, bahwa komunitas tiap bahasa berbeda budayanya. Semua ini akan berkontribusi dalam pendewasaan seorang programmer dalam berdiskusi dan menanggapi perbedaan (terutama pendapat).
8. Cara menggunakan Version Control.
Dalam dunia kerja, penggunaan version control adalah wajib. Ini standar (de facto) internasional. Jika mempunyai project opensource, baik di Sourceforge, Apache, Codehaus, dan semua hosting project opensource, pasti programmer akan diberikan version control.
7. SIKAP PROGRAMMER TERHADAP KLIEN
1. Mempunyai sikap & kepribadian baik, komunikatif, mudah beradaptasi dengan lingkungan kerja, cekatan & fleksibel.
2. Mampu bekerja berorientasi jadwal, mengatur pekerjaan multiple project dan bekerja sama dalam team.
3. Membuat kontrak kerja dengan klien.
4. Menyukai dan mengerti dasar-dasar pemrograman.

 File lengkapnya dapat di download di link bawah ini :

versi Power point
versi PDF