57
3.1
Metodologi
Pada penelitian ini, akan dilakukan perancangan aplikasi sosial media
berbasis Android pada bidang kuliner untuk memenuhi kebutuhan dari
pengguna. Untuk memenuhi kebutuhan tersebut, diawali dengan melakukan
perencanaan sistem yang dapat digunakan secara optimal sehingga dapat
memenuhi tujuan penelitian ini.
Adapun beberapa tahapan pelaksanaan yang dilakukan, yaitu.
1.
Design
Pengamatan dan Identifikasi Masalah
Pengamatan
dilakukan
dengan
mengamati
kebutuhan
pengguna terhadap aplikasi yang terdapat pada smartphone dan
mengidentifikasi masalah terhadap faktor – faktor yang
menghambat pengguna untuk dapat memenuhi kebutuhannya
terhadap aplikasi tersebut.
Pengumpulan Data
Pengumpulan data dilakukan dengan menggunakan studi
literature yaitu dengan mengumpulkan data – data dari penelitian
sebelumnya, buku, maupun jurnal. Selain itu, pengumpulan data
dilakukan dengan mengidentifikasi aplikasi sejenis, wawancara
terhadap pengguna secara langsung dan melakukan survey melalui
kuesioner untuk menemukan kebutuhan pengguna.
Pengolahan Data
Pengolahan data dilakukan untuk menganalisa secara lebih
dalam hasil dari data yang telah dikumpulkan sebelumnya.
Pengolahan data tersebut berupa analisa terhadap hasil wawancara
dan kuesioner untuk menemukan kebutuhan pengguna yang
digunakan dalam perancangan sistem.
2.
Design
Perancangan Sistem
Perancangan sistem dilakukan berdasarkan hasil pengolahan
data sebelumnya yang meliputi fitur yang akan dikembangkan.
Tahap selanjutnya membuat rancangan sistem menggunakan
Unified Modeling Language (UML) yaitu menggunakan use case
diagram, activity diagram, sequence diagram dan class diagram.
Setelah itu melakukan perancangan database dan user interface.
3.
Coding
Pengkodean Sistem
Pengkodean sistem akan dilakukan setelah analisis akan
kebutuhan sistem telah terpenuhi dan perancangan sistem selesai
dilakukan. Tetapi apabila terdapat beberapa perubahan pada
perancangan sistem, maka tahap pengkodean dapat dijalankan
sejalan dengan perancangan sistem guna mempercepat waktu
pengembangan.
Dalam tahapan ini juga dilakukan refactoring yaitu teknik
konstruksi yang mengoptimalkan desain dari suatu program /
kode. Contoh refactoring yang dilakukan :
Sebelum refactoring :
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle.onOptionsItemSelected(item)) { return true; } int id = item.getItemId(); if(id==R.id.action_search){ return true;
}else if(id==R.id.action_logout){ logout();
}else if(id==R.id.action_compose){
final CharSequence[] items = { "Take Photo",
"Choose from Library",
"Cancel" };
AlertDialog.Builder builder = new
AlertDialog.Builder(ActivityDashboard.this); builder.setTitle("Make a Post"); builder.setItems(items, new
DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface dialog,
int item) {
if (items[item].equals("Take Photo")) {
Intent intent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File f = new
File(android.os.Environment
.getExternalStorageDirectory()+ File.separator+"Pictures"+ File.separator, String.valueOf(System
.currentTimeMillis())+".jpg"); if(!f.exists()){ try {f.createNewFile(); } catch (IOException e) { e.printStackTrace();} }else{f.delete(); try {f.createNewFile(); } catch (IOException e) {e.printStackTrace();} }
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); startActivityForResult(intent, REQUEST_CAMERA);
} else if
(items[item].equals("Choose from Library")) {
Intent intent = new Intent(
Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_U RI);
intent.setType("image/*"); startActivityForResult(
Intent.createChooser(intent, "Select File"), SELECT_FILE); } else if (items[item].equals("Cancel")) { dialog.dismiss(); } } }); builder.show();
}else if(id==R.id.action_checkin){ doCheckin();
}else if(id==R.id.action_help){ showHelp();
}
return super.onOptionsItemSelected(item);
}
Setelah refactoring :
@Override
public boolean onOptionsItemSelected(MenuItem item) {
ManageHomeController con = new ManageHomeController(); // toggle nav drawer on selecting action bar app icon/title
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Handle action bar actions click
int id = item.getItemId();
if(id==R.id.action_search){
return true;
}else if(id==R.id.action_logout){
con.logoutUser(getApplicationContext()); Intent logout = new
Intent(ActivityDashboard.this,MainActivity.class); startActivity(logout);
finish();
}else if(id==R.id.action_compose){ showDialogPost();
}else if(id==R.id.action_checkin){ doCheckin();
}else if(id==R.id.action_help){ showHelp();
}
return super.onOptionsItemSelected(item);
}
public void showDialogPost(){
final CharSequence[] items = { "Take Photo", "Choose from
Library",
"Cancel" };
AlertDialog.Builder builder = new
AlertDialog.Builder(ActivityDashboard.this); builder.setTitle("Make a Post"); builder.setItems(items, new
DialogInterface.OnClickListener() { @Override
public void onClick(DialogInterface dialog, int
item) {
if (items[item].equals("Take Photo")) { Intent intent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE); File f = new
File(android.os.Environment
.getExternalStorageDirectory()+
File.separator+"Pictures"+File.separator, String.valueOf(System .currentTimeMillis())+".jpg");
if(!f.exists()){ try {
f.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch
block e.printStackTrace(); } }else{ f.delete(); try { f.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace(); }
}
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f)); startActivityForResult(intent, REQUEST_CAMERA);
} else if (items[item].equals("Choose from Library")) {
Intent intent = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_U RI);
intent.setType("image/*"); startActivityForResult( Intent.createChooser(intent, "Select File"),
SELECT_FILE); } else if (items[item].equals("Cancel")) {
dialog.dismiss(); } } }); builder.show(); }