BAB II : LANDASAN TEORI
3.6. Perancangan Objek
Penggunaan kembali beberapa kelas dan komponen yang telah ada pada
kembali node web server dan gambar 4.8 sampai 4.14 untuk penggunaan kembali
node telepon genggam.
Gambar 3.23 Penggunaan Kembali Node Web Server
Dalam perancangan object pada node web server, penulis menggunakan kembali class/komponen yang telah disediakan oleh web server, yaitu HttpServlet. HttpServlet digunakan kembali oleh object-object yang menerima permintaan dari client sebagai pintu masuk ke dalam node web server.
Untuk mengakses basis data, dikarenakan sebagian besar kode yang digunakan sama, maka dirancang agar fungsi-fungsi yang sama dapat dikelompokan dalam satu class/komponen dan dapat digunakan kembali oleh class-class yang lain. Class BaseDAO dan BaseDAOImpl merupakan class yang mengelompokan fungsi yang sama dan digunakan kembali oleh class LokasiDAO,
Gambar 3.24 Penggunaan Kembali MencariLokasi
Gambar 3.26 Penggunaan Kembali MengaturLokasi
Gambar 3.28 Penggunaan Kembali Daftar
Gambar 3.30 Penggunaan Kembali TampilanAwal
3.6.2 Identifikasi Atribut dan Operasi Tambahan
Atribut dan operasi tambahan dibutuhkan agar alur aplikasi berjalan dengan baik. Adapun atribut dan operasi tambahan yang dimaksud sebagai berikut:
Tabel 3.26 Atribut dan Operasi Tambahan
No Kelas Atribut / Operasi Deskripsi 1 FormulirUtama apakahLogin
tampilTombolLogin tampilTombolDaftar tampilTombolTambah
Untuk menentukan apakah tombolLogin,tombolDaftar dan tombolTambah
ditampilkan 2 KendaliMencariL
okasi
tampilDaftarLokasi Untuk menampilkan hasil pencarian lokasi
3 FormulirDetailLo kasi
tampilTombolMengatu r
Untuk menentukan apakah tombolMengatur ditampilkan
3.6.3 Menentukan Tipe, Tanda dan Keterlihatan
Berikut adalah tipe, tanda dan keterlihatan masing-masing operasi dan atribut dari masing-masing kelas
Tabel 3.27 Tipe, Tanda dan Keterlihatan
No Kelas / Interface Atribut / Operasi
1 LayananPengaturLokasi public List<Lokasi> cari(String kriteria, String nama, double x,double y, boolean gps);
public Lokasi detail(long id);
public boolean mengaturDetail(Lokasi lokasi);
public long menambah(Lokasi lokasi); 2 LokasiDAO public List<Lokasi>
cariDenganKoordinat(String kriteria, String nama, double x, double y);
public Lokasi cariDenganId(long id); public int ubahDetail(Lokasi lokasi); public long tambah(Lokasi lokasi); public List<Lokasi>
cariDenganKriteria(String kriteria, String nama);
3 LayananPengaturPengguna public PenggunaTerdaftar daftar(String nama,String password,String email,Date tanggalDaftar, String daftarDari);
public String login(String userName,String password);
4 PenggunaDAO public int tambah(String nama,String password,String email,Date tanggalDaftar, String daftarDari);
public boolean periksa(String nama, String password);
5 FormulirUtama public boolean apakahLogin(); private void tampilTombolLogin(); private void tampilTombolDaftar(); private void tampilTombolTambah(); 6 KendaliMencariLokasi public void tampilFormulirCari();
public void cariLokasi(String kriteria,float x,float y);
7 FormulirMencariLokasi public void kirim();
8 KendaliDetailLokasi private Lokasi detailLokasi; public void ambilDetail(int id); public void tampilFormulirDetail(); 9 FormulirDetailLokasi private void tampilTombolMengatur(); 10 KendaliMengaturDetailLo
kasi
public void tampilFormulirMengatur(); public boolean aturLokasi(Lokasi lokasi); public void tampilFormulirDetail(); 11 FormulirMengaturDetailLo
kasi
public void kirim();
12 KendaliMenambahLokasi public void tampilFormulirTambah(); public Lokasi tambahLokasi(String kriteria, String nama, float x, float y);
public void tampilFormulirDetail(); 13 FormulirTambahLokasi public void kirim();
14 KendaliPendaftaran public void tampilFormulirDaftar(); public PenggunaTerdaftar
kirimDaftar(String nama, String password, String email);
15 FormulirDaftar public void kirim();
16 KendaliLogin public void tampilFormulirLogin();
public String login(String userName,String password);
17 FormulirLogin public void kirimLogin();
18 LayananKomunikasiClient public List<Lokasi> cariLokasi(String kriteria, String nama, double x, double y, boolean gps);
public Lokasi detailLokasi(long id); public boolean aturLokasi(Lokasi lokasi); public Lokasi tambahLokasi(String kriteria, String nama, double x, double y, String penambah);
public PenggunaTerdaftar daftar(String nama, String password, String email); public String login(String userName, String password);
3.6.4 Menentukan Kondisi Sebelum dan Sesudah
Kondisi sebelum dan sesudah untuk setiap operasi adalah sebagai berikut:
Tabel 3.28 Kondisi sebelum dan sesudah
No Operasi Kondisi sebelum dan sesudah 1 LayananPengaturLokasi.c
ari();
pre: koordinat tidak kosong post: daftar lokasi dikembalikan 2 LayananPengaturLokasi.d
etail();
pre: id dari lokasi tidak kosong post: detail lokasi dikembalikan 3 LayananPengaturLokasi.
mengaturLokasi();
Pre: id dari lokasi tidak kosong
post: lokasi sudah diubah dengan data baru 4 LayananPengaturLokasi.
menambah();
pre: tidak ada Lokasi dengan koordinat dan nama yang sama
post: Lokasi baru ditambahkan 5 LokasiDAO.cariDenganK
oordinat();
Pre: koordinat tidak kosong
post: lokasi yang berdekatan dengan koordinat dikembalikan
6 LokasiDAO.cariDenganId ();
Pre: id tidak kosong
post: Lokasi dengan id terkait dikembalikan 7 LokasiDAO.ubahDetail(); Pre: id dan data komentar baru tidak kosong
post: lokasi dengan id terkait ditambah komentarnya.
8 LokasiDAO.tambah(); Pre: data lokasi tidak kosong
post: lokasi dengan data baru ditambah 9 LokasiDAO.cariDenganK
riteria
Pre: kriteria tidak kosong
post: lokasi-lokasi dengan kriteria yang sama dikembalikan.
10 LayananPengaturPenggun a.daftar();
Pre: username belum ada yang menggunakan post: Pengguna didaftarkan sebagai
PenggunaTerdaftar 11 LayananPengaturPenggun
a.login();
Pre: username dan password tidak kosong post: username terdaftar sedang masuk kedalam sistem.
12 PenggunaDAO.tambah(); Pre: data pengguna tidak kosong
post: pengguna ditambahkan kedalam sistem 13 PenggunaDAO.periksa(); Pre: username dan password tidak kosong
post: mengembalikan apakah username dan password cocok.
14 FormulirUtama.apakahLo gin();
Pre: - post: -
15 FormulirUtama.tampilTo mbolLogin();
Pre: apakahLogin() mengembalikan 'Ya' post: tombolLogin tampil
16 FormulirUtama.tampilTo mbolDaftar();
Pre: apakahLogin() mengembalikan 'Ya' post: tombolDaftar tampil
17 FormulirUtama.tampilTo mbolTambah();
Pre: apakahLogin() mengembalikan 'Ya' post: tombolTambah tampil
18 KendaliMencariLokasi.ta mpilFormulirCari();
Pre: formulirCari tidak tampil post: FormulirCari tampil 19 KendaliMencariLokasi.car
iLokasi();
Pre: kriteria atau koordinat tidak kosong post: mengisi daftarLokasi
20 KendaliMencariLokasi.ta mpilDaftarLokasi();
Pre: jika cariLokasi() mengembalikan hasil post: daftarLokasi tampil
21 FormulirMencariLokasi.ki rim();
Pre: data kriteria atau koordinat valid post: FormulirMencariLokasi tidak ditampilkan
22 KendaliDetailLokasi.ambi lDetail();
Pre: id Lokasi yang dipilih tidak kosong post: mengisi detailLokasi
23 KendaliDetailLokasi.tamp ilFormulirDetail();
Pre: detailLokasi tidak kosong post: FormulirDetail tampil 24 FormulirDetailLokasi.tam
pilTombolMengatur();
Pre: FormulirUtama.apakahLogin mengembalikan 'Ya'
post: TombolMengatur tampil. 25 KendaliMengaturDetailLo
kasi.tampilFormulirMeng atur();
Pre: FormulirMengatur tidak tampil post: FormulirMengatur tampil. 26 KendaliMengaturDetailLo
kasi.aturLokasi();
Pre: data baru lokasi tidak kosong post: data baru diubah
27 KendaliMengaturDetailLo kasi.tampilFormulirDetail ();
Pre: aturLokasi() berhasil post: FormulirDetail tampil. 28 FormulirMengaturDetailL
okasi.kirim();
Pre: data baru lokasi valid post: data baru diubah 29 KendaliMenambahLokasi.
tampilFormulirTambah();
Pre: FormulirTambah tidak tampil post: FormulirTambah tampil 30 KendaliMenambahLokasi.
tambahLokasi();
Pre: data lokasi baru tidak kosong post: lokasi baru ditambah
31 KendaliMenambahLokasi. tampilFormulirDetail();
Pre: tambahLokasi() berhasil post: FormulirDetail tampil 32 KendaliPendaftaran.tampi
lFormulirDaftar();
Pre: FormulirDaftar tidak tampil post: FormulirDaftar tampil
33 KendaliPendaftaran.kirim Daftar();
Pre: data pendaftaran tidak kosong
post: Pengguna menjadi PenggunaTerdaftar 34 FormulirDaftar.kirim(); Pre: data penggunaterdaftar valid
post: pengguna terdaftar 35 KendaliLogin.tampilForm
ulirLogin();
Pre: FormulirLogin tidak tampil post: FormulirLogin tampil
36 KendaliLogin.login(); Pre: data username dan password tidak kosong
post: PenggunaTerdaftar mendapat id sesi 37 FormulirLogin.kirimLogi
n();
Pre: data username dan password valid post: FormulirLogin tidak tampil 38 LayananKomunikasiClien
t.cariLokasi();
Pre: kriteria atau koordinat tidak kosong post: -
39 LayananKomunikasiClien t.detailLokasi();
Pre: id lokasi tidak kosong post: -
40 LayananKomunikasiClien t.aturLokasi();
Pre: data lokasi yang diubah tidak kosong post: Lokasi diperbaharui
41 LayananKomunikasiClien t..tambahLokasi();
Pre: data lokasi baru tidak kosong post: Lokasi ditambah
42 LayananKomunikasiClien t..daftar();
Pre: data PenggunaTerdaftar tidak kosong post: Pengguna menjadi PenggunaTerdaftar 43 LayananKomunikasiClien
t.login();
Pre: username dan password tidak kosong post: PenggunaTerdaftar mendapat id sesi
3.6.5 Menentukan Kondisi Konstan
Kondisi konstan terdapat pada kelas-kelas sebagai berikut:
Tabel 3.29 Kondisi Konstan
No Kelas Kondisi
1 LayananKomunikasiClient Hanya dapat digunakan jika koneksi dengan server telah terbentuk.