Penerapan Metode Weighted Product Model (WPM) dan Weighted Sum Model (WSM) dalam Penentuan Produk yang akan dipasarkan pada Online Shop

(1)

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

E-mail


(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