Penerapan Metode Weighted Product Model (WPM) dan Weighted Sum Model (WSM) dalam Penentuan Produk yang akan dipasarkan pada Online Shop
LISTING PROGRAM
1. AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest
xmlns:android="http://schemas.android.com/apk/res/android "
package="id.co.lazada.flanealdemerchant" >
<!-- To auto-complete the email text field in the login form with the user's emails -->
<uses-permission
android:name="android.permission.GET_ACCOUNTS" /> <uses-permission
android:name="android.permission.READ_PROFILE" /> <uses-permission
android:name="android.permission.READ_CONTACTS" /> <application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity
android:name=".MainActivity"
android:label="@string/app_name" > <intent-filter>
<action
android:name="android.intent.action.MAIN" /> <category
android:name="android.intent.category.LAUNCHER" /> </intent-filter>
</activity> <activity
android:name=".AdminActivity"
android:label="Flanealde Merchant" /> <activity
android:name=".QuestionerActivity" android:label="Flanealde Merchant"
android:parentActivityName=".MainActivity" > <meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="id.co.lazada.flanealdemerchant.MainActivit y" />
(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,