Penerapan Metode Weighted Product Model (WPM) dan Weighted Sum Model (WSM) dalam Penentuan Produk yang akan dipasarkan pada Online Shop
LISTING PROGRAM 1. AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest
xmlns:android="http://schemas.android.com/apk/res/android "
package="id.co.lazada.flanealdemerchant" >
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.READ_PROFILE" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".AdminActivity"
android:label="Flanealde Merchant" /> <activity android:name=".QuestionerActivity" android:label="Flanealde Merchant" android:parentActivityName=".MainActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="id.co.lazada.flanealdemerchant.MainActivit y" /> </activity>
(2)
<activity android:name=".DetailActivity" android:label="@string/title_activity_detail" > </activity> <activity android:name=".CategoryActivity" android:label="@string/title_activity_category" android:parentActivityName=".DetailActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="id.co.lazada.flanealdemerchant.DetailActiv ity" /> </activity> <activity android:name=".CategoryFormActivity" android:label="@string/title_activity_category_form" android:parentActivityName=".DetailActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="id.co.lazada.flanealdemerchant.DetailActiv ity" /> </activity> <activity android:name=".QuisionerFormActivity" android:label="@string/title_activity_quisioner_form" android:parentActivityName=".DetailActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="id.co.lazada.flanealdemerchant.DetailActiv ity" /> </activity> <activity android:name=".UserQuestionActivity" android:label="@string/title_activity_user_question" > </activity> <activity
(3)
android:name=".UserCategoryActivity" android:label="@string/title_activity_user_category" android:parentActivityName=".UserQuestionActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="id.co.lazada.flanealdemerchant.UserQuestio nActivity" /> </activity> <activity android:name=".UserQuisionerMerkActivity" android:label="@string/title_activity_user_quisioner_merk " android:parentActivityName=".UserCategoryActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="id.co.lazada.flanealdemerchant.UserCategor yActivity" /> </activity> <activity android:name=".UserQuisionerPriceActivity" android:label="@string/title_activity_user_quisioner_pric e" android:parentActivityName=".UserQuisionerMerkActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="id.co.lazada.flanealdemerchant.UserQuision erMerkActivity" /> </activity> <activity android:name=".UserQuisionerCapacityActivity" android:label="@string/title_activity_user_quisioner_capa city" android:parentActivityName=".UserQuisionerPriceActivity" > <meta-data
(4)
android:name="android.support.PARENT_ACTIVITY" android:value="id.co.lazada.flanealdemerchant.UserQuision erPriceActivity" /> </activity> <activity android:name=".UserQuisionerSpeedActivity" android:label="@string/title_activity_user_quisioner_spee d" android:parentActivityName=".UserQuisionerCapacityActivit y" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="id.co.lazada.flanealdemerchant.UserQuision erCapacityActivity" /> </activity> <activity android:name=".UserQuisionerResultActivity" android:label="@string/title_activity_user_quisioner_resu lt" android:parentActivityName=".UserQuisionerSpeedActivity" > <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="id.co.lazada.flanealdemerchant.UserQuision erSpeedActivity" /> </activity> <activity android:name=".StatisticActivity" android:label="@string/title_activity_statistic" > </activity> </application> </manifest>
(5)
2. AdminActivity.java package id.co.lazada.flanealdemerchant; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import id.co.lazada.flanealdemerchant.helper.DbHelperCategory; import id.co.lazada.flanealdemerchant.model.Administrator; /**
* Created by Asus on 4/26/2015. */
public class AdminActivity extends ActionBarActivity { SharedPreferences preferences;
private DbHelperCategory dbHelper; EditText email;
EditText password; Button login;
@Override
public void onCreate(Bundle savedInstanceBundle) { super.onCreate(savedInstanceBundle);
setContentView(R.layout.activity_admin); preferences =
getSharedPreferences("userDefaults", Context.MODE_PRIVATE);
dbHelper = new
DbHelperCategory(getApplicationContext());
email = (EditText) findViewById(R.id.adminEmail); password = (EditText)
findViewById(R.id.adminPassword);
(6)
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { doLogin();
} }); }
public void doLogin() { String adminEmail =
email.getText().toString().trim(); String adminPass =
password.getText().toString().trim(); Administrator administrator =
dbHelper.loginAdminByEmailAndPassword(adminEmail, adminPass);
if (administrator != null) {
Long adminId = administrator.getAdminId(); final Editor editor = preferences.edit(); editor.putInt("adminId", adminId.intValue()); editor.commit();
Intent intent = new
Intent(getApplicationContext(), DetailActivity.class); startActivity(intent);
finish(); } else {
Toast.makeText(this, "Login Failed", Toast.LENGTH_LONG).show();
} }
@Override
public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_admin, menu);
return true; }
@Override
public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId();
if (id == R.id.option_user) { Intent intent = new
Intent(getApplicationContext(), MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
(7)
startActivity(intent); }
return super.onOptionsItemSelected(item); }
}
3. CategoryActivity.java
package id.co.lazada.flanealdemerchant;
import android.support.v4.app.FragmentTransaction; import android.content.Context;
import android.support.v7.app.ActionBarActivity; import android.os.Bundle;
import android.content.SharedPreferences; import android.util.Log;
import android.view.Menu; import android.view.MenuItem; import
id.co.lazada.flanealdemerchant.categoryFragments.Category Items;
import
id.co.lazada.flanealdemerchant.categoryFragments.Category List;
public class CategoryActivity extends ActionBarActivity implements OnChangeCategoryListener {
SharedPreferences preferences; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_category); preferences =
getSharedPreferences("userDefaults", Context.MODE_PRIVATE);
CategoryList categoryList = new CategoryList(); Bundle args = getIntent().getExtras();
categoryList.setArguments(args);
getSupportFragmentManager().beginTransaction() .add(R.id.category_list, categoryList) .commit();
(8)
CategoryItems categoryItems = (CategoryItems) getSupportFragmentManager() .findFragmentById(R.id.category_items); categoryItems.createViewByCategoryId(args.getInt("categor yId")); } @Override
public void onChangedList(int categoryId) { CategoryItems items = (CategoryItems) getSupportFragmentManager()
.findFragmentById(R.id.category_items); if (items != null) {
items.processProductData(categoryId); }
else {
CategoryItems newItems = new CategoryItems(); Bundle args = new Bundle();
args.putInt("typeId", 1); newItems.setArguments(args);
FragmentTransaction fragmentTransaction = getSupportFragmentManager() .beginTransaction(); fragmentTransaction.replace(R.id.category_items, newItems) .addToBackStack(null) .commit(); } } @Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_category, menu);
return true; }
@Override
public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will
(9)
button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement if (id == R.id.action_settings) {
return true; }
return super.onOptionsItemSelected(item); }
}
4. CategoryFormActivity.java
package id.co.lazada.flanealdemerchant; import android.content.Intent;
import android.support.v7.app.ActionBarActivity; import android.os.Bundle;
import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import
id.co.lazada.flanealdemerchant.categoryFragments.Category Items;
import
id.co.lazada.flanealdemerchant.helper.DbHelperCategory;
public class CategoryFormActivity extends ActionBarActivity {
int categoryTypeId;
private DbHelperCategory helperCategory; EditText itemMerk;
EditText itemType; EditText itemCapacity; EditText itemSpeed; EditText itemPrice; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
(10)
helperCategory = new
DbHelperCategory(getApplicationContext()); itemMerk = (EditText)
findViewById(R.id.formMerk); itemType = (EditText) findViewById(R.id.formType);
itemCapacity = (EditText) findViewById(R.id.formCapacity); itemSpeed = (EditText) findViewById(R.id.formSpeed); itemPrice = (EditText) findViewById(R.id.formPrice);
Bundle extra = getIntent().getExtras(); categoryTypeId = extra.getInt("typeId"); Button save = (Button)
findViewById(R.id.buttonAdd);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { if (addItem() > 0) {
onBackPressed(); } } }); } @Override
public void onBackPressed() {
CategoryItems newItems = new CategoryItems(); Bundle args = new Bundle();
args.putInt("typeId", categoryTypeId); newItems.setArguments(args);
finish(); }
protected long addItem() { long insertId =
helperCategory.addItem(categoryTypeId, itemMerk.getText().toString(), itemType.getText().toString(), itemCapacity.getText().toString(), itemSpeed.getText().toString(), itemPrice.getText().toString()); helperCategory.closeDatabase(); return insertId; }
(11)
@Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_category_form, menu); return true; } @Override
public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement if (id == R.id.action_settings) {
return true; }
return super.onOptionsItemSelected(item); }
}
5. DetailActivity.java
package id.co.lazada.flanealdemerchant; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; import id.co.lazada.flanealdemerchant.helper.DbHelper; import
(12)
id.co.lazada.flanealdemerchant.model.Administrator;
public class DetailActivity extends ActionBarActivity { private DbHelper dbHelper;
TextView labelUser; Button product; Button consumer; Button questioner; SharedPreferences preferences; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_detail); preferences =
getSharedPreferences("userDefaults", Context.MODE_PRIVATE);
labelUser = (TextView) findViewById(R.id.welcome_admin); product = (Button)
findViewById(R.id.product_button); consumer = (Button)
findViewById(R.id.consumer_button); questioner = (Button)
findViewById(R.id.questioner_button);
dbHelper = new DbHelper(getApplicationContext()); Administrator administrator =
dbHelper.getRowAdminByAdminId(preferences.getInt("adminId ", 0));
if (administrator == null) { Intent loginIntent = new
Intent(getApplicationContext(), AdminActivity.class); startActivity(loginIntent);
finish(); }
dbHelper.closeDatabase();
labelUser.setText("Welcome " + administrator.getAdminName());
product.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { Intent intent = new
Intent(getApplicationContext(), CategoryActivity.class); intent.putExtra("categoryId", 1);
(13)
intent.putExtra("titleText", "Data Produk"); startActivity(intent); } }); consumer.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) { Intent intent = new
Intent(getApplicationContext(), CategoryActivity.class); intent.putExtra("categoryId", 2); intent.putExtra("titleText", "Data Konsumen"); startActivity(intent); } }); questioner.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View view) { Intent intent = new
Intent(getApplicationContext(), CategoryActivity.class); intent.putExtra("categoryId", 3); intent.putExtra("titleText", "Data Kuisioner"); startActivity(intent); } }); } @Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_detail, menu);
return true; }
@Override
public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
(14)
int id = item.getItemId();
//noinspection SimplifiableIfStatement if (id == R.id.action_logout) {
AlertDialog.Builder builder = new AlertDialog.Builder(DetailActivity.this); builder.setTitle("Logout")
.setMessage("Anda ingin Logut?")
.setPositiveButton(R.string.string_yes, new DialogInterface.OnClickListener() {
@Override public void
onClick(DialogInterface dialogInterface, int i) { Intent intent = new
Intent(getApplicationContext(), AdminActivity.class); startActivity(intent); finish();
}
}).setNegativeButton(R.string.string_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.cancel(); }
});
AlertDialog dialog = builder.create(); dialog.show();
}
else if (id == R.id.action_statistic) {
Intent intentn = new Intent(getApplication(), StatisticActivity.class);
startActivity(intentn); }
return super.onOptionsItemSelected(item); }
(15)
6. MainActivity.java package id.co.lazada.flanealdemerchant; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.text.TextUtils; import android.util.Patterns; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.io.InputStream; import id.co.lazada.flanealdemerchant.helper.DbHelperCategory; import id.co.lazada.flanealdemerchant.helper.DbHelperQuisioner; import id.co.lazada.flanealdemerchant.model.User;
public class MainActivity extends ActionBarActivity { private DbHelperCategory helper;
EditText userName; EditText userEmail; RadioButton userGender; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); helper = new
DbHelperCategory(getApplicationContext()); userName = (EditText)
(16)
userEmail = (EditText) findViewById(R.id.emailEditText); Button next = (Button) findViewById(R.id.nextButton);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { nextProcess();
} }); }
@Override
protected void onStart() { super.onStart();
ItemDataConfig itemConfig = new ItemDataConfig(); itemConfig.execute();
}
public void nextProcess() { String name =
userName.getText().toString().trim(); String email =
userEmail.getText().toString().trim();
RadioGroup genderGroup = (RadioGroup) findViewById(R.id.radioGroup);
int radioSelected =
genderGroup.getCheckedRadioButtonId(); if (name.length() == 0 ||
email.length() == 0 ||
!isValidEmail(userEmail.getText()) || radioSelected == -1) {
Toast.makeText(getApplicationContext(), "Invalid data", Toast.LENGTH_LONG).show();
} else {
userGender = (RadioButton) findViewById(radioSelected);
int gender = 1; if
(userGender.getText().toString().equals("Female")) { gender = 2;
}
User isUser =
helper.getRowByEmailAddress(email); Long userId;
if (isUser != null) {
userId = isUser.getId(); } else {
(17)
userId = helper.addNewUser(name, email, gender);
}
helper.closeDatabase();
SharedPreferences preferences =
getSharedPreferences("user", Context.MODE_PRIVATE); SharedPreferences.Editor editor =
preferences.edit();
editor.putInt("userId", userId.intValue()); editor.apply();
Intent intent = new Intent(this, UserQuestionActivity.class);
startActivity(intent); //finish();
} }
public final static boolean isValidEmail(CharSequence target) {
if (TextUtils.isEmpty(target)) { return false;
} else { return
Patterns.EMAIL_ADDRESS.matcher(target).matches(); }
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) { String notify =
data.getExtras().getString("result"); Toast.makeText(getApplicationContext(), notify, Toast.LENGTH_LONG).show(); } } @Override
public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu);
return true; }
@Override
public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId();
(18)
if (id == R.id.option_administrator) { Intent intent = new
Intent(getApplicationContext(), AdminActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); } return super.onOptionsItemSelected(item); }
public class ItemDataConfig extends AsyncTask<Void, Void, Void> {
public ItemDataConfig() { }
@Override
protected Void doInBackground(Void... params) { DbHelperQuisioner quisionerHelper = new DbHelperQuisioner(getApplication());
DbHelperCategory categoryHelper = new DbHelperCategory(getApplication());
quisionerHelper.removeAllQuestion(); categoryHelper.removeAllCategoryItems(); try {
JSONArray jArrayQuestion = new JSONArray(loadJsonFromAsset("question.json")); for (int x = 0; x <
jArrayQuestion.length(); x++) {
JSONObject question = jArrayQuestion.getJSONObject(x);
Integer catId = !question.isNull("categoryId") ?
question.getInt("categoryId") : null; String askType = !question.isNull("quizType") ?
question.getString("quizType") : null; String ask =
!question.isNull("question") ?
question.getString("question") : null; String one =
!question.isNull("optOne") ? question.getString("optOne") : null;
String two =
!question.isNull("optTwo") ? question.getString("optTwo") : null;
(19)
String three = !question.isNull("optThree") ?
question.getString("optThree") : null; String four =
!question.isNull("optFour") ?
question.getString("optFour") : null; String five = !question.isNull("optFive") ?
question.getString("optFive") : null;
quisionerHelper.addQuisioner(catId, askType, ask, one, two, three, four, five);
}
JSONArray jArrayItems = new JSONArray(loadJsonFromAsset("items.json"));
for (int z = 0; z < jArrayItems.length(); z++) {
JSONObject item = jArrayItems.getJSONObject(z);
Integer catId = !item.isNull("catId") ? item.getInt("catId") : null;
String merk = !item.isNull("merk") ? item.getString("merk") : null;
String type = !item.isNull("type") ? item.getString("type") : null;
String capacity =
!item.isNull("capacity") ? item.getString("capacity") : null;
String speed = !item.isNull("speed") ? item.getString("speed") : null;
String price = !item.isNull("price") ? item.getString("price") : null;
categoryHelper.addItem(catId, merk, type, capacity, speed, price);
} }
catch (JSONException e) { e.printStackTrace(); }
return null; }
public String loadJsonFromAsset(String fileName) {
String ret = null; try {
InputStream inputStream = getAssets().open(fileName);
(20)
byte[] buffer = new byte[size]; inputStream.read(buffer);
inputStream.close();
ret = new String(buffer, "UTF-8"); } catch (IOException e) {
e.printStackTrace(); return null; } return ret; } } }
7. QuestionerActivity.java
package id.co.lazada.flanealdemerchant; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.widget.TextView; import id.co.lazada.flanealdemerchant.helper.DbHelper; import id.co.lazada.flanealdemerchant.model.User; /**
* Created by Asus on 4/26/2015. */
public class QuestionerActivity extends ActionBarActivity {
private DbHelper helper; TextView nameUser;
@Override
public void onCreate(Bundle savedInstanceBundle) { super.onCreate(savedInstanceBundle);
setContentView(R.layout.activity_questioner); helper = new DbHelper(getApplicationContext()); nameUser = (TextView)
findViewById(R.id.nameTextView);
Bundle bundle = getIntent().getExtras(); int userId = bundle.getInt("userId");
User detailUser = helper.getRowUserById(userId); helper.closeDatabase();
if (detailUser != null) {
nameUser.setText("Welcome " + detailUser.getUserName());
} else {
(21)
Intent(getApplicationContext(), MainActivity.class); intent.putExtra("result", "User Not Found"); setResult(RESULT_OK, intent);
super.finish(); }
} }
8. QuestionerFormActivity.java
package id.co.lazada.flanealdemerchant; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.Spinner; import id.co.lazada.flanealdemerchant.helper.DbHelperQuisioner;
public class QuisionerFormActivity extends ActionBarActivity implements
AdapterView.OnItemSelectedListener { DbHelperQuisioner helperQuisioner;
EditText question, optionOne, optionTwo, optionThree, optionFour, optionFive;
Spinner category, type; Button addQuestion; int categoryId; String choiceType; @Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_quisioner_form); helperQuisioner = new
DbHelperQuisioner(getApplicationContext()); category = (Spinner)
findViewById(R.id.spinnerCategory);
(22)
question = (EditText) findViewById(R.id.question); optionOne = (EditText) findViewById(R.id.optionOne); optionTwo = (EditText) findViewById(R.id.optionTwo); optionThree = (EditText) findViewById(R.id.optionThree); optionFour = (EditText) findViewById(R.id.optionFour); optionFive = (EditText) findViewById(R.id.optionFive); addQuestion = (Button) findViewById(R.id.buttonAdd);
addQuestion.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) { saveQuestion(); onBackPressed(); } }); } @Override
protected void onStart() { super.onStart();
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.category, android.R.layout.simple_spinner_item ); adapter.setDropDownViewResource(android.R.layout.simple_s pinner_dropdown_item); category.setAdapter(adapter); category.setOnItemSelectedListener(this); ArrayAdapter<CharSequence> typeAdapter = ArrayAdapter.createFromResource( this, R.array.choice_type, android.R.layout.simple_spinner_item ); adapter.setDropDownViewResource(android.R.layout.simple_s pinner_dropdown_item); type.setAdapter(typeAdapter); type.setOnItemSelectedListener(this);
(23)
}
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
if (parent.getId() == category.getId()) { categoryId = (int)
parent.getItemIdAtPosition(pos) + 1; }
else if (parent.getId() == type.getId()) { choiceType =
parent.getSelectedItem().toString(); }
}
public void onNothingSelected(AdapterView<?> parent) {
}
public long saveQuestion() { Log.i("option four",
optionFour.getText().toString()); Log.i("option five",
optionFive.getText().toString());
String quest = question.getText().toString(); long insertId =
helperQuisioner.addQuisioner(categoryId, choiceType, quest, optionOne.getText().toString(), optionTwo.getText().toString(), optionThree.getText().toString(), optionFour.getText().toString(), optionFive.getText().toString()); helperQuisioner.closeDatabase(); return insertId; } @Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_quisioner_form, menu); return true; } @Override
public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will
(24)
button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement if (id == R.id.action_settings) {
return true; }
return super.onOptionsItemSelected(item); }
}
9. StatisticActivity.java
package id.co.lazada.flanealdemerchant; import android.app.ActionBar; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Gravity; import android.view.Menu; import android.view.MenuItem; import android.view.ViewGroup; import android.widget.LinearLayout; import android.widget.TextView; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import id.co.lazada.flanealdemerchant.helper.DbHelperCategory; import id.co.lazada.flanealdemerchant.helper.DbHelperUserAnswer; import id.co.lazada.flanealdemerchant.helper.DbHelperUserChoice; import id.co.lazada.flanealdemerchant.model.CategoryItems; import id.co.lazada.flanealdemerchant.model.UserAnswers; import id.co.lazada.flanealdemerchant.model.UserChoice; public class StatisticActivity extends ActionBarActivity {
protected DbHelperUserAnswer userAnswerHelper; LinearLayout layout;
(25)
@Override
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
setContentView(R.layout.activity_statistic); userAnswerHelper = new
DbHelperUserAnswer(getApplication()); layout = (LinearLayout)
findViewById(R.id.mainLayout); }
@Override
protected void onStart() { super.onStart();
processWMP(); }
@Override
protected void onResume() { super.onResume();
prosesWPMandWSM(); }
public void processWMP() {
List<UserAnswers> allUser = userAnswerHelper.getAllUserAnswers(); if (allUser.size() > 0) {
TextView preHead = makeTextView("Bobot Perkategory");
preHead.setGravity(Gravity.CENTER); preHead.setTextSize(20);
layout.addView(preHead);
Integer hargaSP, hargaP, hargaCP, hargaTP, hargaSTP; hargaSP = hargaP = hargaCP = hargaTP = hargaSTP = 0; Integer kapasSP, kapasP, kapasCP, kapasTP, kapasSTP; kapasSP = kapasP = kapasCP = kapasTP = kapasSTP = 0; Integer cepatSP, cepatP, cepatCP, cepatTP, cepatSTP; cepatSP = cepatP = cepatCP = cepatTP = cepatSTP = 0; for (int n = 0; n < allUser.size(); n++) { /** ambil berdasarkan bobot harga **/ if (allUser.get(n).getBobotHarga() == 5) hargaSP++; if (allUser.get(n).getBobotHarga() == 4) hargaP++; if (allUser.get(n).getBobotHarga() == 3) hargaCP++; if (allUser.get(n).getBobotHarga() == 2) hargaTP++; if (allUser.get(n).getBobotHarga() == 1) hargaSTP++; /** ambil berdasarkan bobot kapasitas */ if (allUser.get(n).getBobotKapasitas() == 5) kapasSP++; if (allUser.get(n).getBobotKapasitas() == 4) kapasP++; if (allUser.get(n).getBobotKapasitas() == 3) kapasCP++; if (allUser.get(n).getBobotKapasitas() == 2) kapasTP++;
(26)
if (allUser.get(n).getBobotKapasitas() == 1)kapasSTP++; /** ambil berdasarkan bobot kecepatan */ if (allUser.get(n).getBobotKecepatan() == 5) cepatSP++; if (allUser.get(n).getBobotKecepatan() == 4) cepatP++; if (allUser.get(n).getBobotKecepatan() == 3) cepatCP++; if (allUser.get(n).getBobotKecepatan() == 2) cepatTP++; if (allUser.get(n).getBobotKecepatan() == 1)cepatSTP++; }
Integer harga = (hargaSP * 5) + (hargaP * 4) + (hargaCP * 3) + (hargaTP * 2) + hargaSTP;
Integer kapasitas = (kapasSP * 5) + (kapasP * 4) + (kapasCP * 3) + (kapasTP * 2) + kapasSTP;
Integer kecepatan = (cepatSP * 5) + (cepatP * 4) + (cepatCP * 3) + (cepatTP * 2) + cepatSTP;
prefHarga = (float) harga / (harga + kapasitas + kecepatan);
prefKapasitas = (float) kapasitas / (harga + kapasitas + kecepatan);
prefKecepatan = (float) kecepatan / (harga + kapasitas + kecepatan);
TextView price = makeTextView("Harga = " + String.valueOf(prefHarga));
layout.addView(price);
TextView capacity = makeTextView("Kapasitas = " + String.valueOf(prefKapasitas));
layout.addView(capacity);
TextView speed = makeTextView("Kecepatan = " + String.valueOf(prefKecepatan));
layout.addView(speed);
TextView total = makeTextView("Total = " + String.valueOf(prefHarga + prefKapasitas +
prefKecepatan));
layout.addView(total); }
else {
TextView view = makeTextView("Data empty"); view.setGravity(Gravity.CENTER);
layout.addView(view); }
}
public void prosesWPMandWSM() {
final String[] category = { "Headset", "Power Bank", "Memory Card" };
LinearLayout childLayout = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
(27)
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); childLayout.setLayoutParams(params);
childLayout.setOrientation(LinearLayout.VERTICAL); DbHelperUserChoice dbHelperUserChoice = new DbHelperUserChoice(getApplication());
DbHelperCategory helperCategory = new DbHelperCategory(getApplication());
LinearLayout verLayout = new LinearLayout(this); verLayout.setLayoutParams(params);
verLayout.setOrientation(LinearLayout.VERTICAL); verLayout.setPadding(0, 20, 0, 50);
TextView head = makeTextView("Hasil WPM"); head.setGravity(Gravity.CENTER);
head.setTextSize(20); verLayout.addView(head);
for ( int z = 0; z < 3; z++) { int catId = z + 1;
TextView catLabel = makeTextView(category[z]); catLabel.setGravity(Gravity.CENTER); verLayout.addView(catLabel);
List<UserChoice> userList =
dbHelperUserChoice.getAllUserByCategoryId(catId); List<CategoryItems> wmpCollected = new ArrayList<CategoryItems>();
for (int n = 0; n < userList.size(); n++) { List<CategoryItems> items =
helperCategory.getItemByMap(catId, userList.get(n).getChoiceMerk(), userList.get(n).getChoicePrice(), userList.get(n).getChoiceCapacity(), userList.get(n).getChoiceSpeed()); Double highest = 0.0;
CategoryItems choiseItem = new CategoryItems(); for (int x = 0; x < items.size(); x++) { Double WPM =
Math.pow(Integer.valueOf(items.get(x).getItemPrice()), -prefHarga) + Math.pow(Integer.valueOf(items.get(x).getItemCapacity()), prefKapasitas) + Math.pow(Integer.valueOf(items.get(x).getItemSpeed()), prefKecepatan);
if (WPM > highest) {
choiseItem = items.get(x); highest = WPM;
} }
(28)
choiseItem.setScore(highest); wmpCollected.add(choiseItem); }
if (wmpCollected.size() > 0) {
Collections.sort(wmpCollected, new Comparator<CategoryItems>() {
@Override
public int compare(CategoryItems categoryItems, CategoryItems t1) {
if (categoryItems.getScore() < t1.getScore()) return 1;
if (categoryItems.getScore() > t1.getScore()) return -1;
return 0; }}); int y = 1;
for (CategoryItems wmpItem : wmpCollected) { String result = (y++) + ". Merk = " +
wmpItem.getItemBrand() +
" Tipe " + wmpItem.getItemType() + ", WPM = " +
String.format("%.2f", wmpItem.getScore()); TextView userLabel = makeTextView(result);
verLayout.addView(userLabel); }
} }
childLayout.addView(verLayout);
LinearLayout wsmVertical = new LinearLayout(this); wsmVertical.setLayoutParams(params);
wsmVertical.setOrientation(LinearLayout.VERTICAL); TextView WSMLabel = makeTextView("Hasil WSM"); WSMLabel.setGravity(Gravity.CENTER);
WSMLabel.setTextSize(20);
wsmVertical.addView(WSMLabel); for (int a = 0; a < 3; a++) { int cId = a + 1;
TextView catLabel = makeTextView(category[a]); catLabel.setGravity(Gravity.CENTER);
wsmVertical.addView(catLabel); List<UserChoice> userWSM =
dbHelperUserChoice.getAllUserByCategoryId(cId);
List<CategoryItems> collectedItems = new ArrayList<CategoryItems>();
for (int p = 0; p < userWSM.size(); p++) { List<CategoryItems> items =
helperCategory.getItemByMap(cId, userWSM.get(p).getChoiceMerk(),
(29)
userWSM.get(p).getChoicePrice(), userWSM.get(p).getChoiceCapacity(), userWSM.get(p).getChoiceSpeed()); Double highest = 0.0;
CategoryItems choiseItem = new CategoryItems();
for (int x = 0; x < items.size(); x++) { Double WSM =
(double)(Integer.valueOf(items.get(x).getItemPrice()) * prefHarga) + (Integer.valueOf(items.get(x).getItemCapacity()) * prefKapasitas) + (Integer.valueOf(items.get(x).getItemSpeed()) * prefKecepatan);
if (WSM > highest) {
choiseItem = items.get(x); highest = WSM;
} }
choiseItem.setScore(highest); collectedItems.add(choiseItem); }
if (collectedItems.size() > 0) {
Collections.sort(collectedItems, new Comparator<CategoryItems>() {
@Override
public int compare(CategoryItems categoryItems, CategoryItems t1) {
if (categoryItems.getScore() < t1.getScore()) return 1;
if (categoryItems.getScore() > t1.getScore()) return -1;
return 0; } }); int z = 1;
for (CategoryItems eachItem : collectedItems) { String result = (z++) + ". Merk = " +
eachItem.getItemBrand() +
" Tipe " + eachItem.getItemType() + ", WSM = " +
String.format("%.2f", eachItem.getScore()); TextView userLabel = makeTextView(result); wsmVertical.addView(userLabel); } } } childLayout.addView(wsmVertical); layout.addView(childLayout); }
(30)
public TextView makeTextView(String label) { TextView view = new TextView(this);
ActionBar.LayoutParams params = new ActionBar.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); view.setLayoutParams(params);
view.setText(label); return view;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_statistic, menu);
return true; }
@Override
public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement if (id == R.id.action_settings) {
return true; }
return super.onOptionsItemSelected(item); }
(31)
DAFTAR RIWAYAT HIDUP
Saya yang bertanda tangan dibawah ini :
DATA PRIBADI
Nama : Ade Rizka
Alamat : Jl. Eka Rasmi Gang Pipa Air Bersih No.7, Medan
HP : 085658065521
E-mail : [email protected] Tempat / Tanggal Lahir : Medan, 9 Juni 1993 Jenis Kelamin : Perempuan
Status : Belum Menikah
PENDIDIKAN
1998 – 2004 : SD Swasta Eria Medan
2004 – 2007 : SMP Harapan Mandiri Medan 2007 – 2010 : SMA Negeri 2 Medan
2010 – 2013 : D-III Teknik Informatika Universitas Sumatera Utara 2013 – 2015 : S-1 Ekstensi Ilmu Komputer Universitas Sumatera Utara
SEMINAR
Seminar Nasional Literasi Informasi (SENARAI) 2014 Fakultas Ilmu Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Demikianlah Daftar Riwayat Hidup ini saya perbuat dengan sebenarnya.
Hormat Saya,
(32)
DAFTAR PUSTAKA
Anggreini, Yulli. 2013. Pemilihan Produk GSM menggunakan Metode Weighted Product. Skripsi. Universitas Pendidikan Indonesia. (Online) http://repository.upi.edu/2883/ ( 13 Maret 2015).
Auliasari, Karina.2012. Pemfilteran dan Perankingan Informasi menggunakan Pendekatan Multi Criteria Decision Making untuk Sistem Rekomendasi Objek Wisata. Tesis. Universitas Gadjah Mada. (Online) http://etd.ugm.ac.id/index.php?mod=penelitian_detail&sub=PenelitianDetail&ac t=view&typ=html&buku_id=55948&obyek_id=4 ( 13 Maretn 2015).
Hartatik. 2010. Sistem pendukung keputusan untuk perangkingan proposal UMKM menggunakan metode Weighted Product Model (WPM). Tesis. Universitas Gadjah Mada. (Online) http://etd.ugm.ac.id/index.php?mod=penelitian_detail &sub=PenelitianDetail&act=view&typ=html&buku_id=48162 ( 13 Maret 2015).
Kusrini. 2007. Strategi Perancangan dan Pengolahan Basis Data. Yogyakarta : Andi. Kusumadewi, Sri., Hartati, S., Harjoko. A, & Wardoyo. R. 2006. Fuzzy Multi-
Attribute Decision Making (FUZZY MADM). Graha Ilmu : Yogyakarta. Lestari, Sri. 2013. Penerapan Metode Weighted Product Model Untuk Seleksi Calon
Karyawan.Jurnal Sistem Informasi (JSI) 5(1) : 540 – 545.
OLEJNIK, Remigiusz. 2014. Small Enterprise’s Computer Network Design Using Basic MCDM Methods. Journal of Information, Control and Management Systems 12(1) : 57- 64. (Online) http://kifri.fri.uniza.sk/ojs/index.php/JICMS/ article/download/1559/710 ( 15 Maret 2015).
Safaat H, Nazruddin. 2012. Pemrograman Aplikasi Android Mobile Smartphone dan Tablet PC Berbasis Android. Edisi Revisi. Informatika : Bandung.
Savitha, K. dan Chandrasekar, C. 2011. Vertical Handover decision schemes using SAW and WPM for Network selection in Heterogeneous Wireless Networks. Global Journal of Computer Science and Technology 11(9) : 0975 – 4350. (Online) http://arxiv.org/pdf/1109.4490 ( 15 Maret 2015).
Triantaphyllou, E. 2000. Multi-Criteria Decision Making: A Comparative Study. Dordrecht, the Netherlands: Kluwer Academic Publishers (now Springer)
(33)
179-185.
Wu, Q., Chen, H., Tian, D., & Duan, Y. 2013. Design and Development of a Multi- Criteria Desicion Support System for International Students. International Conference on Information and Social Science (ISS) 211 – 220. (Online) http://ibac-conference.org/ISS%20&%20MLB%202013/Papers/ISS%202013 /A3122.pdf ( 15 Maret 2015).
(34)
BAB 3
ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Masalah
Dalam proses pemasaran produk secara online, penulis harus mengetahui apa yang dibutuhkan dan diinginkan oleh konsumen agar dapat terpenuhi dengan tepat. Jika penulis tidak mengetahui kebutuhan dan keinginan konsumen, maka pemasaran produk tidak efektif dan tidak tepat sasaran. Untuk mengetahuinya penulis harus melakukan proses penyeleksian produk berdasarkan data riset yang dilakukan. Riset tersebut dilakukan untuk mendapatkan data atau informasi produk yang akan dipasarkan dari para konsumen. Riset dilakukan menggunakan sistem aplikasi yang mudah agar dapat menentukan produk yang dipasarkan dengan tepat dan efektif.
Penentuan produk yang akan dipasarkan dalam kategori produk aksesoris handphone ditentukan berdasarkan beberapa kriteria yang mendukung dan mempengaruhi keinginan dan kebutuhan konsumen.
Dalam penentuan, harus dilakukan perhitungan bobot dari setiap kriteria, maka harus menggunakan metode yang mendukung perhitungan tersebut. Metode yang digunakan yaitu Weighted Product Model (WPM) dan Weighted Sum Model (WSM). Metode tersebut dapat membantu penetuan produk yang akan dipasarkan.
3.2 Analisis Kebutuhan Sistem
Analisis kebutuhan sistem pada penelitian ini dibagi kedalam dua kelompok yaitu kebutuhan fungsional sistem dan kebutuhan nonfungsional sistem.
(35)
3.2.1 Kebutuhan Fungsional Sistem
Fungsional sistem adalah kegiatan yang harus dimiliki suatu sistem seperti, input, proses, output dan penyimpanan data. Kebutuhan fungsional sistem yang dibutuhkan, yaitu :
5. Sistem menerima input data berupa kriteria produk yaitu, merk, tipe, harga, kapasitas dan kecepatan.
6. Sistem dapat mengetahui produk yang akan dipasarkan sesuai dengan kriteria produk, berdasarkan metode Weighted Product Model (WPM) dan Weighted Sum Model (WSM).
7. Sistem dapat menampilkan hasil perhitungan penentuan produk yang akan dipasarkan berdasarkan metode Weighted Product Model (WPM) dan Weighted Sum Model (WSM).
3.2.2 Kebutuhan Nonfungsional Sistem
Kebutuhan nonfungsional sistem adalah karakteristik yang dapat menentukan kepuasan dan manfaat dari suatu sistem seperti, kinerja, kemudahan dalam penggunaan, biaya dan sistem yang bekerja secara optimal. Kebutuhan nonfungsional mencakup karakteristik berikut :
1. Sisi performa
Sistem harus memiliki antarmuka (interface) yang menarik dan harus dapat menampilkan output yang sesuai dengan data yang diinput.
2. Sisi kemudahan penggunaan
Sistem harus memiliki tampilan yang userfriendly sehingga dapat diakses dengan mudah dan cepat. Bahasa digunakan juga harus sederhana dan mudah dipahami.
3. Sisi Ekonomi
Sistem tidak memerlukan perangkat tambahan atau perangkat pendukung lainnya yang membutuhkan biaya tambahan.
4. Sisi dokumentasi
(36)
5. Sisi kontrol
Sistem dapat menampilkan pesan jika terjadi kesalahan dalam penginputan data.
6. Sisi kualitas
Sistem dapat menampilkan output atau hasil yang baik dan memuaskan.
3.3 Analisis Data
Data yang digunakan pada sistem ini adalah data beberapa kategori produk yang akan dipasarkan yang didapat dari supplier. Pengumpulan data juga menggunakan kuesioner yang disebar secara acak ke 200 responden konsumen untuk mencari atribut apa saja yang digunakan pada sistem. Kuesioner dibuat berdasarkan kategori yang sudah ditetapkan penulis. Kuesioner berisi beberapa pertanyaan yang masing – masing pertanyaan mempunyai lima jawaban, yaitu (Sangat Penting) SP, Penting (P), Cukup Penting (CP), Tidak Penting (TP), dan Sangat Tidak Penting (STP). Kuesioner juga berisi beberapa pertanyaan mengenai kriteria produk yaitu, merk, harga, kecepatan, dan kapasitas. Setiap kriteria produk mempunyai dua sampai lima jawaban untuk setiap kategori produk.
Tabel 3.1 Sampel Data Produk
No Merk Tipe Kecepatan Harga Kapasitas
1 Sandisk Ultra micro SDHC
30MB/s 100000 8GB
2 Sandisk Ultra micro SDHC
30MB/s 185000 16GB
3 Sandisk Ultra micro SDHC
30MB/s 760000 32GB
4 Sandisk Micro Extreme SDHC
45MB/s 265000 16GB
5 Sandisk Micro Extreme SDHC
45MB/s 479000 32GB
6 Sandisk Micro Extreme SDHC
(37)
Kategori produk pada tabel 3.1 merupakan pilihan produk yang dipasarkan pada kategori memory card. Data kategori tersebut akan dipilih konsumen melalui kuesioner.
Tabel 3.2 Pertanyaan Kuesioner
1. Kriteria apa saja yang menurut Anda penting dalam memilih produk aksesoris handphone ?
No Kriteria SP P CP TP STP
1 Merk 2 Harga 3 Kecepatan 4 Kapasitas
2. Aksesoris handphone kategori apa yang ingin Anda beli ? 3. Merk aksesoris handphone apa yang ingin Anda beli ? 4. Berapakah kisaran harga yang Anda inginkan/butuhkan ? 5. Berapakah kecepatan yang Anda inginkan/butuhkan ? 6. Berapakah kapasitas yang Anda inginkan/butuhkan ?
Tabel 3.2 merupakan tabel pertanyaan kuesioner yang akan diajukan kepada konsumen, untuk beberapa pertanyaan memiliki pilihan jawaban yang sesuai dengan kategori produk yang dipilih.
(38)
3.4 Perancangan Sistem 3.4.1 Flowchart Sistem
Langkah-langkah yang terdapat pada flowchart sistem dapat menjelaskan bagaimana alur kerja yang terdapat didalam sistem, alur kerja metode Weighted Product Model (WPM) pada gambar 3.1 untuk menentukan produk yang akan dipasarkan berdasarkan keinginan dan kebutuhan konsumen, yaitu :
1. Memberikan input data alternatif berupa kategori yang memiliki pilihan kriteria produk berdasarkan merk, tipe, harga, kapastitas dan kecepatan.
2. Setiap kriteria produk yang di input memiliki bobot masing-masing yang telah ditentukan.
3. Alternatif data yang telah diinput akan dihitung dengan metode Weighted Product Model (WPM) berdasarkan bobot kriteria dari masing-masing kategori, dapat dilihat pada Gambar 3.3.
4. Dari perhitungan kategori berdasarkan bobot setiap kriteria maka akan menghasilkan nilai alternatif tertinggi.
Alur kerja metode Weighted Sum Model (WSM) pada gambar 3.2 untuk menentukan produk yang akan dipasarkan berdasarkan keinginan dan kebutuhan konsumen, yaitu :
1. Memberikan input data alternatif berupa kategori yang memiliki pilihan kriteria produk berdasarkan merk, tipe, harga, kapastitas dan kecepatan.
2. Setiap kriteria produk yang di input memiliki bobot masing-masing yang telah ditentukan.
3. Alternatif data yang telah diinput akan dihitung dengan metode Weighted Sum Model (WSM) berdasarkan bobot kriteria dari masing-masing kategori, dapat dilihat pada Gambar 3.4.
4. Dari perhitungan kategori berdasarkan bobot setiap kriteria maka akan menghasilkan nilai alternatif tertinggi.
(39)
Gambar 3.1 Alur metode Weighted Product Model (WPM) Tampilkan Data
Produk
Hitung Nilai dengan Metode Weighted Product Model (WPM)
Tampilkan Nilai dari Setiap Alternatif metode Weighted Product Model (WPM)
Start
End
Input Kriteria Harga, Kapasitas dan Kecepatan
Input Data Produk Setiap Alternatif
Cari Data Produk
Data Produk Ditemukan ?
Ya Tidak
Input Bobot Harga, Kapasitas dan Kecepatan
Mengurutkan Nilai dari Setiap Alternatif Berdasarkan Nilai Tertinggi
(40)
Gambar 3.2 Alur metode Weighted Sum Model (WSM) Tampilkan Data
Produk
Hitung Nilai dengan Metode Weighted Sum Model (WSM)
Tampilkan Nilai dari Setiap Alternatif metode Weighted Sum Model (WSM)
Start
End
Input Kriteria Harga, Kapasitas dan Kecepatan
Input Data Produk Setiap Alternatif
Cari Data Produk
Data Produk Ditemukan ?
Ya Tidak
Input Bobot Harga, Kapasitas dan Kecepatan
Mengurutkan Nilai dari Setiap Alternatif Berdasarkan Nilai Tertinggi
(41)
for ( int z = 0; z < 3; z++) { int catId = z + 1;
TextView catLabel = makeTextView(category[z]);
catLabel.setGravity(Gravity.CENTER);
verLayout.addView(catLabel); List<UserChoice> userList =
dbHelperUserChoice.getAllUserByCategoryId(catId);
List<CategoryItems> wmpCollected = new ArrayList<CategoryItems>(); for (int n = 0; n < userList.size(); n++) {
List<CategoryItems> items = helperCategory.getItemByMap(catId, userList.get(n).getChoiceMerk(),
userList.get(n).getChoicePrice(), userList.get(n).getChoiceCapacity(), userList.get(n).getChoiceSpeed()); Double highest = 0.0;
CategoryItems choiseItem = new CategoryItems(); for (int x = 0; x < items.size(); x++) {
Double WPM =
Math.pow(Integer.valueOf(items.get(x).getItemPrice()), -prefHarga) + Math.pow(Integer.valueOf(items.get(x).getItemCapacity()),
prefKapasitas) +
Math.pow(Integer.valueOf(items.get(x).getItemSpeed()), prefKecepatan);
if (WPM > highest) {
choiseItem = items.get(x); highest = WPM;
} }
choiseItem.setScore(highest); wmpCollected.add(choiseItem); }
(42)
for (int a = 0; a < 3; a++) { int cId = a + 1;
TextView catLabel = makeTextView(category[a]); catLabel.setGravity(Gravity.CENTER);
wsmVertical.addView(catLabel); List<UserChoice> userWSM =
dbHelperUserChoice.getAllUserByCategoryId(cId);
List<CategoryItems> collectedItems = new ArrayList<CategoryItems>(); for (int p = 0; p < userWSM.size(); p++) {
List<CategoryItems> items = helperCategory.getItemByMap(cId, userWSM.get(p).getChoiceMerk(),
userWSM.get(p).getChoicePrice(), userWSM.get(p).getChoiceCapacity(), userWSM.get(p).getChoiceSpeed()); Double highest = 0.0;
CategoryItems choiseItem = new CategoryItems(); for (int x = 0; x < items.size(); x++) {
Double WSM =
(double)(Integer.valueOf(items.get(x).getItemPrice()) * prefHarga) + (Integer.valueOf(items.get(x).getItemCapacity()) * prefKapasitas) + (Integer.valueOf(items.get(x).getItemSpeed()) * prefKecepatan);
if (WSM > highest) {
choiseItem = items.get(x); highest = WSM;
} }
choiseItem.setScore(highest); collectedItems.add(choiseItem); }
(43)
3.4.2 Cara Kerja Metode Weighted Product Model (WPM)
Dalam menentukan produk yang akan dipasarkan untuk pengambil keputusan, maka dibangunlah sistem pendukung keputusan dengan menggunakan Metode Weighted Product Model (WPM) yang akan disesuaikan dengan data dari setiap produk sebagai alternatif. Cara kerja sistem meliputi pemasukan data nilai alternatif dari setiap konsumen dan nilai kriteria setiap produk, pemasukan rating kebutuhan (bobot) dari setiap kriteria, proses penghitungan nilai alternatif. Nilai alternatif merupakan nilai yang akan dibandingkan untuk dijadikan keputusan terbaik yang menghasilkan alternatif tertinggi.
Data yang dibutuhkan oleh sistem dalam menentukan produk yang akan dipasarkan yaitu :
1. Data Nilai Alternatif dan Kriteria
Data nilai alternatif didapat dari 200 responden konsumen yang digunakan sebagai acuan untuk penghitungan metode Weighted Product Model (WPM). Untuk data nilai alternatif produk didapat dari produsen produk setiap kategori produk. Kriteria untuk setiap produk yaitu, merk, tipe, harga, kapasitas dan kecepatan. Sifat masing – masing kriteria yaitu, kriteria merk, tipe, kapasitas, kecepatan adalah kriteria keuntungan dan kriteria harga adalah kriteria biaya. 2. Data Rating Kepentingan setiap Kriteria terhadap Alternatif.
Data rating kepentingan setiap kriteria terhadap alternatif merupakan data yang akan dimasukan sebagai bobot untuk setiap kriteria. Bobot setiap kriteria produk ditentukan berdasarkan riset terhadap konsumen, bobot kriteria tersebut dihitung berdasakan skala likert yang dapat dilihat pada tabel 3.3, dari skala 5 ( Sangat Penting), 4 ( Penting), 3 (Cukup Penting), 2 (Tidak Penting) dan 1 (Sangat Tidak Penting), setelah nilai jumlah skala sudah ditentukan maka, bobot untuk setiap kriteria produk dapat ditentukan. Bobot setiap kriteria produk akan menjadi acuan untuk penghitungan data nilai alternatif dari konsumen yang akan dicocokkan dengan data alternatif dari setiap kategori produk. Dari perhitungan data keseluruhan maka, akan muncul kesimpulan terbaik berupa nilai alternatif produk tertinggi untuk mengambil keputusan produk yang akan dipasarkan sesuai dengan keinginan dan kebutuhan konsumen.
(44)
3.4.3 Cara Kerja Metode Weighted Sum Model (WSM)
Cara kerja pada metode Weighted Sum Model (WSM) sama dengan cara kerja Metode Weighted Product Model (WPM). Dalam menentukan produk yang akan dipasarkan untuk pengambil keputusan, maka dibangunlah sistem pendukung keputusan dengan menggunakan Metode Weighted Sum Model (WSM) yang akan disesuaikan dengan data dari setiap produk sebagai alternatif. Cara kerja sistem meliputi pemasukan data ni
lai alternatif dari setiap konsumen dan nilai kriteria setiap produk, pemasukan rating kebutuhan (bobot) dari setiap kriteria, proses penghitungan nilai alternatif. Nilai alternatif merupakan nilai yang akan dibandingkan untuk dijadikan keputusan terbaik yang menghasilkan alternatif tertinggi.
Data yang dibutuhkan oleh sistem dalam menentukan produk yang akan dipasarkan yaitu :
1. Data Nilai Alternatif dan Kriteria
Data nilai alternatif didapat dari 200 responden konsumen yang digunakan sebagai acuan untuk penghitungan metode Weighted Sum Model (WSM). Untuk data nilai alternatif produk didapat dari produsen produk setiap kategori produk. Kriteria untuk setiap produk yaitu, merk, tipe, harga, kapasitas dan kecepatan. Sifat masing – masing kriteria yaitu, kriteria merk, tipe, kapasitas, kecepatan adalah kriteria keuntungan dan kriteria harga adalah kriteria biaya. 2. Data Rating Kepentingan setiap Kriteria terhadap Alternatif.
Data rating kepentingan setiap kriteria terhadap alternatif merupakan data yang akan dimasukan sebagai bobot untuk setiap kriteria. Bobot setiap kriteria produk ditentukan berdasarkan riset terhadap konsumen, bobot kriteria tersebut dihitung berdasakan skala likert yang dapat dilihat pada tabel 3.3, dari skala 5 ( Sangat Penting), 4 ( Penting), 3 (Cukup Penting), 2 (Tidak Penting) dan 1 (Sangat Tidak Penting), setelah nilai jumlah skala sudah ditentukan maka, bobot untuk setiap kriteria produk dapat ditentukan. Bobot setiap kriteria produk akan menjadi acuan untuk penghitungan data nilai alternatif dari konsumen yang akan dicocokkan dengan data alternatif dari setiap kategori produk. Dari perhitungan data keseluruhan maka, akan muncul kesimpulan terbaik berupa nilai alternatif produk tertinggi untuk mengambil
(45)
keputusan produk yang akan dipasarkan sesuai dengan keinginan dan kebutuhan konsumen.
Tabel 3.3 Skala Likert Nilai Keterangan
5 Sangat Penting (SP) 4 Penting (P)
3 Cukup Penting (CP) 2 Tidak Penting (TP)
1 Sangat Tidak Penting (STP)
3.5 Antarmuka Sistem
Antarmuka (interface) dalam suatu sistem merupakan hal penting untuk mempermudah mengakses sebuah aplikasi karena merupakan sarana penghubung antara user dengan sistem. Antarmuka (interface) juga harus memiliki tampilan yang menarik dan mudah dipahami.
Berikut ini adalah gambaran tentang rancangan tampilan halaman pada sistem yang akan dibuat :
1. Rancangan halaman awal kuesioner untuk user.
Gambar 3.5 Rancangan halaman awal kuesioner untuk user
Flanealde Merchant Lazada Indonesia
Nama
E-mail Gender
(46)
2. Rancangan halaman nilai kriteria kuesioner
Gambar 3.6 Rancangan halaman nilai kriteria kuesioner 3. Rancangan halaman kategori produk aksesoris handphone
Gambar 3.7 Rancangan halaman kategori produk aksesoris handphone Flanealde Merchant Lazada Indonesia
1. Kriteria apa saja yang menurut Anda penting dalam memilih produk aksesoris handphone ?
Merk Harga Kecepatan Kapasitas
Sangat Penting Sangat Penting Sangat Penting Sangat Penting
Flanealde Merchant Lazada Indonesia
2. Aksesoris handphone kategori apa yang ingin Anda beli ?
Kategori 1
Kategori 2
(47)
4. Rancangan halaman untuk memilih merk aksesoris handphone
Gambar 3.8 Rancangan halaman merk aksesoris handphone 5. Rancangan halaman untuk memilih harga aksesoris handphone
Gambar 3.9 Rancangan halaman harga aksesoris handphone Flanealde Merchant Lazada Indonesia
3. Merk aksesoris handphone apa yang ingin Anda beli ?
Merk 1
Merk 2
Merk 3
Flanealde Merchant Lazada Indonesia
4. Berapakah kisaran harga yang Anda inginkan/butuhkan ?
Harga 1
Harga 2
(48)
6. Rancangan halaman untuk memilih kecepatan aksesoris handphone
Gambar 3.10 Rancangan halaman kecepatan aksesoris handphone 7. Rancangan halaman untuk memilih kapasitas aksesoris handphone
Gambar 3.11 Rancangan halaman kapasitas aksesoris handphone Flanealde Merchant Lazada Indonesia
6. Berapakah kecepatan yang Anda inginkan/butuhkan ?
Kecepatan 1
Kecepatan 2
Kecepatan 3
Flanealde Merchant Lazada Indonesia
5. Berapakah kapasitas yang Anda inginkan/butuhkan ?
Kapasitas 1
Kapasitas 2
(49)
8. Rancangan halaman untuk menampilkan semua pilihan kuesioner
Gambar 3.12 Rancangan halaman tampilan semua pilihan kuesioner 9. Rancangan halaman login admin
Gambar 3.13 Rancangan halaman login admin Flanealde Merchant Lazada Indonesia
Jawaban Kuesioner
Flanealde Merchant Lazada Indonesia
(50)
10. Rancangan halaman data admin
Gambar 3.14 Rancangan halaman data admin 11. Rancangan halaman data produk (kategori produk )
Gambar 3.15 Rancangan halaman data produk (kategori produk ) No Merk Tipe Kapasitas Kecepatan Harga
Flanealde Merchant Lazada Indonesia
Data Produk
Data Konsumen
Data Kuisioner
Flanealde Merchant Lazada Indonesia
Data Produk
Kategori 1
Kategori 2
(51)
12. Rancangan halaman tambah produk pada kategori produk
Gambar 3.16 Rancangan halaman tambah produk 13. Rancangana halaman data konsumen
Gambar 3.17 Rancangan halaman data konsumen No Nama E-mail Gender Flanealde Merchant Lazada Indonesia
Data Produk
Kategori 1
Tambah Merk
Tipe
Kapasitas
Kecepatan Harga
Flanealde Merchant Lazada Indonesia
(52)
14. Rancangan halaman data kuesioner
Gambar 3.18 Rancangan halaman data kuesioner 15. Rancangan halaman untuk menambah kuesioner
Gambar 3.19 Rancangan halaman untuk menambah kuesioner No Pertanyaan Pilihan
1 2 3 4 5 Flanealde Merchant Lazada Indonesia
Data Kuisioner
Tambah
Flanealde Merchant Lazada Indonesia
Data Produk
Kategori 1
Tambah Pertanyaan
Pilihan Pilihan Pilihan
Pilihan
(53)
BAB 4
IMPLEMENTASI DAN PENGUJIAN
4.1 Implementasi
Implementasi merupakan kegiatan yang dilakukan untuk menguji data dan menerapkan sistem yang diperoleh dari hasil analisis. Implementasi juga merupakan salah satu unsur tahapan dari keseluruhan pembangunan sistem komputerisasi, dan unsur yang harus dipertimbangkan dalam pembangunan sistem. Tahap ini dilakukan setelah terlebih dahulu melalui tahap Analisis dan Perancangan Sistem yang telah diuraikan pada bab sebelumnya.
4.1.1 Spesifikasi Perangkat Keras dan Perangkat Lunak
Spesifikasi perangkat lunak yang digunakan selama pembangunan perangkat lunak (software) adalah sebagai berikut :
1. Processor Core i3 2. RAM 2 GB 3. Hardisk 500 GB 4. Windows 7 Ultimate 5. Android Stuidio 1.2.1.1
4.1.2 Implementasi Metode Weighted Product Model (WPM)
Penerapan metode Weighted Product Model (WPM) dalam sistem yang telah dibangun pada aplikasi ini adalah pada proses penentuan produk yang akan dipasarkan berdasarkan keingingan atau kebutuhan konsumen. Proses penentuan tersebut didapat dari data hasil kuesioner dari 200 konsumen. Keseluruhan konsumen akan menjadi
(54)
alternatif dalam mengambil keputusan untuk menentukan produk yang akan dipasarkan.
Berikut disajikan data dari beberapa konsumen yang menjadi alternatif dalam menentukan produk yang akan dipasarkan berdasarkan keinginan atau kebutuhan konsumen.
Tabel 4.1 Data Konsumen untuk Kategori Produk Power Bank menggunakan metode WPM
No Alternatif Kriteria
Merk Tipe A B C
1. Gita Hippo Czar 5 6000 245000 2. Rina Vivan U05s 5 6000 240000 3. Metha Vivan U05s 5 6000 240000 4. Lisa Hippo Luna 5 9000 345000 5. Alyssa Probox Sanyo Cell 2 5 7800 350000
Keterangan Tabel : A = Kecepatan (v) B = Kapasitas (mAh) C = Harga (Rp)
Pada Tabel 4.1, kriteria merk, tipe, kapasitas, kecepatan adalah kriteria keuntungan dan kriteria harga adalah kriteria biaya. Namun, kriteria merk dan tipe tidak dipilih dalam proses perhitungan. Pada metode Weighted Product Model (WPM), kriteria keuntungan bernilai positif dan kriteria biaya bernilai negatif. Maka berikut akan dijelaskan langkah-langkah perhitungan untuk mendapatkan nilai Weighted Product Model (WPM) dari alternatif yang ada.
Langkah 1 : Menentukan nilai bobot kriteria
Nilai bobot kriteria tersebut dihitung berdasakan skala likert, dari skala 5 ( Sangat Penting), 4 ( Penting), 3 (Cukup Penting), 2 (Tidak Penting) dan 1 (Sangat Tidak Penting). Nilai jumlah skala ditentukan oleh konsumen. Nilai jumlah skala dari seluruh konsumen dihitung untuk dapat menentukan nilai bobot kriteria produk. Nilai
(55)
bobot kriteria diterapkan untuk semua kategori produk. Nilai bobot kriteria produk yang didapat dari seluruh konsumen, dapat dilihat pada Tabel 4.2 berikut.
Tabel 4.2 Nilai Bobot Kriteria Kriteria Bobot (1,0) Kecepatan 0,32169257 Kapasitas 0,33740723 Harga 0,34089917
Langkah 2 : Mengalikan hasil pemangkatan nilai setiap kriteria dengan bobot kriteria.
Terlebih dahulu memangkatkan nilai kriteria dari setiap alternatif dengan nilai bobot kriteria. Bobot kriteria kecepatan dan kapasitas bernilai positif dan bobot kriteria harga bernilai negatif, sebagaimana ditunjukan pada Tabel 4.3.
Tabel 4.3 Pemangkatan Nilai Kriteria Alternatif dengan Bobot Kriteria
No Kriteria
A B C
1. 50,32169357 60000,33740723 245000-0,34089917
2. 50,32169357 60000,33740723 240000-0,34089917
3. 50,32169357 60000,33740723 240000-0,34089917
4. 50,32169357 90000,33740723 345000-0,34089917
5. 50,32169357 78000,33740723 350000-0,34089917
Lalu kalikan hasil pemangkatan nilai kriteria alternatif dengan nilai bobot kriteria untuk mendapatkan nilai WPM sebagaimana yang terlihat pada Tabel 4.4.
(56)
Tabel 4.4 Nilai Weighted Product Model (WPM) No Nilai Weighted Product Model (WPM)
1. 50,32169357 × 60000,33740723 × 245000-0,34089917 = 20,52 2. 50,32169357 × 60000,33740723 × 240000-0,34089917 = 20,52 3. 50,32169357 × 60000,33740723 × 240000-0,34089917 = 20,52 4. 50,32169357 × 60000,33740723 × 345000-0,34089917 = 23,28 5. 50,32169357 × 60000,33740723 × 350000-0,34089917 = 22,26
Berdasarkan Tabel 4.4, alternatif yang memiliki nilai WPM tertinggi adalah alternatif 4, 5, dan yang terendah 3, 2 dan 1 karena memiliki nilai WPM yang sama, dengan tipe produk yaitu, Luna, Sanyo Cell 2, U05s, U05s dan Czar.
4.1.3 Implementasi Metode Weighted Sum Model (WSM)
Penerapan metode Weighted Sum Model (WSM) dalam sistem yang telah dibangun pada aplikasi ini adalah pada proses penentuan produk yang akan dipasarkan berdasarkan keingingan atau kebutuhan konsumen. Proses penentuan tersebut didapat dari data hasil kuesioner dari 200 konsumen. Keseluruhan konsumen akan menjadi alternatif dalam mengambil keputusan untuk menentukan produk yang akan dipasarkan.
Berikut disajikan data dari beberapa konsumen yang menjadi alternatif dalam menentukan produk yang akan dipasarkan berdasarkan keinginan atau kebutuhan konsumen.
Tabel 4.5 Data Konsumen untuk Kategori Produk Power Bank menggunakan metode WSM
No Alternatif Kriteria
Merk Tipe A B C
1. Gita Hippo New Evo 5 6000 250000 2. Rina Vivan W06 5 6000 270000 3. Metha Vivan W06 5 6000 270000 4. Lisa Hippo Luna 5 9000 345000 5. Alyssa Probox Sanyo Cell 2 5 7800 350000
(57)
Keterangan Tabel : A = Kecepatan (v) B = Kapasitas (mAh) C = Harga (Rp)
Pada Tabel 4.5, kriteria merk, tipe, kapasitas, kecepatan adalah kriteria keuntungan dan kriteria harga adalah kriteria biaya. Namun, kriteria merk dan tipe tidak dipilih dalam proses perhitungan. Pada metode Weighted Sum Model (WSM), kriteria keuntungan dan kriteria biaya bernilai sama atau positif. Maka berikut akan dijelaskan langkah-langkah perhitungan untuk mendapatkan nilai Weighted Sum Model (WSM) dari alternatif yang ada.
Langkah 1 : Menentukan nilai bobot kriteria
Nilai bobot kriteria tersebut dihitung berdasakan skala likert, dari skala 5 ( Sangat Penting), 4 ( Penting), 3 (Cukup Penting), 2 (Tidak Penting) dan 1 (Sangat Tidak Penting). Nilai jumlah skala ditentukan oleh konsumen. Nilai jumlah skala dari seluruh konsumen dihitung untuk dapat menentukan nilai bobot kriteria produk. Nilai bobot kriteria diterapkan untuk semua kategori produk. Nilai bobot kriteria produk yang didapat dari seluruh konsumen, dapat dilihat pada Tabel 4.2.
Langkah 2 : Menjumlahkan hasil perkalian nilai setiap kriteria dengan bobot kriteria.
Terlebih dahulu mengalikan nilai kriteria dari setiap alternatif dengan nilai bobot kriteria. Bobot kriteria kecepatan, kapastitas dan harga bernilai sama yaitu bernilai positif, sebagaimana ditunjukan pada Tabel 4.6.
(58)
Tabel 4.6 Perkalian Nilai Kriteria Alternatif dengan Bobot Kriteria
No Kriteria
A B C
1. 5 × 0,32169357 6000 × 0,33740723 250000 × 0,34089917 2. 5 × 0,32169357 6000 × 0,33740723 270000 × 0,34089917 3. 5 × 0,32169357 6000 × 0,33740723 270000 × 0,34089917 4. 5 × 0,32169357 9000 × 0,33740723 345000 × 0,34089917 5. 5 × 0,32169357 7800 × 0,33740723 350000 × 0,34089917
Lalu jumlahkan hasil perkalian nilai kriteria alternatif dengan nilai bobot kriteria untuk mendapatkan nilai WSM sebagaimana yang terlihat pada Tabel 4.7.
Tabel 4.7 Nilai Weighted Sum Model (WSM) No Nilai Weighted Sum Model (WSM)
1. 1,60846 + 2024,44338 + 85224,7925 = 87250,84 2. 1,60846 + 2024,44338 + 92042,7759 = 94068,83 3. 1,60846 + 2024,44338 + 92042,7759 = 94068,83 4. 1,60846 + 3036,66507 + 117610,21365 = 120648,48 5. 1,60846 + 2631,77639 + 119314,7095 = 121948,10
Berdasarkan Tabel 4.7, alternatif yang memiliki nilai WSM tertinggi adalah alternatif nomor 5, 4, 3, 2 dan yang terendah adalah 1, dengan tipe produk yaitu, Sanyo Cell 2, Luna, W06, W06 dan New Evo.
4.2 Antarmuka Pengguna (User Interface)
Perancangan antarmuka digunakan sebagai acuan untuk peng-coding-an halaman-halaman pada perangkat lunak. Berikut merupakan antarmuka user untuk halaman awal user, halaman kuesioner, halaman hasil pilihan konsumen.
(59)
4.2.1 Halaman Awal User
Pada saat aplikasi dijalankan, maka halaman pertama yang akan muncul adalah halaman awal user. Halaman ini digunakan user untuk menginput nama, email dan gender sebagai informasi data konsumen. Gambar 4.1 merupakan tampilan awal halaman user pada aplikasi.
(60)
4.2.2 Halaman Kuesioner
Halaman yang akan muncul setelah user menginput data informasi konsumen adalah halaman kuesioner. Pada halaman kuesioner, user dapat memilih pilihan sesuai dengan keinginan dan kebutuhan. Halaman kuesioner pertama adalah halaman penilaian terhadap bobot setiap kriteria yaitu, merk, harga, kecepatan dan kapasitas produk. Gambar 4.2 merupakan tampilan halaman kuesioner pertama untuk menilai bobot setiap kriteria produk pada aplikasi.
Gambar 4.2 Halaman Kuesioner untuk Menilai Bobot setiap Kriteria Produk Halaman kuesioner selanjutnya yang akan muncul adalah halaman untuk memilih kategori produk yang diinginkan atau dibutuhkan responden. Gambar 4.3 merupakan tampilan halaman kategori produk.
(61)
Gambar 4.3 Halaman untuk Memilih Kategori Produk
Setelah memilih kategori produk yang diinginkan atau dibutuhkan selanjutnya akan muncul halaman merk produk, terdapat beberapa pilihan merk produk sesuai dengan kategori produk. Gambar 4.4 merupakan tampilan halaman merk produk dari
kategori “Power Bank”.
(62)
Kriteria selanjutnya yang akan dipilih adalah pada halaman harga produk, terdapat beberapa kisaran harga produk yang sesuai dengan kategori produk. Gambar
4.5 merupakan tampilan halaman harga produk dari kategori “Power Bank”.
Gambar 4.5 Halaman untuk Memilih Harga Produk
Selanjutnya kriteria yang harus dipilih adalah pada halaman kapasitas produk, terdapat beberapa kapasitas produk sesuai dengan kategori produk. Gambar 4.6
(63)
Gambar 4.6 Halaman untuk Memilih Kapasitas Produk
Kriteria terakhir yang harus dipilih adalah pada halaman kecepatan produk, terdapat beberapa kecepatan produk sesuai dengan kategori produk. Gambar 4.7
merupakan tampilan halaman kecepatan produk dari kategori “Power Bank”.
(64)
4.2.3 Halaman Hasil Kuesioner
Setelah keseluruhan tahap kuesioner dilakukan, maka konsumen dapat melihat hasil pilihannya, pada halaman ini ditampilkan hasil pilihan konsumen yang sesuai dengan data produk yang dimiliki oleh admin. Gambar 4.8 merupakan tampilan hasil pilihan konsumen dari kategori “Power Bank” yang sesuai dengan data produk admin.
Gambar 4.8 Halaman Hasil Kuesioner 4.2.4 Halaman Awal Admin
Untuk dapat melakukan pengolahan data, maka admin terlebih dahulu harus melakukan login. Halaman awal admin digunakan untuk menginputkan email dan password admin, agar admin dapat mengakses dan mengolah data yang telah di input oleh user. Gambar 4.9 merupakan tampilan awal halaman admin pada aplikasi.
(65)
Gambar 4.9 Halaman Awal Admin 4.2.5 Halaman Menu Admin
Halaman menu admin merupakan halaman untuk mengakses dan mengolah data, admin memiliki beberapa menu yaitu, data produk, data konsumen dan data kuesioner. Menu tersebut merupakan menu utama admin. Gambar 4.10 merupakan tampilan halaman menu admin pada aplikasi.
(1)
IMPLEMENTATION METHODS WEIGHTED PRODUCT MODEL (WPM) AND WEIGHTED SUM MODEL (WSM) IN DETERMINING THE PRODUCT
WILL BE MARKETED IN ONLINE SHOP
ABSTRACT
The development of IT (Information Technology) currently affects many aspects of life. Aspects of life in fulfilling the requirement and desires of consumers so have considerable influence. Producers often difficult to determine which mobile phone accessories products will be marketed because they do not know the specific desires and requirement of consumers. The research process begins with collecting system requirements, system design, system manufacturing process, as well as the testing process. To determine which products will be marketed used method of Weighted Product Model (WPM) and Weighted Sum Model (WSM). The method will help producers to obtain product data in accordance with the desires of consumers based on criteria specified product. Product criteria used in determining the product to be marketed is the brand, type, speed, capacity and price. The final result of alternative value systems in the form of data each product category mobile phone accessories are a headset, power bank and memory card. The alternative value is expected to help producers in determining which products will be marketed in accordance with the desires and requirement of consumers.
Keywords : Decision Support Making, Weighted Product Model (WPM), Weighted Sum Model (WSM) and Online Shop.
(2)
DAFTAR ISI
Hal.
PERSETUJUAN ii
PERNYATAAN iii
PENGHARGAAN iv
ABSTRAK vi
DAFTAR ISI viii
DAFTAR TABEL x
DAFTAR GAMBAR xi
BAB 1 Pendahuluan 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Ruang Lingkup Penelitian 2
1.4 Tujuan Penelitian 3
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
BAB 2 Landasan Teori 6
2.1 Sistem Pendukung Keputusan 6
2.2 Metode Weighted Product Model (WPM) 7 2.3 Metode Weighted Sum Model (WSM) 10
2.4 Penelitian Terdahulu 11
BAB 3 Analisis dan Perancangan Sistem 13
3.1 Analisis Masalah 13
3.2 Analisis Kebutuhan Sistem 13
3.2.1 Kebutuhan Fungsional Sistem 14 3.2.2 Kebutuhan Nonfungsional Sistem 14
(3)
3.4 Perancangan Sistem 17
3.4.1 Flowchart Sistem 17
3.4.2 Cara Kerja Metode Weighted Product Model (WPM) 22 3.4.3 Cara Kerja Metode Weighted Sum Model (WSM) 23
3.5 Antarmuka Sistem 24
BAB 4 Implementasi dan Pengujian 32
4.1 Implementasi 32
4.1.1 Spesifikasi Perangkat Keras dan Perangkat Lunak 32 4.1.2 Implementasi Metode Weighted Product Model
(WPM) 32
4.1.3 Implementasi Metode Weighted Sum Model (WSM) 35 4.2 Antarmuka Pengguna (User Interface) 37
4.2.1 Halaman Awal User 38
4.2.2 Halaman Kuesioner 39
4.2.3 Halaman Hasil Kuesioner 43
4.2.4 Halaman Awal Admin 43
4.2.5 Halaman Menu Admin 44
4.2.6 Halaman Data Produk Admin 45 4.2.7 Halaman Data Konsumen Admin 46
4.2.8 Halaman Data Kuesioner 46
4.2.9 Halaman User Statistics 47
4.3 Pengujian Sistem 48
4.3.1 Pengujian Perhitungan Menggunankan Metode
Weighted Product Model (WPM) 48 4.3.2 Pengujian Perhitungan Menggunankan Metode
Weighted Sum Model (WSM) 52
BAB 5 Kesimpulan dan Saran 55
5.1 Kesimpulan 55
5.2 Saran 56
DAFTAR PUSTAKA LAMPIRAN
(4)
DAFTAR TABEL
Hal. TABEL 2.1 Contoh Matriks Keputusan Weighted Product Model (WPM) 9 TABEL 2.2 Contoh Matriks Keputusan Weighted Sum Model (WSM) 10
TABEL 3.1 Sampel Data Produk 15
TABEL 3.2 Pertanyaan Kuesioner 16
TABEL 3.3 Skala Likert 24
TABEL 4.1 Data Konsumen untuk Kategori Produk Power Bank menggunakan
metode WPM 33
TABEL 4.2 Nilai Bobot Kriteria 34
TABEL 4.3 Pemangkatan Nilai Kriteria Alternatif dengan Bobot Kriteria 34 TABEL 4.4 NilaiWeighted Product Model (WPM) 35 TABEL 4.5 Data Konsumen untuk Kategori Produk Power Bank menggunakan
metode WSM 35
TABEL 4.6 Perkalian Nilai Kriteria Alternatif dengan Bobot Kriteria 37
(5)
DAFTAR GAMBAR
Hal. Gambar 3.1 Alur Metode Weighted Product Model (WPM) 18 Gambar 3.2 Alur Metode Weighted Sum Model (WSM) 19 Gambar 3.3 Pseudocode Metode Weighted Product Model (WPM) 20 Gambar 3.4 Pseudocode Metode Weighted Sum Model (WSM) 21 Gambar 3.5 Rancangan halaman awal kuesioner untuk user 24 Gambar 3.6 Rancangan halaman nilai kriteria kuesioner 25 Gambar 3.7 Rancangan halaman kategori produk aksesoris handphone 25 Gambar 3.8 Rancangan halaman merk aksesoris handphone 26 Gambar 3.9 Rancangan halaman harga aksesoris handphone 26 Gambar 3.10 Rancangan halaman kecepatan aksesoris handphone 27 Gambar 3.11 Rancangan halaman kapasitas aksesoris handphone 27 Gambar 3.12 Rancangan halaman tampilan semua pilihan kuesioner 28
Gambar 3.13 Rancangan halaman login admin 28
Gambar 3.14 Rancangan halaman data admin 29
Gambar 3.15 Rancangan halaman data produk (kategori produk) 29 Gambar 3.16 Rancangan halaman tambah produk 30 Gambar 3.17 Rancangan halaman data konsumen 30 Gambar 3.18 Rancangan halaman data kuesioner 31 Gambar 3.19 Rancangan halaman untuk menambah kuesioner 31
Gambar 4.1 Halaman Awal User 38
Gambar 4.2 Halaman Kuesioner untuk Menilai Bobot setiap Kriteria Produk 39 Gambar 4.3 Halaman Kuesioner untuk Memilih Kategori Produk 40 Gambar 4.4 Halaman Kuesioner untuk Memilih Merk Produk 40 Gambar 4.5 Halaman Kuesioner untuk Memilih Harga Produk 41 Gambar 4.6 Halaman Kuesioner untuk Memilih Kapasitas Produk 42 Gambar 4.7 Halaman Kuesioner untuk Memilih Kecepatan Produk 42
Gambar 4.8 Halaman Hasil Kuesioner 43
(6)
Gambar 4.10 Halaman Menu Admin 45
Gambar 4.11 Halaman Data Produk 45
Gambar 4.12 Halaman Data Konsumen 46
Gambar 4.13 Halaman Data Kuesioner 47
Gambar 4.14 Halaman User Statistics atau Bobot setiap Kriteria 47 Gambar 4.15 Hasil Perhitungan WPM untuk Kategori Headset 49 Gambar 4.16 Hasil Perhitungan WPM untuk Kategori Power Bank 50 Gambar 4.17 Hasil Perhitungan WPM untuk Kategori Memory Card 51 Gambar 4.18 Hasil Perhitungan WSM untuk Kategori Headset 52 Gambar 4.19 Hasil Perhitungan WSM untuk Kategori Power Bank 53 Gambar 4.20 Hasil Perhitungan WSM untuk Kategori Memory Card 54