## Sistem Informasi Pengolahan Data Pegawai (SIPDAP) Menggunakan Metode Unified Process

## (Studi Kasus : Badan Kepegawaian Daerah Kabupaten Purworejo)

## Wahyu Heri Irawan
Departemen Ilmu Komputer/Informatika, Fakultas Sains dan Matematika,Universitas Diponegoro Jl. Prof. Sudharto, SH, Kampus UNDIP Tembalang, Semarang 50275, Indonesia
Email : heri.whi@gmail.com

## Abstract
Regional  Employment  Agency  (Badan  Kepegawaian  Daerah  or  BKD)  is  an  agency  that  manages  the  data  of State  Civil  Apparatus.  In  employment  data  processing,  BKD  of  Purworejo  District  is  already  using  the  online application from the State Employment Agency with the name of SAPK (Civil Service Application System). SAPK has  not  been  equipped  with  features  to  manage  employee  history  data,  employee  recapitulation,  employee statistic, and search for the employee who reaches the limit of Retirement Age at a certain period, which make leader  decision  relating  to  the  formation,  procurement,  receipt,  transfer,  and  promotion  of  employee  become hampered.  Based  on  these problems,  an  information  system  for  employee data  processing  is  created  using  the unified  process  to  meet  the  needs  of  BKD  of  Purworejo  District.  The  system  created  with  the  programming language  PHP,  CodeIgniter  framework,  and  MySQL  DBMS.  The  system  can  handle  the  management  of employee history data, employee recapitulation, employee statistics, and search for the employee who will reach the  retirement  age.  From  the  results  of  usability  testing,  an  information  system  for  employee  data  processing obtains  the  percentage  of  the  overall  value  of  91%  and  based  on  the  categories,  the  system  qualified  as  an excellent and successful result.
Keywords :  PHP, Framework CodeIgniter, Employee Information System, Unified Process

## Abstrak
Badan  Kepegawaian  Daerah  (BKD)  adalah  badan  yang  mengelola  data  Aparatur  Sipil  Negara  (ASN).  Dalam mengolah  data  kepegawaian,  BKD  Kabupaten  Purworejo  sudah  menggunakan  aplikasi online dari  Badan Kepegawaian  Negara  (BKN)  dengan  nama  SAPK  (Sistem  Aplikasi  Pelayanan  Kepegawaian).  SAPK  belum dilengkapi  fitur  untuk  mengelola  data  riwayat  pegawai,  rekapitulasi  pegawai,  statistik  pegawai,  dan  mencari pegawai  yang  mencapai  Batas  Usia  Pensiun  (BUP)  pada  periode  tertentu,  yang  menyebabkan  keputusan pimpinan  terkait  dengan  formasi,  pengadaan,  penerimaan,  mutasi,  dan  promosi  pegawai  menjadi  terhambat. Berdasarkan  permasalahan  tersebut  dibuat  sistem  informasi  pengolahan  data  pegawai  menggunakan  metode unified  process untuk  memenuhi  kebutuhan  BKD  Kabupaten  Purworejo . Sistem  dibuat  dengan  bahasa pemrograman  PHP, framework codeigniter,  dan  menggunakan  DBMS  MySQL.  Sistem  dapat  menangani pengelolaan  data  riwayat  pegawai,  rekapitulasi  pegawai,  statistik  pegawai,  serta  mencari  pegawai  yang  akan mencapai  BUP.  Dari  hasil  pengujian usability ,  sistem  informasi  pengolahan  data  pegawai  memperoleh persentase  nilai  keseluruhan  91%,  dan  berdasarkan  kategori  yang  ada  maka  sistem  masuk  dalam  kualifikasi sangat baik dan hasilnya berhasil.
Kata kunci : PHP, Framework CodeIgniter, Sistem Informasi Pegawai, Unified Process

## 1. Pendahuluan
Badan Kepegawaian Daerah (BKD) adalah badan yang  mengelola  data  Aparatur  Sipil  Negara  (ASN). BKD  Kabupaten  Purworejo  merupakan  unsur pendukung  tugas  pemerintah  daerah  di  bidang kepegawaian  daerah.  Badan  tersebut  dipimpin  oleh seorang  Kepala  Badan  yang  berkedudukan  di  bawah dan  tanggungjawab  kepada  Bupati  Kabupaten Purworejo  melalui  Sekretaris  Daerah.  Menurut
Keputusan  Presiden  Republik  Indonesia  No  159 Tahun  2000  tentang  Pedoman  Pembentukan  Badan Kepegawaian  Daerah  Pasal  1  angka  3  manajemen Pegawai  Negeri  Sipil  Daerah  adalah  keseluruhan upaya-upaya untuk meningkatkan efisiensi, efektivitas, dan derajat profesionalisme penyelenggaraan  tugas,  fungsi  dan  kewajiban kepegawaian, yang meliputi perencanaan, pengadaan, pengembangan kualitas, penempatan, promosi,

## Sistem Informasi Pengolahan Data Pegawai (SIPDAP) Menggunakan Metode Unified Process
penggajian, kesejahteraan dan pemberhentian Pegawai Negeri Sipil Daerah [1].
BKD Kabupaten Purworejo dalam mengolah data kepegawaian  sudah  menggunakan  program  aplikasi online dari  Badan  Kepegawaian  Negara  (BKN) dengan nama Sistem Aplikasi Pelayanan Kepegawaian  (SAPK).  Aplikasi  tersebut  mempunyai beberapa  fitur,  seperti  penetapan  Nomor  Induk Pegawai (NIP), pencetakan surat keputusan pengangkatan Pegawai Negeri Sipil (PNS), pemberian  nota  persetujuan/  pertimbangan  teknis kenaikan  pangkat,  penetapan  dan  pencetakan  surat keputusan  pemberhentian  dengan  hak  pensiun  dan updating data  mutasi.  SAPK  belum  dilengkapi dengan  fitur  untuk  mengolah  data  riwayat  pegawai, rekapitulasi  data  pegawai,  mengolah  statistik  data pegawai,  dan  mencari  pegawai  yang  mencapai  BUP pada periode tertentu.
Permasalahan  yang  muncul  di  BKD  Kabupaten Purworejo adalah belum adanya fitur untuk mengolah riwayat,  rekapitulasi,  statistik,  dan  daftar  pegawai yang  mencapai  BUP  di  SAPK,  sehingga  dapat menghambat pengambilan keputusan pimpinan terkait  dengan  formasi,  pengadaan,  penerimaan, mutasi,  dan  promosi  pegawai  di  Kabupaten Purworejo.
Berdasarkan  permasalahan  tersebut,  dibutuhkan sebuah sistem yang dapat membantu BKD Kabupaten Purworejo  dalam  melakukan  pengolahan  data pegawai yaitu dapat mengelola data riwayat pegawai, dapat  secara otomatis melakukan  rekapitulasi  dan menampilkan statistik setelah data pegawai diperbaharui,  dan  dapat  mencari  pegawai  yang  akan mencapai  BUP  pada  periode  tertentu.  Sehingga  hasil dari sistem yang dibuat dapat digunakan untuk acuan atau tools yang dapat membantu bidang dokumentasi dan pengolahan data (doklahta), dan dapat membantu keputusan pimpinan terkait dengan formasi, pengadaan, penerimaan,  mutasi, dan promosi pegawai.
2. Tinjauan Pustaka
Sistem informasi memberikan kemudahan terhadap berbagai organisasi sesuai dengan spesifikasi  dan  tujuan  yang  didefinisikan.  Sistem informasi  merupakan  suatu  sistem  yang  terdiri  dari komponen-komponen dalam organisasi untuk mencapai suatu tujuan (Ladjamudin, 2005). Hubungan  antar  komponen  dalam  sistem  informasi diilustrasikan pada gambar 2.1.
Gambar 2.1. Hubungan Antarkomponen Sistem Informasi (Ladjamudin, 2005) Dalam Undang-Undang No 5 Tahun 2014 tentang ASN,  dijelaskan  bahwa  PNS  adalah  setiap  warga
negara  Indonesia  yang  telah  memenuhi  syarat  yang ditentukan,  diangkat  oleh  pejabat  yang  berwenang dan  diserahi  tugas  dalam  suatu  jabatan  negeri,  atau diserahi tugas negara lainnya, dan digaji berdasarkan peraturan perundang-undangan yang berlaku [2].
Unified  Modelling  Language (UML)  digunakan untuk menggambarkan, membangun, dan mendokumentasikan Object  Oriented  Analysis and Design (OOA/D).  UML  adalah  bahasa  pemodelan visual yang secara umum digunakan untuk menentukan,  membangun,  dan  mendokumentasikan artefak dari sistem [3].
PHP  merupakan script yang  terintegrasi  dengan HTML  dan  berada  pada server ( server  side  HTML embedded  scripting ).  PHP  adalah script yang digunakan  untuk  membuat  halaman website yang dinamis.  Dinamis  berarti  halaman  yang  akan ditampilkan  dibuat  saat  halaman  itu  diminta  oleh client . Mekanisme ini menyebabkan Perangkat Lunak Pengolah  yang  diterima client selalu  yang  terbaru. Semua script dieksekusi  pada server di  mana script tersebut dijalankan [4].
CodeIgniter  adalah  sebuah  kerangka  kerja  yang bersifat  sumber  yang  terbuka  digunakan  untuk membangun  aplikasi  php  dinamis.  Tujuan  utama pengembangan  Codeigniter  adalah  untuk  membantu pengembang  untuk  mengerjakan  aplikasi  lebih  cepat daripada  menulis  semua  kode  dari  awal.  Codeigniter menyediakan  berbagai  macam library yang  dapat mempermudah  dalam  pengembangan.  CodeIgniter sendiri  dibangun  menggunakan  konsep Model-View- Controller pola pengembangan [5]. MySQL ( My Structure Query Language ) merupakan sebuah perangkat lunak sistem manajemen  basis  data  SQL  ( Database  Management System )  atau  DBMS  dari  sekian  banyak  DBMS, seperti Oracle, MS SQL, Postagre SQL, dan lain-lain. [4].
Usability adalah atribut kualitas yang menjelaskan atau  mengukur  seberapa  mudah  penggunaan  suatu antarmuka. Kata “ usability ” juga merujuk pada suatu metode  untuk  meningkatkan  kemudahan  pemakaian selama  proses  desain. Usability diukur  dengan  lima kriteria,  yaitu learnability ,  e fficiency , memorability, errors, dan satisfaction [6].
Unified  Process merupakan  salah  satu software development  process yang  telah  mendukung  konsep object  oriented dan  memiliki  proses  lebih  dari  satu. Unified  Process berbasis  komponen  yang  berarti software system yang dibangun terdiri dari komponen-komponen  yang  saling  terhubung  melalui antarmuka  yang  terdefinisi  dengan  baik. Unified Process memiliki tiga karakteristik utama yang paling membedakan  dengan software  development  process yang  lain,  yaitu Use  Case  Driven,  Architecture Centric,  dan  Iterative  &  Incremental [7]. Unified process memiliki  empat  fase  dan  5 workflow seperti yang digambarkan pada gambar 2.2.
Gambar 2.2 . Struktur Unified Process (Arlow & Neustdat, 2002) Berdasarkan  gambar  2.2, core  workflow dijelaskan seperti berikut :
1. Requirements Requirement memiliki  tujuan  yang  penting,  yaitu untuk  mengarahkan  pembangunan  ke  arah  sistem yang  benar.  Pada  tahap  ini  kebutuhan  pengguna dikumpulkan  kemudian  ditransformasikan  menjadi sebuah  deskripsi  sistem  yang  jelas  dan  lengkap. Artifact yang dihasilkan pada tahap ini adalah: a. Deskripsi actor dan use case
Mendeskripsikan aktor dan use case dari sistem.
b. Use case detail Use  case  detail menjelaskan  diagram use  case yang diilustrasikan secara rinci untuk setiap use case .
c. Use case model
Merupakan  model  dari  sebuah  sistem  yang terdiri  dari actor,  use  case, dan  relasinya. Use case  model direpresentasikan menggunakan use case diagram .
d. Kebutuhan non-fungsional
2. Analysis
Kebutuhan yang telah dipaparkan dalam requirement distruktur  ulang  dalam  tahap analysis dengan  tujuan  agar  lebih  memudahkan  pemahaman kebutuhan  sistem  oleh  pengembang. Artifact yang dihasilkan pada tahap ini adalah:
a. Realisasi use case tahap analisis Realisasi
use case tahap analisis mendeskripsikan bagaimana suatu use case yang sifatnya spesifik direalisasikan dan dilaksanakan dalam  terminologi analysis  classes dengan objek-objek analisisnya yang saling berinteraksi dengan satu dan lainnya. Artifact ini direpresentasikan melalui analysis class diagram .
b. Class analysis Class analysis merepresentasikan sebuah abstraksi dari satu atau beberapa class dan/ atau subsistem di dalam desain sistem.
3. Design
Tujuan  utama design adalah  untuk  memperbaiki hasil  dari  analisis  sampai  bahan  pengembangan
perangkat  lunak  menjadi  terstruktur  hingga  dapat diimplementasikan. Artifact yang  dihasilkan  pada tahap ini adalah: a. Design subsystem Design subsystem digunakan untuk mengorganisasikan  artifak  dalam design  model ke  dalam  bagian-bagian  yang  lebih  teratur.
Artifak  ini  terdiri  atas interface  design ,  dan subsistem lainnya. b. Design classes Design classes digunakan untuk menggambarkan class yang  diimplementasi beserta  spesifikasi  atribut  dan  operasi,  agregasi dan asosiasi, serta generalisasi.
c. Realisasi use case tahap desain
Realisasi use case tahap desain mendeskripsikan bagaimana use case dirancang dalam kolaborasi dengan design  model .  Realisasi use  case tahap desain  terdiri  atas sequence  diagram dan class diagram .
4. Implementation Implementation bertujuan untuk
mentransformasikan design model ke dalam executable  code. Pada workflow  implementation ini dilakukan  implementasi component ,  subsistem,  dan interface . 5. Test Hal yang dilakukan pada tahap test adalah pengujian terhadap  sistem  apakah  telah  sesuai  dengan requirement yang telah dirancang sebelumnya.

## 3. Requirement
Pada workflow  requirement terjadi  pada  fase inception dan elaboration. Pada workflow ini menjelaskan kebutuhan sistem.
SIPDAP  digunakan  sebagai  sistem  pendukung dari  SAPK  yang  dapat  membantu  pihak  BKD Kabupaten Purworejo dalam mengelola data pegawai. Sistem  ini  memiliki  pengguna  yaitu  StafData, StafFormasi dan pengunjung . SIPDAP dikembangkan untuk  membantu  menangani  pengelolaan  data  yang meliputi: riwayat pegawai, rekapitulasi data pegawai, statistik  data  pegawai,  dan  batas  usia  pensiun pegawai.
Pembuatan  SIPDAP  dilakukan  dengan  bahasa pemrograman PHP sebagai fungsi dengan framework codeigniter, dan  untuk  antarmuka  menggunakan HTML  dan  CSS.  DBMS  yang  digunakan  dalam membuat  sistem  adalah  MySQL.  Data  pegawai  yang digunakan  diunduh  dari  SAPK  dalam  format Microsoft  Excel ,  hal  ini  dikarenakan  pihak  BKD Kabupaten  Purworejo  tidak  mempunyai  akses langsung ke basis data dari SAPK.
Arsitektur  yang  hendak  diterapkan  adalah client- server seperti yang diilustrasikan pada gambar 3.1.

## Sistem Informasi Pengolahan Data Pegawai (SIPDAP) Menggunakan Metode Unified Process
Gambar 3.1. Desain Arsitektur Sistem Usecase  diagram SIPDAP  dapat  dilihat  pada gambar  3.2  yang  nantinya  dijelaskan  lebih  rinci kedalam use case detail .
Gambar 3.2. Use Case Diagram SIPDAP
4. Analysis
Workflow  analysis dimulai  pada  fase  akhir inception dan  pada  fase elaboration bersama  dengan requirements. Pada workflow ini,  dihasilkan  realisasi use  case tahap  analisis  dalam  bentuk analysis  class diagram. Selain itu juga menghasilkan class analysis yang menunjukkan hasil dari analysis class diagram . Analysis class diagram menunjukkan secara detail dari use  case dan  mengidentifikasi class setiap use case seperti class  boundary,  entity, dan control serta bagaimana  mereka  saling  berinteraksi . Salah  satu analisis class  diagram yaitu  mengelola  data  riwayat pegawai dapat dilihat pada gambar 4.1.
Gambar 4.1. Analisis Class Diagram Mengelola Data Riwayat Pegawai

## 5. Design
Tahap  ini  merupakan  transformasi  dari  tahap analysis menjadi  sebuah blueprint untuk  kemudian digunakan  dalam  tahap  implementasi.  Hasil  dari tahap ini yaitu menghasilkan realisasi use case tahap desain  menggunakan sequence  diagram .  Dan menghasilkan class  diagram yang  menjelaskan hubungan antar kelas yang sudah terdapat fungsi dan atribut  yang  telah  digambarkan  pada sequence diagram. Tahap design juga menghasilkan interface design yang  menggambarkan  desain  antarmuka sistem. Desain dilakukan pada fase akhir elaboration dan  pada  permulaan  fase construction.  Sequence diagram mengelola  data  riwayat  pegawai  dapat dilihat pada gambar 5.1.
Gambar 5.1. Sequence Diagram Mengelola Data Riwayat Pegawai Setiap class dapat  dimodelkan  hubungannya dengan class  diagram apabila  sudah  didapatkan
operasi  dan  atribut  pada  setiap  kelas.  Atribut  dari kelas  didapatkan  dari  subbab class  analisis. Sedangkan  operasi  setiap  kelas  didapatkan  dari
sequence diagram . Class diagram SIPDAP ditunjukkan  pada  gambar  5.2.  Dan class  diagram mengelola akun ditunjukkan pada gambar 5.3.
Gambar 5.2. Class Diagram SIPDAP
Gambar 5.3. Class Diagram Mengelola Akun Interface design atau dasain antarmuka dihasilkan dari class  boundary yang  telah  didapatkan.  Bagian dasain  antarmuka  membahas  mengenai  rancangan
tampilan  antarmuka  sistem  yang  digunakan  untuk pedoman  pada  implementasi interface .  Salah  satu

## Sistem Informasi Pengolahan Data Pegawai (SIPDAP) Menggunakan Metode Unified Process
desain  antarmuka yaitu  desain  antarmuka  mengelola data riwayat pegawai dapat dilihat pada gambar 5.4.
Gambar 5.4. Desain Antarmuka Mengelola Data

## Riwayat Pegawai
6. Implementation
Pada  subbab implementation membahas  tentang implementasi  yang  telah  dilakukan.  Pada  tahap  ini dihasilkan  implementasi class, dan  implementasi antarmuka. Implementasi antarmuka sistem informasi pengolahan  data  pegawai  dilakukan  berdasarkan dengan  kelas  diagram  yang  telah  dibuat  pada  proses sebelumnya.  Salah  satu  implementasi  antarmuka yaitu  antarmuka  halaman  mengelola  data  riwayat pegawai diilustrasikan pada gambar 6.1.
Gambar 6.1. Tampilan Halaman Mengelola Data Riwayat Pegawai Mengelola  data  riwayat  pegawai dapat  dilakukan oleh  StafData  melalui  menu  kelola  riwayat  pegawai . Pada  antarmuka  halaman  kelola  riwayat  pegawai menampilkan  daftar  pegawai  dan  menyediakan tombol “detail” dan tombol “ edit ”.
7. Test Pada  tahap test dilakukan  pengujian  terhadap sistem.  Dilakukan  dua  pengujian  yaitu  pengujian fungsional  sistem  dan  pengujian usability .  Pengujian fungsional  sistem  menggunakan black-box yang hanya  menguji  fungsionalitas  dari  sistem.  Pengujian funsional  sistem  dilakukan  untuk  melihat  hasil implementasi,  apakah  berjalan  sesuai  tujuan  atau masih terdapat kesalahan. Berdasarkan hasil pengujian  fungsionalitas  sistem,  secara  umum fungsionalitas  sistem  informasi  pengolahan  data
pegawai  telah  memenuhi usecase yang  telah diidentifikasikan sebelumnya.
Pengujian usability digunakan  untuk  menguji kepada pengguna akhir mengenai tingkat ketergunaan sistem.  Teknik  pengumpulan  data  yang  dilakukan dalam  pengujian usability yaitu  menggunakan kuesioner dan teknik pengukuran datanya menggunakan  skala likert .  Pengujian  dilakukan dengan  menentukan  minimal  1  responden  selaku StafData dan 2 responden selaku StafFormasi. Untuk analisis  hasil  pengujian usability adalah  sebagai berikut:  (1)  aspek learnability diperoleh  nilai  90% atau  sangat  baik;  (2)  aspek efficiency diperoleh  nilai 84%  atau  baik;  (3)  aspek  mudah memorability diperoleh nilai 97% atau sangat baik; (4) aspek error diperoleh  nilai  87%  atau  baik;  (5)  aspek satisfaction diperoleh  nilai  97%  atau  sangat  baik.  Dengan persentase  nilai  keseluruhan  91%,  dan  berdasarkan kategori  yang  ada  pada  Tabel  2.5  maka  sistem informasi  pengolahan  data  pegawai  menggunakan metode unified  process dengan  studi  kasus  di  BKD Kabupaten  Purworejo  masuk  kualifikasi  sangat  baik dan hasilnya berhasil.

## 8. Penutup
Kesimpulan yang dapat diambil dari penelitian ini adalah  telah  dihasilkan  sistem  informasi  pengolahan data  pegawai  menggunakan  metode unified  process dengan  studi  kasus  di  BKD  Kabupaten  Purworejo yang  dapat  menangani  pengelolaan  data  riwayat pegawai, rekapitulasi pegawai, statistik pegawai, serta mencari pegawai yang akan mencapai BUP, sehingga dapat  membantu  keputusan  pimpinan  terkait  dengan formasi, pengadaan, penerimaan, mutasi, dan promosi pegawai  di  Kabupaten  Purworejo.  Hasil  pengujian usability sistem  informasi  pengolahan  data  pegawai menunjukkan  bahwa  aspek learnability diperoleh nilai 90% atau sangat baik, aspek efficiency diperoleh nilai  84%  atau  baik,  aspek memorability diperoleh nilai  97%  atau  sangat  baik,  aspek error diperoleh nilai 87% atau baik, aspek satisfaction diperoleh nilai 97% atau sangat baik. Sistem memperoleh persentase nilai  keseluruhan  91%,  dan  berdasarkan  kategori yang ada maka sistem masuk dalam kualifikasi sangat baik dan hasilnya berhasil. Saran untuk pengembangan lebih lanjut sistem informasi pengolahan data pegawai ini adalah penambahan fitur agar  sistem  dapat  diakses  oleh  setiap  pegawai  yang masih  aktif  di  Kabupaten  Purworejo  agar  dapat melihat  data  pribadi  masing-masing,  sehingga  dapat memantau  atau  melakukan update data  pribadinya apabila  terjadi  perubahan  ataupun  kesalahan.  Sistem juga harus menyediakan mekanisme validasi terhadap update data yang dilakukan oleh pegawai.

## Ucapan Terima Kasih
Dalam  penelitian  ini,  penulis  mendapatkan dukungan  dan  bantuan  dari  berbagai  pihak.  Secara khusus,  penulis  mengucapkan  terima  kasih  kepada BKD  Kabupaten  Purworejo  yang  telah  memberikan fasilitas  dalam  penelitian  ini.  Tidak  lupa  penulis mengucapkan terima kasih kepada semua pihak yang telah membantu penelitian ini.

## Referensi
[1]  Republik  Indonesia,  2000,  “ Keputusan  Presiden Republik  Indonesia  No.  159  tentang  Pedoman Pembentukan  Badan  Kepegawaian  Daerah ”, Jakarta: Sekretariat Negara.
[2]  Republik  Indonesia,  2014,  “ Undang-Undang Republik  indonesia  No.  5  tentang  Aparatur  Sipil
Negara”, Jakarta: Sekretariat Negara.
[3]  C.  Larman,  2004,  “ Applying  UML  and  Pattern: An  Introduction  Object-Oriented  Analysist  and Design  and  the  Unified  Process ”  3rd  ed,  USA: Prentice Hall.
[4]  Anhar,  2010,  “ Panduan  Menguasai  PHP  & MySQL secara Otodidak ”, Jakarta: MediaKita.
[5]  I. Daqiqil, 2011 “ Framework Codeigniter: Sebuah Panduan dan Best Practice ”, Pekanbaru.
[6]  J.  Nielson,  2012,  “ Usability  101:  Introduction  to usability ”, [Online] Available at: https://www.nngroup.com/articles/usability-101- introduction-to-usability/ [Accessed  24  October 2016].
[7]  J.  Arlow  and  I.  Neustadt,  2002,  “ UML  and  The Unified Process Practical Object-Oriented Analisis  &  Design”, London:  Addison  Wesley Professional.