Rabu, Januari 18, 2017

Hacking

 


HACK - Menurut para pakar IT, definisi "Hack" bisa mengandung banyak artian. Tetapi inti dari semua definisi tetap hampir sama. Hack secara umum adalah pekerjaan yang hampir mustahil, mungkin menghabiskan banyak waktu dan pikiran tetapi dapat menghasilkan sesuai yang diinginkan. Interaksi dengan komputer dalam bermain dan bereksplorasi, serta dilakukan dengan sungguh-sungguh dengan ketelitian yang sangatlah tinggi.

HACKER - Definisi "Hacker" adalah seseorang atau sekelompok orang yang mempelajari, menganalisa, dan selanjutnya bila menginginkan, bisa membuat, memodifikasi, atau bahkan mengeksploitasi sistem yang terdapat di sebuah perangkat seperti perangkat lunak komputer dan perangkat keras komputer seperti program komputer, administrasi, dan berbagai hal lainnya, terutama pada sistem keamanan. Seorang Hackerbiasanya mempunyai pola pikir yang kuat dalam menyelesaikan permasalahan-permasalahan seputar logika dan analisa.

CRACKER adalah sebutan untuk mereka yang masuk ke sistem orang lain dan cracker lebih bersifat destruktif, biasanya di jaringan komputer, mem-bypass password atau lisensi program komputer, secara sengaja melawan keamanan komputer, men-deface (merubah halaman muka web) milik orang lain bahkan hingga men-delete data orang lain, mencuri data dan umumnya melakukan cracking untuk keuntungan sendiri, maksud jahat, atau karena sebab lainnya karena ada tantangan. Beberapa proses pembobolan dilakukan untuk menunjukan kelemahan keamanan sistem.

Berikut sejumlah jenis kejahatan via internet :

HACKING - Sedangkan definisi dari"Hacking" sendiri adalah suatu aktifitas dari hacker yaitu orang yang tertarik dan mendalami sistem operasi komputer sehingga mengetahui kelemahan yang ada pada suatu sistem tetapi tidak memanfaatkan kelemahan tersebut untuk hal kejahatan. Berbeda denganCracker dimana mereka memasuki sistem orang lain dengan tujuan kurang baik.

CARDING

Carding adalah berbelanja menggunakan nomor dan identitas kartu kredit orang lain, yang diperoleh secara ilegal, biasanya dengan mencuri data di internet. Sebutan pelakunya adalah “carder”. Sebutan lain untuk kejahatan jenis ini adalah cyberfroud alias penipuan di dunia maya. 

CRACKING

Cracking adalah hacking untuk tujuan jahat. Sebutan untuk “cracker” adalah “hacker” bertopi hitam (black hat hacker). Berbeda dengan “carder” yang hanya mengintip kartu kredit, “cracker” mengintip simpanan para nasabah di berbagai bank atau pusat data sensitif lainnya untuk keuntungan diri sendiri. Meski sama-sama menerobos keamanan komputer orang lain, “hacker” lebih fokus pada prosesnya. Sedangkan “cracker” lebih fokus untuk menikmati hasilnya.

DEFACING

Defacing adalah kegiatan mengubah halaman situs/website pihak lain, seperti yang terjadi pada situs Menkominfo dan Partai Golkar, BI baru-baru ini dan situs KPU saat pemilu 2004 lalu. Tindakan deface ada yang semata-mata iseng, unjuk kebolehan, pamer kemampuan membuat program, tapi ada juga yang jahat, untuk mencuri data dan dijual kepada pihak lain.

PHISING

Phising adalah kegiatan memancing pemakai komputer di internet (user) agar mau memberikan informasi data diri pemakai (username) dan kata sandinya (password) pada suatu website yang sudah di-deface. Phising biasanya diarahkan kepada pengguna online banking. Isian data pemakai dan password yang vital yang telah dikirim akhirnya akan menjadi milik penjahat tersebut dan digunakan untuk belanja dengan kartu kredit atau uang rekening milik korbannya.

SPAMMING

Spamming adalah pengiriman berita atau iklan lewat surat elektronik (e-mail) yang tak dikehendaki. Spam sering disebut juga sebagai bulk email atau junk e-mail alias “sampah”. Meski demikian, banyak yang terkena dan menjadi korbannya. Yang paling banyak adalah pengiriman e-mail dapat hadiah, lotere, atau orang yang mengaku punya rekening di bank di Afrika atau Timur Tengah, minta bantuan “netters” untuk mencairkan, dengan janji bagi hasil. Kemudian korban diminta nomor rekeningnya, dan mengirim uang/dana sebagai pemancing, tentunya dalam mata uang dolar AS, dan belakangan tak ada kabarnya lagi. Seorang rector universitas swasta di Indonesia pernah diberitakan tertipu hingga Rp1 miliar dalam karena spaming seperti ini.

MALWARE

Malware adalah program komputer yang mencari kelemahan dari suatu software. Umumnya malware diciptakan untuk membobol atau merusak suatu software atau operating system. Malware terdiri dari berbagai macam, yaitu: virus, worm, trojan horse, adware, browser hijacker, dll. Di pasaran alat-alat komputer dan toko perangkat lunak (software) memang telah tersedia antispam dan anti virus, dan anti malware. Meski demikian, bagi yang tak waspadai selalu ada yang kena. Karena pembuat virus dan malware umumnya terus kreatif dan produktif dalam membuat program untuk mengerjai korban-korbannya.

Hirarki / Tingkatan Hacker

1. Elite           

Ciri-ciri : mengerti sistem operasi luar dalam, sanggup mengkonfigurasi & menyambungkan jaringan secara global, melakukan pemrogramman setiap harinya, effisien & trampil, menggunakan pengetahuannya dengan tepat, tidak menghancurkan data-data, dan selalu mengikuti peraturan yang ada. Tingkat Elite ini sering disebut sebagai ‘suhu’.

2. Semi Elite

Ciri-ciri : lebih muda dari golongan elite, mempunyai kemampuan & pengetahuan luas tentang komputer, mengerti tentang sistem operasi (termasuk lubangnya), kemampuan programnya cukup untuk mengubah program eksploit.

3. Developed Kiddie

Ciri-ciri : umurnya masih muda (ABG) & masih sekolah, mereka membaca tentang metoda hacking & caranya di berbagai kesempatan, mencoba berbagai sistem sampai akhirnya berhasil & memproklamirkan kemenangan ke lainnya, umumnya masih menggunakan Grafik User Interface (GUI) & baru belajar basic dari UNIX tanpa mampu menemukan lubang kelemahan baru di sistem operasi.

4. Script Kiddie

Ciri-ciri : seperti developed kiddie dan juga seperti Lamers, mereka hanya mempunyai pengetahuan teknis networking yang sangat minimal, tidak lepas dari GUI, hacking dilakukan menggunakan trojan untuk menakuti & menyusahkan hidup sebagian pengguna Internet.

5. Lamer

Ciri-ciri : tidak mempunyai pengalaman & pengetahuan tapi ingin menjadi hacker sehingga lamer sering disebut sebagai ‘wanna-be’ hacker, penggunaan komputer mereka terutama untuk main game, IRC, tukar menukar software prirate, mencuri kartu kredit, melakukan hacking dengan menggunakan software trojan, nuke & DoS, suka menyombongkan diri melalui IRC channel, dan sebagainya. Karena banyak kekurangannya untuk mencapai elite, dalam perkembangannya mereka hanya akan sampai level developed kiddie atau script kiddie saja.

Cracker tidak mempunyai hirarki khusus karena sifatnya hanya membongkar dan merusak.

Kode Etik Hacker

1. Mampu mengakses komputer tak terbatas dan totalitas.

2. Semua informasi haruslah FREE.

3. Tidak percaya pada otoritas, artinya memperluas desentralisasi.

4. Tidak memakai identitas palsu, seperti nama samaran yang konyol, umur, posisi, dll.

5. Mampu membuat seni keindahan dalam komputer.

6. Komputer dapat mengubah hidup menjadi lebih baik.

7. Pekerjaan yang di lakukan semata-mata demi kebenaran informasi yang harus disebar luaskan.

8. Memegang teguh komitmen tidak membela dominasi ekonomi industri software tertentu.

9. Hacking adalah senjata mayoritas dalam perang melawan pelanggaran batas teknologi komputer.

10. Baik Hacking maupun Phreaking adalah satu-satunya jalan lain untuk menyebarkan informasi pada massa agar tak gagap dalam komputer. Cracker tidak memiliki kode etik apapun.

Aturan Main Hacker

Gambaran umum aturan main yang perlu di ikuti seorang hacker seperti di jelaskan oleh Scorpio, yaitu:

1. Di atas segalanya, hormati pengetahuan & kebebasan informasi.

2. Memberitahukan sistem administrator akan adanya pelanggaran keamanan / lubang di keamanan yang anda lihat.

3. Jangan mengambil keuntungan yang tidak fair dari hack.

4. Tidak mendistribusikan & mengumpulkan software bajakan.

5. Tidak pernah mengambil resiko yang bodoh – selalu mengetahui kemampuan sendiri.

6. Selalu bersedia untuk secara terbuka / bebas / gratis memberitahukan & mengajarkan berbagai informasi & metoda yang diperoleh.

7. Tidak pernah meng-hack sebuah sistem untuk mencuri uang.

8. Tidak pernah memberikan akses ke seseorang yang akan membuat kerusakan.

9. Tidak pernah secara sengaja menghapus & merusak file di komputer yang dihack.

10. Hormati mesin yang di hack, dan memperlakukan dia seperti mesin sendiri.

Hacker sejati akan selalu bertindak berlandaskan kode etik dan aturan main sedang cracker tidak mempunyai kode etik ataupun aturan main karena cracker sifatnya merusak.

Semoga artikel Istilah Hack, Hacker, Cracker, dan Kejahatan Internetbermanfaat untuk anda.

Pengertian Hacker dan Cracker Beserta Tingkatanya Terlengkap

 Selamat datang kembali di blog, Kali ini saya akan membahas tentang HACKER, Seiring dengan pesatnya perkembangan ilmu teknologi istilah Hacker mungkin semakin santer kita dengar, Apa lagi jika anda termasuk pelaku dunia IT, Bagi masyarakat awam hacker selalu di cap kurang baik, Kenapa ? Mungkin karna banyak hacker di luar sana yang melakukan hal-hal merugikan dengan kemampuan IT nya, Namun ternyata tidak semua Hacker berprilaku negarif,  secara rinci mengenai Hacker dan Cracker.

Gambar Ilustrasi Hacker

Pengertian Hacker

Adalah orang yang mempelajari, menganalisis, memodifikasi, menerobos masuk ke dalam komputer dan jaringan komputer, baik untuk keuntungan atau dimotivasi oleh tantangan.

Jenis Hacker di bedakan menjadi 2, yaitu :

White hat hacker adalah hacker yang memegang teguh standar etika, akses ke sistem komputer dilakukan bukan untuk tujuan yang merugikan, tetapi untuk menguji ketahanan sistem tersebut. Jadi, hacker jenis ini senang mempelajari sistem, bahkan banyak dari mereka yang disewa sebagai konsultan keamanan. White hat hacker inilah adalah hacker yang sebenarnya.Black Hat Hacker adalah jenis hacker yang aktivitasnya menerobos sistem keamanan komputer untuk melakukan kerusakan, seperti: menghapus file, pencurian identitas, penipuan kartu kredit, dan berbagi aktvitas merugikan lainnya. Hacker jenis ini disebut juga sebagai cracker. 

Pengertian Cracker

Istilah perengkah (cracker) diajukan oleh Richard Stallman untuk mengacu kepada peretas yang cenderung melakukan kegiatan black hat hacker. Cracker merupakan seseorang yang masuk tanpa izin atau illegal ke dalam sebuah sistem komputer. Istilah cracker memiliki kecenderungan hacker yang melakukan kegiatan merusak dan bukan hacker pada pengertian white hat hacker.

Bisa kita simpulkan dengan mudah bahwa Hacker dan Cracker memiliki kesamaan dan perbedaan. Sama-sama melakukan kegiatan hacking, tetapi berbeda dalam hal motivasi dan tujuan hacking-nya. Cracker cenderung melakukan hacking yang merusak, sedangkan hacker sejatinya merupakan spirit para profesional untuk membantu menyelesaikan masalah pada sistem komputer.

Tingkatan Hacker

Hacker juga memiliki tingkatan, Berikut Penjabaranya :

Elite 

Juga dikenal sebagai 3l33t, 3l337, 31337 atau kombinasi dari itu; merupakan ujung tombak industri keamanan jaringan. Mereka memahami sistem operasi sisi luar dalam, sanggup mengkonfigurasi dan menyambungkan jaringan secara global. Sanggup melakukan pemrograman setiap harinya. Sebuah anugrah yang sangat alami, mereka biasanya efisien & terampil, menggunakan pengetahuannya dengan tepat. Mereka seperti siluman yang dapat memasuki sistem tanpa terdeteksi, walaupun mereka tidak akan menghancurkan data-data yang ditemui. Karena mereka selalu mengikuti peraturan yang ada.

Semi elite

Hacker ini biasanya lebih muda daripada Elite. Mereka juga mempunyai kemampuan dan pengetahuan luas tentang komputer. Mereka mengerti tentang sistem operasi (termasuk lubangnya (vulnerability)). Biasanya dilengkapi dengan sejumlah kecil program cukup untuk mengubah program eksploit. Banyak serangan yang dipublikasi dilakukan oleh hacker tingkat ini. Sialnya oleh para Elite mereka sering kali dikategorikan Lamer.

Developed kiddie

Sebutan ini terutama karena umur kelompok ini masih muda (ABG) dan masih sekolah. Mereka membaca tentang metode hacking dan caranya di berbagai kesempatan. Mereka mencoba berbagai sistem sampai akhirnya berhasil dan memproklamasikan kemenangan ke peretas lainnya. Umumnya mereka masih menggunakan Grafic User Interface (GUI) dan baru belajar hal dasar dari UNIX, tanpa mampu menemukan lubang kelemahan baru di sistem operasi.

Script kiddie

Seperti developed kiddie, Script Kiddie biasanya melakukan aktivitas di atas. Seperti juga Lamers, mereka hanya mempunyai pengetahuan teknis networking yang sangat minimal. Biasanya tidak lepas dari GUI. Hacking dilakukan menggunakan trojan untuk menakuti dan menyusahkan hidup pengguna Internet.

Lamer 

Mereka adalah orang tanpa pengalaman dan pengetahuan yang ingin menjadi peretas (wanna-be hacker). Mereka biasanya membaca atau mendengar tentang hacker dan ingin menjadi seperti mereka. Penggunaan komputer mereka hanyalah untuk main game, IRC, tukar-menukar perangkat lunak bajakan dan mencuri kartu kredit. Melakukan hacking menggunakan perangkat lunak trojan, nuke, dan DoS. Biasanya menyombongkan diri melalui IRC channel. Karena banyak kekurangan untuk mencapai elite, dalam perkembangannya mereka hanya akan sampai tingkat developed kiddie atau script kiddie saja.

Demikian Artikel tentang Pengertian Hacker dan Cracker Beserta Tingkatanya Terlengkap, Semoga Bisa bermanfaat bagi para pembaca, Terima Kasih :)

Definisi Dan Deskripsi Profesi dalam Bidang Web

Definisi Dan Deskripsi Profesi dalam Bidang Web

1. Web Architect

     Seperti halnya Arsitek bangunan, web Architect memegang peran penting pada perancangan dan struktur bagian-bagian website yang akan dibuat. Web architect menentukan seperti apa skema/hirarki link-link yang akan disuguhkan, layanan-layanan apa yang diberikan ke public. Orang ini hendaknya memiliki pengalaman bernavigasi di internet, terutama surfing kesitus-situs lain guna melakukan perbandingan dan evaluasi sehingga menemukan pola website terbaik yang sesuai dengan misi organisasi.

     Seorang Web Architect boleh jadi tenaga sewaan dari konsultan IT. Ketika sebuah organisasi menyampaikan bahwa mereka ingin membuat website, web architect akan dapat memberikan nasehat website seperti apa yang mereka butuhkan . setiap kategori situs memiliki ciri khas sendiri. Situs-situs e-commerce berbeda jauh dengan situs-situs kampus. Demikian pula situs-situs pemerintah tidak akan sama dengan situs-situs perusahaan entertainment.

       Organisasi anda mungkin hanya akan membutuhkan Web Architect pada fase-fase awal pembuatan website namaun begitu, bayaran mereka cukup tinggi. Ini dapat dimaklumi mengingat peran seorang “Perancang” sangat menentukan pengembangan ke depan. Ingat bahwa perombakan website (yang dikarenakan salah strategi) hanya akan membuat buang waktu dan biaya). 

2. Web Designer

     Web Designer adalah mereka yang memiliki keahlian dalam membuat design atraktif dan menarik untuk situs serta design untuk kepentingan promosi situs secara visual.

      Tugas:

 Mendesain tampilan situsMemastikan tampilan gambar berfungsi ketika ditambahkan bahasa pemrograman

      Kualifikasi:

Menguasai HTML, CSS dan XHTMLMenguasai Adobe Photoshop & IllustratorMemiliki jiwa seni dan harus kreatifItulah aneka profesi di bidang IT yang sangat potensial untuk dijadikan karir ke depannya dan profesi di bidang IT ini mungkin saja akan semakin bertambah seiring berkembangnya dunia teknologi informasi sehingga kesempatan mencari lowongan kerja it atau sesuai bidang ini semakin terbuka lebar.

3. Web Programmer

       Bila kepala anda memilliki desain nalar jitu , jangan kepalang tanggung, emalmarlah sebagai Web Programmer. Posisi ini cocok bagi mereka yang daya tangkap logikanya encer. Seorang Web Programmer, mengotak atik kode-kode scrip adalah makananya setiap hari.

        Web programmer berperan membuat dan men-setup layanan-layanan interaktif dalam lingkungan web, seperti merancang form aplikasi, guestbook, search engine, news publisher, discussion forum, dan masih banyak lagi. Belum lagi bila tiba-tiba organisasi merancang sebuah program online baru untuk costumers, misalnya layanan e-commerce. Web programmer yang akan paling sibuk dalam hal ini.

          Untuk menjadi Web Programer seseorang focuskan hari-harinya untuk mempelajari PHP, CGI/Perl, Pyton, JavaScript, Java, VBScript, ASP, dan C/C++.

4. Web Developer

           Web Developer adalah mereka yang memiliki keahlian untuk memberikan konsultasi pembangunan sebuah situs dengan konsep yang telah ditentukan.

      Tugas:
Menganalisa kebutuhan sistemMerancang web atau situs (desain dan program)Mengaktifkan domain dan hostingPemeliharaan situs dan promosi
        Kualifikasi:
Menguasai pemrograman webMenguasai pengelolaan databaseMengerti domain dan hostingMenguasai sistem jaringan
         Deskripsi kerja

Mendesain, membangun, atau memelihara situs web, menggunakan authoring atau bahasa scripting, alat penciptaan konten, alat manajemen, dan media digital.Melakukan atau update situs web langsung.Menulis, desain, atau mengedit konten halaman web, atau yang lain langsung memproduksi konten.Berunding dengan tim manajemen atau pengembangan untuk memprioritaskan kebutuhan, menyelesaikan konflik, mengembangkan kriteria konten, atau memilih solusi.Back-up file dari situs web untuk direktori lokal untuk pemulihan instan dalam kasus masalah.Mengidentifikasi masalah yang ditemukan oleh umpan balik pengujian atau pelanggan, dan memperbaiki masalah masalah atau merujuk pada personalia yang tepat untuk koreksi.Evaluasi kode untuk memastikan bahwa itu adalah sah, benar terstruktur, memenuhi standar industri dan kompatibel dengan browser, perangkat, atau sistem operasi.Menjaga pemahaman teknologi web saat ini atau praktek pemrograman melalui melanjutkan pendidikan, membaca, atau partisipasi dalam konferensi profesional, workshop, atau kelompok.Menganalisis kebutuhan pengguna untuk menentukan persyaratan teknis. Mengembangkan atau memvalidasi tes routine dan jadwal untuk memastikan bahwa uji kasus meniru antarmuka eksternal dan alamat semua jenis browser dan perangkat.

5. Web Administrator

     Web Administrator adalah seseorang yang bertanggung jawab secara teknis terhadap operasional sebuah situs atau website.

   Tugas:
Menjaga kelancaran akses situs (instalasi dan konfigurasi sistem)Merawat hosting dan domainMengatur keamanan server dan firewallMengatur akun dan kata sandi untuk admin serta user
     Kualifikasi:
Menguasai keahlian seorang programmerMenguasai jaringan (LAN, WAN, Intranet)Menguasai OS Unix (Linux, FreeBSD, dll)
      Deskripsi kerja : 

Back up atau memodifikasi aplikasi dan data yang terkait untuk menyediakan pemulihan kerusakan.Menentukan sumber halaman web atau masalah server, dan mengambil tindakan untuk memperbaiki masalah tersebut.Meninjau atau memperbarui konten halaman web atau link pada waktu yang tepat, menggunakan tool-tool.Memonitor sistem untuk intrusi atau serangan denial of service, dan melaporkan pelanggaran keamanan untuk personil yang tepat.Menerapkan langkah-langkah keamanan situs web, seperti firewall atau enkripsi pesan.Mengelola internet / intranet infrastruktur, termasuk komponen seperti web, file transfer protocol (FTP), berita dan server mail.Berkolaborasi dengan tim pengembangan untuk membahas, menganalisis, atau menyelesaikan masalah kegunaan.Test backup atau pemulihan rencana secara teratur dan menyelesaikan masalah.Memonitor perkembangan web melalui pendidikan berkelanjutan, membaca, atau partisipasi dalam konferensi profesional, workshop, atau kelompok.Menerapkan update, upgrade, dan patch pada waktu yang tepat untuk membatasi hilangnya layanan.

6. Web Analisis

      Web Analisis adalah orang yang memiliki keahlian untuk menganalisa system pada sebuah web yang akan diimplementasikan, mulai dari menganalisa system yang ada, kelebihan dan kekurangannya, sampai studi kelayakan dan desain system yang akan dikembangkan.
      Tugas :
Mengembangkan perangkat lunak/software dalam tahapan requirement, design dan constructionMembuat dokumen requirement dan desain software berdasarkan jenis bisnis customerMembangun framework untuk digunakan dalam pengembangan software oleh programmer 
      Kualifikasi :
Menguasai keahlian sebagai programmerMenguasai metode dan best practice pemrogramanMemahami arsitektur aplikasi dan teknologi terkini
      Deskripsi kerja : 

Mengumpulkan informasi untuk penganalisaan dan evaluasi sistem yang sudah ada maupun untuk rancangan suatu sistem.Riset, perencanaan, instalasi, konfigurasi, troubleshoot, pemeliharaan, dan upgrade sistem pengoperasian.Riset, perencanaan, instalasi, konfigurasi, troubleshoot, pemeliharaan, dan upgrade perangkat keras, perangkat lunak, serta sistem pengoperasiannya.Melakukan analisis dan evaluasi terhadap prosedur bisnis yang ada maupun yang sedang diajukan atau terhadap kendala yang ada untuk memenuhi keperluan data processing.Mempersiapkan flowchart dan diagram yang menggambarkan kemampuan dan proses dari sistem yang digunakan.Melakukan riset dan rekomendasi untuk pembelian, penggunaan, dan pembangunan hardware dan software.Memperbaiki berbagai masalah seputar hardware, software, dan konektivitas, termasuk di dalamnya akses pengguna dan konfigurasi komponen.Memilih prosedur yang tepat dan mencari support ketika terjadi kesalahan, dan panduan yang ada tidak mencukupi, atau timbul permasalahan besar yang tidak terduga.Mencatat dan memelihara laporan tentang perlengkapan perangkat keras dan lunak, lisensi situs dan/ atau server, serta akses dan security pengguna.Mencari alternatif untuk mengoptimalkan penggunaan komputer.Mampu bekerja sebagai bagian dari team, misalnya dalam hal jaringan, guna menjamin konektivitas dan keserasian proses di antara sistem yang ada.Mencatat dan menyimpan dokumentasi atas sistem.Melakukan riset yang bersifat teknis atas system upgrade untuk menentukan feasibility, biaya dan waktu, serta kesesuaian dengan sistem yang ada.Menjaga confidentiality atas informasi yang diproses dan disimpan dalam jaringanMendokumentasikan kekurangan serta solusi terhadap sistem yang ada sebagai catatan untuk masa yang akan datang.

7. Agile Development Methods

Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada. Sehingga saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang.

Saat bekerja dalam tim untuk mengerjakan suatu proyek sangatlah penting menentukan Metodologi pengembangan perangkat lunak dan Proses pengembangan perangkat lunak yang akan digunakan. Metodologi pengembangan perangkat lunak sendiri adalah sebuah metodologi yang digunakan untuk membuat struktur, rencana, dan kontrol pengerjaan suatu proyek, sedangkan Proses pengembangan perangkat lunak adalah model-model dan metodologi yang digunakan untuk mengembangkan suatu perangkat lunak. Ada beberapa model Metodologi pengembangan perangkat lunak diantaranya : waterfall, fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize.Terdapat enam langkah yang digunakan dalam Metodologi pengembangan perangkat lunak,yaitu :

Perencanaan, pada langkah ini pengembang dan klien membuat rencana tentang kebutuhan dari perangkat lunak yang akan dibuat.Implementasi, bagian dari proses dimana programmer melakukan pengkodean perangkat lunak.Tes perangkat lunak, disini perangkat lunak yang telah dibuat di tes oleh bagian kontrol kualitas agar bug yang ditemukan bisa segera diperbaiki dan kualitas perangkat lunak terjaga.Dokumentasi, setelah dilakukan tes perangkat lunak langkah selanjutnya yaitu proses dokumentasi perangkat lunak untuk mempermudah proses maintenanance kedepannya.Deployment, yaitu proses yang dilakukan oleh penjamin kualitas untuk menguji kualitas sistem. Setelah sistem memenuhi syarat maka perangkat lunak siap dideployment.Pemeliharaan, langkah terakhir yaitu pemeliharaan. Tidak ada perangkat lunak yang 100% bebas dari bug, oleh karena itu sangatlah penting agar perangkat lunak dipelihara secara berkala.

Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliance’s Manifesto,diantaranya :

Interaksi dan personel lebih penting dari pada proses dan alat.Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak.Respon terhadap perubahan lebih penting daripada mengikuti rencana.

Pengertian dari Agile Alliance's Manifestodijelaskan di bawah ini:

Interaksi dan personel lebih penting dari pada proses dan alat, di dalam agile interaksi antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap, saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap.Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, salah satu ciri dari agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien.Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile development methods berfokus terhadap kecepatan respon tim ketika klien menginginkan perubahan saat proses pembuatan perangkat lunak.

Agar suatu tim berhasil dalam menerapkan agile development methods, maka tim tersebut harus mengikuti dua belas prinsip yang ditetapkan oleh Agile Alliance,yaitu :

Prioritas utama proses agile adalah memuaskan klien dengan menghasilkan perangkat lunak yang bernilai dengan cepat dan rutin.Menyambut perubahan kebutuhan, walaupun terlambat dalam pengembangan perangkat lunak. Proses Agile memanfaatkan perubahan untuk keuntungan kompetitif klien.Menghasilkan perangkat lunak yang bekerja secara rutin, dari jangka waktu beberapa minggu sampai beberapa bulan, dengan preferensi kepada jangka waktu yang lebih pendek.Rekan bisnis dan pengembang perangkat lunak harus bekerja sama tiap hari sepanjang proyek.Kembangkan proyek di sekitar individual yang termotivasi. Berikan mereka lingkungan dan dukungan yang mereka butuhkan, dan percayai mereka untuk menyelesaikan pekerjaan dengan baik.Metode yang paling efisien dan efektif untuk menyampaikan informasi dari dan dalam tim pengembang perangkat lunak adalah dengan komunikasi secara langsung.Perangkat lunak yang bekerja adalah ukuran utama kemajuan.Proses agile menggalakkan pengembangan berkelanjutan. Sponsor-sponsor, pengembang-pengembang, dan pengguna-pengguna dapat mempertahankan kecepatan tetap secara berkelanjutan.Perhatian yang berkesinambungan terhadap keunggulan teknis dan rancangan yang baik meningkatkan Agility.Kesederhanaan (memaksimalkan sumber daya yang tersedia) adalah hal yang amat penting.Arsitektur, kebutuhan, dan rancangan perangkat lunak terbaik muncul dari tim yang yang dapat mengorganisir diri sendiri.Secara berkala, tim pengembang berefleksi tentang bagaimana untuk menjadi lebih efektif, kemudian menyesuaikan dan menyelaraskan kebiasaan bekerja mereka.

Dua belas prinsip tersebut menjadi suatu dasar bagi tim agar sukses menerapkan agile development methods. Dengan prinsip-prinsip tersebut agile berusaha untuk menyiasati tiga masalah yang biasanya dihadapi saat proses pembuatan perangkat lunak, yaitu:

Kebutuhan perangkat lunak sulit diprediksi dari awal dan selalu akan berubah. Selain itu, prioritas klien juga sering berubah seiring 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.

Beberapa model dari agile development methods,yaitu :

Acceptance Test Driven Development (ATDD)Agile ModelingAdaptive Software Development (ASD)
Adaptive software development (ASD) diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari adaptive software development adalah kolaborasi manusia dan tim yang mengatur diri sendiri. Sistem kerja adaptive software development : collaboration dan learning. '
Collaboration : orang-orang yang bermotivasi tinggi bekerja sama, saling melengkapi, rela membantu, kerja keras, terampil di bidangnya, dan komunikasikan masalah untuk menyelesikan masalah secara efektif.Learning: tim developer sering merasa sudah tahu semua hal tentang proyek, padahal tidak selamanya begitu. Karena itu proses ini membuat mereka belajar lebih tentang proyek melalui tiga cara:Fokus grup, klien dan pengguna memberi masukan terhadap perangkat lunak.Formal Technique Reviews, tim ASD lengkap melakukan review.Postmortems, tim ASD melakukan instrospeksi pada kinerja dan proses.
Agile Unified Process (AUP)Continuous integration (CI)Crystal ClearCrystal MethodsDynamic Systems Development Method (DSDM)
Pada Dynamic System Development Method menyajikan kerangka kerja (framework) untuk membangun dan memelihara sistem dalam waktu yang terbatas melalui penggunaan prototip yang incremental dalam lingkungan yang terkondisikan. Metode ini bisa membuat pengerjaan software lebih cepat 80%.Hal -hal yang perlu diperhatikan jika menggunakan dynamic system development method:
Feasibility study, siapkan requirement, dan batasan, lalu uji apakah sesuai gunakan proses DSDM.Business Study, susun kebutuhan fungsional dan informasi, tentukan arsitektur aplikasi dan identifikasi kebutuhan pemeliharaan untuk aplikasi.Functional model iteration, perlihatkan fungsi perangkat lunak ke klien untuk mendapatkan feedbackDesign and Build Iteration, cek ulang prototip yang dibangun dan pastikan bahwa prototip dibangun dengan cara yang memungkinkan fungsi tersebut benar-benar bekerja.Implementation: buat perangkat lunak sesuai protoip yang ada dan terus tambah fungsionalitasnya.
Extreme Programming (XP)Feature Driven Development (FDD)
Feature driven development merupakan sebuah model pengembangan perangkat lunak yang berdasarkan pada fitur yang akan dibuat. Keuntungan dari metodefeature driven development :
User dapat menggambarkan dengan mudah bentuk sistem yang akan dibuat.Dapat diorganisasikan atau diatur ke dalam kelompok bisnis sesuai hirarki yang ada.Desain dan kode lebih mudah diperiksa secara efektif.Perancangan proyek, biaya pembuatan dan jadwal rilis ditentukan oleh fiturnya.
Graphical System Design (GSD)KanbanLean software development
Rational Unified Process (RUP)Rational unified process, adalah suatu kerangka pengembangan perangkat lunak iteratif yang dibuat oleh Rational Software, suatu divisi dari IBM sejak 2003.Rational unified process bukanlah suatu proses dengan aturan yang konkrit, melainkan suatu kerangka proses yang dapat diadaptasi dan dimaksudkan untuk disesuaikan oleh tim pengembang perangkat lunak yang akan memilih elemen proses disesuaikan dengan kebutuhan mereka.Model ini membagi suatu sistem aplikasi menjadi beberapa komponen sistem dan memungkinkan para developer aplikasi untuk menerapkan metoda iterative (analisis, disain, implementasi dan pengujian) pada tiap komponen. Dengan menggunakan model ini, Rational unified process membagi tahapan pengembangan perangkat lunaknya ke dalam 4 fase sebagai berikut.
Inception, merupakan tahap untuk mengidentifikasi sistem yang akan dikembangkan. Aktivitas yang dilakukan pada tahap ini antara lain mencakup analisis sistem, perumusan target dari sistem yang dibuat, identifikasi kebutuhan, perumusan kebutuhan pengujian, pemodelan diagram UML, dan pembuatan dokumentasi.Elaboration, merupakan tahap untuk melakukan disain secara lengkap berdasarkan hasil analisis di tahap inception. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pembuatan disain arsitektur subsistem, disain komponen sistem, disain format data disain database, disain antarmuka/tampilan, disain peta tampilan, penentuan design pattern yang digunakan, pemodelan diagram UML, dan pembuatan dokumentasi.Construction, merupakan tahap untuk mengimplementasikan hasil disain dan melakukan pengujian hasil implementasi. Pada tahap awal construction, ada baiknya dilakukan pemeriksaan ulang hasil analisis dan disain, terutama disain pada diagram sequence,class, component, dan deployment. Apabila disain yang dibuat telah sesuai dengan analisis sistem, maka implementasi dengan bahasa pemrograman tertentu dapat dilakukan. Aktivitas yang dilakukan pada tahap ini antara lain mencakup pengujian hasil analisis dan disain (misal menggunakan class responsibility collaborator untuk kasus pemrograman berorientasi obyek), pendataan kebutuhan implementasi lengkap (berpedoman pada identifikasi kebutuhan di tahap analisis), penentuan coding pattern yang digunakan, pembuatan program, pengujian, optimasi program, pendataan berbagai kemungkinan pengembangan / perbaikan lebih lanjut, dan pembuatan dokumentasi.Transition, merupakan tahap untuk menyerahkan sistem aplikasi ke konsumen (roll-out), yang umumnya mencakup pelaksanaan pelatihan kepada pengguna dan testing beta aplikasi terhadap ekspetasi pengguna.ScrumScrum-banStory-driven modelingTest-driven development (TDD)Velocity trackingSoftware Development Rhythms

Secara garis besar tujuan dirumuskannya agile development methods,yaitu :

High-value & working App system, diharapkan dengan memakai agile development methods dapat dihasilkan perangkat lunak yang mempunyai nilai jual yang tinggi, biaya pembuatan bisa di tekan dan perangkat lunak bisa berjalan dengan baik.Iterative, incremental, evolutionaryagile adalah metode pengembangan perangkat lunak yang iteratif, selalu mengalami perubahan, dan evolusioner. Tim harus bekerja dalam waktu yang singkat(biasanya 1-3 minggu) dan juga selalu menambah fungsionalitas dari perangkat lunak sesuai dengan kebutuhan klien.Agile dapat dianalogikan ketika seseorang ingin pergi ke suatu kota dan dia tidak tahu jalannya. Lalu bagaimana dia bisa sampai tujuan? Dengan sering bertanya kepada orang yang dia temui dijalan hingga dia sampai di tempat tujuan.Cost control & value-driven development, salah satu tujuan dari agile yaitu pengembangan perangkat lunak disesuaikan dengan kebutuhan pengguna, tim bisa dengan cepat merespon kebutuhan yang diinginkan pengguna sehingga waktu dan biaya pembuatan perangkat lunak bisa dikontrol.High-quality production, walaupun biaya pembuatan perangkat lunak bisa ditekan dan proses pembuatan bisa dipercepat , tetapi kualitas dari perangkat lunak yang dibuat harus tetap dijaga. Dengan melakukan tes setiap fungsionalitas perangkat lunak setelah selesei dibuat berarti agile juga mengakomodir kebutuhan ini.Flexible & risk management, jika kita menggunakan metode pembuatan yang biasanya dipakai, jika ingin mengubah fungsionalitas dari wireframe yang telah dibuat di butuhkan proses yang rumit. Mulai dari pertemuan dengan sistem analis untuk mengubah sistem perangkat lunak, perubahan rencana rilis produk hingga perubahan biaya produksi. Pertemuan dengan klien untuk melakukan tes perangkat lunak juga sering dilakukan sehingga fungsionalitas perangkat lunak mudah diubah dan akhirnya kegagalan perangkat lunakpun bisa diminimalisir.Collaboration, dengan menggunakan agile, tim pengembang diharuskan sering bertemu untuk membahas perkembangan proyek dan feedback dari klien yang nantinya akan ditambahkan dalam perangkat lunak, sehingga tim bisa berkolaborasi dengan maksimal.Self-organizing, self-managing teams, rekrut orang terbaik, beri dan dukung kebutuhan mereka lalu biarkan mereka bekerja. Itulah perbedaan agile dan SDM lainnya. Dengan agiledeveloper dapat memanajemen dirinya sendiri, sedangkan manajer tim hanya bertugas mengkolaborasikan developer perangkat lunak dengan klien. Sehingga terciptalah tim yang solid.

Topik selanjutnya yaitu tentang cara kerja agile development methods

Komposisi tim

Secara umum komposisi dari sebuah tim pengembang perangkat lunakyaitu :

Owner/ Klien, bersama dengan developer sebagai bagian terpenting dalam proyek, tugas dari klien menentukan fungsi dari perangkat lunak yang akan di buat, melakukan testing dan memberikan feedback.Manajer /Scrum Master, bertugas mengkolaborasikan developer dengan klien, membuat dan mengevaluasi target pengerjaan perangkat lunak.Sistem Analis, membuat arsitektur sistem dari perangkat lunak yang akan dibuat.Developer, merupakan titik vital dalam tim, tanpa developer perangkat lunak tidak akan bisa dibuat.

Story

Story adalah daftar kebutuhan atau fitur yang nanti akan dibuat. Story berisi apa yang klien kehendaki, dan ditulis dalam bahasa yang dimengerti klien. Dengan kata lain dapat disimpulan Story adalah bagian terpenting dari Scrum.

Story terdiri dari kolom-kolom berikut ini:

ID – Identifikasi unik, biasanya berupa nomor urut. Hal ini untuk menghindari kehilangan jejak story kalau kita mengganti namanya.Nama – Nama story bersifat deskriptif, padat, singkat, dan jelas (2-10 kata), sehingga tim dan klien memahami kira-kira story yang dibicarakan.Kepentingan – Derajat kepentingan yang diberikan oleh klien terhadap story. Pemberian derajat kepentingan biasanya menggunakan deret fibonacci (1,1,2,3,5,dst). Semakin tinggi nilainya maka semakin tinggi pula prioritas pengerjaannya.Perkiraan awal – Perkiraan awal tim tentang berapa banyak kerja yang diperlukan untuk mengimplementasikan sebuah story.Demo – deskripsi umum bagaimana cara story ini didemokan pada waktu sprint demo (lakukan ini, klik itu, lalu ini akan muncul,dll).

Sprint

Sprint (Rapat perencanaan pembuatan perangkat lunak dilakukan 2-8 minggu sekali), yang perlu diperhatikan saat melaksanakan sprint antara lain :

Tujuan sprint.Daftar anggota tim harus lengkap.Sprint backlog (daftar story yang akan diikutkan dalam sprint).Tanggal demo yang pasti.Tempat dan waktu yang jelas untuk pelaksanaan sprint berikutnya.

Tim akan melakukan sprint secara simultan sampai perangkat lunak selesei dikerjakan, sebagai contoh:

Sprint 1, tim membuat fungsi login,logout dan demo perangkat lunak akan dilakukan 3 minggu kemudian. Setelah dilakukan demo untuk mengevaluasi kerja yang dilakukan tim pada Sprint 1, maka Sprint 1 dianggap selesei. Bahan evaluasi dari Sprint 1 akan dibawa ke Sprint 2 begitu seterusnya sampai aplikasi selesei dikerjakan.

Kelebihan

Beberapa kelebihan dari agile diantaranya :

82% Menambah produktivitas tim.77% Menambah kualitas perangkat lunak.78% Menambah kepuasan klien.37% Menghemat biaya.

Kekurangan

Sedangkan kekurangan dari agile antara lain :

Agile tidak akan berjalan dengan baik jika komitmen tim kurang.Tidak cocok dalam skala tim yang besar (>20 orang).Perkiraan waktu release dan harga perangkat lunak sulit ditentukan.

sumber :

http://bomy-id.blogspot.com/2017/01/jenis-jenis-profesi-dan-deskripsi.html

http://id.wikipedia.org/wiki/Agile_Development_Methods

http://suyono.web.id/menjadi-webmaster-1/

picture: 

https://www.bluehost.com/blog/wp-content/uploads/2017/01/fall-web-design-trends.jpg