BAB II TINJAUAN PUSTAKA. Pada bab ini diberikan definisi-definisi, istilah-istilah yang digunakan dalam

dokumen-dokumen yang mirip
BAB II TINJAUAN PUSTAKA. Pada bab ini diberikan istilah-istilah dan definisi-definisi yang digunakan pada

BAB II LANDASAN TEORI

Pengembangan Aplikasi Encode dan Decode Tree Menggunakan Blob Code

TINJAUAN PUSTAKA. Pada bab ini akan diberikan beberapa definisi, istilah istilah yang berhubungan dengan materi

BAB II TINJAUAN PUSTAKA Sistem Pendukung Keputusan (Decision Support System)

I. LANDASAN TEORI. Seperti yang telah dipaparkan pada bab sebelumnya, teori graf merupakan salah satu ilmu

BAB II LANDASAN TEORI

II. TINJAUAN PUSTAKA. Graf G adalah suatu struktur (V,E) dengan V(G) = {v 1, v 2, v 3,.., v n } himpunan

BAB II LANDASAN TEORI

TINJAUAN PUSTAKA. Pada bab ini akan dijelaskan beberapa konsep dasar teori graf dan dimensi partisi

2. TINJAUAN PUSTAKA. Chartrand dan Zhang (2005) yaitu sebagai berikut: himpunan tak kosong dan berhingga dari objek-objek yang disebut titik

Bab 2 LANDASAN TEORI

BAB II TINJAUAN PUSTAKA. Kuliah Kerja Nyata (KKN) Universitas Lampung bertujuan untuk menjamin

II. LANDASAN TEORI. Ide Leonard Euler di tahun 1736 untuk menyelesaikan masalah jembatan

BAB II TINJAUAN PUSTAKA

Discrete Mathematics & Its Applications Chapter 10 : Graphs. Fahrul Usman Institut Teknologi Bandung Pengajaran Matematika

BAB 2 LANDASAN TEORI

PENDAHULUAN MODUL I. 1 Teori Graph Pendahuluan Aswad 2013 Blog: 1.

BAB 2 LANDASAN TEORI. yang tak kosong yang anggotanya disebut vertex, dan E adalah himpunan yang

GRAF. V3 e5. V = {v 1, v 2, v 3, v 4 } E = {e 1, e 2, e 3, e 4, e 5 } E = {(v 1,v 2 ), (v 1,v 2 ), (v 1,v 3 ), (v 2,v 3 ), (v 3,v 3 )}

BAB II LANDASAN TEORI

BAB I PENDAHULUAN. dirasakan peranannya, terutama pada sektor sistem komunikasi dan

ANALISIS JARINGAN LISTRIK DI PERUMAHAN JEMBER PERMAI DENGAN MENGGUNAKAN ALGORITMA PRIM

BAB I PENDAHULUAN. himpunan bagian bilangan cacah yang disebut label. Pertama kali diperkenalkan

Graph seperti dimaksud diatas, ditulis sebagai G(E,V).

APLIKASI ENCODE DAN DECODE TREE MENGGUNAKAN PRUFER CODE. Oleh. Tri Widya Ayuningtias

Struktur dan Organisasi Data 2 G R A P H

LANDASAN TEORI. Bab Konsep Dasar Graf. Definisi Graf

Graf dan Analisa Algoritma. Pertemuan #01 - Dasar-Dasar Teori Graf Universitas Gunadarma 2017

BAB II LANDASAN TEORI

Minggu Ke XIV Uraian dan Contoh

PENERAPAN GRAF DAN POHON DALAM SISTEM PERTANDINGAN OLAHRAGA

BAB II LANDASAN TEORI

GRAF. Graph seperti dimaksud diatas, ditulis sebagai G(E,V).

Denny Setyo R. Masden18.wordpress.com

Pertemuan 11 GRAPH, MATRIK PENYAJIAN GRAPH

LANDASAN TEORI. Pada bab ini akan diberikan beberapa konsep dasar teori graf dan bilangan. kromatik lokasi sebagai landasan teori pada penelitian ini.

Konsep. Graph adalah suatu diagram yang memuat informasi tertentu. Contoh : Struktur organisasi

G r a f. Pendahuluan. Oleh: Panca Mudjirahardjo. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut.

REQUIREMENTS MANAGEMENT PADA EXTREME PROGRAMMING

Mata Kuliah : Matematika Diskrit Program Studi : Teknik Informatika Minggu ke : 8

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

BAB II TINJAUAN PUSTAKA. Pada bab ini akan diberikan definisi dan teorema yang berhubungan dengan

Bagaimana merepresentasikan struktur berikut? A E

PEMBENTUKAN HAMILTONIAN CYCLE PADA DOUBLE LOOP NETWORKS

Struktur. Bab 6: 4/29/2015. Kompetensi Dasar. Mahasiswa mendapatkan pemahaman mengenai cara kerja dan penyajian graph

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB II TINJAUAN PUSTAKA. kromatik lokasi sebagai landasan teori dari penelitian ini.

I. PENDAHULUAN II. DASAR TEORI. Penggunaan Teori Graf banyak memberikan solusi untuk menyelesaikan permasalahan yang terjadi di dalam masyarakat.

Kode MK/ Matematika Diskrit

LANDASAN TEORI. permasalahan tersebut dalam bentuk sketsa titik dan garis yang masing masing

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

x 6 x 5 x 3 x 2 x 4 V 3 x 1 V 1

APLIKASI PEWARNAAN SIMPUL GRAF UNTUK MENGATASI KONFLIK PENJADWALAN MATA KULIAH DI FMIPA UNY

Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan antara objek-objek tersebut. Demak Semarang. Kend al. Salatiga.

BAB 2 LANDASAN TEORI

Apakah yang dimaksud Tangguh?

TINJAUAN PUSTAKA. Pada bagian ini akan diberikan konsep dasar graf dan bilangan kromatik lokasi pada

8/29/2014. Kode MK/ Nama MK. Matematika Diskrit 2 8/29/2014

BAB II LANDASAN TEORI. Teori graf dikenal sejak abad ke-18 Masehi. Saat ini teori graf telah

TEORI GRAF UNIVERSITAS MUHAMMADIYAH JEMBER ILHAM SAIFUDIN PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK. Selasa, 13 Desember 2016

LOGIKA DAN ALGORITMA

II. KONSEP DASAR GRAF DAN GRAF POHON. Graf G adalah himpunan terurut ( V(G), E(G)), dengan V(G) menyatakan

KONSEP DASAR GRAF DAN GRAF POHON. Pada bab ini akan dijabarkan teori graf dan bilangan kromatik lokasi pada suatu graf

Graf. Program Studi Teknik Informatika FTI-ITP

merupakan himpunan sisi-sisi tidak berarah pada. (Yaoyuenyong et al. 2002)

JOURNAL OF RESIDU Issn Online : Print : X

BAB II LANDASAN TEORI

BAB I PENDAHULUAN. 1.1 Latar Belakang

APLIKASI ENCODE DAN DECODE TREE MENGGUNAKAN PRUFER CODE. Oleh. Tri Widya Ayuningtias

v 3 e 2 e 4 e 6 e 3 v 4

Penggunaan Graf Semi-Hamilton untuk Memecahkan Puzzle The Hands of Time pada Permainan Final Fantasy XIII-2

BAB 2 LANDASAN TEORI

Graf dan Pengambilan Rencana Hidup

BAB 2 LANDASAN TEORI

PEWARNAAN GRAF SEBAGAI METODE PENJADWALAN KEGIATAN PERKULIAHAN

7. PENGANTAR TEORI GRAF

BAB II TINJAUAN PUSTAKA. elemen-elemennya disebut dengan vertex (titik/node), sedangkan E yang mungkin kosong

CRITICAL PATH. Menggunakan Graph berbobot dan mempunya arah dari Critical Path: simpul asal : 1 simpul tujuan : 5. Graph G. Alternatif

BAB III KONSEP DASAR TEORI GRAF. Teori graf adalah salah satu cabang matematika yang terus berkembang

STMIK AMIKOM YOGYAKARTA

BAB 2 GRAF PRIMITIF. 2.1 Definisi Graf

Algoritma Brute-Force dan Greedy dalam Pemrosesan Graf

Aplikasi Graf Berarah dan Pohon Berakar pada Visual Novel Fate/Stay Night

LATIHAN ALGORITMA-INTEGER

Aplikasi Teori Graf dalam Manajemen Sistem Basis Data Tersebar

TEKNIK INFORMATIKA. Teori Dasar Graf

BAB 2 LANDASAN TEORI

ANALISIS JARINGAN LISTRIK DI PERUMAHAN JEMBER PERMAI DENGAN MENGGUNAKAN ALGORITMA PRIM

TERAPAN POHON BINER 1

BAB 1 PENDAHULUAN 1.1 Latar Belakang

BAB II LANDASAN TEORI. definisi, teorema, serta istilah yang diperlukan dalam penelitian ini. Pada bab ini

BAB VII POHON BINAR POHON

BAB I PENDAHULUAN. Dalam perkembangan teknologi saat ini banyak sekali bermunculan macammacam

MENENTUKAN LINTASAN TERPENDEK SUATU GRAF BERBOBOT DENGAN PENDEKATAN PEMROGRAMAN DINAMIS. Oleh Novia Suhraeni 1, Asrul Sani 2, Mukhsar 3 ABSTRACT

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Transkripsi:

5 BAB II TINJAUAN PUSTAKA Pada bab ini diberikan definisi-definisi, istilah-istilah yang digunakan dalam penelitian. 2.1 Konsep Dasar Teori Graf 2.1.1 Graf Graf merupakan representasi dari suatu masalah yang digambarkan sebagai sekumpulan titik (vertex) yang dihubungkan dengan sekumpulan garis (edge) ( Afrianto dan Jamilah, 2012). Suatu graf G (V,E) terdiri dari dua bagian yaitu sebagai berikut. (i) Suatu himpunan V=V(G) yang memiliki elemen-elemen yang dinamakan vertex, titik atau node, dengan V Ø. (ii) Suatu kumpulan E=E(G) yang merupakan pasangan terurut dari titik-titik yang berbeda dinamakan edge atau garis (Lipschutz dan Lipson, 2002). Macam macam graf dilihat dari strukturnya ada 6 macam graf yaitu sebagai berikut:

6 1. Multigraph Multigraph adalah graf yang mempunyai satu atau lebih pasangan garis yang menghubungkan 2 titik. 2. Pseudograph Pseudograph adalah graf yang memiliki satu atau lebih pasangan garis yang menghubungkan 2 titik (multigraph) dan memiliki satu atau lebih loop pada satu titik tersebut. 3. Null Graph Null Graph adalah graf yang hanya terdiri dari satu titik. 4. Graf Lengkap Graf lengkap adalah graf yang setiap pasang titiknya terdapat garis yang menghubungkannya. 5. Graf Teratur Graf Teratur adalah graf yang setiap titiknya mempunyai garis yang menempel padanya dengan jumlah yang sama. 6. Bipartit Graf Bipartit Graf adalah graf yang himpunan titiknya dapat dibagi dua yaitu V = V 1 V 2, V 1 V 2 = 0, dan eij E, i V 1, j V 2 (Wibisono,2010). Hubungan atau lintasan antar titik dalam sebuah grap dapat dibedakan menjadi beberapa jenis, sebagai berikut. 1. Walk Walk adalah suatu barisan berhingga yang terdiri dari garis dan titik bergantian, dimana tidak ada garis yang digunakan lebih dari satu kali. Walk yang diawali dan diakhiri dengan titik yang sama disebut walk tertutup,

7 sedangkan yang diakhiri dan diawali dengan titik yang berbeda disebut walk terbuka. 2. Path Path merupakan walk terbuka dimana tidak ada titik yang digunakan lebih dari sekali (Zayadi, 2010). 2.1.2 Labeled Graph Sebuah graf G dikatakan berlabel jika garis dan atau titik-titiknya diberikan berupa data (Lipschutz dan Lipson, 2002). Dalam menggambarkan sebuah logika suatu kejadian suatu graf sering kali diberi label/ bobot, graf demikian disebut labeled graph (Wibisono, 2010). 2.1.3 Derajat atau Degree Menurut Wibisono (2010), suatu titik dalam graf dapat mempunyai 1 atau lebih garis yang terhubung padanya atau tidak ada satupun garis yang terhubung padanya. Derajat suatu titik adalah banyaknya garis yang terhubung pada titik tersebut. Titik ganjil adalah titik yang derajatnya ganjil. Titik genap adalah titik yang derajatnya genap. Contoh berikut adalah graf yang berbeda-beda derajat pada titiknya Gambar 2.1 Contoh graf yang berbeda-beda derajat pada titiknya

8 Derajat titiknya adalah: deg (A) = 4 deg (B) = 3 deg (C) = 2 deg (D) = 3 deg (E) = 4 deg (F) = 3 deg (H) = 2 deg (I) = 3 Jumlah degree = 24 Jumlah garis = 12 Jumlah degree = 2 kali jumlah garis 2.2 Graf Berarah (Directed Graph) Suatu graf berarah atau digraph G terdiri dari. (i) Suatu himpunan V=V(G) yang elemen-elemennya disebut titik atau garis. (ii) Suatu E=E(G) dari pasangan-pasangan titik terurut yang disebut busur atau garis berarah atau garis. Graf berarah G dikatakan berhingga jika himpunan V dari titik-titiknya dan himpunan E dari busurnya (garis berarah) berhingga (Lipschutz dan Lipson, 2002). 2.3 Indegree dan Outdegree Derajat sebuah titik pada graf berarah dapat dibagi menjadi dua, sebagai berikut. a) In degree b) Out degree Indegree suatu titik adalah jumlah garis yang masuk ke suatu titik.

9 Outdegree suatu titik adalah jumlah garis yang keluar dari suatu titik. Titik yang indegree-nya = 0 disebut sumber/asal/source. Titik yang outdegree-nya = 0 disebut tujuan/sink (Wibisono, 2010). 2.4 Pohon (Tree) Pohon adalah suatu graf yang mempunyai n titik, n-1 garis dan tidak mempunyai lingkaran (cycle free) serta merupakan graf terhubung. Contoh tree dapat dilihat pada Gambar 2.2. Gambar 2.2 Pohon atau tree Diagram pohon dapat digunakan sebagai alat untuk memaparkan logika suatu persoalan dengan menggambarkan semua alternatif pemecahannya (Wibisono, 2010). Menurut Liu (1995), pohon atau tree didefinisikan sebagai suatu graf tak berarah yang terhubung (connected undirected graph) yang tidak mengandung sirkuit. Sifat-sifat yang dimiliki pohon atau tree adalah sebagai berikut. a) Di dalam suatu pohon, lintasan antara dua titik bersifat tunggal (unik, khas). b) Di dalam sebuah pohon, jumlah titik satu lebih banyak daripada jumlah garis (e = n-1). c) Pohon dengan satu atau lebih titik memiliki sedikitnya dua daun.

10 2.5 Pohon Berakar (Rooted Tree) Suatu tree berakar T terdiri dari sebuah tree bersama-sama dengan sebuah titik berpola (berbentuk) R yang disebut akar dari tree. Pada gambar berikut adalah diagram dari suatu tree berakar dimana akar R muncul pada puncak tree sesuai Gambar 2.3. Gambar 2.3 Rooted tree (Lipschutz dan Lipson, 2002). Menurut Wibisono (2010), sama seperti pohon, dalam graf juga mempunyai akar, cabang, daun. Akar pohon adalah titik yang indegree-nya nol ( titik sumber). Setiap titik dapat dianggap atau dijadikan akar, titik yang dianggap sebagai akar ditandai dengan lingkaran yang mengelilingi titik tersebut. Daun pohon adalah setiap titik (bukan akar) yang indegree-nya 1 dan outdegreenya 0. Tinggi pohon adalah panjang garis maksimal dari akar sampai daun. 2.6 Encode, Decode, dan Blob Code 2.6.1 Blob Code Menurut Zayadi (2010), Blob code merupakan metode pengkodean tree dengan melakukan pengumpulan titik-titik dari suatu tree yang diberikan. Titik-titik tersebut dikumpulkan ke dalam suatu himpunan yang dilingkarkan yang disebut

11 Blob. Metode Blob Code mempertimbangkan path dari suatu titik untuk menentukan kode yang ditampilkan. Path (x) didefinisikan sebagai berikut: path (x) = (x,succ(x), succ(succ(x)),,0). 2.6.2 Encode Encode adalah suatu metode untuk melakukan pengkodean ulang terhadap suatu data, sehingga data tersebut apabila dilihat tidak akan sama dengan aslinya, dengan tanpa merusak informasi di dalamnya. Hal ini digunakan agar data yang dikirim tidak bisa diketahui oleh pihak yang tidak berkepentingan (Zayadi, 2010). 2.6.3 Decode Decode adalah suatu metode pembacaan suatu data yang telah dikirimkan dalam bentuk sandi, kemudian diterjemahkan kembali ke dalam bentuk aslinya (Zayadi, 2010). Berikut merupakan contoh encode tree (Zayadi, 2010). Diberikan tree dengan 9 titik dan 8 garis. Langkah-langkah untuk memperoleh kode Blob dari tree di atas adalah sebagai berikut. 1. Tentukan kode awal B= ( ),

12 2. Tentukan titik dengan index terbesar (n) adalah 8. Kemudian, tentukan path (7) = (7,6,3,1,0) dan Blob = (8). Karena path (7) Blob = maka kode yang tampil B= (succ(blob), B), yaitu B = (6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan edge Blob succ(7). Kemudian, buang garis (7) dan terakhir bentuk Blob = Blob {7}, Kode sementara = (6) 3. Tentukan path (6) = (6,3,1,0) dan Blob = (7,8). Karena path (6) Blob =, maka kode yang tampil B = (succ(blob), B), yaitu B = (6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob succ(6). Kemudian, buang garis (6) dan terakhir bentuk Blob = Blob {6}, Kode sementara = (6,6) 4. Tentukan path (5) = (5,3,1,0) dan Blob = (6,7,8). Karena path (5) Blob =, maka kode yang tampil B = (succ(blob), B), yaitu B = (3,6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob succ(5). Kemudian, buang garis (5) dan terakhir bentuk Blob = Blob {5}, Kode sementara = (3,6,6)

13 5. Tentukan path (4) = (4,3,1,0) dan Blob = (5,6,7,8). Karena path (4) Blob =, maka kode yang tampil B = (succ(blob), B), yaitu B = (3,3,6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob succ(4). Kemudian, buang garis (4) dan terakhir bentuk Blob = Blob {4}, Kode sementara = (3,3,6,6) 6. Tentukan path (3) = (3,1,0) dan Blob = (4,5,6,7,8). Karena path (3) Blob =, maka kode yang tampil B = (succ(blob), B), yaitu B = (3,3,3,6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob succ(3). Kemudian, buang garis (3) dan terakhir bentuk Blob = Blob {3}, Kode sementara = (3,3,3,6,6) 7. Tentukan path (2) = (2,1,0) dan Blob = (3,4,5,6,7,8). Karena path (2) Blob =, maka kode yang tampil B = (succ(blob), B), yaitu B = (3,3,3,6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob succ(2). Kemudian, buang garis (2) dan terakhir bentuk Blob = Blob {2}, Kode sementara = (1,3,3,3,6,6)

14 8. Tentukan path (1) = (1,0) dan Blob = (2,3,4,5,6,7,8). Karena path (1) Blob =, maka kode yang tampil B = (succ(blob), B), yaitu B = (1,3,3,3,6,6). Pada konstruksi tree yang baru, garis Blob dibuang, lalu tambahkan garis Blob succ(1). Kemudian, buang garis (1) dan terakhir bentuk Blob = Blob {1}, B = (1,1,3,3,3,6,6) 9. Proses encode selesai dan diperoleh B = (1,1,3,3,3,6,6). Berikut merupakan contoh decode tree (Zayadi, 2010). Diberikan kode B = (1,1,3,3,3,6,6) Langkah-langkah untuk memperoleh konstruksi tree adalah sebagai berikut. 1. Tentukan konstruksi Blob 0 dengan n = 7+1, B = (1,1,3,3,3,6,6) 2. Tentukan path (1) = (1,0) dan Blob = (2,3,4,5,6,7,8). Karena path (1) Blob =, maka tambahkan garis 1 succ(blob), buang garis succ(blob), lalu tambahkan garis Blob b 1, yaitu garis Blob 1. Kemudian buang angka 1 pada B, sehingga B = (1,3,3,3,6,6),

15 B = (1,3,3,3,6,6) 3. Tentukan path (1) = (1,0) dan Blob = (3,4,5,6,7,8). Karena path (1) Blob =, maka tambahkan garis 2 1, buang garis Blob 1, lalu tambahkan garis Blob b 1, yaitu garis Blob 1. Kemudian buang angka 1 pada B, sehingga B = (3,3,3,6,6), B = (3,3,3,6,6) 4. Tentukan path (3) = (3,1,0) dan Blob = (4,5,6,7,8). Karena path (3) Blob =, maka tambahkan garis 3 1, buang garis Blob 3, lalu tambahkan garis Blob b 1, yaitu garis Blob 3. Kemudian buang angka 3 pada B, sehingga B = (3,3,6,6), B = (3,3,6,6) 5. Tentukan path (3) = (3,1,0) dan Blob = (5,6,7,8). Karena path (3) Blob =, maka tambahkan garis 4 3, buang garis Blob 3, lalu tambahkan garis Blob b 1, yaitu garis Blob 3. Kemudian buang angka 3 pada B, sehingga B = (3,6,6),

16 B = (3,6,6) 6. Tentukan path (3) = (3,1,0) dan Blob = (6,7,8). Karena path (3) Blob =, maka tambahkan garis 5 3, buang garis Blob 3, lalu tambahkan garis Blob b 1, yaitu garis Blob 3. Kemudian buang angka 3 pada B, sehingga B = (6,6), B = (6,6) 7. Tentukan path (6) = (6,3,1,0) dan Blob = (7,8). Karena path (6) Blob =, maka tambahkan garis 6 3, buang garis Blob 3, lalu tambahkan garis Blob b 1, yaitu garis Blob 6. Kemudian buang angka 6 pada B, sehingga B = (6), B = (6) 8. Tentukan path (6) = (6,3,1,0) dan Blob = (8). Karena path (6) Blob =, maka tambahkan garis 7 6, buang garis Blob 6, lalu tambahkan garis

17 Blob b 1, yaitu garis Blob 6. Kemudian buang angka 6 pada B, sehingga B = ( ), 9. Diperoleh original tree berikut. B = ( ) 2.7 Extreme Programming Menurut Widodo dan Subekti (2006) saat ini metode yang digunakan dalam pengembangan sistem udah cukup banyak berkembang, macam-macam metode pengembangan sistem adalah: 1. extreme Programming (XP) 2. Scrum Methodology 3. Crystal Family 4. Dynamic Systems Development Method (DSDM) 5. Adaptive Software Development (ASD) 6. Feature Driven Development (FDD) Salah satu model yang umum digunakan dalam agile methods adalah extreme programing (XP). Model ini merupakan metode pengembangan perangkat lunak

18 yang ringan dan dipelopori oleh Kent Beck, Ron Jeffries, dan Ward Cunningham. XP merupakan agile methods yang paling banyak digunakan dan menjadi suatu pendekatan yang sangat terkenal. Sasaran XP adalah tim yang dibentuk berukuran antara kecil sampai sedang saja, tidak perlu menggunakan sebuah tim yang besar. Hal ini dimaksudkan untuk menghadapi requirements yang tidak jelas maupun terjadinya perubahan-perubahan requirements yang sangat cepat (Widodo dan Subekti, 2006). Menurut Pressman (2010) terdapat 4 tahapan pada pengembangan perangkat lunak yang menggunakan XP terdiri dari planning seperti memahami kriteria pengguna dan perencanaan pengembangan, designing seperti perancangan prototype dan tampilan, coding termasuk pengintegrasian, dan yang terakhir adalah testing. Unsur-unsur lain dari Extreme Programming meliputi pair programming pada tahapan coding, pengujian unit semua kode, menghindari fitur-fitur pemrograman sampai mereka benar-benar diperlukan, struktur manajemen yang datar, kesederhanaan dan kejelasan dalam kode, dan seringnya terjadi komunikasi antara programmer dan pelanggan ketika terjadi perubahan kebutuhan pelanggan seiring berlalunya waktu.

Gambar 2.4. Tahapan Extreme Programming (Pressman, 2010) 19