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" />


(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>


(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);


(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,


(1)

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);


(2)

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;

} }


(3)

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 =


(4)

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);


(5)

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); }


(6)

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,