• Tidak ada hasil yang ditemukan

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.

Dokumen terkait